Skip to content

Release process

Timothy Brathwaite edited this page Nov 20, 2020 · 5 revisions

Development

  • Before making edits, open an issue describing the problem that one will be working on.
    Use one issue per problem, and create multiple issues to represent multiple problems.
  • Open a feature branch to store one's edits to address the created issues.
    Use the command git flow feature start <branch-name> to open the branch.
  • Track one's edits with git commits.
  • Once one is done with one's edits, open a pull request on Github to merge the branch's edits into develop.
  • Describe the pull request's edits in a newsfragment for towncrier.
    • Create the entry with touch src/checkrs/newsfragment/<pull-request-id>.<fragment-type>.
      <fragment-type> extension is as described here and the <pull-request-id> is as shown on Github.
    • Edit the file to add the news-blurb-like description of the pull request's edits.
    • Commit the newfragment to the repo, and push the changes to the remote repository.
  • Once all tests have passed and the pull request is approved,
    run git flow feature finish --squash <branch-name> to merge the branch and close the pull request.
  • Run git push origin develop to push the local merges to github.
  • Close the corresponding issue on github.

Packaging

  • Ensure you've finished merging all changes to the develop branch.
  • Preview the new version number with bump2version --dry-run --verbose --current-version <current-version> patch src/checkrs/__init__.py Note that the current version number can be viewed in src/checkrs/__init__.py
  • Create a release branch with git flow release start <new-version>
  • Push the release branch to Github's remote origin branch with git flow release publish <new-version>
  • View Changelog additions for the release with towncrier --draft
  • Make CHANGELOG edits by running towncrier at the command line.
  • Refine and commit the CHANGELOG edits.
  • Now, actually bump the version using
bump2version --verbose --current-version <current-version> patch src/checkrs/__init__.py

Publishing

  • Open a pull request for the release. Point the branch at stable as the comparison branch.
  • On the release/<new-version> branch, run flit publish at the command line.
  • After the package has been uploaded to PyPI, finish the release with
git flow release finish --squash <new-version>
git push origin --tags
Clone this wiki locally