Skip to main content

An example Python project

Project description

Sample PyPI package + GitHub Actions + Versioneer

This template aims to automate the tedious and error-prone steps of tagging/versioning, building and publishing new package versions. This is achieved by syncing git tags and versions with Versioneer, and automating the build and release with GitHub Actions, so that publishing a new version is as painless as:

$ git tag vX.Y.Z && git push --tags

The following guide assumes familiarity with setuptools and PyPI. For an introduction to Python packaging, see the references at the bottom.

How to use this template

  1. Click on the Use this template button to get a copy of this repository.

  2. Rename src/sample_package folder to your package name — src/ is where your package must reside.

  3. Go through each of the following files and rename all instances of sample-package or sample_package to your package name. Also update the package information such as author names, URLs, etc.

    1. setup.py
    2. pyproject.toml
    3. __init__.py
  4. Install versioneer and tomli, and run versioneer:

    $ pip install tomli
    $ pip install versioneer
    $ versioneer install
    

    Then commit the changes produced by versioneer. See here to learn more.

  5. Setup your PyPI credentials. See the section Saving credentials on Github of this guide. You should use the variable names TEST_PYPI_API_TOKEN and PYPI_API_TOKEN for the TestPyPI and PyPI tokens, respectively. See .github/workflows/release.yaml.

You are all set! It should now be possible to run git tag vX.Y.Z && git push --tags to automatically version, build and publish a new release to PyPI.

Finally, it is a good idea to configure tag protection rules in your repository.

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sample-package-chanshing-0.0.0.post1.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file sample-package-chanshing-0.0.0.post1.tar.gz.

File metadata

File hashes

Hashes for sample-package-chanshing-0.0.0.post1.tar.gz
Algorithm Hash digest
SHA256 750c1a9b373d9a2f683e48c0c9f98f0e5c085a2081fd54865d1379c56827fc02
MD5 32a853613ccb088db8bf549d0c82956f
BLAKE2b-256 a9a8976aea4218ca9879c2135b6e41798280c0a6a621cffe647bdccd5d9af468

See more details on using hashes here.

File details

Details for the file sample_package_chanshing-0.0.0.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for sample_package_chanshing-0.0.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb9504cc6a4184e126dbb7fdc6981302f7f0bbaa0bbb6c3744ffa839c17632d2
MD5 f4445d710290aae45b998f9c342aa205
BLAKE2b-256 e30af7c37511aa1c35382b5e157c072d6542bd8ff24f1ab1c8536cdac2a9e4c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page