Release v0.3.1#712
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4381e082f4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1,111 +0,0 @@ | |||
| """Early pytest plugin that caps unsafe xdist worker counts on developer Macs.""" | |||
There was a problem hiding this comment.
Restore the pytest plugin referenced by pytest.ini
With this plugin file deleted, any pytest invocation that reads the repository config fails before test collection because pytest.ini/pytest-ci.ini still load -p _benchbox_pytest_xdist_safety, and tests/unit/test_xdist_safety.py still imports the same module. I verified python -m pytest -q tests/unit/test_xdist_safety.py --tb=short exits with ImportError: Error importing plugin "_benchbox_pytest_xdist_safety", so the test jobs cannot run until the plugin is restored or the config/tests are updated together.
Useful? React with 👍 / 👎.
Release v
This PR was opened by
make release-cut VERSION=X.Y.Zfromdevelop.It cuts the release branch, bumps the version sources, generates the
CHANGELOG entry from
origin/main..HEAD, drops maintainer paths (_project/,_blog/, agent configs, dev-tooling root files), and queues the change for asquash-merge into
main.Reviewer checklist
## [X.Y.Z] - YYYY-MM-DDentrypyproject.tomlandbenchbox/__init__.pyshow the new versionlanding/show the new version_project/,_blog/, agent config dirs, and dev-tooling root fileswere removed from this branch (verify with
git diff main...HEAD --stat— the diff should look like a curated subtree, not arbitrary edits)
validate-baseis green for this release branchrelease-required-resultis green on this branchrelease-canary.ymlrun issuccessful, within 48h, and its checked
developSHA is an ancestor ofthis release head)
Release-required guarantee
release-required-resultmeans this branch passed the fast test lane,credential-free integration-not-slow suite, isolated exact-one-wheel package
install smoke, dependency upper-bound check, and release-branch curation check.
It does not cover live cloud credentials, stress suites, or long-running UAT.
Slow/resource-heavy coverage is enforced by the 48h release canary freshness
gate in
validate-base, not by rerunning that suite on every release PR.release-canary.ymlruns the credential-free non-fast canary(slow or resource_heavy) and not (stress or live_integration)and theruleset drift check against
docs/operations/repo-admin-settings.md.Scheduled runs execute from the default branch, then check out
developandrecord the checked SHA in
release-canary-summary.jsonfor release-readiness.The first release that introduces the workflow may run the same evidence inline
from
validate-baseuntil GitHub can run the canary from the default branch.Emergency override requires repository variables
RELEASE_READINESS_OVERRIDE_SHA(exact release head SHA) andRELEASE_READINESS_OVERRIDE_REASON(incident/approval record).After release-required checks are green
release-finalizere-checks that the requiredvalidate-baseandrelease-required-resultcontexts are present and green before merge. If eithercontext is missing, pending, skipped, failed, or canceled, stop and fix the
release PR or ruleset/workflow contract before rerunning the command.
After that pre-merge check passes,
release-finalizesquash-merges this PR,fast-forwards
main, tagsvX.Y.Z, and pushes the tag — which fires.github/workflows/release.yml:dependency-bounds→build(withSOURCE_DATE_EPOCHfrom the tag commit) →publish(PyPI trustedpublisher) →
github-release→test-installation(cross-platform pipinstall verification).
Push-to-main jobs are post-merge signals. They can fail after the tag has
already started publication; recovery is a patch release or incident process,
not treating the public tag as if it had been blocked.
developis intentionally NOT modified byrelease-finalize. Dev-onlypaths (
_project/,_blog/, agent configs, etc.) live only on developby design (per A3 in
_project/decisions/single-repo-migration.md).If anything fails downstream, fix on a new branch, PR to
main, squash-merge,and bump to the next patch version (PyPI rejects re-uploads of an existing
version).
See
docs/operations/release-guide.mdfor the full flow.