-
Notifications
You must be signed in to change notification settings - Fork 4k
clusterversion: bump MinSupported from v25.3 to v25.4 #158225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
clusterversion: bump MinSupported from v25.3 to v25.4 #158225
Conversation
|
Your pull request contains more than 1000 changes. It is strongly encouraged to split big PRs into smaller chunks. 🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf. |
3a7e916 to
fca94ab
Compare
|
Unit tests are failing for pkg/upgrade/upgrades/first_upgrade_test.go: TestFirstUpgradeRepair
thank you! Claude's Analysis: TestFirstUpgradeRepair Test FailureIssue: Error message changed from detailed FK-specific format to simpler descriptor lookup format. TL;DRQuestions
RecommendationUpdate test expectations (Option 1). The new format:
If detailed FK errors are preferred, investigate and restore previous behavior (Option 2). Root CauseDescriptor validation now happens earlier during lookup ( Fix OptionsOption 1: Update Test Expectations (Recommended)// Change from:
const errRE = "relation \"foo\" \\(106\\): invalid foreign key backreference: missing table=123456789..."
const errReForFunction = " function \"f\" \\(107\\): referenced descriptor ID 123456789..."
// To:
const errRE = "referenced descriptor ID 123456789: looking up ID 123456789: descriptor not found"
tdb.ExpectErr(t, errRE, "ALTER TABLE test.public.foo RENAME TO bar")
tdb.ExpectErr(t, errRE, "ALTER FUNCTION test.public.f RENAME TO g")Why: Simpler, consistent with existing tests, still validates corruption detection and repair. Option 2: Investigate If Error Change Was IntentionalIf the detailed FK error is valuable for debugging, investigate recent descriptor validation changes and consider restoring it. Option 3: Accept Both FormatsMake test flexible to accept either error format using |
The CLAUDE.md runbook had grown to 4114 lines (141K), making it difficult to navigate and maintain. This commit refactors it into a modular structure: - Main CLAUDE.md (113 lines): Overview, navigation, and general guidance - Individual runbooks in pkg/clusterversion/runbooks/: - R1_prepare_for_beta.md - R2_mint_release.md - M1_bump_current_version.md - M2_enable_mixed_cluster_logic_tests.md - M3_enable_upgrade_tests.md - M4_bump_minsupported_version.md Also updated README.md Claude Prompts to reference the new runbook locations. This makes each runbook easier to read, maintain, and use independently. Release note: None
Part of the quarterly M.4 "Bump MinSupported" task as outlined in `pkg/clusterversion/README.md`. This commit updates the MinSupported constant from V25_3 to V25_4, along with all code that references the MinSupported version. After this change, clusters running v25.3 can no longer connect to clusters running master, and direct upgrades from v25.3 to master are no longer supported. Changes include updates to: - MinSupported constant in pkg/clusterversion/cockroach_versions.go - Storage layer: MinimumSupportedFormatVersion updated to FormatV2BlobFiles Release note: None
Part of the quarterly M.4 "Bump MinSupported" task as outlined in `pkg/clusterversion/README.md`. After bumping MinSupported from v25.3 to v25.4, the frozen schema changer rules for release 25.3 are no longer needed. These rules were used to ensure schema changes work correctly in mixed-version clusters with v25.3 nodes, which are no longer supported. This commit removes: - The entire release_25_3 rules directory - Import and registry entry from plan.go - Bazel dependency Release note: None
Part of the quarterly M.4 "Bump MinSupported" task as outlined in `pkg/clusterversion/README.md`. This commit removes the bootstrap data for v25.3, which is now below the minimum supported version after bumping MinSupported from v25.3 to v25.4. The bootstrap data files are used to initialize clusters at specific versions. Since clusters can no longer start at v25.3 (it's below MinSupported), these files are no longer needed. Changes: - Removed 25_3_system.keys and 25_3_system.sha256 - Removed 25_3_tenant.keys and 25_3_tenant.sha256 - Removed V25_3 entry from initialValuesFactoryByKey map in initial_values.go - Removed go:embed variables for v25.3 bootstrap data - Updated BUILD.bazel to remove embedsrcs for deleted files Part of cockroachdb#157767 (reference PR for this quarterly task). Release note: None
Part of the quarterly M.4 "Bump MinSupported" task as outlined in `pkg/clusterversion/README.md`. After bumping MinSupported from v25.3 to v25.4, the local-mixed-25.3 test configuration is no longer needed since it simulates a mixed-version cluster with v25.3 nodes, which can no longer connect to the cluster. This commit: - Removes the local-mixed-25.3 config from logictestbase.go - Removes it from the default-configs and schema-locked-disabled sets - Deletes the generated test directories for local-mixed-25.3 - Removes all references from logic test files (skipif/onlyif directives) - Removes empty LogicTest directive lines that resulted from deletions - Regenerates Bazel BUILD files via `./dev gen bazel` Note: pebbleFormatVersionMap updates are deferred to a separate PR. Following the pattern from PR cockroachdb#157767 (v25.2→v25.3 bump), pebble.go is not modified in the M.4 PR. The map will be updated separately once V26_1_* internal versions with Pebble format changes are added, similar to how V25_4_PebbleFormatV2BlobFiles was added before the previous M.4. Changes affect 64 test files that had skipif or onlyif directives referencing local-mixed-25.3, plus the generated test files and BUILD files that were auto-generated based on the removed configuration. Part of cockroachdb#157767 (reference PR for this quarterly task pattern). Release note: None
Part of the quarterly M.4 "Bump MinSupported" task as outlined in `pkg/clusterversion/README.md`. After bumping MinSupported from v25.3 to v25.4, the cockroach-go-testserver-25.3 configuration and related mixed-version tests are no longer needed: - Clusters can no longer start below v25.4 (MinSupported) - Mixed-version tests that check for v25.4 features are now obsolete since all clusters start at v25.4 or higher This commit: - Removes the cockroach-go-testserver-25.3 configuration from logictestbase.go - Deletes the cockroach-go-testserver-25.3 test directory - Deletes obsolete mixed-version test files: - mixed_version_ltree: Tested that LTREE is only available after upgrading to 25.4 - mixed_version_partial_stats: Tested partial stats availability after upgrade to 25.4 - Regenerates Bazel BUILD files via `./dev gen bazel` Following the pattern from reference PR cockroachdb#157767, which removed cockroach-go-testserver-25.2 when MinSupported was bumped from v25.2 to v25.3. Release note: None
fca94ab to
49d062b
Compare
Part of the quarterly M.4 "Bump MinSupported" task as outlined in
pkg/clusterversion/README.md.This PR bumps MinSupported from v25.3 to v25.4 in 5 commits:
Commit 1: Refactor CLAUDE.md into modular runbooks
Refactors the monolithic 4114-line CLAUDE.md into a modular structure:
pkg/clusterversion/runbooks/:This makes each runbook easier to read, maintain, and use independently.
Note: This commit also adds Step 7 to the M.1 runbook documenting the requirement to update
pkg/storage/pebble.gowith a version mapping for the new release, which was missing from the original M.1 documentation.Commit 2: Bump MinSupported from v25.3 to v25.4
pkg/clusterversion/cockroach_versions.gofrom V25_3 to V25_4pkg/storage/pebble.go:After this change, clusters running v25.3 can no longer connect to clusters running master, and direct upgrades from v25.3 to master are no longer supported.
Commit 3: Remove schema changer rules for release_25_3
release_25_3rules directory (~13,000 lines)These frozen schema changer rules are no longer needed since v25.3 nodes can no longer participate in mixed-version clusters.
Commit 4: Remove bootstrap data for v25.3
Bootstrap data files are no longer needed since clusters can no longer start at v25.3 (below MinSupported).
Commit 5: Remove local-mixed-25.3 test configuration
./dev gen bazelThe local-mixed-25.3 configuration simulates a mixed-version cluster with v25.3 nodes, which can no longer connect after bumping MinSupported.
Reference PR: #157767 (v25.2 → v25.3 MinSupported bump)
Epic: None
Release note: None