tfagerlind / verso

Verso is an application aimed to simplify and standardize automatic versioning in a continuous delivery context.
MIT License
0 stars 0 forks source link

Automate release process #3

Open tfagerlind opened 2 years ago

tfagerlind commented 2 years ago

The current delivery to PyPI is manual:

Still unclear to me how all these steps should be automated. One thing todo is to look what the release-feature of github does

tfagerlind commented 1 year ago

This page describes a popular method that make automatic releases for every made tag:

https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/

It is based on the possibility to add a trusted publisher to pypi

It seems to assume that the version is already set by setup.py or similar, but perhaps that behavior can be tweaked somehow

One thing that bugs me is that I don't understand how the upload to test-pypi could possibly work for every push. Assuming that the approach uses a version somehow defined in a commit, the user would have to change it for every push. Otherwise test-pypi won't allow a release in the general case since it is not possible to upload the same version twice (right?)

Perhaps it is possible to use gitpython to retrieve the version from the tag system and add a random number in the testpypi case. However I'm not sure I would like to do that, since then I would like to use verso itself and that kind of boot strapping makes me uneasy.

tfagerlind commented 1 year ago

Using the publisher feature in pypi requires 2fA

tfagerlind commented 1 year ago

We should compare the solution above with https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases and perhaps combine it.

tfagerlind commented 1 year ago

Grupping CHANGELOG could actually be a viable alternative for Verso