e2e: add backward compatibility test for older CLI versions#2797
Open
snormore wants to merge 13 commits intosnor/serviceability-telemetry-sdksfrom
Open
e2e: add backward compatibility test for older CLI versions#2797snormore wants to merge 13 commits intosnor/serviceability-telemetry-sdksfrom
snormore wants to merge 13 commits intosnor/serviceability-telemetry-sdksfrom
Conversation
1c422b3 to
c8e8541
Compare
59f1b57 to
79ded32
Compare
1380646 to
10c1088
Compare
nikw9944
approved these changes
Feb 3, 2026
77b5f96 to
0d56ff2
Compare
10c1088 to
38a3cfe
Compare
…hon, and TypeScript
…tent offset tracking
Add convenience constructors that use default program IDs and RPC URLs for each environment (mainnet-beta, testnet, devnet, localnet): - Go: NewForEnv(env), NewMainnetBeta(), NewTestnet(), etc. - Python: Client.from_env(env), Client.mainnet_beta(), etc. - TypeScript: Client.forEnv(env), Client.mainnetBeta(), etc. Also adds config.go to revdist Go SDK with ProgramID and RPC URL maps, and updates serviceability Go constructors to create RPC clients internally (matching telemetry SDK pattern).
…y SDK Add TestE2E_BackwardCompatibility that validates older CLI versions can perform all read and write operations against the current upgraded onchain program. The test clones account state from live environments (testnet and mainnet-beta by default), deploys the current branch's program, then installs each old CLI version via Cloudsmith and runs the full workflow. Also migrates e2e tests to use the new serviceability SDK at sdk/serviceability/go/.
The test was comparing the entire GlobalConfig struct, but the NextBGPCommunity field changes in the background while the activator runs, causing false failures. Since the test only verifies that RemoteASN was updated correctly, compare only that field.
…reated Add nil check before accessing GlobalConfig.LocalASN since the config may not exist yet when the program accounts have been created but initialization is still in progress.
38a3cfe to
da051c5
Compare
8ab0cd6 to
3bf2ac2
Compare
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
TestE2E_BackwardCompatibilitythat validates older CLI versions (back to the onchain program'smin_compatible_version) can perform all read and write operations against the current upgraded programdoublezero, testnet usesdoublezero-testnet, devnet usesdoublezero-devnetDZ_COMPAT_CLONE_ENV,DZ_COMPAT_MIN_VERSION,DZ_COMPAT_MAX_NUM_VERSIONSenv varsfork-accountsRust tool that uses the serviceability SDK for proper Borsh serialization when patching GlobalState accountssdk/serviceability/go/Testing Verification
multicast_group_createdue to Borsh struct change in v0.8.1), v0.8.1 all passed (35/35)