mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-28 18:21:20 +00:00
docs: update policy on breaking changes and changelog entry format
Pull-Request: #3615.
This commit is contained in:
parent
0e468655a4
commit
3411b2697c
@ -5,15 +5,30 @@ documentation will refer to `X.Y.Z` as _major_, _minor_ and _patch_ version.
|
||||
|
||||
## Development between releases
|
||||
|
||||
- Every substantial pull request should add an entry to the `[unreleased]`
|
||||
section of the corresponding crate `CHANGELOG.md` file. See
|
||||
[#1698](https://github.com/libp2p/rust-libp2p/pull/1698/files) as an example.
|
||||
### Prefer non-breaking changes
|
||||
|
||||
In case there is no `[unreleased]` section yet, create one with an increased
|
||||
major, minor or patch version depending on your change. Update the version in
|
||||
the crate's `Cargo.toml`. In addition update the corresponding entry of the
|
||||
crate in the root level `Cargo.toml` and add an entry in the root level
|
||||
`CHANGELOG.md`.
|
||||
We strive to minimize breaking changes for our users.
|
||||
PRs with breaking changes are not merged immediately but collected in a milestone.
|
||||
For example: https://github.com/libp2p/rust-libp2p/milestone/6.
|
||||
|
||||
Non-breaking changes are typically merged very quickly and often released as patch-releases soon after.
|
||||
|
||||
### Make changelog entries
|
||||
|
||||
Every crate that we publish on `crates.io` has a `CHANGELOG.md` file.
|
||||
Substantial PRs should add an entry to each crate they modify.
|
||||
The next unreleased version is tagged with ` - unreleased`, for example: `0.17.0 - unreleased`.
|
||||
|
||||
In case there isn't a version with an ` - unreleased` postfix yet, add one for the next version.
|
||||
The next version number depends on the impact of your change (breaking vs non-breaking, see above).
|
||||
|
||||
If you are making a non-breaking change, please also bump the version number in the `Cargo.toml` manifest.
|
||||
In case another crate _depends_ on the new features or APIs that you are adding, you may need to bump the dependency declaration in that `Cargo.toml` file as well.
|
||||
Don't worry if you don't get this one right, we will flag it in the PR if necessary :)
|
||||
|
||||
For breaking changes, a changelog entry itself is sufficient.
|
||||
Bumping the version in the `Cargo.toml` file would lead to many merge conflicts once we decide to merge them.
|
||||
Hence, we are going to bump those versions once we work through the milestone that collects the breaking changes.
|
||||
|
||||
## Releasing one or more crates
|
||||
|
||||
@ -23,9 +38,8 @@ documentation will refer to `X.Y.Z` as _major_, _minor_ and _patch_ version.
|
||||
|
||||
### Steps
|
||||
|
||||
1. Remove the `[unreleased]` tag for each crate to be released in the respective
|
||||
`CHANGELOG.md`. Create a pull request with the changes against the
|
||||
rust-libp2p `master` branch.
|
||||
1. Remove the ` - unreleased` tag for each crate to be released in the respective `CHANGELOG.md`.
|
||||
Create a pull request with the changes against the rust-libp2p `master` branch.
|
||||
|
||||
2. Once merged, run the two commands below on the (squash-) merged commit on the `master` branch.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user