Repository navigation
Fold ci_regen into the ci job as an enforcing step (free a runner slot) - #6470
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Fold the
ci_regenjob into thecijob as an enforcing step (operator: "move ci regen check into ci for now so we don't have another job" + "if its truly red it should block merge"). One fewer runner-slot-consuming job; the self-host fixed-point (regen-verify + staleness) now gates merge as a step of the requiredcijob instead of a separate non-required job.Structural change (
dag/gunbc/ci_workflow.dag)ci_regen_floor_step()appended toci_job()'s step list (enforcing —continue_on_error: none).ci_regen_job()deleted; jobs list →concat([ci_job()], ci_deploy_jobs()).gunbc_ci_floor_step_timeout_minutesterm for the folded regen step (still the exact step-sum + prelude).gunbc_ci_regen_spec.notice_titleupdated from "non-required" → "required; folded into ci job".The regen spec and its gate projection surface (
GithubActionsCiRegenJob,gunbc_ci_regen_floor_gates,gunbc_ci_regen_floor_batches) are unchanged — the fold only moves where the regen runs, not the gates it carries..github/workflows/ci.ymlregenerated viamain_wet(71 lines removed; singlecijob).Materialization consequence — the fold dissolves real duplication (§2)
Before: CI built the release binary on two independent jobs (
ci_job+ci_regen_job), a genuine cross-job duplication that sccache discharged. Folding to one job removes the duplication entirely, so the live release build is now a single demand →AcceptedSingleRecompute(ladder state 5: a lone undeclared demand needs no provider, so it holds with or without sccache).Enrolled live witnesses (
dag/test/claim/ci_materialization_witness_test.dag) redesigned for the single-build reality:ci_single_release_build_is_accepted_single_recompute—demand==1, single-recompute arm,discharged_by_sccache==0.ci_ladder_holds_without_sccache_single_build— holds without provider,refused_without_provider==0.3, run-step-natures11.ci_release_build_single_recompute_count()to the gate.Red control migrated, not lost (§5)
Removing the live duplication removes the live "duplication → refusal" red control. It moves to the synthetic
placement_grain_witness_test.dag(two independently-building jobs →AuthoredDuplication/RefusedNoProvider), which I enrolled incommit_gate_rosterso the reintroduction guard actually gates. The staleci_regen_jobfixture was renamedsecond_building_job(that job no longer exists). The live witness'sdemand==1/discharged==0pins also red on reintroduction.Drive-by
witness_steps_sequence_elements_are_yaml_valuespinned the first job's step count at8— stale since #6243 (ci_job has had 13+ steps for many PRs; the witness is not CI-enrolled, so its redness never gated). Corrected to the true post-fold count14.Verification (green-by-execution, local arm64, post-merge-with-main)
Merged
origin/main(4 PRs since branch, incl. #6444 CI-floor migration, #6460 interpreter cache) — auto-resolved, no conflicts. Rebuilt binaries locally (arm64; the remote ctrl-build uploads 0 artifacts).main_wetregen clean, no ci.yml drift. All affected witness files PASS: ci_materialization (8), placement_grain (5), ci_spec / gate-coproduct-completeness, commit_workflow (2), ci_yaml_serializer keystone, ci_floor_plan (9, incl. #6444's runner-migration), floor_materialization (3).Pre-existing, non-enrolled
ci_deploy_witnessesnull-RED (emptydeploy_stages) is untouched and orthogonal.🤖 Generated with Claude Code