Skip to content

Conversation

@guidanoli
Copy link
Collaborator

@guidanoli guidanoli commented Oct 17, 2025

Rationale

The initial purpose of this PR was to fix the Rust bindings build. The issue stems from a breaking change in serde not exposing __private anymore. A quick-and-dirty fix to this issue would be to pin serde to an older, working version. An arguably more natural and sustainable solution, which I personally have been waiting some time to do, would be to bump Foundry from 1.1.0 to 1.4.2. As you can see, it's a huge bump. Let me explain why we've waited for so long.

We've been using Foundry 1.1.0 since the v2 contracts were released on May of this year. When Foundry 1.2.0 came out, it contained a bug on the Rust bindings generation command (forge bind) that we realized would jeopardize our CI/CD pipeline. This bug was only fixed on Foundry 1.3.0, which was released in late July of this year. At that time, we were too busy drafting the v3 contracts, and had little incentive to bump Foundry. With the upcoming v2.1 release, we finally have a good reason to do the bump.

Changes

In the commit history of this PR, you will notice that the Foundry bump is only the first of many changes. Besides Foundry, we have also bumped the Node.js dependencies (Cannon and Changesets CLIs) and Solidity. It is mostly to benefit from bug fixes, but there are some features worth highlighting:

Because of the new formatter back-end, you will notice some changes to the code format style. I have also turned on import sorting, for a more standardized order for imports.

Finally, I have written a JavaScript file that updates the Cannonfile version to match the Node.js package version. This script is run automatically on the CI every time it opens (or updates) a Changesets PR. This should remove the burden of having to update the Cannonfile version manually before every release.

If you run forge build locally for the first time (or forge lint after that), you should see some warnings relating to unused imports, formatting, etc. We can address those in another PR, as long as these changes don't introduce breaking changes to the public API of the contracts, as our focus is to release a 2.1 version of the contracts.

@guidanoli guidanoli added this to the 2.1.0 milestone Oct 17, 2025
@guidanoli guidanoli self-assigned this Oct 17, 2025
@socket-security
Copy link

socket-security bot commented Oct 17, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​usecannon/​cli@​2.22.0 ⏵ 2.25.083 -110085 +297 +170
Updated@​changesets/​cli@​2.29.4 ⏵ 2.29.79710010090100

View full report

@guidanoli guidanoli force-pushed the feature/bump-dependencies branch from 1b73c07 to 6f54647 Compare October 20, 2025 19:07
Copy link
Contributor

@GCdePaula GCdePaula left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@guidanoli guidanoli merged commit 80c9669 into main Oct 21, 2025
4 checks passed
@guidanoli guidanoli deleted the feature/bump-dependencies branch October 21, 2025 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants