[openstack-dev] [oslo] Split Oslo Incubator?

Victor Stinner victor.stinner at enovance.com
Tue Apr 8 10:35:32 UTC 2014


(Follow-up of the "[olso] use of the "oslo" namespace package" thread)

Hi,

The openstack.common module also known as "Oslo Incubator" or "OpenStack 
Common Libraries" has 44 dependencies. IMO we reach a point where it became 
too huge. Would it be possible to split it into smaller parts and distribute 
it on PyPI with a stable API? I don't know Olso Incubator enough to suggest 
the best granularity. A hint can be the number of dependencies.

Sharing code is a good idea, but now we have SQLAchmey, WSGI, cryptographic, 
RPC, etc. in the same module. Who needs all these features at once? Olso 
Incubator must be usable outside OpenStack.


Currently, Oslo Incubator is installed and updated manually using a 
"update.sh" script which copy ".py" files and replace "openstack.common" with 
"nova.openstack.common" (where nova is the name of the project where Oslo 
Incubator is installed).

I guess that update.sh was written to solve the two following points, tell me 
if I'm wrong:

 - unstable API: the code changes too often, whereas users don't want to 
update their code regulary. Nova has maybe an old version of Olso Incubator 
because of that.

 - only copy a few files to avoid a lot of dependencies and copy useless files

Smaller modules should solve these issues. They should be used as module: 
installed system-wide, not copied in each project. So fixing a bug would only 
require a single change, without having to "synchronize" each project.


Yesterday, I proposed to add a new time_monotonic() function to the timeutils 
module. We asked me to enhance existing modules (like Monotime).

We should now maybe move code from Oslo Incubator to "upstream" projects. For 
example, timeutils extends the iso8601 module. We should maybe contribute to 
this project and replace usage of timeutils with directy call to iso8601?

Victor



More information about the OpenStack-dev mailing list