diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-09-18 22:50:03 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-09-18 22:50:03 -0700 |
commit | 21186094693c7aea7e507180b53481b1b8f9ce0b (patch) | |
tree | 34fde17d3567ede24a3c347d71a6e5a9035befea /extra/release_process.md | |
parent | 65f88b72165d9ea0e554eb2d403939f397e0f5bb (diff) | |
download | fatcat-21186094693c7aea7e507180b53481b1b8f9ce0b.tar.gz fatcat-21186094693c7aea7e507180b53481b1b8f9ce0b.zip |
document release publish processv0.3.1
Diffstat (limited to 'extra/release_process.md')
-rw-r--r-- | extra/release_process.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/extra/release_process.md b/extra/release_process.md new file mode 100644 index 00000000..77e28035 --- /dev/null +++ b/extra/release_process.md @@ -0,0 +1,48 @@ + +## Fatcat Release Process + +This roughly describes the process of pushing a new minor (or patch) release of +Fatcat to various targets. + +The order of operations here hasn't been reviewed yet, this is mostly just a +checklist of things that need to happen. Eg, maybe the tag shouldn't be created +until after client libraries have been pushed and the project deployed +successfully. + +- merge/push/deploy any outstanding patches ahead of the version bump +- update the version number in fatcat-openapi2.yml +- codegen the rust libraries +- edit both the `fatcat` and `fatcat-openapi` Cargo.toml files and update the + version numbers. Make sure you commit the `fatcat-openapi` one before + re-codegen or it will get clobbered (!) +- codegen python client; may need to hand-tweak setup.py and README changes +- edit `python_openapi_client/fatcat_openapi_client/__version__.py` and set the + correct version number +- under `python`, wipe either the entire local `.venv` or just the + `fatcat_openapi_client` library copy. quit any pipenv shells, and re-run + `pipenv --install`. +- grep the repository with the old version number to see if anything was missed + (you should expect at least CHANGELOG to match) +- run all the tests locally and commit everything +- update CHANGELOG.md in it's own commit +- push for remote CI to run, eg on a separate branch. don't proceed until CI + runs successfully! +- after CI passes, locally merge to master, then tag the CHANGELOG commit with + the new version number. sign the tag. this looks like `git tag v0.1.2 -s` +- push master and the tags to all notable git remotes +- deploy changes, remembering to rebuild rust and pipenv + +Great! Now we can push new python package (`fatcat-openapi-client`): + +- `rm -rf dist/` +- `python3 setup.py sdist bdist_wheel` +- Upload to test.pypi.org first, check that things look ok: + `python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*` +- Then real pypi.org: + `python3 -m twine upload dist/*` + +and rust (`fatcat-openapi`): + +- `cd rust/fatcat-openapi/` +- try first with: `cargo publish --dry-run` +- then: `cargo publish` |