Skip to content

Commit 67b482f

Browse files
authored
Write up the release process (projectfluent#284)
1 parent 00f1499 commit 67b482f

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

docs/release-process.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Release Process
2+
3+
`fluent-rs` doesn't use strict semver yet, until the 1.0.0 release. Instead major changes are released as minor releases.
4+
5+
## 1. Bump version numbers
6+
7+
To update a package, use the `cargo-release` tool. It can be installed with `cargo install cargo-release`.
8+
9+
For instance to bump the `fluent-fallback` version run:
10+
11+
```sh
12+
cargo release version minor -p fluent-fallback --execute
13+
```
14+
15+
This will output:
16+
17+
```
18+
Upgrading fluent-fallback from 0.6.0 to 0.7.0
19+
Updating fluent-resmgr's dependency from 0.6.0 to 0.7.0
20+
Updating fluent-testing's dependency from 0.6.0 to 0.7.0
21+
```
22+
23+
After this the depending packages must be updated as well:
24+
25+
```sh
26+
cargo release version patch -p fluent-resmgr -p fluent-testing --execute
27+
```
28+
29+
## 2. Update the changelog
30+
31+
These are located here:
32+
33+
```
34+
./fluent/CHANGELOG.md
35+
./fluent-bundle/CHANGELOG.md
36+
./fluent-fallback/CHANGELOG.md
37+
./fluent-pseudo/CHANGELOG.md
38+
./fluent-resmgr/CHANGELOG.md
39+
./fluent-syntax/CHANGELOG.md
40+
./fluent-testing/CHANGELOG.md
41+
./intl-memoizer/CHANGELOG.md
42+
```
43+
44+
## 3. Send in a PR for review
45+
46+
Get a quick sign off and merge from one other of the project maintainers and ensure the automated tests are succeeding.
47+
48+
## 4. Tag the release.
49+
50+
Go to the [create a new release](https://github.com/projectfluent/fluent-rs/releases/new) section.
51+
52+
The tag should be formatted like so:
53+
54+
`fluent-fallback@0.7.0`
55+
56+
Add the title, and add the changelog to the description. Before 1.0.0 release, mark as pre-release.
57+
58+
## 5. Publish the crates
59+
60+
If you do not have publish access for the crates, request access from one of the owners.
61+
62+
Do a dry run of the publish steps for each module.
63+
64+
```
65+
cargo publish -p fluent-fallback --dry-run
66+
cargo publish -p fluent-resmgr --dry-run
67+
cargo publish -p fluent-testing --dry-run
68+
```
69+
70+
Perform the actual publish:
71+
72+
```
73+
cargo publish -p fluent-fallback
74+
cargo publish -p fluent-resmgr
75+
cargo publish -p fluent-testing
76+
```
77+
78+
## 6. (Mozilla-only) Vendoring the crates into `mozilla-central`
79+
80+
a. [Search for all references](https://searchfox.org/mozilla-central/search?q=%5Efluent-%5Cw%2B+%3D+%22.*%22&path=&case=false&regexp=true) to the updated package.
81+
a. Bump the numbers.
82+
a. Run `mach cargo vet` to go through the vetting process and certify the results.
83+
a. Commit `supply-chain/audits.toml`
84+
a. Run `mach vendor rust`
85+
a. Ensure it builds and tests pass then send it in for review.

0 commit comments

Comments
 (0)