solana-web3.js icon indicating copy to clipboard operation
solana-web3.js copied to clipboard

Properly handle release trains in CI

Open buffalojoec opened this issue 2 years ago • 4 comments

I don't know how we want to handle this, but as people start to use the new libraries, there's going to be a lot of confusion around the release trains we've got going for each package, namely:

  • latest
  • experimental
  • tp

I'm wondering if we should be updating latest in our CI's publish-packages job every time experimental is updated?

I realize that we've isolated the experimental tag for a reason, but since latest exists and it's hilariously outdated for most of the packages, I feel like we're introducing some confusion.

For example, if I don't explicitly use the experimental tag for all @solana/* packages that have this release train, I can get some compatibility errors. Consider installing the main Web3Next library on experimental but the GraphQL API on latest:

yarn add @solana/web3.js@experimental @solana/rpc-graphql

This will result in two different commits for these packages, and some code may be broken as a result.

Instead, you must do:

yarn add @solana/web3.js@experimental @solana/rpc-graphql@experimental

buffalojoec avatar Nov 27 '23 15:11 buffalojoec

cc @steveluscher @mcintyre94 @lorisleiva

buffalojoec avatar Nov 27 '23 15:11 buffalojoec

I think we want to delete the latest tag for every experimental package. Nobody should be installing those rawdog.

steveluscher avatar Nov 27 '23 19:11 steveluscher

npm dist-tag rm @solana/addresses latest
npm dist-tag rm @solana/assertions latest
npm dist-tag rm @solana/codecs-core latest
npm dist-tag rm @solana/codecs-data-structures latest
npm dist-tag rm @solana/codecs-numbers latest
npm dist-tag rm @solana/codecs-strings latest
npm dist-tag rm @solana/compat latest
npm dist-tag rm @solana/functional latest
npm dist-tag rm @solana/instructions latest
npm dist-tag rm @solana/keys latest
npm dist-tag rm @solana/options latest
npm dist-tag rm @solana/rpc-core latest
npm dist-tag rm @solana/rpc-graphql latest
npm dist-tag rm @solana/rpc-transport latest
npm dist-tag rm @solana/rpc-types latest
npm dist-tag rm @solana/signers latest
npm dist-tag rm @solana/transactions latest
npm dist-tag rm @solana/web3.js-legacy-sham latest
npm dist-tag rm @solana/webcrypto-ed25519-polyfill latest

steveluscher avatar Nov 27 '23 19:11 steveluscher

So after discovering we can't delete latest, sounds like as per @steveluscher's experiment we need to deprecate the latest tag instead, on every package.

buffalojoec avatar Nov 28 '23 01:11 buffalojoec

Because there has been no activity on this issue for 7 days since it was closed, it has been automatically locked. Please open a new issue if it requires a follow up.

github-actions[bot] avatar Apr 09 '24 08:04 github-actions[bot]