Skip to content

Commit 89df75f

Browse files
authored
Increment version numbers for next release and update guidance (#1229)
Set up new guidance for incrementing version numbers and implement it for Mountpoint and the client crates. Under the new guidance, the patch version will be incremented immediately after releasing Mountpoint or publishing the crates, so that development on `main` continues under a new provisional version. When new features / breaking changes are introduced, the version number will be contextually incremented as the changes are documented in the changelog. ### Does this change impact existing behavior? No ### Does this change need a changelog entry? No --- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). --------- Signed-off-by: Alessandro Passaro <[email protected]>
1 parent c189d7d commit 89df75f

File tree

8 files changed

+51
-21
lines changed

8 files changed

+51
-21
lines changed

.github/pull_request_template.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
**TODO: Please confirm there's no breaking change, or call out any that are made.**
88

9-
### Does this change need a changelog entry?
9+
### Does this change need a changelog entry? Does it require a version change?
1010

11-
**TODO: Confirm with justification if not added.**
11+
**TODO: Confirm with justification if not required.**
1212

1313
---
1414

Cargo.lock

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/CONTRIBUTING.md

+16
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,22 @@ Here is the full list of changelog files we maintain for reference.
6464
- https://github.com/awslabs/mountpoint-s3/blob/main/mountpoint-s3-crt/CHANGELOG.md
6565
- https://github.com/awslabs/mountpoint-s3/blob/main/mountpoint-s3-crt-sys/CHANGELOG.md
6666

67+
### Version numbers
68+
69+
Mountpoint and the other `mountpoint-s3-*` crates in this repository follow [semantic versioning](https://semver.org/) rules. After we release Mountpoint or [publish the
70+
other crates](https://github.com/awslabs/mountpoint-s3/blob/main/mountpoint-s3-client/PUBLISHING_CRATES.md), we provisionally increase the patch version number
71+
of the corresponding crate.
72+
73+
When a pull request is submitted, we consider whether the changes it contains should trigger a version number increment by comparing the latest released
74+
version with the one on `main`. If a pull request introduces a new Mountpoint feature, we make sure that the minor version of the `mountpoint-s3`
75+
crate is incremented compared to the latest release, if it was not already. The crate's `CHANGELOG.md` will show the latest released version and all the more
76+
recent changes under the `Unreleased` section. Example:
77+
78+
* A pull request introduces a new feature and adds an entry to the changelog,
79+
* The latest release, as reported on the changelog, is `1.13.0`,
80+
* The version on `main` is `1.13.1`,
81+
* The minor version number must be incremented, so the new version should be `1.14.0`.
82+
6783
## Finding contributions to work on
6884

6985
Looking at the existing issues is a great way to find something to contribute on. We use issue labels to identify [good first issues](https://github.com/awslabs/mountpoint-s3/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) as a great place to start.

mountpoint-s3-client/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[package]
22
name = "mountpoint-s3-client"
33
# See `/mountpoint-s3-client/PUBLISHING_CRATES.md` to read how to publish new versions.
4-
version = "0.11.0"
4+
version = "0.12.0"
55
edition = "2021"
66
license = "Apache-2.0"
77
repository = "https://github.com/awslabs/mountpoint-s3"
88
description = "High-performance Amazon S3 client for Mountpoint for Amazon S3."
99

1010
[dependencies]
11-
mountpoint-s3-crt = { path = "../mountpoint-s3-crt", version = "0.10.0" }
12-
mountpoint-s3-crt-sys = { path = "../mountpoint-s3-crt-sys", version = "0.10.0" }
11+
mountpoint-s3-crt = { path = "../mountpoint-s3-crt", version = "0.11.0" }
12+
mountpoint-s3-crt-sys = { path = "../mountpoint-s3-crt-sys", version = "0.11.0" }
1313

1414
async-trait = "0.1.83"
1515
auto_impl = "1.2.0"

mountpoint-s3-client/PUBLISHING_CRATES.md

+20-6
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@ This document guides maintainers in releasing new versions of [`mountpoint-s3-cl
44

55
## Preparing the release
66

7-
First, a commit should be prepared and merged which updates the versions of each of the crates that are changing
8-
as well as a change log for each detailing what has been updated.
9-
You can refer to the following pull request as an example of this commit: https://github.com/awslabs/mountpoint-s3/pull/657.
7+
First, confirm that for each crate:
108

11-
The change log should have been updated when the changes were made, but please verify this.
9+
* `CHANGELOG.md` lists the relevant changes since the latest released version,
10+
* `Cargo.toml` sets the version that you intend to publish.
1211

13-
The `Cargo.toml` manifest for each crate that will have a new version should be updated with the new version number.
14-
Additionally, crates which depend on the updated crates should have their dependencies updated.
12+
Second, prepare a new commit to update each `CHANGELOG.md` file by adding a header for the new release with
13+
the current date under the `## Unreleased` header. E.g.:
14+
15+
```
16+
## v0.10.0 (October 17, 2024)
17+
```
1518

1619
Once ready, check everything still compiles and publish a pull request.
1720
After that is merged, the next step is to publish the new crates.
@@ -54,3 +57,14 @@ For each crate replacing the crate and version number where applicable:
5457
```
5558

5659
Once these steps have been completed for all crates that need to be updated, you're done.
60+
61+
## Update to next versions
62+
63+
After all the crates have been published, a commit should be prepared which increments the patch version number of each crate,
64+
in its `Cargo.toml`, as well as in the crates depending on it.
65+
66+
E.g. if `mountpoint-s3-crt-sys-0.99.0` was just published, `mountpoint-s3-crt-sys/Cargo.toml` should be updated to `version = "0.99.1"`
67+
and the corresponding entry in `mountpoint-s3-crt/Cargo.toml` should be updated to
68+
`mountpoint-s3-crt-sys = { path = "../mountpoint-s3-crt-sys", version = "0.99.1" }`.
69+
70+
Once ready, check everything still compiles and publish a pull request.

mountpoint-s3-crt-sys/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "mountpoint-s3-crt-sys"
33
# See `/mountpoint-s3-client/PUBLISHING_CRATES.md` to read how to publish new versions.
4-
version = "0.10.0"
4+
version = "0.11.0"
55
edition = "2021"
66
license = "Apache-2.0"
77
repository = "https://github.com/awslabs/mountpoint-s3"

mountpoint-s3-crt/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
[package]
22
name = "mountpoint-s3-crt"
33
# See `/mountpoint-s3-client/PUBLISHING_CRATES.md` to read how to publish new versions.
4-
version = "0.10.0"
4+
version = "0.11.0"
55
edition = "2021"
66
license = "Apache-2.0"
77
repository = "https://github.com/awslabs/mountpoint-s3"
88
description = "Rust interface to the AWS Common Runtime for Mountpoint for Amazon S3."
99

1010
[dependencies]
11-
mountpoint-s3-crt-sys = { path = "../mountpoint-s3-crt-sys", version = "0.10.0" }
11+
mountpoint-s3-crt-sys = { path = "../mountpoint-s3-crt-sys", version = "0.11.0" }
1212

1313
futures = "0.3.31"
1414
libc = "0.2.168"

mountpoint-s3/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[package]
22
name = "mountpoint-s3"
3-
version = "1.14.0"
3+
version = "1.14.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
77
default-run = "mount-s3"
88

99
[dependencies]
1010
fuser = { path = "../vendor/fuser", version = "0.15.0", features = ["abi-7-28"] }
11-
mountpoint-s3-client = { path = "../mountpoint-s3-client", version = "0.11.0" }
12-
mountpoint-s3-crt = { path = "../mountpoint-s3-crt", version = "0.10.0" }
11+
mountpoint-s3-client = { path = "../mountpoint-s3-client", version = "0.12.0" }
12+
mountpoint-s3-crt = { path = "../mountpoint-s3-crt", version = "0.11.0" }
1313

1414
anyhow = { version = "1.0.94", features = ["backtrace"] }
1515
async-channel = "2.3.1"

0 commit comments

Comments
 (0)