Skip to content

Commit 02ad73b

Browse files
authored
Update release instructions following r3.11.0 (#1221)
1 parent 12e10d7 commit 02ad73b

File tree

2 files changed

+65
-16
lines changed

2 files changed

+65
-16
lines changed

.mci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ variables:
1111

1212
# If updating mongoc_version_minimum, also update:
1313
# - the default value of --c-driver-build-ref in etc/make_release.py
14-
# - LIBMONGOC_REQUIRED_VERSION in src/mongocxx/CMakeLists.txt
15-
# - the PURL version in etc/purls.txt
14+
# - LIBBSON_REQUIRED_VERSION and LIBMONGOC_REQUIRED_VERSION in CMakeLists.txt
15+
# - the version of pkg:github/mongodb/mongo-c-driver in etc/purls.txt
1616
mongoc_version_minimum: &mongoc_version_minimum "1.28.0"
1717

1818
integration_matrix:

etc/releasing.md

Lines changed: 63 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ For patch releases, check the [mongo-cxx-driver-latest-release](https://spruce.m
103103
104104
Ensure there are no new or unexpected task failures.
105105
106+
### Minimum Required MongoDB C Driver Version
107+
108+
Ensure `mongoc_version_minimum` and related values are updated for the latest minimum required C Driver release.
109+
110+
See the comment accompanying `mongoc_version_minimum` for a list of other sources to update.
111+
106112
### Coverity
107113
108114
Ensure there are no new or unexpected issues with High severity or greater.
@@ -136,9 +142,14 @@ podman run \
136142

137143
Commit the latest version of the SBOM Lite document into the repo as `etc/cyclonedx.sbom.json`. (This may just be a modification of the timestamp.)
138144

145+
Generate an updated Augmented SBOM as described below.
146+
147+
> [!IMPORTANT]
148+
> If the SBOM Lite was updated, generate an updated Augmented SBOM as described below even if the `silk-check-augmented-sbom` is currently passing on Evergreen!
149+
139150
### Augmented SBOM
140151

141-
Ensure the `silk-check-augmented-sbom` task is passing on Evergreen for the relevant release branch. If it is passing, nothing needs to be done.
152+
Ensure the `silk-check-augmented-sbom` task is passing on Evergreen for the relevant release branch. If it is passing, nothing needs to be done (unless the SBOM Lite was updated as described above).
142153

143154
If the `silk-check-augmented-sbom` task was failing, update the Augmented SBOM document using the following command(s):
144155

@@ -265,6 +276,8 @@ Commit the updates to `CHANGELOG.md`.
265276
git commit -m 'Update CHANGELOG for X.Y.Z'
266277
```
267278

279+
## Pre-Release Changes PR
280+
268281
Push the `pre-release-changes` branch to a fork repository and create a PR to merge `pre-release-changes` onto `master`:
269282

270283
```bash
@@ -352,7 +365,7 @@ python ./etc/make_release.py "${make_release_args[@]:?}" --dry-run rX.Y.Z
352365
```
353366

354367
> [!TIP]
355-
> Export environment variables (e.g.`CMAKE_BUILD_PARALLEL_LEVEL`) to improve the speed of this command.
368+
> Export environment variables (e.g. `CMAKE_BUILD_PARALLEL_LEVEL`, `CMAKE_GENERATOR`, etc.) to improve the speed of this command.
356369
357370
If an error occurs, inspect logs the script produces, and troubleshoot as
358371
follows:
@@ -374,7 +387,7 @@ Verify the successful creation of the release draft on GitHub.
374387
Push the release tag (created earlier) to the remote repository:
375388

376389
```bash
377-
git push origin rX.Y.Z
390+
git push upstream rX.Y.Z
378391
```
379392

380393
### Release on GitHub
@@ -448,7 +461,7 @@ git checkout -b releases/vX.Y upstream/master
448461
Push the new branch to the remote repository:
449462

450463
```
451-
git push origin releases/vX.Y
464+
git push upstream releases/vX.Y
452465
```
453466

454467
The new branch should be continuously tested on Evergreen. Update the "Display Name" and "Branch Name" of the [mongo-cxx-driver-latest-release Evergreen project](https://spruce.mongodb.com/project/mongo-cxx-driver-latest-release/settings/general) to refer to the new release branch.
@@ -457,7 +470,7 @@ The new branch should be tracked by Silk. Use the [create-silk-asset-group.py sc
457470

458471
```bash
459472
# Snyk credentials. Ask for these from a team member.
460-
. ~/.secrets/silk-creds.txt.
473+
. ~/.secrets/silk-creds.txt
461474

462475
# Ensure correct release version number!
463476
version="X.Y"
@@ -475,14 +488,23 @@ create_args=(
475488
python path/to/tools/create-silk-asset-group.py "${create_args[@]:?}"
476489
```
477490

491+
Verify the new asset group (`mongo-cxx-driver-X.Y`) is present in the [Silk Asset Inventory](https://us1.app.silk.security/inventory/all).
492+
478493
### Update Snyk
479494

480495
> [!IMPORTANT]
481496
> Run the Snyk commands in a fresh clone of the post-release repository to avoid existing build and release artifacts from affecting Snyk.
482497
483498
Checkout the new release tag.
484499

485-
Configure and build the CXX Driver with `BSONCXX_POLY_USE_MNMLSTC=ON` (force download of mnmlstc/core sources) and no `CMAKE_PREFIX_PATH` entry to an existing C Driver installation (force download of C Driver sources), then run:
500+
Configure and build the CXX Driver with `BSONCXX_POLY_USE_MNMLSTC=ON` (force download of mnmlstc/core sources) and no `CMAKE_PREFIX_PATH` entry to an existing C Driver installation (force download of C Driver sources):
501+
502+
```bash
503+
cmake -S . -B build -D BSONCXX_POLY_USE_MNMLSTC=ON
504+
cmake --build build
505+
```
506+
507+
Then run:
486508

487509
```bash
488510
# Snyk credentials. Ask for these from a team member.
@@ -511,7 +533,9 @@ snyk test "${snyk_args[@]:?}" --print-deps
511533
snyk monitor "${snyk_args[@]:?}"
512534
```
513535

514-
### Create Documentation Tickets
536+
Verify the new Snyk target reference is present in the [Snyk project targets list](https://app.snyk.io/org/dev-prod/projects?groupBy=targets&before&after&searchQuery=mongo-cxx-driver&sortBy=highest+severity&filters[Show]=&filters[Integrations]=cli&filters[CollectionIds]=) for `mongodb/mongo-cxx-driver`.
537+
538+
### Post-Release Changes
515539

516540
Create and checkout a new branch `post-release-changes` relative to `master` to contain documentation updates following the new release:
517541

@@ -525,10 +549,18 @@ This branch will be used to create a PR later.
525549
> [!IMPORTANT]
526550
> Make sure the `post-release-changes` branch is created on `master`, not `rX.Y.Z` or `releases/vX.Y`!
527551
528-
Add the new release to the tables in `etc/apidocmenu.md`.
552+
Update the tables in `etc/apidocmenu.md` with entries for the new release.
529553

530554
Edit `README.md` to match the updated `etc/apidocmenu.md`.
531555

556+
Commit these changes to the `post-release-changes` branch:
557+
558+
```bash
559+
git commit -m "Post-release changes"
560+
```
561+
562+
### Create Documentation Tickets
563+
532564
(Stable Releases Only) Close the Jira ticket tracking this release with "Documentation Changes" set to "Needed". Fill the "Documentation Changes Summary" field with information requesting updates to:
533565

534566
- the "Installing the MongoDB C Driver" section of the [Advanced Configuration and Installation Options](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/installation/advanced/#installing-the-mongodb-c-driver) page
@@ -542,7 +574,7 @@ This will generate a DOCSP ticket with instructions to update the C++ Driver doc
542574
Example (using Jira syntax formatting):
543575

544576
```
545-
* The [Advanced Installation|https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/installation/advanced/#installing-the-mongodb-c-driver] page must be updated with a new requirement: "For mongocxx-X.Y.x, libmongoc A.B.C or later is required.
577+
* The [Advanced Installation|https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/installation/advanced/#installing-the-mongodb-c-driver] page must be updated with a new requirement: "For mongocxx-X.Y.x, libmongoc A.B.C or later is required."
546578
* The [MongoDB C++ Driver|https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/#driver-status-by-family-and-version] page must be updated: {{{}mongocxx X.Y.x{}}} is now a previous stable release and no longer under active development; {{{}mongocxx X.Y+1.x{}}} is the new current stable release eligible for bug fixes.
547579
* the [full version|https://github.com/mongodb/docs-cpp/blob/master/snooty.toml] for C++ Driver documentation must be updated to {{{}X.Y.Z{}}}.
548580
```
@@ -574,7 +606,7 @@ command -V doxygen hugo
574606
Run `git clean -dfx` to restore the repository to a clean state.
575607

576608
> [!WARNING]
577-
> Do NOT run `git clean -dfx` in your local development repository, as it may delete your local development files present in the repository (even if excluded)! Only run this in the command in the separate repository being used for this release!
609+
> Do NOT run `git clean -dfx` in your local development repository, as it may delete your local development files present in the repository (even if normally ignored by git)! Only run this in the command in the separate repository being used for this release!
578610
579611
Configure CMake using `build` as the binary directory. Leave all other configuration variables as their default.
580612

@@ -591,6 +623,7 @@ cmake --build build --target docs
591623
Test generating the latest versioned Doxygen docs by building the `doxygen-latest` target (this command DOES checks for the required Doxygen version):
592624

593625
```bash
626+
export DOXYGEN_BINARY=<path/to/doxygen> # Optional. For binary version compatibility.
594627
cmake --build build --target doxygen-latest
595628
```
596629

@@ -646,6 +679,8 @@ Commit and push this change to the `gh-pages` branch:
646679
git commit -m "Update symlink for rX.Y.Z"
647680
```
648681

682+
Wait for [GitHub Actions](https://github.com/mongodb/mongo-cxx-driver/actions) to finish deploying the updated pages.
683+
649684
Verify the https://mongocxx.org/api/current/ page has been updated with the new release.
650685

651686
### Update CHANGELOG...
@@ -715,6 +750,10 @@ Add a section for the next minor release, e.g. following a `1.3.0` release:
715750

716751
Commit these changes to `post-release-changes`.
717752

753+
```bash
754+
git commit -m "Add CHANGELOG section for the next minor release"
755+
```
756+
718757
### Merge Post-Release Changes
719758

720759
Push the `post-releases-changes` branch to your personal fork repository and create a PR to merge the post-release changes into `master`.
@@ -728,12 +767,18 @@ git push -u origin post-release-changes
728767

729768
Post an announcement to the [Developer Community Forum](https://www.mongodb.com/community/forums/tags/c/announcements/driver-releases/110/cxx) under "Product & Driver Announcements > Driver Releases" and include the "production" and "cxx" tags.
730769

731-
Template:
770+
Template Title:
771+
772+
```
773+
MongoDB C++11 Driver X.Y.Z Released
774+
```
775+
776+
Template Body:
732777

733778
```md
734779
The MongoDB C++ Driver Team is pleased to announce the availability of [MongoDB C++ Driver X.Y.Z](https://github.com/mongodb/mongo-cxx-driver/releases/tag/rX.Y.Z).
735780

736-
Please note that this version of mongocxx requires [MongoDB C Driver A.B.C](https://github.com/mongodb/mongo-c-driver/releases/tag/A.B.C) or higher.
781+
Please note that this version of mongocxx requires [MongoDB C Driver A.B.C](https://github.com/mongodb/mongo-c-driver/releases/tag/A.B.C) or newer.
737782

738783
See the [MongoDB C++ Driver Manual](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/) and the [Driver Installation Instructions](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/installation/) for more details on downloading, installing, and using this driver.
739784

@@ -751,12 +796,16 @@ The C++ Driver Team
751796
### vcpkg
752797

753798
Submit a PR or create an issue to update the vc-pkg file for mongo-cxx-driver.
754-
To submit an issue, follow: https://github.com/microsoft/vcpkg/issues/new/choose. Example: https://github.com/microsoft/vcpkg/issues/34984
799+
To submit an issue, follow: https://github.com/microsoft/vcpkg/issues/new/choose (Request an update to an existing port). Example: [r3.10.2](https://github.com/microsoft/vcpkg/issues/39539).
800+
801+
Include a note communicating new minimum C Driver version requirements.
755802

756803
### Conan
757804

758805
Submit a PR or create an issue to update the Conan recipe for mongo-cxx-driver.
759-
To submit an issue, follow: https://github.com/conan-io/conan-center-index/issues/new/choose/. Example: https://github.com/conan-io/conan-center-index/issues/21006
806+
To submit an issue, follow: https://github.com/conan-io/conan-center-index/issues/new/choose/ (Package: New Version). Example: [r3.10.2](https://github.com/conan-io/conan-center-index/issues/24451).
807+
808+
Include a note communicating new minimum C Driver version requirements.
760809

761810
## Docker Image Build and Publish
762811

0 commit comments

Comments
 (0)