Skip to content

CXX-3150 Post-release changes for 4.0.0 #1283

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 18 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

Changes prior to 3.9.0 are documented as [release notes on GitHub](https://github.com/mongodb/mongo-cxx-driver/releases).

## 4.1.0 [Unreleased]

<!-- Will contain entries for the next minor release. -->

## 4.0.0

### Added
Expand Down
2 changes: 1 addition & 1 deletion Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -1594,7 +1594,7 @@ TOC_EXPAND = NO
# protocol see https://www.sitemaps.org
# This tag requires that the tag GENERATE_HTML is set to YES.

SITEMAP_URL = https://mongocxx.org/api/mongocxx-3.11.0/
SITEMAP_URL = https://mongocxx.org/api/mongocxx-4.0.0/

# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
Expand Down
67 changes: 30 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,38 @@

Welcome to the MongoDB C++ Driver!

## Branches - `releases/stable` versus `master`
## Latest Stable Release

The default checkout branch of this repository is `releases/stable`.
This will always contain the latest stable release of the driver. The
`master` branch is used for active development. `master` should
**only** be used when making contributions back to the driver, as it
is not stable for use in production.
The `releases/stable` tag indicates the latest stable release.
This tag corresponds to the driver version which we currently recommend for use in production.
By default, new users should clone or download the driver version which is currently indicated by this tag.

See [Driver Status by family and version](#driver-status-by-family-and-version)
for more details about the various versions of the driver.
```bash
# Use the latest stable release which is currently recommended for use.
git clone -b releases/stable https://github.com/mongodb/mongo-cxx-driver.git
```

## Driver Development Status

> [!IMPORTANT]
> Relevant bug fixes will be backported from the current major version to the previous major version for a period of one year after the new major version is released.

| Version | ABI Stability | Development Stability | Development Status |
| :---------: | :-------------: | :-------------------------: | :----------------: |
| master | N/A | _Do not use in production!_ | Active |
| 4.0.0 | None | Ready for Use | Bug Fixes Only |
| 3.11.0 | None | Ready for Use | Bug Fixes Only |
| 3.10.2 | None | Ready for Use | Not Supported |
| ... | ... | ... | ... |
| 3.0.0 | None | Ready for Use | Not Supported |

## MongoDB Server Compatibility

MongoDB server version compatibility per driver version is documented in the [MongoDB Manual](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/compatibility/).

## Bugs and Issues

See our [JIRA project](https://jira.mongodb.com/browse/CXX).

## Resources

Expand All @@ -30,35 +52,6 @@ for more details about the various versions of the driver.
* [MongoDB Developer Center](https://www.mongodb.com/developer/languages/cpp/)
* [StackOverflow](https://stackoverflow.com/questions/tagged/mongodb%20c%2b%2b)

## Driver status by family and version

Stability indicates whether this driver is recommended for production use.
Currently, no drivers guarantee API or ABI stability.

| Family/version | Stability | Development | Purpose |
| -------------------- | ----------- | ------------------- | ----------------------------------- |
| (repo master branch) | Unstable | Active development | New feature development |
| mongocxx 3.11.x | Stable | Bug fixes only | Current stable C++ driver release |
| mongocxx 3.10.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.9.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.8.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.7.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.6.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.5.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.4.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.3.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.2.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.1.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.0.x | Stable | None | Previous stable C++ driver release |

## MongoDB compatibility

Compatibility of each C++ driver version with each MongoDB server is documented in the [MongoDB manual](https://www.mongodb.com/docs/drivers/cxx#mongodb-compatibility).

## Bugs and issues

See our [JIRA project](https://jira.mongodb.com/browse/CXX).

## License

The source files in this repository are made available under the terms of
Expand Down
4 changes: 2 additions & 2 deletions docs/config.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
baseurl = "https://mongocxx.org"
baseurl = "https://mongocxx.org/"
languageCode = "en-us"
title = "MongoDB C++ Driver Manual"
theme = "mongodb"
Expand All @@ -22,7 +22,7 @@ disableKinds = ["taxonomy", "term"]
pre = "<i class='fa fa-book'></i>"
weight = 90
identifier = "apiDocs"
url = "https://mongocxx.org/api/current"
url = "https://mongocxx.org/api/current/"

[[menu.main]]
name = "Contributing"
Expand Down
4 changes: 1 addition & 3 deletions docs/data/mongodb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@
githubRepo = "mongo-cxx-driver"
githubBranch = "master"
highlightTheme = "idea.css"
api3Url = "https://mongocxx.org/api/mongocxx-v3"
api1Url = "https://mongocxx.org/api/legacy-v1"

apiUrl = "https://mongocxx.org/api/current/"
1 change: 0 additions & 1 deletion docs/layouts/shortcodes/api1ref.html

This file was deleted.

1 change: 0 additions & 1 deletion docs/layouts/shortcodes/api3ref.html

This file was deleted.

1 change: 1 addition & 0 deletions docs/layouts/shortcodes/apiref.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{ .Page.Site.Data.mongodb.apiUrl }}{{ with (.Get 0) }}{{ . }}{{ if ne (in . ".html") true}}.html{{ end }}{{ end }}
10 changes: 5 additions & 5 deletions docs/themes/mongodb/layouts/partials/assets/css.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<link rel="stylesheet" href="{{.Site.BaseURL}}/lib/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}/lib/font-awesome/css/font-awesome.min.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}/css/mongodb-docs.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}/css/overrides.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}/lib/highlight/styles/{{ .Site.Data.mongodb.highlightTheme }}" />
<link rel="stylesheet" href="{{.Site.BaseURL}}lib/bootstrap.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}lib/font-awesome/css/font-awesome.min.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}css/mongodb-docs.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}css/overrides.css" type="text/css" />
<link rel="stylesheet" href="{{.Site.BaseURL}}lib/highlight/styles/{{ .Site.Data.mongodb.highlightTheme }}" />
10 changes: 5 additions & 5 deletions docs/themes/mongodb/layouts/partials/assets/javascripts.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="{{.Site.BaseURL}}/js/jquery.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}/lib/bootstrap.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}/js/navbar.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}/lib/highlight/highlight.pack.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}/js/scripts.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}js/jquery.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}lib/bootstrap.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}js/navbar.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}lib/highlight/highlight.pack.js"></script>
<script type="text/javascript" src="{{.Site.BaseURL}}js/scripts.js"></script>
2 changes: 1 addition & 1 deletion docs/themes/mongodb/layouts/partials/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
{{ partial "meta.html"}}
<link rel="shortcut icon" href="{{.Site.BaseURL}}/img/favicon.png">
<link rel="shortcut icon" href="{{.Site.BaseURL}}img/favicon.png">

<title>{{.Title}}</title>

Expand Down
2 changes: 1 addition & 1 deletion docs/themes/mongodb/layouts/partials/header/main.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<!--logo start-->
<div class="logo pull-left">
<a href="{{ .Site.BaseURL }}">
<img src="{{.Site.BaseURL }}/img/logo-mongodb-header.png",
<img src="{{.Site.BaseURL }}img/logo-mongodb-header.png",
alt="MongoDB C++ driver" />
</a>
</div>
Expand Down
75 changes: 15 additions & 60 deletions etc/apidocmenu.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,26 @@
# MongoDB C++ Driver

## Driver status by family and version
## Driver Documentation By Version

Stability indicates whether this driver is recommended for production use.
Currently, no drivers guarantee API or ABI stability.
[4.0.0](../mongocxx-4.0.0) | [3.11.0](../mongocxx-3.11.0) | [3.10.2](../mongocxx-3.10.2) | [3.10.1](../mongocxx-3.10.1) | [3.10.0](../mongocxx-3.10.0) | [3.9.0](../mongocxx-3.9.0) | [3.8.1](../mongocxx-3.8.1) | [3.8.0](../mongocxx-3.8.0) | [3.7.2](../mongocxx-3.7.2) | [3.7.1](../mongocxx-3.7.1) | [3.7.0](../mongocxx-3.7.0) | [3.6.7](../mongocxx-3.6.7) | [3.6.6](../mongocxx-3.6.6) | [3.6.5](../mongocxx-3.6.5) | [3.6.4](../mongocxx-3.6.4) | [3.6.3](../mongocxx-3.6.3) | [3.6.2](../mongocxx-3.6.2) | [3.6.1](../mongocxx-3.6.1) | [3.6.0](../mongocxx-3.6.0) | [3.5.1](../mongocxx-3.5.1) | [3.5.0](../mongocxx-3.5.0) | [3.4.2](../mongocxx-3.4.2) | [3.4.1](../mongocxx-3.4.1) | [3.4.0](../mongocxx-3.4.0) | [3.3.2](../mongocxx-3.3.2) | [3.3.1](../mongocxx-3.3.1) | [3.3.0](../mongocxx-3.3.0) | [3.2.1](../mongocxx-3.2.1) | [3.2.0](../mongocxx-3.2.0) | [3.1.4](../mongocxx-3.1.4/) | [3.1.3](../mongocxx-3.1.3/) | [3.1.2](../mongocxx-3.1.2/) | [3.1.1](../mongocxx-3.1.1/) | [3.1.0](../mongocxx-3.1.0/) | [3.0.3](../mongocxx-3.0.3/) | [3.0.2](../mongocxx-3.0.2/) | [3.0.1](../mongocxx-3.0.1/) | [3.0.0](../mongocxx-3.0.0/)

| Family/version | Stability | Development | Purpose |
| -------------------- | --------- | ------------------ | ---------------------------------- |
| (repo master branch) | Unstable | Active development | New feature development |
| mongocxx 3.11.x | Stable | Bug fixes only | Current stable C++ driver release |
| mongocxx 3.10.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.9.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.8.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.7.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.6.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.5.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.4.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.3.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.2.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.1.x | Stable | None | Previous stable C++ driver release |
| mongocxx 3.0.x | Stable | None | Previous stable C++ driver release |
## Driver Development Status

## Documentation versions available
> [!IMPORTANT]
> Relevant bug fixes will be backported from the current major version to the previous major version for a period of one year after the new major version is released.

| mongocxx |
| ------------------------------------ |
| [mongocxx-3.11.0](../mongocxx-3.11.0)|
| [mongocxx-3.10.2](../mongocxx-3.10.2)|
| [mongocxx-3.10.1](../mongocxx-3.10.1)|
| [mongocxx-3.10.0](../mongocxx-3.10.0)|
| [mongocxx-3.9.0](../mongocxx-3.9.0) |
| [mongocxx-3.8.1](../mongocxx-3.8.1) |
| [mongocxx-3.8.0](../mongocxx-3.8.0) |
| [mongocxx-3.7.2](../mongocxx-3.7.2) |
| [mongocxx-3.7.1](../mongocxx-3.7.1) |
| [mongocxx-3.7.0](../mongocxx-3.7.0) |
| [mongocxx-3.6.7](../mongocxx-3.6.7) |
| [mongocxx-3.6.6](../mongocxx-3.6.6) |
| [mongocxx-3.6.5](../mongocxx-3.6.5) |
| [mongocxx-3.6.4](../mongocxx-3.6.4) |
| [mongocxx-3.6.3](../mongocxx-3.6.3) |
| [mongocxx-3.6.2](../mongocxx-3.6.2) |
| [mongocxx-3.6.1](../mongocxx-3.6.1) |
| [mongocxx-3.6.0](../mongocxx-3.6.0) |
| [mongocxx-3.5.1](../mongocxx-3.5.1) |
| [mongocxx-3.5.0](../mongocxx-3.5.0) |
| [mongocxx-3.4.2](../mongocxx-3.4.2) |
| [mongocxx-3.4.1](../mongocxx-3.4.1) |
| [mongocxx-3.4.0](../mongocxx-3.4.0) |
| [mongocxx-3.3.2](../mongocxx-3.3.2) |
| [mongocxx-3.3.1](../mongocxx-3.3.1) |
| [mongocxx-3.3.0](../mongocxx-3.3.0) |
| [mongocxx-3.2.1](../mongocxx-3.2.1) |
| [mongocxx-3.2.0](../mongocxx-3.2.0) |
| [mongocxx-3.1.4](../mongocxx-3.1.4/) |
| [mongocxx-3.1.3](../mongocxx-3.1.3/) |
| [mongocxx-3.1.2](../mongocxx-3.1.2/) |
| [mongocxx-3.1.1](../mongocxx-3.1.1/) |
| [mongocxx-3.1.0](../mongocxx-3.1.0/) |
| [mongocxx-3.0.3](../mongocxx-3.0.3/) |
| [mongocxx-3.0.2](../mongocxx-3.0.2/) |
| [mongocxx-3.0.1](../mongocxx-3.0.1/) |
| [mongocxx-3.0.0](../mongocxx-3.0.0/) |
| Version | ABI Stability | Development Stability | Development Status |
| :---------: | :-------------: | :-------------------------: | :----------------: |
| master | N/A | _Do not use in production!_ | Active |
| 4.0.0 | None | Ready for Use | Bug Fixes Only |
| 3.11.0 | None | Ready for Use | Bug Fixes Only |
| 3.10.2 | None | Ready for Use | Not Supported |
| ... | ... | ... | ... |
| 3.0.0 | None | Ready for Use | Not Supported |

## MongoDB compatibility
## MongoDB Server Compatibility

Compatibility of each C++ driver version with each MongoDB server is documented in the [MongoDB manual](https://www.mongodb.com/docs/drivers/cxx#mongodb-compatibility).
MongoDB server version compatibility per driver version is documented in the [MongoDB Manual](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/compatibility/).

## Resources

Expand Down
19 changes: 16 additions & 3 deletions etc/deploy-to-ghpages.pl
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,26 @@ sub _pushd {

sub _hugo_rsync {
my $tmpdir = shift;
_try_run( qw{rsync -Cavz --delete --exclude=/api --exclude=/.git* --exclude=CNAME --exclude=sitemap.xml build/hugo/},
$tmpdir );
my @exclude = (
'/api',
'/categories',
'/.git*',
'CNAME',
'/sitemap.xml',
'/sitemap_index.xml',
);
_try_run( qw{rsync -Cavz --delete}, ( map { ; '--exclude' => $_ } @exclude ), qw{build/hugo/}, $tmpdir );
}

sub _doxygen_rsync {
my $tmpdir = shift;
my @filters = ( '- /current', '- /mongocxx-v3', '- /legacy-v1' );
# Do not modify symlinks.
my @filters = (
'- /current',
'- /mongocxx-v4',
'- /mongocxx-v3',
'- /legacy-v1',
);
_try_run(
qw{rsync -Cavz},
( map { ; '--filter' => $_ } @filters ),
Expand Down
2 changes: 1 addition & 1 deletion etc/generate-latest-apidocs.pl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ sub _try_run {
die "Error running '@command" if $?;
}

my $LATEST_DOC_TAG = "r3.11.0";
my $LATEST_DOC_TAG = "r4.0.0";

sub main {
_try_run("etc/generate-apidocs-from-tag.pl", $LATEST_DOC_TAG);
Expand Down
23 changes: 12 additions & 11 deletions etc/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -482,11 +482,11 @@ git push -f upstream releases/stable

### Coverity Report

Export the `Issues: By Snapshot | SSDLC Report (v2)` view as a CSV named `static_analysis-X.Y.Z.csv`.
Export the `Issues: By Snapshot | SSDLC Report (v2)` view as a CSV named `static_analysis_report-X.Y.Z.csv`.

### Upload SSDLC Reports

Upload a copy of the `static_analysis-X.Y.Z.csv`, `etc/ssdlc_compliance_report.md`, `etc/third_party_vulnerabilities.md`, and `etc/augmented.sbom.json` files. Rename the files with the version number `-X.Y.Z` suffix in their filenames as already done for other files in this folder.
Upload a copy of the `static_analysis_report-X.Y.Z.csv`, `etc/ssdlc_compliance_report.md`, `etc/third_party_vulnerabilities.md`, and `etc/augmented.sbom.json` files. Rename the files with the version number `-X.Y.Z` suffix in their filenames as already done for other files in this folder.

> [!WARNING]
> Uploading a file into the SSDLC Compliance Files folder is an irreversible action! However, the files may still be renamed. If necessary, rename any accidentally uploaded files to "(Delete Me)" or similar.
Expand All @@ -496,7 +496,7 @@ Four new files should be present in the [SSDLC Compliance Files](https://drive.g
```
augmented.sbom-X.Y.Z.json
ssdlc_compliance_report-X.Y.Z.md
static_analysis-X.Y.Z.csv
static_analysis_report-X.Y.Z.csv
third_party_vulnerabilities-X.Y.Z.md
```

Expand Down Expand Up @@ -604,9 +604,9 @@ This branch will be used to create a PR later.
> [!IMPORTANT]
> Make sure the `post-release-changes` branch is created on `master`, not `rX.Y.Z` or `releases/vX.Y`!

Update the tables in `etc/apidocmenu.md` with entries for the new release.
In `etc/apidocmenu.md`, update the list of versions under "Driver Documentation By Version" and the table under "Driver Development Status" with a new entry corresponding to this release.

Edit `README.md` to match the updated `etc/apidocmenu.md`.
In `README.md`, sync the "Driver Development Status" table with the updated table from `etc/apidocmenu.md`.

Commit these changes to the `post-release-changes` branch:

Expand Down Expand Up @@ -713,19 +713,20 @@ git checkout gh-pages
git pull
```

Update the `api/mongocxx-v3` symlink to refer to the new release version:
Update the `api/mongocxx-vX` symlink to refer to the new release version, e.g.:

```bash
cd api
rm mongocxx-v3
ln -s mongocxx-X.Y.Z mongocxx-v3
rm mongocxx-vX
ln -s mongocxx-X.Y.Z mongocxx-vX
```

Double-check that the `current` symlink is pointing to the symlink tracking the latest stable release:
Double-check that the `current` symlink is valid and points to the symlink tracking the latest stable release of the most recent major release version, e.g.:

```
current -> mongocxx-v3
mongocxx-v3 -> mongocxx-X.Y.Z
current -> mongocxx-v4
mongocxx-v4 -> mongocxx-4.Y.Z
mongocxx-v3 -> mongocxx-3.Y.Z
```

Add a new entry to the `sitemap_index.xml` file referencing the sitemap for `api/mongocxx-X.Y.Z`.
Expand Down