...
Follow an established Release taxonomy - either SemVer or CalVer, use consistent release tags for alpha, beta, etc
Document release strategy, release process including required approvals, branch strategy
e.g. one branch per major.minor release works well so that it can be maintained in isolation while delivering major.minor.patch releases
Document Long-term support (LTS) release strategy - example https://github.com/hyperledger/fabric-rfcs/blob/main/text/0005-lts-release-strategy.md
- Use Github Actions to automate release process, e.g. publish artifacts and release notes upon drafting a GitHub release
- Reproducible builds - see website
- Sign commits and artifi
Release artifacts
binaries attached to GitHub release
docker images - transition from Dockerhub to GitHub Packages? See data transfer and storage limits on GitHub Packages...
- NPM packages - don't publish on every commit due to NPM limit of 1000 versions
...