Release: transaction v1 client, Agave 4.2 dependency line, crate version bumps - #1
Open
ananas-block wants to merge 2 commits into
Open
Release: transaction v1 client, Agave 4.2 dependency line, crate version bumps#1ananas-block wants to merge 2 commits into
ananas-block wants to merge 2 commits into
Conversation
Bump the Solana client stack off the 4.0.0-rc.0 pre-release to stable 4.2 crates so light-client can build, send and decode transaction v1 messages of up to 4096 bytes. - solana-rpc-client, solana-rpc-client-api, solana-account-decoder-client-types, solana-transaction-status-client-types, solana-banks-client: 4.0.0-rc.0 -> 4.2 - solana-message 3.1 -> 4.2, solana-transaction 3.1 -> 4.1, solana-account 3.4 -> 4.3 - litesvm 0.12 -> 0.16, solana-address-lookup-table-interface 2.2.1 -> 3.1 - request max_supported_transaction_version 1 on every getTransaction call - add rpc::tx_v1 with build_v1_transaction and TransactionConfig defaults; a v1 message treats an unset compute unit limit and loaded-accounts limit as zero, so the client fills in 1_000_000 CU and 64 MiB when unset - add Rpc::create_and_send_v1_transaction, process_versioned_transaction_with_context and v1 event-returning variants; legacy and v0 paths unchanged - replace bare account-key indexing in event parsing with checked lookups - add litesvm tests: a 30-transfer v1 transaction above 1232 bytes executes, config lands in the message, defaults, signing failure - light-client 0.24.1 -> 0.25.0
Move every Solana dependency to the newest release that the Agave 4.2 line allows. litesvm 0.16 pins clock, instruction, sysvar, hash, signature, transaction-error and compute-budget-interface with tilde ranges, so solana-program 4.1, solana-pubkey 4.3, solana-instruction 3.5 and the new 4.0 majors of instruction, clock and transaction-error stay out until a litesvm for Agave 4.3 exists. solana-sysvar 4.0 -> 4.1 solana-clock 3.0 -> 3.1 solana-message 4.2 -> 4.4 solana-transaction-error 3.0 -> 3.3 solana-hash 4.3 -> 4.5 solana-define-syscall 5.1 -> 5.2 spl-token-2022-interface 2.0 -> 3.1 anchor-lang 1.0.2 -> 1.2.0 Every crate whose manifest changes gets a version bump so integrating projects do not resolve an old published manifest next to the new one: minor for 0.x crates, major for crates at 1.0 or above. light-hasher changes for solana-define-syscall and nearly every crate depends on it, so the bump cascades to all crates except light-macros, light-zero-copy and light-zero-copy-derive. light-account-checks 0.9.0 -> 0.10.0 light-hasher 6.0.1 -> 7.0.0 light-sdk-types 0.24.0 -> 0.25.0 light-sdk-macros 0.24.0 -> 0.25.0 light-sdk 0.24.0 -> 0.25.0 light-merkle-tree-metadata 0.12.0 -> 0.13.0 light-event 0.24.0 -> 0.25.0 light-indexed-array 0.4.0 -> 0.5.0 light-merkle-tree-reference 5.0.0 -> 6.0.0 light-concurrent-merkle-tree 6.0.0 -> 7.0.0 light-indexed-merkle-tree 6.0.0 -> 7.0.0 light-prover-client 9.0.0 -> 10.0.0 light-client 0.25.0 (bumped in the previous commit) Update [workspace.dependencies] version requirements to match. scripts/publish.sh now reads the crates.io sparse index and skips crate versions that are already published, so a partial release publishes only the bumped crates. The dry run selects the 13 crates above. Verified: the workspace builds; light-client tests pass with all features; the 13 test targets that fail to compile fail identically on the parent commit. All twelve Lightprotocol/program-examples workspaces on the 0.24 stack pass cargo check --all-targets against this tree with light-sdk 0.25.0 and light-hasher 7.0.0. Their lockfiles need a cargo update because the locked solana-define-syscall 5.1.0 blocks resolution.
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
Two commits:
feat(client): support transaction v1 (Agave 4.2, SIMD-0385): moves light-client to the stable Agave 4.2 client crates and adds transaction v1 support (messages up to 4096 bytes,build_v1_transaction,create_and_send_v1_transaction,max_supported_transaction_version: 1ongetTransaction).Release: bump Solana deps to the Agave 4.2 line and bump affected crates: bumps the remaining Solana dependencies to the newest release the Agave 4.2 line allows and bumps every crate whose manifest changed.Crate version bumps
Unchanged and not republished: light-macros 3.0.0, light-zero-copy 0.7.0, light-zero-copy-derive 0.7.0. Their manifests did not move.
Rule applied: a crate whose dependency requirements move gets a minor bump if it is 0.x and a major bump if it is at 1.0 or above. light-hasher changes for solana-define-syscall and nearly every crate depends on it, so the bump cascades.
Dependency bumps
Not bumped, on purpose: litesvm 0.16 pins clock, instruction, sysvar, hash, signature, transaction-error and compute-budget-interface with tilde ranges to the Agave 4.2 line. solana-program 4.1, solana-pubkey 4.3, solana-instruction 3.5 and the new 4.0 majors of instruction, clock and transaction-error require the next line and fail resolution against litesvm. They move together once a litesvm for Agave 4.3 exists.
Publish script
scripts/publish.shnow reads the crates.io sparse index and skips crate versions that are already published, so a partial release publishes only the bumped crates. The dry run selects exactly the 13 crates above.Verification
main, verified by building an untouched checkout with the same command. Not addressed here.cargo check --all-targetsagainst this branch with light-sdk 0.25.0 and light-hasher 7.0.0.Follow-ups after merge
scripts/publish.sh --execute, then tag each crate<crate>-v<version>.cargo update(the locked solana-define-syscall 5.1.0 blocks resolution otherwise), and drop the[patch.crates-io]sections on branchfeat/light-client-0.25-tx-v1.