Skip to content

Prepare PyPI publishing for springclean#2

Merged
marioribeiro merged 1 commit into
mainfrom
pypi_publication
May 7, 2026
Merged

Prepare PyPI publishing for springclean#2
marioribeiro merged 1 commit into
mainfrom
pypi_publication

Conversation

@marioribeiro
Copy link
Copy Markdown
Owner

@marioribeiro marioribeiro commented May 7, 2026

Summary

Prepares Spring Clean to be published as the springclean Python package on PyPI.

Changes

  • Rename the distribution package from springclean-audit to springclean.
  • Add PyPI-facing project URLs and modern MIT license metadata to pyproject.toml.
  • Add build and twine to the development extras.
  • Add a GitHub Actions publish workflow using PyPI Trusted Publishing:
    • manual workflow runs publish to TestPyPI
    • v* tag pushes publish to PyPI
  • Update the README install flow for PyPI users.
  • Document the Trusted Publishing setup values and release process.

Manual follow-up after merge

  • Create pending trusted publishers for springclean on TestPyPI and PyPI.
  • Create GitHub environments named testpypi and pypi.
  • Require manual approval on the pypi environment.
  • Run the Publish workflow manually to verify TestPyPI.
  • Push v0.1.0 when ready to publish the real PyPI release.

Verification

  • ruff check .
  • ruff format --check .
  • coverage run -m pytest && coverage report
  • python -m build
  • python -m twine check dist/*
  • installed dist/springclean-0.1.0-py3-none-any.whl in a clean virtual environment and checked springclean --version / springclean --help

@marioribeiro marioribeiro changed the title Add GitHub Actions workflow for publishing to PyPI and TestPyPI, upda… Prepare PyPI publishing for springclean May 7, 2026
@marioribeiro marioribeiro merged commit c996676 into main May 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant