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

Reply via email to