Skip to main content

supports github releases

Project description

PyPI version Python versions Build Black Coverage

Intro

setuptools-github is both a library and a script to support package deliveries using beta branches on github: in a simple model each (automated) commit on a beta/N.M.O branch will result in a package with a __version__ of N.M.Ob<build-number> and a __hash__ corresponding to the commit.

Finally tagging the code with a release/N.M.O tag will result in a package of __version__ N.M.O and “close” the beta branch (this is the same sorting strategy used in pep440).

A script setuptools-github-start-release will help to start a beta release branch.

Setup

We start from the master branch (or main, depending on the repository setting).

Initial steps (setup.py)

First add into the setup.py file the function handling the __version__/__hash__ variables:

from setuptools_github import tools
initfile = pathlib.Path(__file__).parent / "your_package/__init__.py"

# this will manage the __version__/__hash__ in initfile using the github envs
version = tools.update_version(initfile, os.getenv("GITHUB_DUMP"))

setup(
     name="a-name",
     version=version,
     ...

Second update the .github/workflows/{beta,master,release}.yml

Adds to the workflows yaml files the following:

- name: Build wheel package
  env:
    PYTHONPATH: .
    GITHUB_DUMP: ${{ toJson(github) }}
  run: |
    python -m build

This will set the environment variable GITHUB_DUMP to a json string from the action context.

Release process

To begin a new branch from master:

setuptools-github-start-release micro src/your_package/__init__.py

This will create a new branch beta/0.0.0 initially where your-package will build 0.0.0b1, 0.0.0b2 etc. wheels.

Tagging beta/0.0.0 as release/0.0.0, will close the branch and you can restart a new branch:

setuptools-github-start-release micro src/your_package/__init__.py

This will (1) bump the master __version__ to 0.0.1 (micro), and create a new beta/0.0.1 branch.

Requirements

  • Python >= 3.7.

  • setuptools

Installation

You can install setuptools-github via pip from PyPI:

$ pip install setuptools-github

Or conda:

$ conda install -c conda-forge setuptools-github

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

setuptools-github-0.2.1b44.tar.gz (11.6 kB view hashes)

Uploaded Source

Built Distribution

setuptools_github-0.2.1b44-py3-none-any.whl (8.6 kB view hashes)

Uploaded Python 3

Supported by

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