-
Notifications
You must be signed in to change notification settings - Fork 9
Description
User Story
In order to support a higher developer workload releases can be automated for candidate changes.
Proposal
When new functionality is added to the library a release should be prepared. This would mean that:
- Code merged into master would be added to a new patch (
major.minor.patch) release. - The patch release would be tested, packaged and published to NPM autonomously.
- Creating Major releases could still be manual.
(Optional): It could also be beneficial to use canary releases e.g. https://www.npmjs.com/package/next. This would enable release candidates to be packaged as canaries, deployed and used in dependant libraries for testing at an integration level before the official release is made.
Candidate Tools
Packaging
It could be possible to use an off the shelf tool for proposing the next release versions, packaging and tree shaking e.g.
- https://www.npmjs.com/package/release-it
- https://www.npmjs.com/package/semantic-release
- https://www.npmjs.com/package/release
Publishing
To publish it would be possible to use a GitHub action:
There are some clear instructions on how this can be done whilst using github to securely manage the secrets that are required for publishing here: https://sergiodxa.com/articles/github-actions-npm-publish
This will all most likely take some trial and error to get right but this could be a good opportunity to establish a best practice in this REPO and roll it out to other repositories 👍