Release management
The process for releasing a new version of OpenMLS.
Versioning
The versioning follows the Rust and semantic versioning guidelines.
Release Notes
Release notes are published on Github with a full changelog and a discussion in the "Release" section. In addition the release notes are prepended to the CHANGELOG file in each crate's root folder. The entries in the CHANGELOG file should follow the keep a changelog guide.
Pre-release strategy
Before releasing a minor or major version of the OpenMLS crate a pre-release version
must be published to crates.io.
Pre-release versions are defined by appending a hyphen and a series of dot
separated identifiers, i.e. -pre.x
where x
gets counted up starting at 1.
Pre-releases must get tagged but don't require release notes or any other documentation.
It is also sufficient to tag only for the most high-level crate being published.
Crates in this Repository
It is important that the crates are publish in the order below.
Release note and changelog template
## 0.0.0 (2022-02-22)
### Added
- the feature ([#000])
### Changed
- the change ([#000])
### Deprecated
- the deprecated feature ([#000])
### Removed
- the removed feature ([#000])
### Fixed
- the fixed bug ([#000])
### Security
- the fixed security bug ([#000])
[#000]: https://github.com/openmls/openmls/pull/000
Release checklist
-
If this is a minor or major release, has a pre-release version been published at least a week before the release?
- If not, first do so and push the release one week.
- Describe the release in the CHANGELOG.
-
Create and publish a git tag for each crate, e.g.
openmls/v0.4.0-pre.1
. - Create and publish release notes on Github.
- Publish the crates to crates.io