jupyterhub / oauthenticator

OAuth + JupyterHub Authenticator = OAuthenticator
https://oauthenticator.readthedocs.io
BSD 3-Clause "New" or "Revised" License
408 stars 362 forks source link

Make a release #299

Closed consideRatio closed 3 years ago

consideRatio commented 4 years ago

I'd like to make a release of oauthenticator. My motivation is mainly to do it alongside a z2jh release I'd like to make. Ping @jupyterhub/jupyterhubteam!

Related instructions on how to do it are drafted in #294.

manics commented 4 years ago

Can we use this as an opportunity to automate the deployment? https://github.com/jupyterhub/team-compass/issues/213#issuecomment-548124874

I think this repo should be straightfoward to convert since it's a pure python package.

choldgraf commented 4 years ago

I'm all for it

willingc commented 4 years ago

Before making the release, are there any open PRs that should go into the release? cc/ @minrk

minrk commented 4 years ago

Looking through PRs, I think we can make a release from master as it is now. There are always future releases.

I'd be happy with following the instructions in #294, or attempting to implement the automated release process. One tool that avoids the objections to versioneer is bumpversion (or punch, but I haven't tried punch before). I've used this in various projects, and it's pretty nice. Versioneer is the only game in town if we want to be able to publish releases entirely from the GitHub website (i.e. create the tag and that's it), but it has its downsides (git archive doesn't work, install from forks can report the wrong version, etc.). With bumpversion, it can at least be entirely scriptable, but does require someone with push access to run some code.

The release process with bumpversion (after initial configuration) looks like:

bumpversion --tag release  # creates commit with 1.2.3-dev -> 1.2.3 and tag 1.2.3
python3 setup.py sdist bdist_wheel
twine upload dist/*
bumpversion --no-tag patch # creates commit with 1.2.3 -> 1.2.4-dev
git push && git push --tags 

This automates only the editing of the version file and creation of tags, but at least enables everything to be fully automatic without editing any files. Push to PyPI from the tag can still be automatic.

manics commented 3 years ago

This is automated 😀 https://github.com/jupyterhub/oauthenticator/blob/397a3ec6b489635ceb70cfd40059d8ee55bddd6d/.travis.yml#L37-L48