fix: pin alloy-sol-types & alloy-primitives to =1.6.0 (unblock v1.0.0 release) - #37
Merged
Merged
Conversation
The v1.0.0 release-plz publish failed to verify the package tarball: an unpinned `alloy-sol-types` resolved to 1.6.1, whose `sol!` `all_derives` now emits `Default`. That collides with the explicit `#[derive(Default)]` on `Querier::ProductInfo`/`SubaccountInfo` (structs that embed only in-block types, so `all_derives` supplies their standard derives) → E0119. Pinning both to =1.6.0 matches what nado-core builds against and keeps `all_derives` on its pre-1.6.1 behavior. Verified with cargo +1.94.1 publish --dry-run (alloy 2.2.0 + sol-types 1.6.0): compiles clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.
Tip: disable this comment in your organization's Code Review settings.
There was a problem hiding this comment.
Pull request overview
Pins alloy-sol-types and alloy-primitives to an exact version to prevent cargo publish (fresh resolution without a lockfile) from pulling newer alloy-sol-types releases that change sol! derive behavior and break the generated bindings during packaging verification.
Changes:
- Pin
alloy-primitivesto=1.6.0 - Pin
alloy-sol-typesto=1.6.0
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Merged
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.
What happened
The
v1.0.0release-plz run failed at verify package tarball withE0119:Root cause
cargo publishresolves dependencies fresh (the lockfile is gitignored). Withalloy-sol-typesunpinned ("1.6.0"→ caret), it pulled 1.6.1, whosesol!all_derivesnow also emitsDefault.ProductInfoandSubaccountInfoembed only in-block types (SpotProduct[],PerpProduct[],HealthInfo[]), soall_derivesgenerates their standard derives — including, as of 1.6.1,Default. That collides with the explicit#[derive(..., Default, ...)]the bindings carry → duplicate impl. (Structs that embed external types likePerpProduct→PerpEngineStatedon't error:all_derivesskips them there, so the explicit derive is still required.)nado-core doesn't hit this because it pins
alloy-sol-types = "=1.6.0"; the export'sunpin_versionsstep strips that pin.Fix
Pin
alloy-primitivesandalloy-sol-typesto=1.6.0, matching nado-core. This keepsall_deriveson its pre-1.6.1 derive set.alloyitself still resolves to 2.2.0 — only thesol!macro crate is held back.Verification
cargo +1.94.1 publish --dry-runagainst the exact release config (alloy 2.2.0 + alloy-sol-types 1.6.0) compiles clean and only stops at the upload:Follow-up (source side)
So this doesn't regress on the next export,
export_rust_sdk.py'sunpin_versionsneeds to exempt these two crates — companion nado-core PR.Releasing
Once merged, re-run the release-plz action to publish v1.0.0 to crates.io.
🤖 Generated with Claude Code