Skip to content

Commit 7f64368

Browse files
authored
Merge pull request #714 from planetlabs/release-contributing-691
Update release process and add development branch info for contributing
2 parents 504374c + bc9903e commit 7f64368

File tree

2 files changed

+82
-39
lines changed

2 files changed

+82
-39
lines changed

CONTRIBUTING.md

Lines changed: 22 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,32 @@ In the issue, provide the following:
1515
1. Installed dependencies / versions
1616
1. Error traceback
1717

18+
### Development
19+
20+
#### Development Branch
21+
22+
Most work should start with the latest instance of the `main` branch and be performed in a development branch:
23+
24+
```console
25+
git checkout main
26+
git pull
27+
git checkout -b new-branch-name
28+
```
29+
30+
#### Branch Naming
31+
32+
Please use the following naming convention for development branchs:
33+
34+
`{up to 3-word summary of topic, separated by a dash)-{ticket number}`
35+
36+
For example: `release-contributing-691` for [ticket 691](https://github.com/planetlabs/planet-client-python/issues/691).
37+
1838
### Pull Requests
1939

2040
Pull Request (PR) Requirements:
2141

2242
1. Must have a descriptive title. This populates the release changelog.
43+
1. Must provide a summary of changes and examples of usage input / output in the case of user-interface changes.
2344
1. Must include updates to relative documentation in docstrings and `docs` folder. See [Documentation](#documentation) section for information on docstring formatting and building.
2445
1. Must pass all Continuous Integration (CI) checks. See below for more information on CI checks.
2546
1. Must have at least one approval by a planet maintainer.
@@ -39,45 +60,7 @@ To minimize the feedback loop, we have configured Nox so that it can be used to
3960

4061
### Releasing
4162

42-
*Planet maintainers only*
43-
44-
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.py, release on pypi is triggered manually with the Github Action "Automatically Publish on TestPyPi".
45-
46-
###### Step 1: Release on Github
47-
48-
1. Create a PR with the following:
49-
* Update `CHANGES.txt` (**PROPOSAL**: change this to `docs/CHANGELOG.md`)
50-
* Include added, changed, depricated or removed features and bug fixes.
51-
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}`
52-
* Sort according to importance
53-
* **PROPOSAL**: Adhere to [Keep a Changelog](https://keepachangelog.com/)
54-
* Bump version in `planet/__version__.py`
55-
* **PROPOSAL**: Version number is determined by [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
56-
1. Merge the PR
57-
1. Create a new github release:
58-
* Set Tag to the version number specified in `planet/__version__.py`
59-
* Copy Description from the new entry in `docs/CHANGELOG.md`
60-
* Select "This is a pre-release" if applicable
61-
* Select "Create a discussion for this release"
62-
63-
###### Step 2: Release on pypi
64-
65-
1. Verify the test release on [test.pypi.org](https://test.pypi.org/project/planet/)
66-
1. Run the Github Action "Publish on PyPi"
67-
68-
###### Local publishing
69-
70-
Publishing to testpypi and pypi can also be performed locally with:
71-
72-
```console
73-
$ nox -s build publish-testpypi
74-
```
75-
then
76-
```console
77-
$ nox -s publish-pypi
78-
```
79-
this approach requires specifying the pypi/testpypi api token as the password at the prompt.
80-
63+
The release process is outlined in [RELEASE.md](RELEASE.md).
8164

8265
## <a name="development-tools"></a>Development Tools
8366

RELEASE.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Version Release
2+
3+
*Planet maintainers only*
4+
5+
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".
6+
7+
#### Release Naming Conventions
8+
9+
The following are the release naming conventions:
10+
11+
1. Current dev version: Bumped version of last release with `dev` added to the end
12+
* **PROPOSAL**: Version number is determined by [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
13+
1. Release version: Remove `dev` from current dev version
14+
15+
Example:
16+
* If
17+
* Previous Release Version == `1.0.0`
18+
* Then
19+
* Current Dev Version: `1.0.1dev`
20+
* Release Version: `1.0.1`
21+
* Next Dev Version: `1.0.2dev`
22+
23+
## Release Workflow
24+
25+
#### Step 1: Release on Github
26+
*NOTE: This section refers to version names given in Release Naming Conventions section above.*
27+
1. Create a release branch named `release-{Release Version}`
28+
1. Make the following changes for the release
29+
* Update `CHANGES.txt` (**PROPOSAL**: change this to `docs/CHANGELOG.md`)
30+
* Include added, changed, depricated or removed features and bug fixes.
31+
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}`
32+
* Sort according to importance
33+
* **PROPOSAL**: Adhere to [Keep a Changelog](https://keepachangelog.com/)
34+
* Update `planet/__version__.py` to Release Version
35+
1. Create a PR for the release branch (named after release branch), wait for CI to pass
36+
1. Create a new github release:
37+
* Set Tag to the version number specified in `planet/__version__.py`, aka Release Version
38+
* Copy Description from the new entry in `docs/CHANGELOG.md`
39+
* Select "This is a pre-release" if applicable
40+
* Select "Create a discussion for this release"
41+
1. Update `planet/__version__.py` to Next Dev Version
42+
1. Merge PR for release branch
43+
44+
###### Step 2: Release on pypi
45+
46+
1. Verify the test release on [test.pypi.org](https://test.pypi.org/project/planet/)
47+
1. Run the Github Action "Publish on PyPi"
48+
49+
###### Local publishing
50+
51+
Publishing to testpypi and pypi can also be performed locally with:
52+
53+
```console
54+
$ nox -s build publish-testpypi
55+
```
56+
then
57+
```console
58+
$ nox -s publish-pypi
59+
```
60+
this approach requires specifying the pypi/testpypi api token as the password at the prompt.

0 commit comments

Comments
 (0)