Skip to content
mixih edited this page Apr 27, 2017 · 11 revisions

Prerequisites:

  • Permissions in the pypi repository to upload new packages for coala's packages (ask sils if you don't have access)
  • Maintainer status (this is a maintainers only right as you will need to work with the main git repository directly)

Patch/Bugfix release (e.g. 0.9.1 -> 0.9.2)

Checkout the base release branch for the release series you are working on. For example, if the 0.9 series needs a bugfix release, the correct branch to checkout would be release/0.9. After checking out the release branch, cherry-pick any commits necessary to make the release. Conflicts may happen during the cherry-picking process, revolve them using the least amount of extra code as possible. Next the release notes should be written and snet in for review. They must receive an ack like normal prs. Finally, bump the VERSION file to the next patch version and commit that as Release version x.y.z. Then see the "uploading to pypi" section below.

Minor release (e.g. 0.9.x -> 0.10.0)

Begin by freezing the commit tree one week before release by creating the release/0.x branch from master. This should be announced well in on the main gitter channel so developer have a chance to get the essential patches merged. After that is created, the release branch functions as a independent branch and does not track master. If essential bugfix commits need to be added during the freeze period, they should be cherry-pick from master. Use the freeze period to finish writing the release notes and prepare everything for release. The release notes must receive an ack! Once the release notes have been committed, bump the release branch's VERSION file to the next minor version commit that as Release version x.y.0. Then see the "uploading to pypi" section below.

Uploading to PYPI

To prepare the project for uploading, run the commands below. You should probably do this is a clean virtual environment to avoid contaminating the released package.

pip3 install twine
git clean -dfx
pip3 install -e .
./setup.py docs
./setup.py sdist bdist_wheel

Then upload to pypi with twine upload dist/*. It will prompt you for your pypi username and password.

Making a github release

While in the default repository view, click the releases button which is next to the branches button. Once there, click the draft new release button and set the title to something that fits the pattern fo the previous releases. Copy and paste your release notes for that release into the release notes section. If the repository uses restructuredText for release notes, you will have to convert it to markdown. The tag should be set to full the release number and should be applied to the release tree not master. Verify that the tag is not on master before submitting the release. We currently do not attach binaries or packages to our releases.

Applying the changes to master

The release notes should be cherry-picked to master after completing the release. Open a new pr and reack the commit yourself. If you made a major release, you should bump the master VERSION file to the next development version. Typically it looks like 0.x.0.dev99999999999999. Congratulations, you just made a release to coala. Now spread the word by tweeting, announcing to main channel, etc.

Clone this wiki locally