Phillip J. Eby wrote:
At 03:08 PM 8/10/2005 -0500, Ian Bicking wrote:
I don't think --tag-svn-revision should apply to dependencies. Maybe it should even be an error if you try to use it on a package that isn't a subversion repository.
On the other hand, I don't suppose it would hurt to just ignore it if it doesn't apply. I'm uneasy about dependencies, of course, but then again, where's the harm there either?
The harm in adding the revision there? Not that great, I guess. It's kind of a stop-gap measure either way; modifying setup.cfg in the repository itself seems like the right way to handle the versions.
The biggest potential harm of --tag-svn-revision is that it makes things a *higher* revision number by default. I.e. "1.2-r27" is a higher version number than "1.2", so if you're using a strategy where you use the *next* version number in your svn version of setup.py, then you're going to have problems when the official version is released. In other words, if svn's setup.py says "1.2" is the current version, but that's the version you're *developing* (as opposed to enhancing), then the numbering works out wrong.
True. I'm never sure what version I should use in a repository. The next version isn't true, the last version isn't true. "next_version-DEV" is probably right, I guess. Nevertheless, it's still possible to use --tag-build to fix version numbers in case of problems. It's not very sticky, though; it'd be easy to forget how it should be properly applied, or how it was applied in the past. The ability to list packages would help resolve what problems do occur; especially listed in the order pkg_resources thinks they go in, showing which one is active, etc. The main reason for stuff like this is to make it possible to use easy_install.py for an entire deployment without requiring all the software to be written with setuptools in mind. So even if it is suboptimal, it's still of some use. Another option might be something like "python -m setuptools setup.py" which would run setup.py with setuptools. But then this is really just what easy_install does, except with a larger command set (egg_info in particular). "easy_install.py --setup checkout-dir/ setuptools_commands..." perhaps? -- Ian Bicking / ianb@colorstudy.com / http://blog.ianbicking.org