[Python-modules-team] Bug#620469: Bug#620496

Clint Byrum clint at ubuntu.com
Sun Apr 3 16:53:23 UTC 2011


Excerpts from Oxan van Leeuwen's message of Sun Apr 03 05:43:27 -0700 2011:
> # wheezy not affected as this bug blocks python-gearman from migrating
> tag 620469 + sid
> thanks
> 
> I see three solutions for this problem:
> 
> (A) Add Conflicts against each other.
>     This prevents users from installing the packages together, which normally
>     isn't needed as they provide the same functionality. It isn't optimal
>     however, as in the future it might be possible that there are programs that
>     depend on one of these libraries and that need to be co-installable.
> 
> (B) Rename the python module in one of the packages.
>     This would be the best solution, but it is a backwards-incompatible break
>     and every reverse-dependency needs to be patched to use the renamed API.
> 
> (C) Drop the __init__.py from one of the packages.
>     The two modules are actually co-installable and usable, as they don't use
>     the same namespace: python-gearman.libgearman uses gearman.libgearman,
>     while python-gearman uses just gearman. The __init__.py from
>     python-gearman can't be dropped as it imports the primary API into the
>     gearman namespace. python-gearman.libgearman seems to be functional without
>     the __init__.py, but I'm not 100% sure. Also having two packages providing
>     the same Python package is confusing.
> 

Oxan, thanks for the quick response.

I opened this issue upstream:

https://github.com/Yelp/python-gearman/issues/#issue/11

I think the way to go is to drop __init__.py from
python-gearman.libgearman, and make it depend on python-gearman, since
it is a sub-module of the gearman namespace.

I haven't been able to make gearman.libgearman work properly without
the __path__ changes, though I'm not entirely sure why as I'm sort of a
python extension novice. If anyone *can* make that work, then we don't
even need the change suggested above.

> I think the best we can do at this point is A, given the side-effects of the
> other options. I'll implement that in python-gearman (which should be enough)
> if nobody objects.

Yeah I was thinking of doing the same in the python-gearman.libgearman,
but I think since its temporary we can just leave it in python-gearman
until the necessary changes can be made for python-gearman.libgearman
to depend on python-gearman.

With the Conflicts on one side, I think we can close this bug, and open
a new wishlist bug to implement the dependency relationship.





More information about the Python-modules-team mailing list