Skip to content

Commit 254ced7

Browse files
versioning guidance (#1118)
* scratch * working on release lifecycle planning and statements * remove scratch notes * formatting * Fix typo. * doc updates * fixing typo
1 parent 1a73c71 commit 254ced7

File tree

2 files changed

+88
-9
lines changed

2 files changed

+88
-9
lines changed

CONTRIBUTING.md

+25-4
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,40 @@ document explains how to contribute successfully.
55

66
## Workflows
77

8-
### Development
8+
### Branches
99

10-
#### Development Branch
10+
#### Mainline Branches
1111

12-
The default branch is always `main` and should be always considered in-development. Feature enhancements, bug fixes, and other maintenance should be performed in a development branch, starting with the appropriate base branch and merged back into that branch:
12+
The default branch is always `main`, and will correspond to the current stable major release version.
13+
This branch should be considered in-development but with tests and other build steps kept in a passing
14+
and stable state.
15+
16+
Branches for future major releases will be named `main-X.0-dev` where `X.0` is the next major
17+
release version. These branches will be kept current with the current stable major release
18+
insofar as is practical within the scope of changes targeted to the next major release. Per semantic
19+
versioning, major releases do not guarantee backwards compatibility. Stability is not guaranteed
20+
during the development cycle.
21+
22+
During the development cycle of a new major release, `RELEASE-PLANNING-X.0.md` should be maintained
23+
with a brief summary of the major and breaking changes underpinning the reason for the upcoming
24+
major release version. Upon release, this content is expected to be folded into package documentation
25+
as appropriate, and this file should be removed.
26+
27+
When a new major release is ready, the development mainline branch will be renamed to `main`, and the
28+
old mainline branch will be renamed to `maint-X.0` and will be used as the base for maintenance releases.
29+
30+
#### Development Branches
31+
32+
Feature enhancements, bug fixes, and other maintenance should be performed in a development
33+
branch, starting with the appropriate base branch and merged back into that branch:
1334

1435
```console
1536
git checkout main
1637
git pull
1738
git checkout -b new-branch-name
1839
```
1940

20-
#### Branch Naming
41+
#### Development Branch Naming
2142

2243
Branch names should describe the work performed within the branch, and include a ticket number if applicable. For example, a branch that corrects typos in documentation and is not ticketed could be named `fix-documentation-typos`, and a branch that adds a new feature and is ticketed could be named `new-feature-123` (where 'new-feature' is the name of the feature and '-123' is the ticket number).
2344

README.md

+63-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,69 @@ remaining Planet APIs: [basemaps](https://docs.planet.com/develop/apis/basemaps/
2323

2424
## Versions and Stability
2525

26-
The SDK follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and therefore only major releases should break compatibility. Minor versions may include new functionality and patch versions address bugs or trivial changes (like documentation).
27-
28-
If depending upon official packages from PyPI, a developer should feel comfortable specifying `planet == 2.*` unless depending on a specific feature introduced at a minor version, in which case `planet == 2.x.*` (where x is the minor version of the new feature) should suffice.
29-
30-
The default branch is always `main` and should be considered in-development but with tests and other build steps succeeding.
26+
The SDK follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and therefore only major releases
27+
should break compatibility. Minor versions may include new functionality and
28+
patch versions address bugs or trivial changes (like documentation).
29+
30+
Packages will be released to [PyPi / Planet](https://pypi.org/project/planet/)
31+
with semantic version identifiers that comply with [PEP 440](https://peps.python.org/pep-0440/).
32+
33+
The Semantic Versioning stability scheme only applies to APIs that
34+
are considered part of the public API. This includes library APIs exported
35+
from the `planet` package and documented in our
36+
[SDK developer documentation](https://planet-sdk-for-python-v2.readthedocs.io/en/latest/),
37+
and the `planet` CLI interface used for scripts. It does not include
38+
library interfaces below the top level `planet` Python package which are
39+
considered internal and subject to change without notice.
40+
41+
SDK semantic versioning does not apply to the underlying
42+
[Planet APIs](https://docs.planet.com/develop/apis/),
43+
which follow their own independent version and release lifecycles.
44+
45+
If depending upon official packages from PyPI, a developer should feel
46+
comfortable specifying `planet == 2.*` unless depending on a specific feature
47+
introduced at a minor version, in which case `planet == 2.x.*` (where x is the
48+
minor version of the new feature) should suffice.
49+
50+
## Versions and Support Status
51+
52+
Major versions are supported according to their designated support status,
53+
as defined below. Planet Labs PBC makes no formal commitment
54+
to a specific schedule, but will make every effort to provide reasonable
55+
notice of upcoming changes to the support status of major versions.
56+
57+
* **`development`** - Unstable. Under active development. Not recommended
58+
for production use. API stability not guaranteed. New features from active
59+
versions will be ported forward to the extent allowed by the scope of the
60+
new major version under development.
61+
* **`active`** - Actively maintained and supported. New features and bug fixes.
62+
Suitable for production use. API stability guaranteed according to semantic
63+
versioning, but subject to changes in the underlying Planet APIs.
64+
* **`maintenance`** - Critical bug fixes only.
65+
* **`end-of-life`** - No longer supported. Software packages will remain available.
66+
* **`removed`** - No longer available. Removed from distribution channels.
67+
68+
### Python Version Support
69+
`Active` minor versions will support Python versions that have not reached
70+
end-of-life at the time of release.
71+
72+
See https://devguide.python.org/versions/ for current Python versions.
73+
74+
## Branches
75+
76+
The default branch is always `main`, and will correspond to the current stable
77+
major release version. This branch should be considered in-development but
78+
with tests and other build steps kept in a passing state.
79+
80+
See [CONTRIBUTING.md](CONTRIBUTING.md#branches) for more information on branches.
81+
82+
##### Current Mainline Versions and Branches
83+
84+
| Version | Status | Branch | Documentation | Initial Release | End of Active Development | End of Maintenance | Notes |
85+
|---------|---------------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|-----------------|---------------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------|
86+
| 3.x | `development` | [`main-3.0-dev`](https://github.com/planetlabs/planet-client-python/tree/main-3.0-dev) | TBD | TBD | TBD | TBD | See [RELEASE-PLANNING-X.0.md](https://github.com/planetlabs/planet-client-python/tree/main-3.0-dev/RELEASE-PLANNING-3.0.md). |
87+
| 2.x | `active` | [`main`](https://github.com/planetlabs/planet-client-python/tree/main) | [Planet Labs Python Client v2 on Readthedocs.io](https://planet-sdk-for-python-v2.readthedocs.io/en/latest/) | April 2023 | TBD | TBD | |
88+
| 1.x | `end-of-life` | [`v1`](https://github.com/planetlabs/planet-client-python/tree/v1) | [Planet Labs Python Client v1 on Github.io](https://planetlabs.github.io/planet-client-python/) | April 2017 | April 2023 | TBD | |
3189

3290
## Installation and Quick Start
3391

0 commit comments

Comments
 (0)