[Zope3-dev] Re: faulty releases and pypi access [update]

Philipp von Weitershausen philipp at weitershausen.de
Thu Sep 27 07:18:03 EDT 2007


On 27 Sep 2007, at 13:07 , Martijn Faassen wrote:
> On 9/27/07, Tres Seaver <tseaver at palladion.com> wrote:
> [snip]
>> Further, anybody who finds the effort of creating a "fresh' checkout
>> bevore making a release too burdensome should consider themselves
>> self-selected out of the "release manager" pool.
>>
>> I'm *not* kidding about that:  taking shortcuts durng the release
>> process transfers pain / cost to everyone downstream.
>
> While I fully agree that releases should be done with care and
> attention, and that doing bad releases creates pain/cost for
> everybody, this line of argumentation can be used to back up any form
> of complication to the release process. :)
>
> Let's focus on the reasons for each step and keep the discussion at
> that level, please? I think it's useful if people ask "is that really
> necessary?" for steps in the release process. Just weigh the pros and
> cons. I'd like to understand more about the trouble Philipp ran into
> doing releases from the original checkout and then tagging.

I've summarized this in another thread [1], but I'll be happy to  
elaborate here:

* People actually forget to make the tag. This happened to Roger the  
other day. It happened to Jim before with zc.buildout. I'm not  
mentioning their names to point fingers. I'm just pointing out that  
people who've been with us for a long time forget. If the process  
said they should actually check out the tag, they'll hardly forget.

* People create the wrong tags or tags in the wrong places. This  
happened to Jim the other day with ZODB 3.7.1. Again, I'm not blaming  
him. But I believe if he had to check out the tag to make the  
release, he would've caught his mistake.

* People forget to clean up the 'build' directory. This happened to  
me the other day. Let me elaborate: I have a trunk checkout of  
zopeproject that I use to develop it. Whenever I wanted to make a  
release, I'd just prepare it, tag it and generate the distributino  
from the trunk checkout. The problem was that I had moved stuff  
around, but the old stuff was still making it to the egg because it  
still sat around in the 'build' direcdtory that distutils leaves. I  
know it sucks that distutils doesn't clean up after itself, but  
that's just the way it is. If you're forced to use a clean checkout,  
this can't happen.

* People forget to check in important files. This happened to Baiju  
the other day. He created a CHANGES.txt file and referred to it from  
setup.py. The only problem is that he forgot to check it in. It can  
happen, I'm not blaming him. The problem is that setuptools looks at  
which files are in svn in order to create the archive manifest. So  
CHANGES.txt wasn't in the tarball and the egg was completely  
uninstallable (because setup.py couldn't be executed since  
CHANGES.txt was missing).

These are four separate cases where I've actually witnessed myself or  
other people mess up. We're forgetful, we can't do anything about  
that. We can, however, force us to catch our mistakes. I believe that  
if we made everybody create the tarballs from the tag, it would  
improve the situation a lot.

I'm beginning to see a consensus that we should make it impossible to  
create distributions from the trunk or a release branch.


[1] http://mail.zope.org/pipermail/zope3-dev/2007-September/023724.html




More information about the Zope3-dev mailing list