openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #07005
Re: openstack-common
Can't wait for openstack-common to be usable for Quantum as well. Here is
our write-up of code in Quantum that seems generic (and is likely
"borrowed" from other openstack project):
http://wiki.openstack.org/QuantumOpenstackCommon
Would love to get much of this into openstack-common.
Dan
On Thu, Jan 26, 2012 at 10:58 AM, Joshua Harlow <harlowja@xxxxxxxxxxxxx>wrote:
> Yippe common code that people can share! Win!
>
>
> On 1/26/12 8:32 AM, "Mark McLoughlin" <markmc@xxxxxxxxxx> wrote:
>
> Hey,
>
> On Tue, 2012-01-03 at 16:57 +0000, Mark McLoughlin wrote:
>
> > The openstack-common project intends to produce a python library
> containing
> > infrastructure code shared by OpenStack projects. The APIs provided by
> the
> > project should be high quality, stable, consistent and generally useful.
>
> Jason and I have come up with a bit of a compromise on this front:
>
> http://wiki.openstack.org/CommonLibrary#Incubation
>
> I've appended the text below. We've started with melange:
>
> http://review.openstack.org/3465
>
> While we still think that we should be able to make API compat
> guarantees about the openstack-common library, there needs to be a
> stepping stone for new APIs which are shared between multiple projects
> but aren't yet up to criteria required for inclusion in the library.
>
> This is still evil copy-and-paste, but it's managed evilness :-)
>
> Thanks,
> Mark.
>
> == Incubation ==
>
> openstack-common also provides a process for incubating APIs which,
> while they are shared between multiple OpenStack projects, have not yet
> matured to meet the criteria described above.
>
> APIs which are incubating can be copied into individual openstack
> projects from openstack-common using the {{{update.py}}} script
> provided. An {{{openstack-common.conf}}} configuration file in the
> project describes which modules to copy and where they should be copied
> to e.g.
>
> $> git clone .../melange
> $> cd melange
> $> cat openstack-common.conf
> [DEFAULT]
>
> # The list of modules to copy from openstack-common
> modules=config,exception,extensions,utils,wsgi
>
> # The base module to hold the copy of openstack.common
> base=melange
>
> and then, to copy the code across:
>
> $> cd ../
> $> git clone .../openstack-common
> $> cd openstack-common
> $> python update.py ../melange
> Copying the config,exception,extensions,utils,wsgi modules under the
> melange module in ../melange
>
> Projects which are using such incubating APIs must avoid ever modifying
> their copies of the code. All changes should be made in openstack-common
> itself and copied into the project.
>
> Developers making changes to incubating APIs in openstack-common must be
> prepared to update the copies in the projects which have previously
> imported the code.
>
> Incubation shouldn't be seen as a long term option for any API - it is
> merely a stepping stone to inclusion into the openstack-common library
> proper.
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks: www.nicira.com
twitter: danwendlandt
~~~~~~~~~~~~~~~~~~~~~~~~~~~
References