Skip to content
This repository was archived by the owner on May 21, 2024. It is now read-only.

Commit 752dfa5

Browse files
authored
Update release instructions (#373)
* Add release instructions * PR feedback * Add steps to push to test-pypi * More feedback: test-release, and deploying latest * Update release instructions * Mention CHANGELOG.md
1 parent fdf9d07 commit 752dfa5

File tree

1 file changed

+40
-8
lines changed

1 file changed

+40
-8
lines changed

contributing.md

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,43 @@ make docs
119119

120120
## Releasing
121121

122-
To make a new release, from the master branch:
123-
124-
* Rebuild docs to make sure they're in sync
125-
* Update `CHANGELOG.md` and `version.json`
126-
127-
```bash
128-
make release
129-
```
122+
Our current process for publishing a release of python-pachyderm consists of the following steps:
123+
124+
#### Validate the release
125+
- [ ] Ensure that `version.json` contains the `python-pachyderm` version to be released
126+
- If `version.json` contains an already-released version of python-pachyderm, update it in a PR.
127+
- [ ] Ensure the protobufs are up-to-date
128+
- Make sure `version.json` references the most recent compatible release of Pachyderm
129+
- Run `make src/python_pachyderm/proto/v2`, and make sure that the generated code is unchanged
130+
- If it's outdated, update it in a PR
131+
- [ ] Ensure the docs are up-to-date
132+
- Rebuild the docs (with `make docs`), and make sure the generated docs are unchanged
133+
- Merge any changes in a PR
134+
- [ ] Ensure `CHANGELOG.md` is up-to-date
135+
- Commit any additional change notes in a PR.
136+
137+
#### Test everything
138+
This is mostly necessary for major releases, but it always reduces risk.
139+
- [ ] Deploy the version of pachyderm that matches `version.json` (the latest compatible release) and run our test suite.
140+
- Make sure to install a matching version of `pachctl`, as e.g. python-pachyderm's `Mount()` implementation depends on `pachctl`
141+
- [ ] Run `make lint` and ensure there are no errors
142+
- [ ] Ensure that all examples still pass:
143+
- [ ] All examples in the `examples/` dir (they must be run manually—`tox example` only runs `examples/opencv`)
144+
- [ ] [Pachyderm's spouts101 example](github.com/pachyderm/pachyderm/tree/master/examples/spouts101), which should match `examples/spouts101` in this repo, but it's good to confirm
145+
146+
#### Make Pypi release
147+
- [ ] Run `make test-release`, which will checkout the release branch, build a package, and push it to test-pypi.
148+
- Proofread the release page, as pypi doesn't allow you to modify a release after pushing it.
149+
- [ ] Run `make release` which will re-build python-pachyderm and push a final version to pypi.
150+
151+
#### Make GitHub release
152+
- [ ] Go to http://github.com/pachyderm/python-pachyderm and create a new GitHub release pointing at the Git commit that was just pushed to pypi
153+
- Include any notes added to `CHANGELOG.md` for this release
154+
- [ ] (Only when releasing from `master`) Create a new branch for patch releases called `vA.B.x`. For example, if releasing 1.0.0, create a new `v1.0.x` branch to hold future patch-sized changes made to 1.0.0.
155+
156+
#### Update versions for next release
157+
- [ ] In the patch release branch (e.g. `v1.0.x`), create a PR to update the python-pachyderm version in `version.json` to contain the next _patch_ release (e.g. 1.0.1)
158+
- This is the python-pachyderm version that is currently in development in that branch.
159+
- [ ] (Only when releasing from `master`) In `master`, create a PR to update the python-pachyderm version in `version.json` to contain the next _minor_ release (e.g. 1.1.0)
160+
- This is the python-pachyderm version that is currently in development in `master`.
161+
- [ ] (Only when releasing from `master`) In the new patch release branch (e.g. `v1.0.x`), create a PR (or add to the above PR) to update `make release` so that it checks out `v1.0.x` instead of `master` when releasing from this branch.

0 commit comments

Comments
 (0)