Skip to content

Release tooling: tree-bound evidence, rerunnable source lanes and one platform-skip marker - #208

Merged
Dsssyc merged 10 commits into
world-in-progress:mainfrom
Dsssyc:socu/release-agility-review
Oct 30, 2026
Merged

Dsssyc merged 10 commits into
world-in-progress:mainfrom
Dsssyc:socu/release-agility-review

Conversation

@Dsssyc

@Dsssyc Dsssyc commented Oct 30, 2026

Copy link
Copy Markdown
Member

Makes releases agile without weakening what is actually verified. A one-line fix took four full validation rounds on 2026-10-30 and still had not reached candidate building, because release evidence had to be a fresh full run on main, a rerun was forbidden, and the candidate waited for that run. The measured breakdown and the decisions are in docs/plans/2026-10-30-release-agility-review.md.

Release evidence (A1-A6):

  • Source Validation evidence is bound to the Git tree: promotion accepts a successful full ci.yml run in the canonical repository (push, workflow_dispatch or pull_request) whose tested commit has the same tree as the release commit. PR runs check out the PR head itself, so the comparison is exact. A main push whose tree already passed on its PR runs workflow policy only.
  • Source artifacts carry the run attempt (-a<attempt>), and promotion takes each required job's latest attempt, so a failed source lane can be rerun instead of repeating the whole run.
  • The Release Candidate no longer waits for main's Source Validation (check-source and rc-context.json's run id are removed; context schema v2). Promotion selects the evidence once, at the boundary; the deep re-verification of Source Validation receipts and its constants are removed. Candidate byte digests, manifests, receipts and remote-state checks are unchanged.
  • The dry-run input is removed: preparation writes the publication plan to the step summary, and publication waits for environment approval (pypi, and a new github-release environment for c3).
  • Source lanes start in parallel with workflow policy.

Tests and CI (A7, B4, B7):

  • Platform skips use one platform('windows'|'posix') marker; the Python suite runner accepts only that skip reason, and the three frozen nodeid tables are deleted.
  • Default-encoding I/O inside c_two now fails the SDK tests (EncodingWarning as error under PYTHONWARNDEFAULTENCODING). It caught two product bugs, fixed here for 0.10.1: CRM templates read the CRM source with tokenize.open and write UTF-8, and c-two contract writes UTF-8 to files and to stdout, which c3 parses.
  • Windows x64 keeps one source lane, Server 2025 (the candidate's Windows x64 image); Windows ARM64 is unchanged.

Validation so far: actionlint and tests/repo pass locally; fork full CI https://github.com/Dsssyc/c-two/actions/runs/41061490204 passed 9/9 on the first attempt with a cold cache (21.4 min). The last three commits (the encoding fix and records) are validated by this PR's CI.

Before merge: the github-release environment must exist with a required reviewer, otherwise the first CLI publication would not pause for approval. 0.10.1 (Python only) will be the first release through this flow.

@Dsssyc
Dsssyc merged commit 1a69b78 into world-in-progress:main Oct 30, 2026
9 checks passed
@Dsssyc
Dsssyc deleted the socu/release-agility-review branch October 30, 2026 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant