You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/release.md
+25-11Lines changed: 25 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,15 +5,30 @@ documentation will refer to `X.Y.Z` as _major_, _minor_ and _patch_ version.
5
5
6
6
## Development between releases
7
7
8
-
- Every substantial pull request should add an entry to the `[unreleased]`
9
-
section of the corresponding crate `CHANGELOG.md` file. See
10
-
[#1698](https://github.com/libp2p/rust-libp2p/pull/1698/files) as an example.
8
+
### Prefer non-breaking changes
11
9
12
-
In case there is no `[unreleased]` section yet, create one with an increased
13
-
major, minor or patch version depending on your change. Update the version in
14
-
the crate's `Cargo.toml`. In addition update the corresponding entry of the
15
-
crate in the root level `Cargo.toml` and add an entry in the root level
16
-
`CHANGELOG.md`.
10
+
We strive to minimize breaking changes for our users.
11
+
PRs with breaking changes are not merged immediately but collected in a milestone.
12
+
For example: https://github.com/libp2p/rust-libp2p/milestone/6.
13
+
14
+
Non-breaking changes are typically merged very quickly and often released as patch-releases soon after.
15
+
16
+
### Make changelog entries
17
+
18
+
Every crate that we publish on `crates.io` has a `CHANGELOG.md` file.
19
+
Substantial PRs should add an entry to each crate they modify.
20
+
The next unreleased version is tagged with ` - unreleased`, for example: `0.17.0 - unreleased`.
21
+
22
+
In case there isn't a version with an ` - unreleased` postfix yet, add one for the next version.
23
+
The next version number depends on the impact of your change (breaking vs non-breaking, see above).
24
+
25
+
If you are making a non-breaking change, please also bump the version number in the `Cargo.toml` manifest.
26
+
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.
27
+
Don't worry if you don't get this one right, we will flag it in the PR if necessary :)
28
+
29
+
For breaking changes, a changelog entry itself is sufficient.
30
+
Bumping the version in the `Cargo.toml` file would lead to many merge conflicts once we decide to merge them.
31
+
Hence, we are going to bump those versions once we work through the milestone that collects the breaking changes.
17
32
18
33
## Releasing one or more crates
19
34
@@ -23,9 +38,8 @@ documentation will refer to `X.Y.Z` as _major_, _minor_ and _patch_ version.
23
38
24
39
### Steps
25
40
26
-
1. Remove the `[unreleased]` tag for each crate to be released in the respective
27
-
`CHANGELOG.md`. Create a pull request with the changes against the
28
-
rust-libp2p `master` branch.
41
+
1. Remove the ` - unreleased` tag for each crate to be released in the respective `CHANGELOG.md`.
42
+
Create a pull request with the changes against the rust-libp2p `master` branch.
29
43
30
44
2. Once merged, run the two commands below on the (squash-) merged commit on the `master` branch.
0 commit comments