plone / plone/meta

Do releases with `tox`

Open
#100 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

04 type: enhancement 13 prio: normal 43 lvl: complex
Dominant language
Python
Stars
6
Forks
7
Avg merge
2d 19h
Merged PRs (30d)
5

Description

With the following GitHub Actions one can fully automate the workflow of releasing a package:

The first one generates the sdist and wheel archives, with build, while the second one publishes, with twine, the archives to PyPI 🎉

For the second one we should/must use trusted publishing feature of PyPI, to ensure credentials are not leaked.

For a core plone package we would be missing a pre and a post action:

  • (pre): update the change log with towncrier
  • (post): update versions.cfg and checkouts.cfg from buildout.coredev (or its mxdev counterparts whenever the switch happens 😄 )

Probably the pre part could be actually what triggers the release workflow? 🤔

Are we missing anything? 🤔

PyPI trusted publishers approach recommends using a specific GitHub workflow to drive the releases, which is highly recommended to be only triggered by maintainers/release managers, further increasing the security of a PyPI release 🔒

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Compare the linked GitHub Actions with the repository's existing release workflow and the versions.cfg/checkouts.cfg files used by buildout.coredev. Identify how towncrier, package publishing, and post-release updates should be coordinated, including maintainer-only trusted publishing. Done means the release sequence and its required pre- and post-actions are agreed and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
ci-cd, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.