[Catalog-sig] PyPI's external packages
John J Lee
jjl at pobox.com
Mon May 16 21:04:20 CEST 2011
On Mon, 16 May 2011, M.-A. Lemburg wrote:
> Just to clarify: creating an sdist really only means copying
> over the files from the MANIFEST into a temporary dir and then
> running tar or zip on the temporary directory. You can tell
> distutils to keep the temporary dir around by using the --keep-temp
> option on sdist. This will reduce the operation to just running
> the archiver on the temp dir again.
> The same can be done for bdist_* commands by having distutils
> skip the build process.
> Since I don't see how such trivial operations can affect the
> quality of the code, the discussion sounds a bit artificial :-)
Perhaps a file gets left behind the second time somehow that wasn't
present the first time, or vice versa (and MANIFEST includes that file).
If the presence or absence of that file breaks stuff, you end up uploading
a broken file.
Doing your release in an automated way makes this less likely, but anybody
who has maintained a complicated buildbot setup knows that this kind of
thing does happen.
> Note that if you want to do full testing of a release, you'll
> have to download the package from PyPI and then run the tests
> on the downloaded archive to be sure that things work - everything
> else is just preparation for this final run :-)
The upload step is interesting one from the PoV of testing because
performing it implies "this is the release, come and get it". There are
other such steps (tagging, sending announcements), but this is one of
them. So it's nice to be as confident as possible at this point that you
didn't screw it up.
More information about the Catalog-SIG