node-mysql2 icon indicating copy to clipboard operation
node-mysql2 copied to clipboard

Canary Version

Open wellwelwel opened this issue 1 year ago • 1 comments

Hey @sidorares, what about a canary version? 🙋🏻‍♂️

We could publishing to npm a canary tag for every merge in master branch that isn't a release. Then we could keep the current release-please behavior, releasing officially when we feel safe.

Critical updates could be released instantly, while refactoring, general fixes and new features could wait a week, for example.

wellwelwel avatar Aug 29 '24 13:08 wellwelwel

Taking the occasion, I'm using the provenance option to publish my packages and I think this would also be of great value for MySQL2.

A real example:

Screenshot 2024-08-29 at 10 53 19

wellwelwel avatar Aug 29 '24 13:08 wellwelwel

currently its mainly dependabot PRs that don't trigger npm releases. It's probably a good idea to publish immediately to canary. What would be the version on that case? canary + sha?

sidorares avatar Aug 30 '24 06:08 sidorares

What would be the version on that case? canary + sha?

Based on what Bun does, it usually predicts the likely new version. For example:

  • Current version: 3.11.0
  • Next predicted canary version: 3.11.1-canary-hash1
  • Next predicted canary version: 3.11.1-canary-hash2

If the new stable version is 3.12.0 instead of 3.11.1, then:

  • Next predicted canary version: 3.12.1-canary-hash

currently its mainly dependabot PRs that don't trigger npm releases

We can filter based on commit message to avoid unnecessary commits, e.g., bots, CI and documentations 🙋🏻‍♂️

wellwelwel avatar Aug 30 '24 06:08 wellwelwel

An interesting approach is to use the short hash of the commit that is publishing the canary version, e.g.:

Screenshot 2024-09-04 at 07 54 58

wellwelwel avatar Sep 04 '24 10:09 wellwelwel

Hey @sidorares, from npm after #3029 ✅✨

Screenshot 2024-09-10 at 06 56 30 Screenshot 2024-09-10 at 06 56 04

wellwelwel avatar Sep 10 '24 09:09 wellwelwel