Skip to content

ci(release): allow explicit publication without upgrade acceptance - #2248

Merged
hidb4ai merged 1 commit into
oceanbase:masterfrom
hidb4ai:codex/release-skip-upgrade-acceptance
Oct 26, 2026
Merged

hidb4ai merged 1 commit into
oceanbase:masterfrom
hidb4ai:codex/release-skip-upgrade-acceptance

Conversation

@hidb4ai

@hidb4ai hidb4ai commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

Which issue or RFC does this PR close?

Follow-up to #2245 and the blocked v1.4.1 release run. Related upgrade acceptance contract: #2168 and #2181.

Rationale for this change

A published Release can need package publication before database upgrade acceptance is complete. Add an explicit manual path for new-database-only publication while preserving the default upgrade gate. This can publish the existing powercontext-v1.4.1 tag without moving it or packaging unrelated changes from the default branch.

What changes are included in this PR?

  • Add release_tag and skip_upgrade_acceptance (default false) to manual dispatch of the existing Release workflow. Manual publication must run from the default branch, resolves the selected tag to an immutable checkout, and snapshots current GitHub Release notes.
  • Require an explicit new-database-only notice when bypassing upgrades, and retain upgrade-required in the target policy. The bypass records upgrade_acceptance: skipped, the actor/run/commit, and artifact hashes.
  • Keep version/reference/policy/package checks, rebuild the sdist to compare wheel contents, install the exact staged wheel in an isolated environment, and exercise CLI, Server, MCP, and SQLite Memory behavior before exposing publication artifacts. Recheck hashes after the smoke test.
  • Keep PyPI publishing, Release assets, public-release verification, and website deployment; target the selected release consistently. Normal publication and PR acceptance still require the upgrade matrix and reviewed support declaration.
  • Document both language workflows and add coverage for manual target selection, required notices, rejected targets, and target-commit evidence.

Are there any user-facing changes?

After merging, add this exact notice to the existing GitHub Release body:

Upgrade acceptance was skipped for this release. Use only new databases; upgrades of existing databases are not supported.

Then run from the default branch:

gh workflow run release.yml --repo oceanbase/powercontext --ref master \
  -f release_tag=powercontext-v1.4.1 -f skip_upgrade_acceptance=true

Existing-database upgrades remain unsupported by this publication path. This PR does not change migration behavior or claim upgrade acceptance.

How was this change tested?

  • pytest -q tests/test_ci_release_verification.py tests/test_upgrade_release_gate.py tests/test_upgrade_publication.py: 144 passed, 1 skipped.
  • pytest -q tests/test_release_version.py: 12 passed.
  • make release-check VERSION=1.4.1: passed.
  • Actionlint on both modified workflows: passed.
  • Executed the actual bypass build-validation, clean-install, smoke, and hash-binding shell steps against a clean checkout of the existing v1.4.1 tag (8ef4f645). Real sdist rebuild and wheel comparison passed; the isolated installed package passed CLI, Server, MCP, and SQLite Memory smoke validation on Python 3.14.6.
  • prek run -a: all formatting/lint/config checks passed. ty check still reports unresolved task in tests/e2e/cross_host_work_continuity/fixtures/verify.py and scripts.upgrade_database_probe in tests/test_upgrade_schema_equivalence.py; both were independently reproduced on the unmodified v1.4.1 tag.
  • No package was uploaded and no production release workflow was dispatched during validation. GitHub-hosted publication still requires merging this workflow change and manual dispatch.

AI usage statement

Implemented and validated with OpenAI Codex.

@hireview001 hireview001 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hidb4ai
hidb4ai merged commit bad4c0c into oceanbase:master Oct 26, 2026
50 of 51 checks passed
hidb4ai pushed a commit that referenced this pull request Oct 27, 2026
…SHA (#2256)

Since #2248 the parallel upgrade gate identifies the checkout by
PC_UPGRADE_SOURCE_SHA and falls back to GITHUB_SHA, and
upgrade-release.yml exports PC_UPGRADE_SOURCE_SHA to every step. The
checkout case of test_parallel_workers_reject_changed_preparation_inputs
changes only GITHUB_SHA, so inside the upgrade acceptance job the
identity the gate reads stays the same and no GateError is raised.
Locally and in the unit test job the variable is unset, the gate falls
back to GITHUB_SHA, and the case passes.

The parallel_reports fixture now unsets the variable, so these tests
model an unpinned checkout in any environment and keep covering the
GITHUB_SHA fallback. The pinned path stays covered by
test_manual_release_evidence_tracks_target_checkout_not_workflow_commit,
which sets both variables.
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.

2 participants