[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2499: Poor error reporting when verlib.suggest_normalized_version returns None

Tahoe-LAFS trac at tahoe-lafs.org
Fri Sep 4 09:10:23 UTC 2015


#2499: Poor error reporting when verlib.suggest_normalized_version returns None
---------------------------+---------------------------------------------
     Reporter:  daira      |      Owner:  daira
         Type:  defect     |     Status:  new
     Priority:  normal     |  Milestone:  1.11.0
    Component:  packaging  |    Version:  1.10.1
   Resolution:             |   Keywords:  error versions verlib packaging
Launchpad Bug:             |
---------------------------+---------------------------------------------
Description changed by daira:

Old description:

> <warner> I'm trying to test tahoe (trunk) against a foolscap branch that
> I'm working on
> <warner> and I'm thwarted by packaging and setuptools, again
> [...]
> <warner> ... "PYTHONPATH=/path/to/my/foolscap/tree ./bin/tahoe" ...
> currently emits: PackagingError: could not parse actual version
> '0.8.0+12.g1fdaa3e.dirty' of foolscap from
> '/Users/warner/stuff/python/foolscap' due to TypeError: expected string
> or buffer
> <warner> Warning: version number '0.8.0-12.g1fdaa3e.dirty' found for
> dependency 'foolscap' by pkg_resources could not be parsed. The version
> found by import was '0.8.0+12.g1fdaa3e.dirty' from
> '/Users/warner/stuff/python/foolscap'. pkg_resources thought it should be
> found at '/Users/warner/stuff/python/foolscap'. The exception was
> PackagingError: could not parse '0.8.0-12.g1fdaa3e.dirty' due to
> TypeError: expected string or buffer
> <warner> I don't know where that TypeError is coming from, or what it's
> getting that isn't a string
> <warner> I thought it might have to do with some Versioneer changes I
> made at one point which cause versions to sometimes be unicode, but
> hardcoding the version doesn't make the tahoe/packaging error go away
>
> warner tries to even figure out what our 'setup.py build' does these days
> <warner> ah, found it. Tahoe's verlib.suggest_normalized_version()
> doesn't recognize Versioneer's (setuptools-compatible)
> "0.8.0+12.g123abc.dirty" as a parseable version, and returns None
> <warner> then verlib.NormalizedVersion(that) explodes when the regexp
> tries to parse the None
> <warner> delete.. it.. all..
> <warner> actually now it's reminding me of the HHGTTG scene where the
> intergalactic cruise is grounded for centuries whilst waiting the
> availability of lemon-soaked paper napkins
> <warner> the version can't be parsed, therefore refuse to run
> <warner> this version-parsing code is really getting in my way

New description:

 <warner> I'm trying to test tahoe (trunk) against a foolscap branch that
 I'm working on
 <warner> and I'm thwarted by packaging and setuptools, again
 [...]
 <warner> ... "PYTHONPATH=/path/to/my/foolscap/tree ./bin/tahoe" ...
 currently emits: PackagingError: could not parse actual version
 '0.8.0+12.g1fdaa3e.dirty' of foolscap from
 '/Users/warner/stuff/python/foolscap' due to !TypeError: expected string
 or buffer
 <warner> Warning: version number '0.8.0-12.g1fdaa3e.dirty' found for
 dependency 'foolscap' by pkg_resources could not be parsed. The version
 found by import was '0.8.0+12.g1fdaa3e.dirty' from
 '/Users/warner/stuff/python/foolscap'. pkg_resources thought it should be
 found at '/Users/warner/stuff/python/foolscap'. The exception was
 !PackagingError: could not parse '0.8.0-12.g1fdaa3e.dirty' due to
 !TypeError: expected string or buffer
 <warner> I don't know where that !TypeError is coming from, or what it's
 getting that isn't a string
 <warner> I thought it might have to do with some Versioneer changes I made
 at one point which cause versions to sometimes be unicode, but hardcoding
 the version doesn't make the tahoe/packaging error go away

 warner tries to even figure out what our 'setup.py build' does these days
 <warner> ah, found it. Tahoe's verlib.suggest_normalized_version() doesn't
 recognize Versioneer's (setuptools-compatible) "0.8.0+12.g123abc.dirty" as
 a parseable version, and returns None
 <warner> then verlib.!NormalizedVersion(that) explodes when the regexp
 tries to parse the None
 <warner> delete.. it.. all..
 <warner> actually now it's reminding me of the HHGTTG scene where the
 intergalactic cruise is grounded for centuries whilst waiting the
 availability of lemon-soaked paper napkins
 <warner> the version can't be parsed, therefore refuse to run
 <warner> this version-parsing code is really getting in my way

--

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2499#comment:1>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list