Re: Re: faulty releases and pypi access [update]
Philipp von Weitershausen <[email protected]> Thu, 27 Sep 2007 14:00:12 +0200
| Newsgroups | gmane.comp.web.zope.zope3 |
|---|---|
| Message-ID | <[email protected]> |
On 27 Sep 2007, at 13:47 , Stephan Richter wrote: > On Thursday 27 September 2007 07:18, Philipp von Weitershausen wrote: >> 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. > > Of course, an additional or other approach would be to implement a > tool that > checks various things. I agree that the problems you listed are > solvable with > doing the release from the tag, but there are cases that are not > caught: > > 1. In your last case, if bajium would have used "svn switch -- > relocate" the > file would still be around and the release would work. I imagine > that most > people would use "svn switch" because making another checkout is > just a > package management mess. Why is making another checkout a package management mess? Go to /tmp or ~/temp or whatever, get the checkout, do your release stuff and delete it again. Is this so hard? Sorry, but I fail to see how this is messy. Also, regardless of what you imagine people do, if the process says "get a new, fresh checkout" then this is what people should do. If they use svn switch instead, then they're not following the process. End of story. > 2. My Trove classifier problem is not solved either using this > approach. > Contrary to what Tres hinted on in his E-mail , if there are errors > while > registering with PyPI, no new release is added. Also, "buildout > setup . > egg_info" does not verify the Trove classifiers. (Note that I think > the Trove > classifiers are only one example of something going wrong.) buildout setup? I've never seen that. I can't find any documentation on it in zc.buildout. How does it work? Does it call setup.py for every development egg in buildout.cfg? Why not just call python setup.py? Anyway, I think the Trove classifiers are an edge case. I've never seen anyone get those wrong before, to be honest. I *have* seen people get other things wrong and I think these problems would all be solved if we made it impossible to create distributions from a branch or the trunk, but made people create them from tags instead. > 3. A serious problem occurs, if you accidentally specify the wrong > package > name and version in setup.py. Both happened to me yesterday, but I > caught it > in time. I assume you mean the egg name, not the package name. I'm not sure how a tool could help you here. I suppose it could use some conventions (e.g. look at the packages inside the egg) or look at the subversion URL. > A fairly simple tool can find and report all the problems found and > offer > assistance. I think it is worth investing in one, especially since > it will > reduce my overhead since my manual checking now becomes automated. I'm not arguing against such a tool. If you are willing to come up with it, go for it. We should still have a proper *human* process first. A tool can then help us do the tedious bits.