e2e/compat: detect stale known-incompatible entries#2966
Merged
Conversation
9dc20cc to
b6afa7c
Compare
5c763c6 to
2243722
Compare
7bf2858 to
e4e2962
Compare
packethog
approved these changes
Feb 16, 2026
Fail the test when a step listed as known-incompatible actually passes, so stale entries don't silently accumulate. Also fix set-health min version from 0.8.6 to 0.8.2 — v0.8.2 has these commands (confirmed on testnet) but v0.7.1 does not (confirmed on mainnet-beta).
mainnet-beta v0.8.2 doesn't have the set-health subcommand even though testnet v0.8.2 does. The boundary must cover the worst case across all environments.
Cloudsmith repos for different environments can publish the same version number from different git SHAs. Testnet v0.8.2 was built Jan 22 (after set-health was added) while mainnet-beta v0.8.2 was built Jan 13 (before), so the same version has different CLI capabilities across environments. Add per-environment overrides to knownIncompatibilities so the stale detection doesn't falsely fire on testnet where set-health works for all available versions.
The per-version devnets clone state from the discovery devnet which already has GlobalConfig from the remote cluster. The redundant global-config set fails with Immutable Field when fields like multicast_publisher_block are already set on the remote cluster.
GlobalConfig is already set from the cloned ledger state, so attempting to set it again fails with "Immutable Field" for versions that include the new required accounts (v0.8.8+).
The activator exits immediately if multicast_publisher_block is unset. The cloned mainnet-beta state doesn't have it (multicast not yet enabled), so set it during devnet setup using the current CLI. On testnet where the field is already set and immutable, the error is safely ignored.
b56cd7f to
ff62766
Compare
nikw9944
pushed a commit
that referenced
this pull request
Feb 17, 2026
## Summary of Changes - Fail the compatibility test when a step listed as known-incompatible actually passes, so stale entries in `knownIncompatibilities` don't silently accumulate - Make `knownIncompatibilities` environment-aware with per-env overrides, since Cloudsmith repos for different environments can publish the same version number from different git SHAs (e.g. testnet v0.8.2 was built 9 days after mainnet-beta v0.8.2 and includes set-health, which mainnet's doesn't) - Set correct per-environment boundaries for set-health commands: 0.8.6 for mainnet-beta, 0.8.2 for testnet ## Testing Verification - Ran `TestE2E_BackwardCompatibility` against both testnet and mainnet-beta locally — all passing - Confirmed stale detection correctly fires when a known-incompatible step passes - Verified via Cloudsmith API that testnet v0.8.2 (uploaded Jan 22) and mainnet-beta v0.8.2 (uploaded Jan 13) are different binaries built from different commits
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 of Changes
knownIncompatibilitiesdon't silently accumulateknownIncompatibilitiesenvironment-aware with per-env overrides, since Cloudsmith repos for different environments can publish the same version number from different git SHAs (e.g. testnet v0.8.2 was built 9 days after mainnet-beta v0.8.2 and includes set-health, which mainnet's doesn't)Testing Verification
TestE2E_BackwardCompatibilityagainst both testnet and mainnet-beta locally — all passing