[openstack-dev] Making pbr an Oslo package

Monty Taylor mordred at inaugust.com
Thu Nov 29 18:36:58 UTC 2012



On 11/26/2012 02:01 PM, Mark McLoughlin wrote:
> Hey Monty
>
> For other people's reference, this is about taking pbr ("Python Build
> Reasonableness") and releasing it as an Oslo library package:
>
>    https://github.com/openstack-dev/pbr
>    https://bugs.launchpad.net/openstack-ci/+bug/1082821
>
> My understanding is pbr is based on the openstack.common.setup module in
> oslo-incubator but has evolved a good bit since then.

Yeah - pbr was the first stab at taking openstack.common.setup and 
openstack.common.version and making them a library - so it was a 
pre-oslo attempt at oslo-ification. :) It evolved some, but it was 
mainly code refactoring (once it moved from being something that was 
copied file by file, splitting it into several files become nicer) I 
believe the substantive changes have been ported back in.

> The reason we're thinking it makes sense under Oslo is that it does
> encode a bunch of OpenStack specific ideas which aren't something we see
> other projects adopting wholesale.

Agree.

> There's a bunch to discuss here:
>
>    - You say in the bug that it needs work. It hasn't seen any activity
>      in the last couple of months. Is that likely to change soon?

There is one specific thing that needs work  - and it might be something 
we're willing to punt on. Namely, since it provides setuptools build 
code, it becomes rather difficult to have setuptols setup_requires on it 
and then use it... so pulling a tarball on a pristine machine and 
running python setup.py install will fail.

It's a hard problem because setuptools is ... well, you've seen 
setuptools. There is a hard-coded recursion internally that doesn't, as 
best I can tell, allow me to exit the recursion correctly. (it's coded 
incorrectly, but works in the normal case)

ANYWHOO - other than that it's the code we use across the board, so it's 
pretty solid (other than the logic bug people are complaining about) If 
we're ok with relaxing that requirement and adding oslo-build to the 
list of things that you have to install before you can work (such as 
libxml-dev and libxslt-dev and libvirt and python-mysqldb), then it's 
ready to go this instant.

>    - How close do you think we are to being able to make a commitment to
>      its API stability? Remember the rule we're aiming for in Oslo
>      packages is that APIs need to be deprecated for two releases before
>      they can be removed[1]

Very. Its api hasn't changed - and since it is used already in EVERY 
OpenStack project and most of the OpenStack CI projects, it's already a 
nightmare to change its API :)

>    - Are any projects using it yet? Catch 22 here, I guess, but I'm
>      never too confident about any API until it has been used for a
>      while.

PBR, no. openstack.common.version|setup - all of them.

>    - If we still have a bunch of work to do here, isn't pbr effectively
>      in Incubation? Would it make sense to move it back into
>      oslo-incubator for a while? At least that would reduce the
>      confusion around the current stuff being stale.

We could just ignore the pbr repo and consider the task "extract 
openstack.common.{version|setup} to oslo-build." OR, I could take the 
refactoring in pbr and move that back in to oslo-incubator first, then 
do the extraction. Or I could just rename pbr, give up on the setuptools 
bootstrap issue and start migrating projects to it. I'm game for any of 
them...

>    - Bikeshedding, oslo-version doesn't make sense to me - thinking
>      something like oslo-build or oslo-setuptools or something?

I like oslo-build myself.



More information about the OpenStack-dev mailing list