-
-
Notifications
You must be signed in to change notification settings - Fork 11.2k
DOC: Document release procedure with a walkthrough. #8106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
f784259
to
49dbd7d
Compare
4e44300
to
3e9f324
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Chuck, looks quite useful. My main comments are about the missing step for uploading docs to docs.scipy.org and moving away from SourceForge.
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
|
||
$ git tag -s v1.11.2rc1 | ||
$ python setup.py install --user | ||
$ paver sdist |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add a short comment that sdist
starts with git clean -xdf
, so this is OK (doesn't pick up the build artifacts from the last step)
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
$ python setup.py install --user | ||
$ paver sdist | ||
$ paver write_release_and_log | ||
$ paver pdf |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should move away from SourceForge, so this is not needed anymore then. Now that we don't distribute .exe installers there's really no use for SF anymore, and it has a pretty bad reputation by now (deservedly).
What is missing is the procedure to upload pdf and html docs to docs.scipy.org, which would be good to add instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll propose dropping sourceforge on the list. We will need to edit some documentation and put a note up on sourceforge. I'll release 1.11.2 there as 1.11.2rc1 is already up.
I don't have permission to upload to docs.scipy.org, how should we deal with that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should get you access, but for now you can ping me to do the uploads. we're having a bit of an issue with that server at the moment; all the admins had misplaced their passwords. I have ssh access but no admin rights, so can't add you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instructions are:
$ make dist # check that html and pdf docs look right
$ make upload USERNAME=<username> # username with ssh access to docs.scipy.org
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, that's incorrect. Should be
$ make dist # check that html and pdf docs look right
$ make upload USERNAME=<username> RELEASE=1.11.2 # username with ssh access to docs.scipy.org
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be possible to put this into paver?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yep not difficult. The USERNAME=<username>
still needs to be input also then, so won't get much shorter.
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
the needed wheels have been build. There should be 17 of them at | ||
`<https://wheels.scipy.org>`_, 3 for Mac, 6 for Windows, and 8 for Linux. Here | ||
the wheelhouse directory is in the home directory. Then upload the | ||
wheels. You will need to sign every file separately in the process:: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a note (text is fine): PyPI will likely lose support for signing soon, so this will become simpler.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, will there be anything to replace signing, or will it rely on permissions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure yet. there was a long discussion about how signing was not very secure in practice anyway. haven't followed the details, but IIRC it'll go away with the switch from the current infrastructure to Warehouse
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
the wheelhouse directory is in the home directory. Then upload the | ||
wheels. You will need to sign every file separately in the process:: | ||
|
||
$ cd ../terryfy.git/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be cd ../terryfy
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I append .git
to git repo directories. I can change that for this documentation. This walkthrough probably needs the layout it is written for documented at the beginning.
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
|
||
The source files should be uploaded last to avoid problems:: | ||
|
||
$ cd ../numpy.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here, cd ../numpy
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
$ git checkout master | ||
$ git pull upstream master | ||
$ git checkout -b numpy-1.11.2rc1 | ||
$ gvim www/index.rst |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add a comment # edit the News section
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
Announce to the mailing list | ||
---------------------------- | ||
|
||
The release should be announced on the numpy-devel, scipy-devel, and scipy-user mailing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
numpy-discussion
not numpy-devel
. also, add python-announce
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
|
||
This assumes that you have forked `<https://github.com/scipy/scipy.org>`_:: | ||
|
||
$ cd ../scipy.org.git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cd ../scipy.org
ce92adc
to
8a5ab57
Compare
@rgommers Looks like you have stuck yourself with some work by requesting changes, as they are made but apparently you need to sign off on them. Or maybe github can't deal with rewriting history. |
Hit the button. Looks like a PR can be merged without that approval (which is good, otherwise there's a bottleneck on 1 person), it's just the color stays red until the reviewer who requested changes approved them. Still getting used to the review functionality, but overall i like it. |
except that now comments that have been addressed aren't hidden on this conversation page.... |
Could get ugly with comments... I'm not ready to merge this yet, going to add a script for the announcement and a short list of dependencies. At some point should probably cover making the maintenance branch also. Trying to keep text at a minimum though. |
This looks useful! I second the suggestion to drop Sourceforge in favor of GH releases. Here's my rough draft of a checklist for the last scipy release: https://gist.github.com/ev-br/dd5878cb66aa52e8a548fa7eece55fec |
981f9ef
to
4c543e0
Compare
good point @ev-br, +1 for wheel checksums |
0ad0f86
to
0d814f0
Compare
I'll revisit this after the 1.12.0 release. There appear to be two unresolved issues remaining
Adding the checksums to the |
Just found another issue: tarballs need to be uploaded to GitHub Releases. Now we get the automatically created tarballs from the release tags, but those are not the same (no generated .c files from cython sources for example). |
@rgommers How does one upload tarballs to GitHub Releases? |
When you go to https://github.com/numpy/numpy/releases, there's a "draft a new release" button (right top). Click that, then you can edit the description (copy from release notes) and attached files in the UI. |
0d814f0
to
e0f1eda
Compare
@rgommers Thanks. Has the password for documentation upload been found? Also, what documentation gets uploaded, HTML and PDF? |
@ev-br I don't see the checksums in the README.md on GH. Also, what do you use for the checksum, |
Other README, here: https://github.com/scipy/scipy/releases |
@ev-br Do you find the Changelog useful? I'm thinking of dropping it in favor of the PR links. I note the |
Yep, @pv has root access and I have ssh access again.
Yes, those two. See `make dist |
They're pretty much the same, and differences are probably unintentional. |
Source code links are I believe the useless autogenerated ones that Ralf mentioned. The tar.gz, zip and xz files are uploaded manuallyas binaries instead. |
Changelog I think is just historically the way people did things. No one really looks at it AFAIK. |
@rgommers So should I get access or should I ping you for that? |
I'm happy to do the uploads (ping me when needed), but getting you access may also make sense. Send @pv your ssh key I guess. |
71d2767
to
c8443d6
Compare
@rgommers Do we upload documents for pre-releases? |
no we don't |
@rgommers Could you document the changes needed in the |
c8443d6
to
b2dd8c0
Compare
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
|
||
$ pushd doc | ||
$ make dist | ||
$ make upload USERNAME=<yourname> RELEASE=1.11.2rc1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove rc1
, we don't upload pre-release docs
doc/RELEASE_WALKTHROUGH.rst.txt
Outdated
``docs.scipy.org`` front page:: | ||
|
||
$ cd ../docs.scipy.org | ||
$ gvim index.rst |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Send a PR to https://github.com/scipy/docs.scipy.org with the changes that add links to the new docs. See scipy/docs.scipy.org#7 for an example
b2dd8c0
to
4915ddd
Compare
4915ddd
to
c48939b
Compare
Also update the lists of release dependencies in doc/HOWTO_RELEASE.rst.txt. [ci skip]
c48939b
to
fc19d05
Compare
8 for Windows, and 10 for Linux. Here the wheelhouse directory is in the home | ||
directory. Then upload the wheels. You will need to sign every file separately | ||
in the process, keeping the pass phrase in the clipboard and pasting it in will | ||
make that easier:: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC twine -s signs them all, e.g. $ twine -s *macosx*whl
only asks for the passphrase once.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that also, but vaguely recall it not working. Probably need to test again. In any case, wheel-uploader
doesn't do that and when I asked @matthew-brett about it he said they could not get it to work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be a function of the twine version. I didn't realize that pip did not automatically upgrade, so was running version 1.6.5.
I'm going to merge this now for reference. The documentation section will need revision if/when we move the documents to github. |
This is a walkthrough of a release. I have found it helpful to have the commands laid out in a step by step way so that I can go through line by line. This is preliminary, but does show parts of the procedure that could be further automated and provides a place for comments as well as a handy checklist. It is intended to supplement the expanded content in
doc/HOWTO_RELEASE
.I'm hoping to foist some releases off on other folks, this should help.