diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6d608d4..a04b1f4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,8 +72,6 @@ Specifically, there are several ways to suggest or make changes to this reposito 1. Open a GitHub issue: https://github.com/manubot/manubot-ai-editor/issues 1. Create a pull request from a forked branch of the repository -### Creating a pull request - ### Pull requests After you’ve decided to contribute code and have written it up, please file a pull request. @@ -92,3 +90,17 @@ Pull request review and approval is required by at least one project maintainer We will do our best to review the code addition in a timely fashion. Ensuring that you follow all steps above will increase our speed and ability to review. We will check for accuracy, style, code coverage, and scope. + +#### Release publishing process + +Several manual and automated steps are involved with publishing `manubot-ai-editor` releases. +See below for an overview of how this works. + +Notes about [semantic version](https://en.wikipedia.org/wiki/Software_versioning#Semantic_versioning) (semver) specifications: +`manubot-ai-editor` version specifications are controlled through [`poetry-dynamic-versioning`](https://github.com/mtkennerly/poetry-dynamic-versioning) which leverages [`dunamai`](https://github.com/mtkennerly/dunamai) to create version data based on [git tags](https://git-scm.com/book/en/v2/Git-Basics-Tagging) and commits. +`manubot-ai-editor` release git tags are automatically applied through [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases) and related inferred changes from [`release-drafter`](https://github.com/release-drafter/release-drafter). + +1. Open a pull request and use a repository label for `release-` to label the pull request for visibility with [`release-drafter`](https://github.com/release-drafter/release-drafter). On merging the pull request for the release, a [GitHub Actions workflow](https://docs.github.com/en/actions/using-workflows) defined in `draft-release.yml` leveraging [`release-drafter`](https://github.com/release-drafter/release-drafter) will draft a release for maintainers. +1. The draft GitHub release will include a version tag based on the GitHub PR label applied and `release-drafter`. +1. Make modifications as necessary to the draft GitHub release, then publish the release (the draft release does not normally need additional modifications). +1. On publishing the release, another GitHub Actions workflow defined in `publish-pypi.yml` will run to build and deploy the Python package to PyPI (utilizing the earlier modified `pyproject.toml` semantic version reference for labeling the release).