Yes, please, let's do this!  I have been trying to fix or enable automated 
releases for smaller Twisted-org projects as I have time, but Twisted itself is 
a bit too tricky for my level of capacity during the end times.

Kyle Altendorf has done quite a bit of work on this, so let's be sure to 
leverage that work and not to start over: 
https://twistedmatrix.com/trac/ticket/9531 
<https://twistedmatrix.com/trac/ticket/9531>.

-g

> On Sep 28, 2020, at 9:25 AM, Craig Rodrigues <rodr...@crodrigues.org> wrote:
> 
> Adi,
> 
> In this Twisted subproject, you implemented something which releases to Pypi 
> upon creation of a tag:
> 
> https://github.com/twisted/twistedchecker/blob/master/.travis.yml#L23 
> <https://github.com/twisted/twistedchecker/blob/master/.travis.yml#L23>
> 
> Maybe we can do something similar for the main Twisted project.
> 
> GitHub Actions allows you to run a specific workflow in response to a GitHub 
> Release event:
> 
> https://github.com/actions/create-release 
> <https://github.com/actions/create-release>
> https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#release
>  
> <https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#release>
> 
> So maybe we can implement your suggested steps in a new GitHub Actions 
> workflow specific to doing a release.
> 
> --
> Craig
> 
> 
> On Thu, Sep 24, 2020 at 4:32 PM Adi Roiban <a...@roiban.ro 
> <mailto:a...@roiban.ro>> wrote:
> 
> 
> Maybe the release can be simplified and automated:
> 
> * Build the source and binary wheel in GitHub actions as this can be done for 
> Linux (Ubuntu), Windows and macOS.
> * Host the download source and wheel files only on PyPi and publish them 
> automatically from GitHub action on a new tag is created.
> * Host the documentation only on the Read The Docs.
> * Hos the API documentation on Read The Docs - might need some hacking, but 
> at release we can create an API docs package as an artifact which is then 
> pulled when Read The Docs documentation is created and copied as extra HTML 
> files.
> * Move Twisted blog to GitHub pages... or even read the docs with a separate 
> theme like Crate [1] ... if the blog is still required.
> 
> ------
> 
> With the above implemented the release should look like:
> 
> * Each time the tests for a PR are executed, pydoctor will run and 
> automatically create the API files as an artifact available for download.
> * Manually create a new branch in which the version is updated and the 
> changelog/news/release note is created and all the news fragment files are 
> removed/ . Have the branch reviewed and approved with all the tests passed. 
> When the pydoctor tests are executed, the API docs are created.
> * The release branches can have a naming convention line 'release-20.0.0`. At 
> first the release branch can have a release candidate version and a GitHub 
> can automatically push the release to PyPi.
> * Manually send an email to Twisted mailing list to announce the pre-release.
> * Once the branch is merged, manually push a new tag
> * The new tag should trigger the GitHub action for publishing the release on 
> PyPi
> * The new merge in master should trigger the Read The Docs build... which now 
> will also include the static API docs pages.
> * Once the release is done, manually send a new email to the mailing list.
> 
> There are still many manual steps, but the only permissions required is 
> commit to the repo.
> This will no longer use any of the Twisted own infrastructure.
> 
> [1] https://sphinx-themes.org/html/crate-docs-theme/crate/basic.html 
> <https://sphinx-themes.org/html/crate-docs-theme/crate/basic.html>
> 
> -- 
> Adi Roiban
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python@twistedmatrix.com <mailto:Twisted-Python@twistedmatrix.com>
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python 
> <https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python@twistedmatrix.com
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to