Skip to content

e2e/compat: detect stale known-incompatible entries#2966

Merged
snormore merged 6 commits intomainfrom
snor/compat-detect-stale-known-failures
Feb 16, 2026
Merged

e2e/compat: detect stale known-incompatible entries#2966
snormore merged 6 commits intomainfrom
snor/compat-detect-stale-known-failures

Conversation

@snormore
Copy link
Contributor

@snormore snormore commented Feb 13, 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

@snormore snormore force-pushed the snor/compat-detect-stale-known-failures branch 2 times, most recently from 9dc20cc to b6afa7c Compare February 14, 2026 18:52
@snormore snormore changed the title e2e/compat: detect stale knownIncompatibilities entries e2e/compat: detect stale known-incompatible entries Feb 14, 2026
@snormore snormore marked this pull request as ready for review February 14, 2026 19:00
@snormore snormore enabled auto-merge (squash) February 14, 2026 19:01
@snormore snormore force-pushed the snor/compat-detect-stale-known-failures branch 2 times, most recently from 5c763c6 to 2243722 Compare February 16, 2026 18:59
@snormore snormore force-pushed the snor/compat-detect-stale-known-failures branch from 7bf2858 to e4e2962 Compare February 16, 2026 19:22
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.
@snormore snormore force-pushed the snor/compat-detect-stale-known-failures branch from b56cd7f to ff62766 Compare February 16, 2026 21:57
@snormore snormore merged commit 239b6b1 into main Feb 16, 2026
30 checks passed
@snormore snormore deleted the snor/compat-detect-stale-known-failures branch February 16, 2026 22:07
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments