Remove scylla 2024.1 and 2025.3 support - #4796
Conversation
5b33f53 to
ba80ea6
Compare
All supported scylla versions support raft read barrier api. This commit cleans up the codebase according to this assumption.
All supported scylla versions store auth and service levels on raft, so we no longer need to worry about actually used auth ks and system_distributed.service_levels. This commit cleans up the codebase according to this assumption.
This was missed when working on #4732. It was fixed for regular restore, but we forgot to include it for the 1-1-restore.
All supported scylla versions require raft schema. This commit cleans up the codebase according to this assumption. This results in removal of the entire codebase responsible for restoring schema from sstables. This commit removed TestRestoreTablesViewCQLSchemaIntegration and renamed TestRestoreFullViewSSTableSchemaIntegration to TestRestoreFullViewIntegration, because the original intention of those tests were to check view restoration when their schema is restored from sstables or when it was manually recreated with CQL. Since we only restore schema via CQL, those two tests becomes the same scenario, so we can safely merge them into TestRestoreFullViewIntegration. TestRestoreSchemaVersionedIntegration is just removed because there is no such thing as schema versioning with CQL schema.
All supported scylla versions store auth and service levels on raft, so we no longer need to worry about actually used auth ks and system_distributed.service_levels. This commit cleans up the codebase according to this assumption.
…able All supported scylla support creating alternator gsi on existing table. This commit cleans up the codebase according to this assumption.
All supported scylla versions require raft schema. This commit cleans up the codebase according to this assumption. This results in removal of the entire codebase responsible for backing up schema from sstables.
All supported scylla versions support raft read barrier api. This commit cleans up the codebase according to this assumption.
All supported scylla versions support backing up alternator schema from alternator api. This commit cleans up the codebase according to this assumption.
All supported scylla support small table optimization. This commit cleans up the codebase according to this assumption.
ba80ea6 to
ea1dea1
Compare
|
@karol-kokoszka @VAveryanov8 this is a needed, but lengthy PR (mostly code removal and version bumps). I tried to divide the changes into sensible commits to make it easier to review, but I can also replace this one PR with several smaller ones if that helps. |
There was a problem hiding this comment.
Pull request overview
This PR removes ScyllaDB 2024.1 and 2025.3 from the project’s CI/test matrix and simplifies the codebase by deleting version-conditional logic and workflows that only existed to support those no-longer-supported Scylla releases. It also updates docs to drop 2024.1-specific restore workarounds and adds 2026.2.0-rc0 CI coverage.
Changes:
- Updated GitHub Actions integration-test workflows and the generated CI configuration to drop 2024.1/2025.3 and add 2026.2.0-rc0.
- Simplified backup/restore/repair code paths by removing feature/version gating (e.g., schema-from-SSTables and several “supports X” checks).
- Refreshed documentation and README badges to match the new supported/tested Scylla versions and restore behavior.
Reviewed changes
Copilot reviewed 58 out of 58 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| testing/Makefile | Removes RAFT_SCHEMA plumbing and replication “upgrade” steps tied to older versions. |
| README.md | Updates integration status table/badges to the new CI matrix. |
| pkg/testutils/db/db.go | Removes 2024.1-specific Alternator commentary. |
| pkg/service/restore/worker.go | Makes schema-file presence mandatory for schema restore and simplifies skip patterns. |
| pkg/service/restore/worker_views.go | Removes NodeInfo dependency from Alternator view workers. |
| pkg/service/restore/testdata/get_target/default_values.units.json | Updates golden testdata to reflect new unit filtering (drops system_auth/service_levels). |
| pkg/service/restore/testdata/get_target/continue_false.units.json | Updates golden testdata to reflect new unit filtering (drops system_auth/service_levels). |
| pkg/service/restore/service_restore_integration_test.go | Removes version-gated skips and prunes schema-restore scenarios/tests. |
| pkg/service/restore/schema_worker.go | Removes schema-from-SSTables restore path; restores schema only from schema files. |
| pkg/service/restore/restore_integration_test.go | Simplifies restore integration tests and removes version-gated paths. |
| pkg/service/restore/model.go | Removes unused RunProgress helper. |
| pkg/service/restore/alternator.go | Assumes supported Alternator capabilities (e.g., GSI create on existing tables). |
| pkg/service/repair/tablet/targetworker.go | Removes tablet-repair support checks and relies on tablet keyspace discovery. |
| pkg/service/repair/tablet/service_integration_test.go | Drops tablet-repair API gating in tests. |
| pkg/service/repair/service.go | Simplifies tablet/vnode active-repair checks and host validation logic. |
| pkg/service/repair/service_repair_integration_test.go | Updates repair integration tests to assume newer API behaviors. |
| pkg/service/repair/plan.go | Removes API support flags for small-table/tablet repair (keeps incremental support). |
| pkg/service/repair/helper_integration_test.go | Removes helper that checked tablet-repair support dynamically. |
| pkg/service/repair/generator.go | Removes tablet load-balancing control logic and simplifies job-type selection. |
| pkg/service/one2onerestore/worker.go | Removes safe-describe method plumbing and simplifies skip patterns. |
| pkg/service/one2onerestore/worker_views.go | Always uses raft read-barrier API before reading schema. |
| pkg/service/one2onerestore/model.go | Removes SafeDescribeMethod field from Host model. |
| pkg/service/backup/worker_schema.go | Always backs up schema via DESCRIBE SCHEMA WITH INTERNALS + raft read barrier. |
| pkg/service/backup/worker_alternator.go | Assumes Alternator schema backup via API when Alternator is enabled. |
| pkg/service/backup/service_backup_integration_test.go | Updates tests to assume alternator schema backup is always present when Alternator enabled. |
| pkg/scyllaclient/client_scylla_integration_test.go | Simplifies tablets option handling in ring/replication integration tests. |
| pkg/scyllaclient/client_agent.go | Removes NodeInfo capability helpers tied to dropped Scylla versions/features. |
| pkg/scyllaclient/client_agent_test.go | Removes unit tests for the deleted NodeInfo capability helpers. |
| pkg/command/backup/res.yaml | Updates CLI help text to remove version-conditional wording about CQL credentials. |
| Makefile | Removes RAFT_SCHEMA pass-through when starting dev env. |
| docs/source/sctool/partials/sctool_backup.yaml | Updates docs text to remove version-conditional wording about CQL credentials. |
| docs/source/sctool/partials/sctool_backup_update.yaml | Updates docs text to remove version-conditional wording about CQL credentials. |
| docs/source/restore/restore-tables.rst | Removes pre-2025.1 Alternator GSI limitation note. |
| docs/source/restore/restore-schema.rst | Renames/retitles restore-schema docs to remove version-specific framing. |
| docs/source/restore/old-restore-schema.rst | Removes legacy restore-schema documentation for older Scylla versions. |
| docs/source/restore/index.rst | Removes reference to deleted legacy restore-schema page. |
| docs/source/restore/examples.rst | Updates examples to remove “restart required” follow-up for old restore flow. |
| docs/source/compatibility-matrix.rst | Removes raft-schema warning include (matrix remains as the compatibility reference). |
| docs/source/common/restore-raft-schema-warn.rst | Removes obsolete raft-schema restore warning snippet. |
| docs/source/backup/specification.rst | Removes version-conditional statement about schema files being required. |
| docs/source/backup/index.rst | Updates wording to state schema files are required for schema restore (without version gating). |
| .github/workflows/integration-tests-latest-IPV6-tablets-nossl-rclone-rclone.yaml | Removes raft-schema input/wiring. |
| .github/workflows/integration-tests-latest-IPV4-native-native.yaml | Removes raft-schema input/wiring. |
| .github/workflows/integration-tests-2026.2.0-rc0-IPV6-nossl-rclone-rclone.yaml | Adds new 2026.2.0-rc0 CI workflow. |
| .github/workflows/integration-tests-2026.2.0-rc0-IPV4-tablets-rclone-native.yaml | Replaces 2025.3.7 with 2026.2.0-rc0 and removes raft-schema wiring. |
| .github/workflows/integration-tests-2026.1.2-IPV6-nossl-rclone-rclone-localstorage.yaml | Replaces 2025.3.7 with 2026.1.2, removes raft-schema wiring, sets localstorage provider. |
| .github/workflows/integration-tests-2026.1.2-IPV4-tablets-native-native.yaml | Updates from 2026.1.0-rc2 to 2026.1.2 and removes raft-schema wiring. |
| .github/workflows/integration-tests-2026.1.0-rc2-IPV6-nossl-rclone-rclone-localstorage.yaml | Removes obsolete 2026.1.0-rc2 workflow. |
| .github/workflows/integration-tests-2025.4.7-IPV6-tablets-nossl-rclone-rclone.yaml | Updates from 2025.4.3 to 2025.4.7 and removes raft-schema wiring. |
| .github/workflows/integration-tests-2025.4.7-IPV4-native-rclone.yaml | Updates from 2025.4.3 to 2025.4.7 and removes raft-schema wiring. |
| .github/workflows/integration-tests-2025.1.12-IPV6-tablets-nossl.yaml | Updates from 2025.1.11 to 2025.1.12 and removes raft-schema wiring. |
| .github/workflows/integration-tests-2025.1.12-IPV4.yaml | Updates from 2025.1.11 to 2025.1.12 and removes raft-schema wiring. |
| .github/workflows/integration-tests-2024.1.21-IPV6-raftschema-nossl.yaml | Removes obsolete 2024.1.21 workflow. |
| .github/workflows/integration-tests-2024.1.21-IPV4.yaml | Removes obsolete 2024.1.21 workflow. |
| .github/cfg/main.go | Removes raft-schema dimension from integration test naming/config. |
| .github/cfg/integration-test-core.yaml | Removes raft-schema input wiring from reusable workflow config. |
| .github/cfg/integration-test-cfg.yaml | Updates the CI matrix versions and removes raft-schema entries. |
| .github/actions/test-setup/action.yml | Removes raft-schema input and Makefile pass-through. |
Comments suppressed due to low confidence (1)
pkg/service/repair/generator.go:190
- In the job type selection switch, the
len(ring.ReplicaTokens) == 1 && tp.Smallbranch is unreachable becausetp.Smallis matched by the previouscase tp.Small. IfmergeRangesJobTypeis still intended for the single-replicaTokens case, it should be checked before the generictp.Smallcase (or the dead branch should be removed).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
karol-kokoszka
left a comment
There was a problem hiding this comment.
Nice !
Please monitor https://jenkins.scylladb.com/view/scylla-manager/job/manager-master/ after the merge.
All supported scylla support tablet repair api. This commit cleans up the codebase according to this assumption.
This commit removes unused version check methods that are no longer needed after dropping support for scylla 2024.1 and 2025.3: - SupportsRepairSmallTableOptimization - SupportsTabletRepair - SupportsSafeDescribeSchemaWithInternals - SupportsAlternatorSchemaBackupFromAPI - SupportsAlternatorCreateGSIOnExistingTable
Scylla 2024.1 is no longer supported, so it is removed from our docs.
There is no need to modify auth ks rf as it is now always replicated with raft. Apart from removing no longer needed RF upgrade of auth ks, this commit also removes the RF upgrade of audit ks, as it's automatically upgraded starting from scylla 2024.2: https://docs.scylladb.com/manual/stable/operating-scylla/security/auditing.html#configuring-audit-storage.
The no longer supported 2024.1 was the last version tested against disabled raft schema, so we remove this parameter.
This commit: - removes scylla 2024.1 from test matrix - removes scylla 2025.3 from test matrix - bumps scylla 2026.1.0-rc2 to 2026.1.2 - bumps scylla 2025.1.11 to 2025.1.12 - bumps scylla 2025.4.3 to 2025.4.7 - adds scylla 2026.2.0-rc1 to test matrix
cd .github/cfg && go run main.go This commit additionally removes the outdated limitation from README.md: "Restoration of schema containing **Alternator** tables is not supported" ss this is already supported.
ea1dea1 to
e2a5872
Compare
|
Small changes:
|
|
Encountered new failures against scylla nightly related to new changes on scylla master. |
…tab and system_distributed_everywhere ks Mentioned tab and ks will not be created on cluster startup starting from scylla 2026.3 (already present on scylla master). This has been implemented on the scylla side in: scylladb/scylladb#29482. This commit adjusts our golden files tests to no longer always expect them. Refs scylladb/scylladb#29482.
4781925 to
af8f311
Compare
Even though scylla 2024.1 and 2025.3 are no longer supported, we still test against them in our CI.
The goal of this PR is to remove them from our CI runs, making it faster and less flaky, and to remove any codebase related to the no longer supported scylla 2024.1.
2024.1 is a problematic release, as it is the last one that might be operating on non raft schema / auth / service levels. Because of that, restore procedures for those entities were different for those versions.
Apart from that, there are also other scylla features which are now supported on all supported scylla versions, so this PR also removes their feature checks and assumes that they are always there.
This PR also adjusts the docs containing a lot of information related to workaround needed for scylla 2024.1.
When removing 2024.1 and 2025.3 from test matrix, this PR also added 2026.2.0-rc0 in their place.