[openstack-dev] All hail the new per-region pypi, wheel and apt mirrors

Tony Breeds tony at bakeyournoodle.com
Thu Feb 11 03:41:03 UTC 2016


On Wed, Feb 10, 2016 at 07:07:22PM -0800, Clark Boylan wrote:
> On Wed, Feb 10, 2016, at 06:02 PM, Tony Breeds wrote:
> > On Wed, Feb 10, 2016 at 06:45:25PM -0600, Monty Taylor wrote:
> > > Hey everybody,
> > > 
> > > tl;dr - We have new AFS-based consistent per-region mirrors of PyPI and APT
> > > repos with additional wheel repos containing pre-built wheels for all the
> > > modules in global-requirements
> > 
> > Woot!
> > 
> > I do have a couple of questions about the pre-built wheels:
> > 
> > 1) You say global-requirements, I assume this includes upper-constraints
> > as
> >     well.  Do you check that the version of each library as listed in
> >     upper-constraints does exist on the mirror?  How many versions of
> >     each
> >     library do you build wheels for?
> 
> It explicitly builds the wheels using upper constraints.

Ahh okay.

> > 2) How doe this work on stable branches?  I'm guessing you look at the
> > g-r for
> >    each branch, build the wheels and then upload snapshot the whole
> >    bunch.  Verify
> >    that and release it for consumption.
> It iterates through the stable branches and builds wheels for the upper
> constraints that it can find. Looks like it should noop if no
> constraints are present.

Okay We'll need to think about that one as the contrainst in stable/kilo can
be bogus, sometime we have a version in contraints that isn't valid compared
to g-r

We don't enforce constrains on kilo so that causes different pain :D

> > 3) Do you mirror all matches for a requirements spec or just the highest
> > one
> >    that matches?
> We mirror all of the wheels that we have built over time. As upper
> constraints move new wheels will be added. There isn't currently a
> delete step but we may add one in the future if necessary.

Ok.

> > 4) Will we see version selection vary between the gate and tests run
> > outside the
> >    gate?
> Not if you use constraints. Pip's selection of deps are constraints win,
> if no constraints then take the highest version available and if that
> version is available as a wheel use the wheel.

Right I was thinking of $library adds a release I rin tox (uncontstrained) at
home and get that new release I then run the same (unconstrained) test in the
gate and get the wheel frmo the cache.  Just somethign to keep in mind not a
problem as such.

> Code is at
> https://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/scripts/wheel-build.sh.

Wow okay that is remarkably simple :)

Thanks Clark

Yours Tony.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160211/0d8fe354/attachment.pgp>


More information about the OpenStack-dev mailing list