test: add compatibility discovery harness and revise SemVer proposal - #398
Open
Pino de Candia (pinodeca) wants to merge 3 commits into
Open
Pino de Candia (pinodeca) wants to merge 3 commits into
Pino de Candia (pinodeca) wants to merge 3 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Pino de Candia (pinodeca)
force-pushed
the
pinodeca-semantic-versioning-guarantees
branch
from
September 23, 2026 20:05
6dfafaf to
e175a2a
Compare
Pino de Candia (pinodeca)
marked this pull request as ready for review
September 23, 2026 22:32
This branch has not been deployed
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.
Summary
Extend this PR from a SemVer proposal into a compatibility-discovery foundation: reproducible released-binary B1/B2 tests, initial measured findings, and a proposal that keeps future guarantees separate from current evidence.
ALTER EXTENSION UPDATEto the matching catalog (B2).dfstatus and monitoring APIs across subsequent states.docs/upgrade-testing.mdwith invocation, interpretation, evidence and coverage limits. Retain the historical audit and future versioning/guarded-upgrade proposals indocs/semver-compatibility-plan.md, but defer adoption of a 1.0 release or guaranteed replay baseline.Tested Chain
Loop iterations advance independently of these states. Existing failed instances remain inspectable and are not counted as passing later continuity checks.
Initial Findings
Measured locally on Linux/PostgreSQL 17.10 with debug
pg17-only replay artifacts and candidate runtime source ate175a2a9f6b72904ea6b04acce1c968496063775(this PR's subsequent changes do not alter runtime source):update-node-statusrecorded-input schedule mismatch. Provider status wasfailedwhiledf.status()still reportedrunning.Strict mode returns exit 1 for the documented break. The explicit known-break option accepts only that fixture/transition/error combination; unrelated failures, diagnostic errors and incomplete coverage still fail. A green exception-enabled run is not a claim that every workflow survived.
Scope And Migration Impact
No runtime behavior, dependency versions, extension DDL, package version or public SQL API changes. No upgrade script or runtime schema detection is needed for this implementation.
These two graph shapes do not establish blanket feature compatibility, direct skipped-version upgrades, a v0.2.8 replay baseline, or provider-version migration compatibility. The selected binaries all use duroxide-pg 0.1.34. Source-inferred historical risks remain distinct from measured results. Runtime compatibility repairs, broader fixtures, sanitized downstream pipeline samples, checkpoint reuse and mandatory SemVer release gates are follow-up work.
Validation
cargo build --features pg17cargo clippy --features pg17cargo fmt -p pg_durable -- --check./scripts/test-unit.sh: 391 passed, 16 ignored./scripts/test-e2e-local.sh: 65 passed, 0 failed across all required modes./scripts/test-upgrade.sh --pg-version 17: all 142 A/B1/B2 checks passedPostgreSQL validation used private installations/clusters rather than the normal developer database. The original suite's fresh-cluster superuser setting was enabled only in its private test configuration. Remote CI results are separate from these local results.
Manual Replay Run
./scripts/test-upgrade.sh --pg-version 17 \ --replay-chain "$PWD/target/replay-evidence" --allow-known-replay-breaksOmit the allowance for strict mode. In CI, enable the
replay_chainworkflow-dispatch input and select PG17 or17, 18; PG18-only with replay requested is rejected.