solana icon indicating copy to clipboard operation
solana copied to clipboard

SDK: Move out of the monorepo to bump major version

Open joncinque opened this issue 1 year ago • 3 comments

Problem

This is a response to issues like https://github.com/solana-labs/solana/issues/32503 -- the upgrade to 1.16 was very painful for program developers because of the breaking changes between 1.14 and 1.16.

Since then, we've introduced more breaking changes into the SDK with https://github.com/solana-labs/solana/pull/32524

To make the developer experience better, we have to properly version the sdk crates.

Proposed Solution

The options are either to move the sdk out of the monorepo, or version the sdk crates separately within the monorepo. The second option can get us into tricky situations if we ever need to backport a breaking change in the sdk. There isn't a desire to bump major versions in all the core crates on breaking changes just yet, but that will probably impact much fewer people. Because of all that, we'll opt for the first path: moving the sdk out of the monorepo!

Here's the list of tasks:

  • [ ] move unnecessary types out of the SDK and into other core crates (ie. Packet)
  • [ ] create new repo with solana-program, solana-sdk, solana-sdk-macro, solana-frozen-abi, and solana-frozen-abi-macro.
  • [ ] setup CI for version bumps + crate publish. No other jobs seem to be needed.
  • [ ] bump the new repo to 2.0.0 and publish the crates
  • [ ] add a changelog to the new repo, at least for breaking changes
  • [ ] add a patch script to the monorepo for easy local development
  • [ ] move the monorepo to use the new 2.0.0 crates, remove all the SDK code
  • [ ] have fewer people yelling on ~~twitter~~ X

Hopefully this will go quite quickly, and we won't have to rebase on monorepo changes too much during the transition period. But if we have to, c'est la vie !

cc @willhickey for CI and publishing jobs, @jacobcreech for devrel stuff

joncinque avatar Jul 25 '23 20:07 joncinque

-have fewer people yelling on ~twitter~ X
+have people on ~twitter~ X yelling about this breaking change instead of another one

t-nelson avatar Jul 25 '23 20:07 t-nelson

I can help with the CI. just let me know when the repo is ready 🫶

yihau avatar Jul 27 '23 16:07 yihau

@joncinque is this still planned at some point?

jacobcreech avatar Jan 18 '24 02:01 jacobcreech