-
Notifications
You must be signed in to change notification settings - Fork 1
/
HOW_TO_RELEASE
64 lines (62 loc) · 2.74 KB
/
HOW_TO_RELEASE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
How to issue a release in 15 easy steps
Time required: about an hour.
1. Ensure your main branch is synced to origin:
git pull origin main
2. Look over whats-new.rst and the docs. Make sure "What's New" is complete
(check the date!) and add a brief summary note describing the release at the
top.
3. If you have any doubts, run the full test suite one final time!
py.test
4. On the main branch, commit the release in git:
git commit -a -m 'Release vX.Y.Z'
5. Tag the release:
git tag -a vX.Y.Z -m 'vX.Y.Z'
6. Push your changes to main:
git push origin main
git push origin --tags
7. Update the stable branch (used by ReadTheDocs) and switch back to main:
git checkout stable
git rebase main
git push origin stable
git checkout main
It's OK to force push to 'stable' if necessary.
We also update the stable branch with `git cherrypick` for documentation
only fixes that apply the current released version.
8. Build and test the release package
python -m pip install --upgrade build twine
rm -rf dist
python -m build
python -m twine check dist/*
9. Add a section for the next release to doc/whats-new.rst.
10. Commit your changes and push to main again:
git commit -a -m 'Revert to dev version'
git push origin main
You're done pushing to main!
11. Issue the release on GitHub. Open https://github.com/TODO/TEMPLATE/releases;
the new release should have automatically appeared. Otherwise, click on
"Draft a new release" and paste in the latest from whats-new.rst.
12. Use twine to register and upload the release on pypi. Be careful, you can't
take this back!
twine upload dist/*
You will need to be listed as a package owner at
https://pypi.python.org/pypi/TEMPLATE for this to work.
13. Update the docs. Login to https://readthedocs.org/projects/TEMPLATE/versions/
and switch your new release tag (at the bottom) from "Inactive" to "Active".
It should now build automatically.
Make sure that both the new tagged version and 'stable' build successfully.
14. Update conda-forge.
14a. Clone https://github.com/conda-forge/TEMPLATE-feedstock
14b. Update the version number and sha256 in meta.yaml.
You can calculate sha256 with
sha256sum dist/*
14c. Double check dependencies in meta.yaml and update them to match pyproject.toml.
14d. Submit a pull request.
14e. Write a comment in the PR:
@conda-forge-admin, please rerender
Wait for the rerender commit (it may take a few minutes).
14f. Wait for CI to pass and merge.
14g. The next day, test the conda-forge release
conda search TEMPLATE
conda create -n TEMPLATE-test TEMPLATE
conda list
python -m 'import TEMPLATE'