Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start versioning augur and add a release process #210

Merged
merged 12 commits into from
Sep 4, 2018
Merged

Conversation

tsibley
Copy link
Member

@tsibley tsibley commented Aug 31, 2018

Spurred by #202 and #146, this sets up augur to be versioned starting with 3.0.0 and released to PyPi as nextstrain-augur. Each commit documents the change it makes and the rationale.

When this PR gets the ok, I'll merge and do the initial release (which due to bootstrapping requires a little more handholding than subsequent releases).

Todo items for myself for the initial release:

  • Create an initial version tag, 3.0.0.dev1.
  • Create a release branch, pointed at 3.0.0.dev1.
  • Push tag and release branch.
  • Run release script to make 3.0.0.dev2.
  • Run git push command as prompted.
  • Upload to PyPi.

tsibley added 11 commits August 28, 2018 14:57
Everything else in scripts/ is more aimed at end-users.  This script is
only about development/integration tasks.  Adds Travis to the name so
it's clear that the rebuild won't happen locally.
This is good practice for general safety when shell scripting and has
the upshot of an informative error message if run without
TRAVIS_AUTH_TOKEN defined.
This will be used by setup.py and a devel/release script, as well as an
`augur version` command.

We want to start versioning augur beginning with 3.0.0.  While preparing
for the final 3.0.0 release, we'll use development versions (.devN), as
described in <https://www.python.org/dev/peps/pep-0440/#developmental-releases>.
This is the same logic I'm using in nextstrain-cli.  Note that pathlib
requires Python 3.4+, which I think is an acceptable requirement.
Modular augur is already Python 3-only.
This means the Python packaging and installation toolchain can know what
we need.  For example, the package will refuse to install on older
versions, instead of installing but not working.
This makes it more clear what the package is and makes it easier to find
related packages when searching PyPi.

The module and command names are still just "augur".  This only affects
the distribution package name once we make distributions.
Starting with the initial version, 3.0.0.dev1 (that we won't actually
release).
The devel/release script sanity checks state of the repo and change log,
bumps the version, makes a commit and tags it, merges into the "release"
branch, and ends with instructions on how to push.  It is based on the
very similar script I wrote for nextstrain-cli, with the "release"
branch behaviour adopted from auspice.

Resolves #202 and #146.
@tsibley tsibley requested a review from trvrb August 31, 2018 17:38
Ensures that in-progress changes on master don't get baked into new
Docker images and mirrors the way this works for auspice.
@trvrb
Copy link
Member

trvrb commented Sep 2, 2018

Everything looks great here. Please go ahead and merge and release to PyPi.

@tsibley tsibley merged commit 33a43d4 into master Sep 4, 2018
@tsibley tsibley deleted the versioning branch September 4, 2018 17:06
@tsibley
Copy link
Member Author

tsibley commented Sep 4, 2018

Done!

@tsibley
Copy link
Member Author

tsibley commented Sep 4, 2018

I also added a "branch protection rule" for release just like master has: https://github.com/nextstrain/augur/settings/branches

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants