Skip to content

Commit d591a33

Browse files
Documentation/tooling tweaks from the 3.8.1 release (#1033)
* Update versions, clarify some release docs * Remove no-longer-applicable release step * New release docs in perl script * Fix release step ordering
1 parent 6859011 commit d591a33

File tree

9 files changed

+95
-98
lines changed

9 files changed

+95
-98
lines changed

.evergreen/spec.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
+
99
Name: mongo-cxx-driver
1010
-Version: 3.6.5
11-
+Version: 3.8.0
11+
+Version: 3.8.1
1212
Release: 1%{?dist}
1313
Summary: A C++ Driver for MongoDB
1414
License: ASL 2.0

debian/libbsoncxx-noabi.lintian-overrides

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
libbsoncxx-noabi: no-symbols-control-file
44

55
# False positive on the spelling error
6-
libbsoncxx-noabi: spelling-error-in-binary ment meant [usr/lib/x86_64-linux-gnu/libbsoncxx.so.3.8.0]
6+
libbsoncxx-noabi: spelling-error-in-binary ment meant [usr/lib/x86_64-linux-gnu/libbsoncxx.so.3.8.1]

docs/content/mongocxx-v3/installation/advanced.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The above command would produce libraries named `libcustom_bsoncxx.so` and `libc
2323

2424
The mongocxx driver builds on top of the [MongoDB C driver](https://www.mongodb.com/docs/drivers/c/).
2525

26-
The build of mongocxx-3.8.0 automatically downloads and installs the C driver if the C driver is not detected.
26+
The build of mongocxx-3.8.1 automatically downloads and installs the C driver if the C driver is not detected.
2727
To use an existing install of the C driver, set `CMAKE_PREFIX_PATH` to the directory containing the C driver install.
2828

2929
* For mongocxx-3.8.x, libmongoc 1.24.0 or later is required.

docs/content/mongocxx-v3/installation/linux.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ release tarball.
5050

5151
The [mongocxx releases](https://github.com/mongodb/mongo-cxx-driver/releases)
5252
page will have links to the release tarball for the version you wish you install. For
53-
example, to download version 3.8.0:
53+
example, to download version 3.8.1:
5454

5555
```sh
56-
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.8.0/mongo-cxx-driver-r3.8.0.tar.gz
57-
tar -xzf mongo-cxx-driver-r3.8.0.tar.gz
58-
cd mongo-cxx-driver-r3.8.0/build
56+
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.8.1/mongo-cxx-driver-r3.8.1.tar.gz
57+
tar -xzf mongo-cxx-driver-r3.8.1.tar.gz
58+
cd mongo-cxx-driver-r3.8.1/build
5959
```
6060

6161
Make sure you change to the `build` directory of whatever source tree you

docs/content/mongocxx-v3/installation/macos.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ release tarball.
5050

5151
The [mongocxx releases](https://github.com/mongodb/mongo-cxx-driver/releases)
5252
page will have links to the release tarball for the version you wish you install. For
53-
example, to download version 3.8.0:
53+
example, to download version 3.8.1:
5454

5555
```sh
56-
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.8.0/mongo-cxx-driver-r3.8.0.tar.gz
57-
tar -xzf mongo-cxx-driver-r3.8.0.tar.gz
58-
cd mongo-cxx-driver-r3.8.0/build
56+
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.8.1/mongo-cxx-driver-r3.8.1.tar.gz
57+
tar -xzf mongo-cxx-driver-r3.8.1.tar.gz
58+
cd mongo-cxx-driver-r3.8.1/build
5959
```
6060

6161
Make sure you change to the `build` directory of whatever source tree you

docs/content/mongocxx-v3/installation/windows.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ release tarball.
5050

5151
The [mongocxx releases](https://github.com/mongodb/mongo-cxx-driver/releases)
5252
page will have links to the release tarball for the version you wish you install. For
53-
example, to download version 3.8.0:
53+
example, to download version 3.8.1:
5454

5555
```sh
56-
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.8.0/mongo-cxx-driver-r3.8.0.tar.gz
57-
tar -xzf mongo-cxx-driver-r3.8.0.tar.gz
58-
cd mongo-cxx-driver-r3.8.0/build
56+
curl -OL https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.8.1/mongo-cxx-driver-r3.8.1.tar.gz
57+
tar -xzf mongo-cxx-driver-r3.8.1.tar.gz
58+
cd mongo-cxx-driver-r3.8.1/build
5959
```
6060

6161
Make sure you change to the `build` directory of whatever source tree you

etc/apidocmenu.md

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,55 @@
55
Stability indicates whether this driver is recommended for production use.
66
Currently, no drivers guarantee API or ABI stability.
77

8-
| Family/version | Stability | Development | Purpose |
9-
| -------------------- | ----------- | ------------------- | ------------------------------------- |
10-
| (repo master branch) | Unstable | Active development | New feature development |
11-
| mongocxx 3.8.x | Stable | Bug fixes only | Current stable C++ driver release |
12-
| mongocxx 3.7.x | Stable | None | Previous stable C++ driver release |
13-
| mongocxx 3.6.x | Stable | None | Previous stable C++ driver release |
14-
| mongocxx 3.5.x | Stable | None | Previous stable C++ driver release |
15-
| mongocxx 3.4.x | Stable | None | Previous stable C++ driver release |
16-
| mongocxx 3.3.x | Stable | None | Previous stable C++ driver release |
17-
| mongocxx 3.2.x | Stable | None | Previous stable C++ driver release |
18-
| mongocxx 3.1.x | Stable | None | Previous stable C++ driver release |
19-
| mongocxx 3.0.x | Stable | None | Previous stable C++ driver release |
8+
| Family/version | Stability | Development | Purpose |
9+
| -------------------- | --------- | ------------------ | ---------------------------------- |
10+
| (repo master branch) | Unstable | Active development | New feature development |
11+
| mongocxx 3.8.x | Stable | Bug fixes only | Current stable C++ driver release |
12+
| mongocxx 3.7.x | Stable | None | Previous stable C++ driver release |
13+
| mongocxx 3.6.x | Stable | None | Previous stable C++ driver release |
14+
| mongocxx 3.5.x | Stable | None | Previous stable C++ driver release |
15+
| mongocxx 3.4.x | Stable | None | Previous stable C++ driver release |
16+
| mongocxx 3.3.x | Stable | None | Previous stable C++ driver release |
17+
| mongocxx 3.2.x | Stable | None | Previous stable C++ driver release |
18+
| mongocxx 3.1.x | Stable | None | Previous stable C++ driver release |
19+
| mongocxx 3.0.x | Stable | None | Previous stable C++ driver release |
2020

2121
## Documentation versions available
2222

23-
| mongocxx |
24-
| ---------------------------------------------|
25-
| [mongocxx-3.8.0](../mongocxx-3.8.0) |
26-
| [mongocxx-3.7.2](../mongocxx-3.7.2) |
27-
| [mongocxx-3.7.1](../mongocxx-3.7.1) |
28-
| [mongocxx-3.7.0](../mongocxx-3.7.0) |
29-
| [mongocxx-3.6.7](../mongocxx-3.6.7) |
30-
| [mongocxx-3.6.6](../mongocxx-3.6.6) |
31-
| [mongocxx-3.6.5](../mongocxx-3.6.5) |
32-
| [mongocxx-3.6.4](../mongocxx-3.6.4) |
33-
| [mongocxx-3.6.3](../mongocxx-3.6.3) |
34-
| [mongocxx-3.6.2](../mongocxx-3.6.2) |
35-
| [mongocxx-3.6.1](../mongocxx-3.6.1) |
36-
| [mongocxx-3.6.0](../mongocxx-3.6.0) |
37-
| [mongocxx-3.5.1](../mongocxx-3.5.1) |
38-
| [mongocxx-3.5.0](../mongocxx-3.5.0) |
39-
| [mongocxx-3.4.2](../mongocxx-3.4.2) |
40-
| [mongocxx-3.4.1](../mongocxx-3.4.1) |
41-
| [mongocxx-3.4.0](../mongocxx-3.4.0) |
42-
| [mongocxx-3.3.2](../mongocxx-3.3.2) |
43-
| [mongocxx-3.3.1](../mongocxx-3.3.1) |
44-
| [mongocxx-3.3.0](../mongocxx-3.3.0) |
45-
| [mongocxx-3.2.1](../mongocxx-3.2.1) |
46-
| [mongocxx-3.2.0](../mongocxx-3.2.0) |
47-
| [mongocxx-3.1.4](../mongocxx-3.1.4/) |
48-
| [mongocxx-3.1.3](../mongocxx-3.1.3/) |
49-
| [mongocxx-3.1.2](../mongocxx-3.1.2/) |
50-
| [mongocxx-3.1.1](../mongocxx-3.1.1/) |
51-
| [mongocxx-3.1.0](../mongocxx-3.1.0/) |
52-
| [mongocxx-3.0.3](../mongocxx-3.0.3/) |
53-
| [mongocxx-3.0.2](../mongocxx-3.0.2/) |
54-
| [mongocxx-3.0.1](../mongocxx-3.0.1/) |
55-
| [mongocxx-3.0.0](../mongocxx-3.0.0/) |
23+
| mongocxx |
24+
| ------------------------------------ |
25+
| [mongocxx-3.8.1](../mongocxx-3.8.1) |
26+
| [mongocxx-3.8.0](../mongocxx-3.8.0) |
27+
| [mongocxx-3.7.2](../mongocxx-3.7.2) |
28+
| [mongocxx-3.7.1](../mongocxx-3.7.1) |
29+
| [mongocxx-3.7.0](../mongocxx-3.7.0) |
30+
| [mongocxx-3.6.7](../mongocxx-3.6.7) |
31+
| [mongocxx-3.6.6](../mongocxx-3.6.6) |
32+
| [mongocxx-3.6.5](../mongocxx-3.6.5) |
33+
| [mongocxx-3.6.4](../mongocxx-3.6.4) |
34+
| [mongocxx-3.6.3](../mongocxx-3.6.3) |
35+
| [mongocxx-3.6.2](../mongocxx-3.6.2) |
36+
| [mongocxx-3.6.1](../mongocxx-3.6.1) |
37+
| [mongocxx-3.6.0](../mongocxx-3.6.0) |
38+
| [mongocxx-3.5.1](../mongocxx-3.5.1) |
39+
| [mongocxx-3.5.0](../mongocxx-3.5.0) |
40+
| [mongocxx-3.4.2](../mongocxx-3.4.2) |
41+
| [mongocxx-3.4.1](../mongocxx-3.4.1) |
42+
| [mongocxx-3.4.0](../mongocxx-3.4.0) |
43+
| [mongocxx-3.3.2](../mongocxx-3.3.2) |
44+
| [mongocxx-3.3.1](../mongocxx-3.3.1) |
45+
| [mongocxx-3.3.0](../mongocxx-3.3.0) |
46+
| [mongocxx-3.2.1](../mongocxx-3.2.1) |
47+
| [mongocxx-3.2.0](../mongocxx-3.2.0) |
48+
| [mongocxx-3.1.4](../mongocxx-3.1.4/) |
49+
| [mongocxx-3.1.3](../mongocxx-3.1.3/) |
50+
| [mongocxx-3.1.2](../mongocxx-3.1.2/) |
51+
| [mongocxx-3.1.1](../mongocxx-3.1.1/) |
52+
| [mongocxx-3.1.0](../mongocxx-3.1.0/) |
53+
| [mongocxx-3.0.3](../mongocxx-3.0.3/) |
54+
| [mongocxx-3.0.2](../mongocxx-3.0.2/) |
55+
| [mongocxx-3.0.1](../mongocxx-3.0.1/) |
56+
| [mongocxx-3.0.0](../mongocxx-3.0.0/) |
5657

5758
## MongoDB compatibility
5859

etc/generate-all-apidocs.pl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ sub _try_run {
6161
r3.7.1
6262
r3.7.2
6363
r3.8.0
64+
r3.8.1
6465
);
6566

6667
sub main {

etc/releasing.md

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,22 @@ pip install -r etc/requirements.txt
7474

7575
## Tag the release
7676

77-
If doing a minor release (e.g. releasing r3.8.0), stay on the master branch. You
78-
will create a new `releases/v3.8` branch later in the instructions. If doing a
79-
patch release (e.g. releasing r3.7.3), check out the corresponding release
80-
branch, which should be the existing `releases/v3.7` branch.
77+
If doing a minor release (e.g. releasing r1.2.0, with a zero patch component),
78+
stay on the master branch. You will create a new `releases/vX.Y` branch later in
79+
the instructions. If doing a patch release (e.g. releasing rX.Y.Z with non-zero
80+
`Z`), check out the corresponding release branch, which should be an existing
81+
`releases/vX.Y` branch.
8182

8283
Create a tag for the commit to serve as the release (or release candidate):
8384

8485
```
85-
git tag r3.8.0
86+
git tag r1.2.3
8687
```
8788

8889
## Run make_release.py
8990

9091
`make_release.py` creates the distribution tarball
91-
(e.g. mongo-cxx-driver-r3.8.0.tar.gz), interacts with Jira, and drafts the
92+
(e.g. mongo-cxx-driver-r1.2.3.tar.gz), interacts with Jira, and drafts the
9293
release on GitHub.
9394

9495
To see all available options, run with `--help`
@@ -113,7 +114,7 @@ python ./etc/make_release.py \
113114
--dry-run \
114115
--jira-creds-file ~/.secrets/jira_creds.txt \
115116
--github-token-file ~/.secrets/github_token.txt \
116-
r3.8.0
117+
r1.2.3
117118
```
118119

119120
If all goes well, run the command again without `--dry-run`, which should build
@@ -130,15 +131,15 @@ follows:
130131
- Use `--skip-distcheck` to bypass time consuming checks when building the
131132
distribution tarball.
132133
- If the script succeeded at creating the distribution tarball, pass it directly
133-
with `--dist-file ./build/mongo-cxx-driver-r3.8.0.tar.gz`.
134+
with `--dist-file ./build/mongo-cxx-driver-r1.2.3.tar.gz`.
134135

135136
## Push the tag
136137

137138
Review the build output and, assuming the distcheck target is successful, push
138-
the tag:
139+
the tag into the main remote:
139140

140141
```
141-
git push origin r3.8.0
142+
git push [email protected]:mongodb/mongo-cxx-driver.git refs/tags/r1.2.3
142143
```
143144

144145
### Release the Version in GitHub
@@ -167,7 +168,7 @@ to the repo:
167168

168169
```
169170
git checkout releases/stable
170-
git reset --hard r3.8.0
171+
git reset --hard r1.2.3
171172
git push -f origin releases/stable
172173
```
173174

@@ -181,15 +182,18 @@ pushed.
181182
following the established pattern. If this is a minor release (x.y.0), revise
182183
the entire document as needed.
183184
- Edit `docs/content/_index.md` and `README.md` to match.
184-
- Edit `etc/generate-all-apidocs.pl` and add the new release version to the
185-
`@DOC_TAGS` array, following the established pattern.
185+
- Edit the `Installing the MongoDB C driver` section of
186+
`docs/content/mongocxx-v3/installation/advanced.md` to reflect libmongoc
187+
requirements.
186188
- Edit `docs/content/mongocxx-v3/installation/linux.md`,
187189
`docs/content/mongocxx-v3/installation/macos.md` and
188-
`docs/content/mongocxx-v3/installation/windows.md` and update `Step 1` to
189-
reflect to libmongoc requirements. If the release was not a release candidate,
190-
update `Step 3` to reflect the new latest stable version to download.
190+
`docs/content/mongocxx-v3/installation/windows.md`.
191+
If the release was not a release candidate, update `Step 2` to reflect the
192+
new latest stable version to download.
193+
- Edit `etc/generate-all-apidocs.pl` and add the new release version to the
194+
`@DOC_TAGS` array, following the established pattern.
191195
- Commit these changes:
192-
`git commit -am "Prepare to generate r3.8.0 release documentation"`
196+
`git commit -am "Prepare to generate r1.2.3 release documentation"`
193197
- Ensure you have `doxygen` and `hugo` installed and up to date.
194198
- Run `git clean -dxf` to clear out all extraneous files.
195199
- Configure with `cmake` in the `build` directory as you usually would.
@@ -206,27 +210,19 @@ pushed.
206210
- `cmake --build ./build --target doxygen-deploy`
207211
- If the release was not a release candidate, update symlinks
208212
- Check out the `gh-pages` branch and git pull the deployed docs.
209-
- Update the `api/mongocxx-v3` symlink to point to the newly released
210-
version. If a major version bump has occurred, revise the symlink structure
211-
as needed. Make sure `current` always points to a symlink tracking the
212-
latest stable release branch.
213+
- Update the `api/mongocxx-v3` symlink to point to the newly released version.
214+
If a minor version bump has occurred, revise the symlink structure as
215+
needed. Make sure `current` always points to a symlink tracking the latest
216+
stable release branch.
213217
- Commit and push the symlink change:
214-
`git commit -am "Update symlink for r3.8.0"`
218+
`git commit -am "Update symlink for r1.2.3"`
215219
- Wait a few minutes and verify mongocxx.org has updated.
216220
- Checkout the master branch. Push the commit containing changes to `etc/` and
217221
`docs/`. This may require pushing the commit to a fork of the C++ Driver
218222
repository and creating a pull request.
219-
- Edit the `Installing the MongoDB C driver` section of
220-
`docs/content/mongocxx-v3/installation/advanced.md` to reflect libmongoc
221-
requirements.
222-
- Edit `docs/content/mongocxx-v3/installation/linux.md`,
223-
`docs/content/mongocxx-v3/installation/macos.md` and
224-
`docs/content/mongocxx-v3/installation/windows.md`.
225-
If the release was not a release candidate, update `Step 2` to reflect the
226-
new latest stable version to download.
227223

228224
## Homebrew
229-
This requires a macOS machine.
225+
This requires a macOS machine.
230226
If this is a stable release, update the [mongo-cxx-driver](https://github.com/Homebrew/homebrew-core/blob/master/Formula/mongo-cxx-driver.rb) homebrew formula, using: `brew bump-formula-pr --url <tarball url>`
231227

232228
Example:
@@ -255,7 +251,7 @@ of a release candidate of 3.6.0.
255251

256252
## Branch if necessary
257253

258-
If doing a new minor release `x.y` (e.g. a `3.8.0` release), create branch
254+
If doing a new minor release `x.y.0` (e.g. a `1.2.0` release), create branch
259255
`releases/vx.y` (e.g `releases/v3.8`).
260256

261257
Push the new branch:
@@ -452,12 +448,11 @@ patch --dry-run -d .evergreen -p0 -i spec.patch
452448
```
453449

454450
- If the patch command fails, rebase the patch
455-
- For a new major release (e.g., 3.6.0, 3.7.0, etc.), then ensure that the patch
456-
updates the `up_version` to be the NEXT major version
457-
(e.g., when releasing 3.7.0, the spec patch should update `up_version` to 3.8.0);
458-
this is necessary to ensure that the spec file matches the tarball created by
459-
the dist target; if this is wrong, then the `rpm-package-build` task will fail
460-
in the next step
451+
- For a new minor release (e.g., 3.6.0, 3.7.0, etc.), then ensure that the patch
452+
updates the `up_version` to be the NEXT minor version (e.g., when releasing
453+
1.2.0, the spec patch should update `up_version` to 1.3.0); this is necessary
454+
to ensure that the spec file matches the tarball created by the dist target;
455+
if this is wrong, then the `rpm-package-build` task will fail in the next step
461456
- Additionally, ensure that any changes made on the release branch vis-a-vis the
462457
spec file are also replicated on the `master` or `main` branch
463458
- Test the build with something like this:

0 commit comments

Comments
 (0)