Metadata-Version: 2.1
Name: autopub
Version: 1.0.0a11
Summary: Automatic package release upon pull request merge
Home-page: https://github.com/autopub/autopub
License: AGPL-3.0
Keywords: automatic,packaging,publish,release,version
Author: Justin Mayer
Author-email: entroP@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Software Distribution
Classifier: Topic :: System :: Systems Administration
Provides-Extra: github
Requires-Dist: build (>=0.10.0,<0.11.0)
Requires-Dist: dunamai (>=1.17.0,<2.0.0)
Requires-Dist: githubrelease (>=1.5.9,<2.0.0) ; extra == "github"
Requires-Dist: httpx (==0.16.1) ; extra == "github"
Requires-Dist: python-frontmatter (>=1.0.0,<2.0.0)
Requires-Dist: rich (>=12.5.1,<13.0.0)
Requires-Dist: time-machine (>=2.13.0,<3.0.0)
Requires-Dist: tomlkit (>=0.5,<2.0)
Requires-Dist: twine (>=4.0.2,<5.0.0)
Requires-Dist: typer (>=0.9.0,<0.10.0)
Project-URL: Issue Tracker, https://github.com/autopub/autopub/issues
Project-URL: Repository, https://github.com/autopub/autopub
Description-Content-Type: text/markdown

# AutoPub

[![Build Status](https://img.shields.io/circleci/build/github/autopub/autopub)](https://circleci.com/gh/autopub/autopub) [![PyPI Version](https://img.shields.io/pypi/v/autopub)](https://pypi.org/project/autopub/)

AutoPub enables project maintainers to release new package versions to PyPI by merging pull requests.

## Environment

AutoPub is intended for use with continuous integration (CI) systems such as [GitHub Actions][], [CircleCI][], or [Travis CI][]. Projects used with AutoPub are built via [build][] and published via [Twine][]. Contributions that add support for other CI and build systems are welcome.

## Configuration

AutoPub settings can be configured via the `[tool.autopub]` table in the target project’s `pyproject.toml` file. Required settings include Git username and email address:

```toml
[tool.autopub]
git-username = "Your Name"
git-email = "your_email@example.com"
```

## Release Files

Contributors should include a `RELEASE.md` file in their pull requests with two bits of information:

* Release type: major, minor, or patch
* Description of the changes, to be used as the changelog entry

Example:

    Release type: patch

    Add function to update version strings in multiple files.

## Usage

The following `autopub` sub-commands can be used as steps in your CI flows:

* `autopub check`: Check whether release file exists.
* `autopub prepare`: Update version strings and add entry to changelog.
* `autopub build`: Build the project.
* `autopub commit`: Add, commit, and push incremented version and changelog changes.
* `autopub githubrelease`: Create a new release on GitHub.
* `autopub publish`: Publish a new release.

For systems such as Travis CI in which only one deployment step is permitted, there is a single command that runs the above steps in sequence:

* `autopub deploy`: Run `prepare`, `build`, `commit`, `githubrelease`, and `publish` in one invocation.


[GitHub Actions]: https://github.com/features/actions
[CircleCI]: https://circleci.com
[Travis CI]: https://travis-ci.org
[build]: https://pypa-build.readthedocs.io
[Twine]: https://twine.readthedocs.io/

