Skip to content

[CI] Modern Release Workflow #2

@leycec

Description

@leycec

@tusharsadhwani: You are amazing! Because you are amazing, I regret bothering you. Yet, I must bother you. @bollwyvl noted at PR #1 that ipython-beartype currently lacks published tarballs on PyPI, which then prevents @bollwyvl from packaging ipython-beartype via conda-forge:

Also, of note: would love to ship this for conda-forge, but would ideally be able to use one of the following for building from source:

  • a source distribution .tar.gz on PyPI (preferred by most downstreams)
  • a tag here on GitHub

Ideally, both ipython-beartype and pytest-beartype would leverage a modern GitHub Actions-based release workflow. @beartype does this by automatically publishing a new release to PyPI whenever a new tag prefixed by the letter "v" (e.g., v0.1.0, v1.2.3) is pushed to the @beartype repo.

Would you mind copy-pasting @beartype's .github/workflows/python_release.yml file into both ipython-beartype and pytest-beartype when you find a scarce moment in your amazing life full of fun, sun, dangerously spicy curry, and outrageous software productivity in Bengaluru?

You are now thinking...

What's The Catch? There's Always a Catch with @leycec

...yeah. There's a catch. PyPI really wants everyone to start doing this Trusted Publisher thing. So, @beartype's .github/workflows/python_release.yml assumes that you've done this Trusted Publisher thing. I'm so sorry. I have burdened you with bureaucracy. 😭

It's a bit annoying to set all of this up the first time around – but ultimately saves a ton of development time. I've published quite a few @beartype releases with this workflow now. It just works, which is more than I can say for how I used to publish @beartype. Those were dark days. 😆

Please take your leisurely time. Thanks again, @tusharsadhwani! You amaze me. I bow before you. 🙇

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions