-
Notifications
You must be signed in to change notification settings - Fork 98
Update release process and add development branch info for contributing #714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
f572d31
c44009f
0b56d8b
c219095
bc9903e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| # Version Release | ||
|
|
||
| *Planet maintainers only* | ||
|
|
||
| Releasing is a two-step process: (1) releasing on Github and test.pypi and (2) releasing to pypi. Releasing on Github will automatically trigger a release on test.pypi via a Github Action. Following manual confirmation of a successful and satisfactory release on test.pypi, release on pypi is triggered manually with the Github Action "Automatically Publish on TestPyPi". | ||
|
|
||
| #### Release Naming Conventions | ||
|
|
||
| The following are the release naming conventions: | ||
|
|
||
| 1. Current dev version: Bumped version of last release with `dev` added to the end | ||
| * **PROPOSAL**: Version number is determined by [Semantic Versioning](https://semver.org/spec/v2.0.0.html) | ||
| 1. Release version: Remove `dev` from current dev version | ||
|
|
||
| Example: | ||
| * If | ||
| * Previous Release Version == `1.0.0` | ||
| * Then | ||
| * Current Dev Version: `1.0.1dev` | ||
| * Release Version: `1.0.1` | ||
| * Next Dev Version: `1.0.2dev` | ||
|
|
||
| ## Release Workflow | ||
|
|
||
| #### Step 1: Release on Github | ||
| *NOTE: This section refers to version names given in Release Naming Conventions section above.* | ||
| 1. Create a release branch named `release-{Release Version}` | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. new |
||
| 1. Make the following changes for the release | ||
| * Update `CHANGES.txt` (**PROPOSAL**: change this to `docs/CHANGELOG.md`) | ||
| * Include added, changed, depricated or removed features and bug fixes. | ||
| A list of merged PRs and their titles since the last release can be obtained with `git log <RELEASE_TAG>..HEAD | awk '/Merge pull request/{print;getline;getline;print}` | ||
| * Sort according to importance | ||
| * **PROPOSAL**: Adhere to [Keep a Changelog](https://keepachangelog.com/) | ||
| * Update `planet/__version__.py` to Release Version | ||
| 1. Create a PR for the release branch (named after release branch), wait for CI to pass | ||
| 1. Create a new github release: | ||
| * Set Tag to the version number specified in `planet/__version__.py`, aka Release Version | ||
| * Copy Description from the new entry in `docs/CHANGELOG.md` | ||
| * Select "This is a pre-release" if applicable | ||
| * Select "Create a discussion for this release" | ||
| 1. Update `planet/__version__.py` to Next Dev Version | ||
| 1. Merge PR for release branch | ||
|
Comment on lines
+41
to
+42
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. new
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jreiberkyle seems good to me. This process is more careful about the state of the main branch than I usually am, and that's good.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Great! This is inspired by the OpenLayers release process (and succinct overview by @tschaub). I was glad to have a template to work from. |
||
|
|
||
| ###### Step 2: Release on pypi | ||
|
|
||
| 1. Verify the test release on [test.pypi.org](https://test.pypi.org/project/planet/) | ||
| 1. Run the Github Action "Publish on PyPi" | ||
|
|
||
| ###### Local publishing | ||
|
|
||
| Publishing to testpypi and pypi can also be performed locally with: | ||
|
|
||
| ```console | ||
| $ nox -s build publish-testpypi | ||
| ``` | ||
| then | ||
| ```console | ||
| $ nox -s publish-pypi | ||
| ``` | ||
| this approach requires specifying the pypi/testpypi api token as the password at the prompt. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is a new section