Closed blueyed closed 4 years ago
IIUC you're suggesting that when a human creates a tag, that should trigger CI to publish to pypi.
That could be nice, although it depends on how cumbersome the release process is. I would guess if we just document it like the lua-client repo that would solve 80% of the friction.
The main benefit here is also to ensure a predictable environment, to not include/upload unwanted files (just happened with pip 20 even (https://github.com/pypa/pip/pull/7624)).
to not include/upload unwanted files
Currently I do this by diffing every release tarball against the last one. But if someone wants to write a nice script, that would be a welcome addition.
@bfredl are the steps to release written down somewhere? I actually have never done it for this repo, thus can't write them myself.
@justinmk Currently only in my zsh_history, but I will write something down (but nothing unexpected, really). But probably we want to improve the process to include the disabling of excessive logging (there is a script somewhere we could revive)
I think currently I'm the only one having ownership on the pynvim
pypi package, I could add you to it if you have a pypi account.
I just made a release, and wrote down what I did at the same time:
Create a release commit with the title "Pynvim x.y.z"
Make a release on github with the same commit/version tag and copy the message.
run scripts/disable_log_statements.sh
run python setup.py sdist
run twine upload -r pypi dist/pynvim-x.y.z.tar.gz
(assumes you have a pypi account with permissions)
run scripts/enable_log_statements.sh
or git reset --hard
to restore the working dir
Thanks, documented in https://github.com/neovim/pynvim/pull/429.
That should be enough. I strongly believe we shouldn't spend time automating this in CI. Parts of it can't be automated (e.g. human needs to write the release notes, human needs to authenticate to pypi), and other parts are trivial compared to those tasks.
Something like a scripts/release.sh
could be useful though. Just don't want to spend time babysitting CI stuff that will no doubt break in the future.
run
twine upload -r pypi dist/pynvim-x.y.z.tar.gz
(assumes you have a pypi account with permissions)
I guess this replaces publish.sh ?
For easier releases it would be nice if tags get deployed via Travis.
See https://github.com/Vimjas/vint/blob/db881f8fe7127cd092436371643e48903099f114/.travis.yml#L38-L53 for reference - it uses a token generated via PyPI's admin interface.