Problem with setuptools >=0.5a9 and develop command

Hi, I've been busily converting some of my smaller servers to eggs, and I've hit a problem with the develop command. From setuptools 0.5a9 onwards the develop command barfs with the following traceback: $ python2.4 setup.py develop --help Traceback (most recent call last): File "setup.py", line 33, in ? install_requires = [ File "/usr/lib/python2.4/site-packages/setuptools-0.5a10-py2.4.egg/setuptools/__init__.py", line 51, in setup File "/usr/lib/python2.4/distutils/core.py", line 135, in setup ok = dist.parse_command_line() File "/usr/lib/python2.4/site-packages/setuptools-0.5a10-py2.4.egg/setuptools/dist.py", line 107, in parse_command_line File "/usr/lib/python2.4/distutils/dist.py", line 432, in parse_command_line args = self._parse_command_opts(parser, args) File "/usr/lib/python2.4/site-packages/setuptools-0.5a10-py2.4.egg/setuptools/dist.py", line 385, in _parse_command_opts File "/usr/lib/python2.4/distutils/dist.py", line 530, in _parse_command_opts parser.set_negative_aliases(negative_opt) File "/usr/lib/python2.4/distutils/fancy_getopt.py", line 143, in set_negative_aliases self._check_alias_dict(negative_alias, "negative alias") File "/usr/lib/python2.4/distutils/fancy_getopt.py", line 125, in _check_alias_dict raise DistutilsGetoptError, \ distutils.errors.DistutilsGetoptError: invalid negative alias 'always-unzip': option 'always-unzip' not defined Looking at commands/develop.py I notice that it's the only command which sets 'command_consumes_arguments = False', and it also doesn't override the negative_opt dict. I tried setting 'negative_opt = {}' and it started working again. So this patch "fixes" the issue though I don't know the internals of distutils/setuptools to tell you exactly why: --- /tmp/setuptools-0.5a10/setuptools/command/develop.py 2005-07-06 19:15:52.000000000 +0100 +++ setuptools/command/develop.py 2005-07-12 11:50:04.000000000 +0100 @@ -21,6 +21,8 @@ boolean_options = [ 'multi-version', 'exclude-scripts', 'always-copy', 'uninstall' ] + + negative_opt = {} command_consumes_arguments = False # override base Is anyone else seeing this problem? I've reproduced it on a debian linux box and my apple laptop. cheers, Michael

At 12:01 PM 7/12/2005 +0100, Michael Twomey wrote:
Looking at commands/develop.py I notice that it's the only command which sets 'command_consumes_arguments = False', and it also doesn't override the negative_opt dict. I tried setting 'negative_opt = {}' and it started working again.
Yeah, it looks like I broke "develop" when I added the '--always-unzip' option to the "easy_install" command (which "develop" subclasses). That's the sucky thing about not having automated tests. Thanks for the bug report, and your fix is indeed the correct one. It never occurred to me that adding an option to the base class would affect the subclass that way. I'm pushing out 0.5a11 now to fix this. Sorry about that.

Great, thanks. Michael On 7/12/05, Phillip J. Eby <pje@telecommunity.com> wrote:
At 12:01 PM 7/12/2005 +0100, Michael Twomey wrote:
Looking at commands/develop.py I notice that it's the only command which sets 'command_consumes_arguments = False', and it also doesn't override the negative_opt dict. I tried setting 'negative_opt = {}' and it started working again.
Yeah, it looks like I broke "develop" when I added the '--always-unzip' option to the "easy_install" command (which "develop" subclasses). That's the sucky thing about not having automated tests. Thanks for the bug report, and your fix is indeed the correct one. It never occurred to me that adding an option to the base class would affect the subclass that way.
I'm pushing out 0.5a11 now to fix this. Sorry about that.
participants (2)
-
Michael Twomey
-
Phillip J. Eby