You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 21, 2024. It is now read-only.
Copy file name to clipboardExpand all lines: contributing.md
+40-8Lines changed: 40 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,11 +119,43 @@ make docs
119
119
120
120
## Releasing
121
121
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