-
Notifications
You must be signed in to change notification settings - Fork 379
HOWTO:BuildARelease
Building a WiredTiger release package is straightforward.
You need:
- a clone of wiredtiger and wiredtiger.github.com GitHub trees, using git
- up-to-date installs of the build toolchain (CMake, doxygen, and python3)
Then:
-
Ensure that you are working on the develop branch of the wiredtiger local tree.
-
Ensure that all relevant API changes are mentioned in the upgrading documentation
src/docs/upgrading.dox
-
Bump the version by editing
RELEASE_INFO
(if needed), and runcd dist && sh s_all -f
. -
Update the documentation landing page in
src/docs/top/main.dox
(to be automated), generate and copy it into place:cd dist && sh s_docs -l cp -r ../docs/top/* /path/to/wiredtiger.github.com
-
Update the compatibility tests
test/suite/test_compat<xy>.py
by following the guide if applicable. -
Commit any changes and raise a PR (WT-10077 as an example).
-
Generate the draft release package:
cd dist && sh s_release
This will cut a release as of the latest commit in your current tree. Uncommitted changes will not be included in the release. The release package will be written to
../releases/wiredtiger-X.Y.Z.tar.bz2
. -
Sanity-check the draft release package by unpacking, then running
mkdir build && cd build && cmake ../. -G Ninja && ninja
and Python test suite. (Note: some dist/s_* scripts only run normally under a git tree, to get the test passing the alternative is to have a fresh git checkout and run the tests) -
Merge the PR, generate the official release package (using the commit just merged), and sanity-check the release package by following the same procedure in the above 2 steps.
-
Tag the tree
git tag X.Y.Z <commit-to-tag>
. Push the new tag to remotegit push --tags
. -
Create the release on Github. Go to https://github.com/wiredtiger/wiredtiger/tags, select the "create release" dropdown button on the new release tag, and add the release notes by referring to the previous release. The source code tarballs will be automatically created & attached to the release page after creation.
-
Update the wiredtiger.github.com tree with the new release package and documentation.
cd wiredtiger/dist sh s_release_docs cd /path/to/wiredtiger.github.com # sanity check the version contents in index.html before push git push origin
Take care with this step - it can get confusing when updating the landing page version strings, especially when bumping major releases. Please make sure to check the changes in wiredtiger.github.com before pushing.
- Mark the released version as "released" on JIRA via the manage versions page. Create a new version number for the next release.
- Bump version number (major/minor/patch) in RELEASE_INFO file on develop branch, run dist/s_all, update compatibility tests as in the above step 5 if needed, and any other source files that contain the previous version number, commit the changes, and raise a PR. Please go through the normal PR review process to get it merged (WT-10135 as an example).
- Upload the corresponding Python release, the instructions are in HOWTO:UploadAReleaseForPythonInstalls.
- Announce the release on the Google Group's wiredtiger-users list.
- (Optional) Announce the release on the WiredTiger Facebook page page.
- File a SERVER ticket to update the MongoDB-WiredTiger-Log version numbers chart (SERVER-79265 as an example).