Raw File
# How to make a new GPflow release

1. Check that [RELEASE.md](RELEASE.md) contains the up-to-date release notes for the next release.
   - They should cover all (non-GitHub-related) commits (PRs) on the `develop` branch since the most
     recent release.
   - They should make clear to users whether they might benefit from this release and what backwards
     incompatibilities they might face.

2. Bump the version numbers in the `develop` branch, in the
   [`VERSION`](https://github.com/GPflow/GPflow/blob/develop/VERSION) file **and** in
   ([example PR: #1666](https://github.com/GPflow/GPflow/pull/1666)).
   Copy the RELEASE.md template for the following release-in-progress.

3. Create a release PR from `develop` to `master`.
   - **Make a merge commit. DO NOT SQUASH-MERGE.**
   - If you squash-merge, `master` will be *ahead* of develop (by the squash-merge commit). This
     means we’ll end up with merge conflicts at the following release!
   - [example PR: #1396](https://github.com/GPflow/GPflow/pull/1396)

4. Go to the [release page on GitHub](https://github.com/GPflow/GPflow/releases/new) and create a
   release for a tag “v{VERSION}” (e.g., for version 2.1.3 the tag needs to be `v2.1.3`) to `master`
   branch. Copy the release notes into the description field!
   - [example release: v2.0.0](https://github.com/GPflow/GPflow/releases/tag/v2.0.0)

5. You are almost done now! Go to https://circleci.com and monitor that tests for your newly-created
   tag passed and the job for pushing the pip package succeeded. CircleCI matches on the
   “v{VERSION}” tag to kick-start the release process.
   - [example CI workflow: 2434](https://app.circleci.com/pipelines/github/GPflow/GPflow/2434/workflows/f1274aa7-18c6-45a3-8d59-cab573305b64)

6. Take a break; wait until the new release
   [shows up on PyPi](https://pypi.org/project/gpflow/#history).

Done done! Go and celebrate our hard work :)
back to top