Project

Profile

Help

Pulp3 Release Guide

This serves as a step-by-step guide to implement a Pulp3 beta release.

Releasing Pulpcore

1. Increment the versions in setup.py, docs/conf.py, and pulpcore/__init__.py

2. Build the changelog with the towncrier command, this will stage git changes for you.

3. Make a PR with the release notes and the version changes.

4. After the PR is merged, go to https://github.com/pulp/pulpcore/releases/new to create a new tag. Fill in the version (e.g. 3.0.0b1) as the tag name and title. Mark the tag as a pre-release if it's a pre-release version and click publish.

5. Creating a new tag starts a Travis job that pushes the package to PyPI. Go to https://travis-ci.com/pulp/pulpcore/builds and monitor the job. After the job is done, validate that the new package is on PyPI.

6. Announce to with a summary of all the changes, and a github link to the commits in the release (e.g. https://github.com/pulp/pulpcore/compare/3.0.0b20...3.0.0b21). If there's also a coinciding pulpcore-plugin release, you can send out one announcement email.

7. Increment the versions in setup.py, docs/conf.py, and pulpcore/__init__.py to <the next release>.dev on the master branch.

Releasing Pulpcore Plugin API

Because pulpcore-plugin depends on pulpcore, typically steps 3+ must be done after the new pulpcore package has been uploaded to PyPI.

1. Increment the versions in setup.py, docs/conf.py, and pulpcore/__init__.py

2. Build the changelog with the towncrier command, this will stage git changes for you.

3. Make a PR with the release notes and the version changes.

4. After merging your PR, go to https://github.com/pulp/pulpcore-plugin/releases/new to create a new tag. Fill in the version (e.g. 0.1.0b1) as the tag name and title. Mark the tag as a pre-release if it's a pre-release version and click publish.

5. Creating a new tag starts a Travis job that pushes the package to PyPI. Go to https://travis-ci.com/pulp/pulpcore-plugin/builds/ and monitor the job. After the job is done, validate that the new package is on PyPI.

6. Announce to with a summary of all the changes, and a github link to the commits in the release (e.g. https://github.com/pulp/pulpcore-plugin/compare/0.1.0b16...0.1.0b17). If there's also a coinciding pulpcore release, you can combine both and send out one announcement email.

7. Increment the versions in setup.py, docs/conf.py, and pulpcore-plugin/__init__.py to <the next release>.dev on the master branch.

Releasing a Plugin

Warning: Plugins may have their own release process which differs from the process below. This process is used by pulp_file.

1. Increment the versions in setup.py, docs/conf.py, and pulp_<plugin>/__init__.py

2. Build the changelog with the towncrier command, this will stage git changes for you.

3. Make the docs locally with cd docs;make html. This will ensure both the docs can be built without error, and it will include the latest copy of /docs/_static/api.json which is fetched from your local running Pulp system. Make sure your running Pulp system is running the code for the release.

4. Make a PR with the release notes, new api.json file, and the version changes.

5. After merging your PR, go to https://github.com/pulp/your_plugin_name/releases/new and create a new tag. Fill in the version (e.g. 3.0.0b1) as the tag name and title. Mark the pre-release box if this is a pre-release and click publish.

This kicks off a Travis job. If tests pass on the tag, the new version is released into PyPI. If some network issue prevents the completion of the testing/deployment, restart the build in Travis. If the tests fail, fix them, and replace your github tag.

6. Validate that the deployed package is on PyPI.

7. If new features were added announce on pulp-dev@redhat.com.

8. Increment the versions in setup.py, docs/conf.py, and pulp_<plugin>/__init__.py to <the next release>.dev on the master branch.

Tagging using git

In the instructions above, we use the Github Web UI to tag master. It's safer and easier. However, there may be times where you might want to use the git cli to tag instead. To do that:

1. After the version bump and release notes are merged, get the latest version of your plugin from version control
git fetch origin && git reset --hard origin/master

2. Tag it, the tag should be the same version specified in setup.py
git tag 3.0.0b1

3. Push the tag
git push origin 3.0.0b1

Also available in: PDF HTML ODT TXT