[openstack-dev] [oslo] Why are we continuing to add new namespaced oslo libs?

Thomas Goirand zigo at debian.org
Thu Jan 29 16:03:16 UTC 2015

On 01/24/2015 02:01 AM, Doug Hellmann wrote:
> On Fri, Jan 23, 2015, at 07:48 PM, Thomas Goirand wrote:
>> Hi,
>> I've just noticed that oslo.log made it to global-requirements.txt 9
>> days ago. How come are we still adding some name.spaced oslo libs?
>> Wasn't the outcome of the discussion in Paris that we shouldn't do that
>> anymore, and that we should be using oslo-log instead of oslo.log?
>> Is three something that I am missing here?
>> Cheers,
>> Thomas Goirand (zigo)
> The naming is described in the spec:
> http://specs.openstack.org/openstack/oslo-specs/specs/kilo/drop-namespace-packages.html
> tl;dr - We did it this way to make life easier for the packagers.
> Doug

Hi Doug,

Sorry for the late reply.

Well, you're not making the life of *package maintainers* more easy,
that's in fact the opposite way, I'm afraid.

The Debian policy is that Python module packages should be named after
the import statement in a source file. Meaning that if we do:

import oslo_db

then the package should be called python-oslo-db. This means that I will
have to rename all the Debian packages to remove the dot and put a dash
instead. But by doing so, if OpenStack upstream is keeping the old
naming convention, then all the requirements.txt will be "wrong" (by
wrong, I mean from my perspective as a package maintainer), and the
automated dependency calculation of dh_python2 will put package names
with dots instead of dashes.

So, what is going to happen, is that I'll have to, for each and every
package, build a dictionary of translations in debian/pydist-overrides.
For example:

# cat debian/pydist-overrides
oslo.db python-oslo-db

This is very error prone, and I may miss lots of dependencies this way,
leading to the packages having wrong dependencies. I have a way to avoid
the issue, which would be to add a Provides: python-oslo.db in the
python-oslo-db package, but this should only be considered as a
transition thing.

Also, as a side note, but it may be interesting for some: the package
python-oslo-db should have Breaks: python-oslo.db (<< OLD_VERSION) and
Replaces: (<< OLD_VERSION), as otherwise upgrades will simply fail
(because 2 different packages can't contain the same files on the

So if you really want to make our lives more easy, please do the full
migration, and move completely away from dots.

Also, I'd like to tell you that I feel very sorry that I couldn't attend
the session about the oslo namespace in Paris. I was taken by my company
to a "culture building" session all the afternoon. After reading the
above, I feel sorry that I didn't attend the namespace session instead. :(


Thomas Goirand (zigo)

More information about the OpenStack-dev mailing list