Hi Victor, >>> 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.
This is exactly what we've been doing in Icehouse (and are going to continue to do this in Juno). In terms of oslo-incubator it's called 'graduation' of an incubator's part - it becomes a full-fledged library distributed via PyPi. >>> 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. Sure! But I'd say even now one can use/sync only the particular modules of oslo-incubator he/she needs. Though, I agree, releasing these modules as libraries would simplify reusing of the code. >>> 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? Agreed. I can't say for other libraries, but in oslo.db we've been contributing features and bug fixes to SQLAlchemy, alembic and SQLAlchemy-migrate. But we are still going to have some code, that won't be merged by upstream, just because it covers a too specific use case for them (e.g. 'deleted' column which is provided by one of oslo.db models mixin). Thanks, Roman On Tue, Apr 8, 2014 at 1:35 PM, Victor Stinner <[email protected]> wrote: > (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 > > _______________________________________________ > OpenStack-dev mailing list > [email protected] > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev _______________________________________________ OpenStack-dev mailing list [email protected] http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
