Skip to content

Fix/v1.11.3 upgrade ci compat - #794

Open
Y1fe1Zh0u wants to merge 2 commits into
mainfrom
fix/v1.11.3-upgrade-ci-compat
Open

Fix/v1.11.3 upgrade ci compat#794
Y1fe1Zh0u wants to merge 2 commits into
mainfrom
fix/v1.11.3-upgrade-ci-compat

Conversation

@Y1fe1Zh0u

Copy link
Copy Markdown
Collaborator

Summary

Checklist

  • Tested locally
  • No unrelated changes included

The upgrade test previously special-cased v1.11.2 and let the target image migrate beyond the source image's known Alembic graph. Discover the source image heads and only use target migration code to repair to that boundary when source bootstrap fails.

Constraint: The upgrade source is selected dynamically from the previous release tag
Rejected: Pin a known revision | breaks when the previous release changes
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Never expose target-only revisions to the source image before source assertions complete
Tested: sh -n; bash -n; Alembic head and history resolution; git diff --check
Not-tested: Full Docker upgrade workflow because the local Docker daemon is unavailable
Derive source heads and their direct parents from the source image, commit the historical parent schema with source migrations, and permit target code to replace only a changed source-head migration. Verify the stored Alembic heads before starting the source app without bootstrap.

Constraint: Target Base.metadata must never bootstrap the source-version database
Rejected: Retry the target image from an empty database | fabricates target schema at a source revision
Rejected: Run every revision in a separate container | preserves boundaries but adds unnecessary CI startup overhead
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep target migrations behind a committed source-schema boundary
Tested: sh, bash, and dash syntax; 17 scoped pytest tests; v1.11.2 graph and digest resolution; git diff check
Not-tested: Full Docker upgrade workflow because the local Docker daemon is unavailable
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