Standard for releasing protocols from a monorepo #1303
smol-ninja
started this conversation in
Ideas
Replies: 0 comments 3 replies
|
Thanks @smol-ninja, some feedback.
Why? The monorepo isn't published anywhere. We can keep that version frozen to
I don't think we need a changelog for the monorepo as a whole. It will undergo a lot of changes/refactors as we tailor it to suit our requirements. And Foundry will eventually add support for Bun workspaces, which will introduce a lot of changes.
A git tag for each package in the monorepo, yes, like
Yes
Let's go with |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Inspired from similar discussion started by @andreivladbrg.
I've outlined the following recommendations based on what I believe sounds like a good design. Since EVM protocols can be installed using both
npmandgit submodules, this places us in a unique category that requires new monorepo standards. Unlike web2 monorepos which don’t need to account for git submodule compatibility, we need to adopt an approach that can target both methods.1. Versioning
2. Changelog
3. NPM Releases
4. GitHub Tags and Releases
Q: Can
forge installbe used to install only a specific protocol in this new design?A: No, a git submodule always refers to the entire repository. But here is an idea:
When a new tag is published, alongside the monorepo GitHub tag , we can also release protocol-specific tags. For ex, if only Lockup and Airdrops are updated, we would publish
lockup-v3.1.0andairdrops-v3.0.0in addition to the monorepo tag1.0.0, even though they all reference the same commit. Since these tags will be consistent with the NPM release tags, this will allow users to install a specific Lockup version without needing to reference the monorepo tag.And then user can create a remapping
cc @sablier-labs/evm.
All reactions