[openstack-dev] [openstack-ansible] Limiting pip wheel builds for OpenStack clients

Doug Hellmann doug at doughellmann.com
Wed Jan 24 21:05:26 UTC 2018


Excerpts from Mooney, Sean K's message of 2018-01-24 20:30:19 +0000:
> 
> > -----Original Message-----
> > From: Major Hayden [mailto:major at mhtx.net]
> > Sent: Wednesday, January 24, 2018 8:03 PM
> > To: OpenStack Development Mailing List (not for usage questions)
> > <openstack-dev at lists.openstack.org>
> > Subject: [openstack-dev] [openstack-ansible] Limiting pip wheel builds
> > for OpenStack clients
> > 
> > Hey there,
> > 
> > I was spelunking into the slow wheel build problems we've been seeing
> > in CentOS and I found that our wheel build process was spending 4-6
> > minutes building cassandra-driver. The wheel build process usually
> > takes 8-12 minutes, so half the time is being spent there.
> > 
> > More digging revealed that cassandra-driver is a dependency of python-
> > monascaclient, which is a dependency of heat. The requirements.txt for
> > heat drags in all of the clients:
> > 
> >   https://github.com/openstack/heat/blob/master/requirements.txt
> [Mooney, Sean K] the python-monascaclient package is presumably an optional
> Dependency of heat as are the other client.
> E.g. I would hope that if you are using a heat with a cloud that does not have
> Monasca it could still run without have python-monascaclient installed so
> All of the clients should proably be move form the requirements.txt to the
> test-requiremetns.txt and only the minimal required packages for heat to work
> should be in requirements.txt.

This is what the "extras" section of setup.cfg is for. It should be
possible to say something like:

[extras]
monasca =
   python-monascaclient>=1.0.0 (or whatever version)


Then users of pip would install a heat that uses monasca with:

   pip install heat[monasca]

and distro packagers would know why any extra packages are needed and
could take appropriate action in their package specifications, too.

> > 
> > We're already doing selective wheel builds and building only the wheels
> > and venvs we need for the OpenStack services which are selected for
> > deployment. Would it make sense to reduce the OpenStack client list for
> > heat during the wheel/venv build? For example, if we're not deploying
> > monasca, should we build/venv the python-monascaclient package (and its
> > dependencies)?
> > 
> > I've opened a bug:
> > 
> >   https://bugs.launchpad.net/openstack-ansible/+bug/1745215
> > 
> > --
> > Major Hayden
> > 
> > _______________________________________________________________________
> > ___
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe: OpenStack-dev-
> > request at lists.openstack.org?subject:unsubscribe
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list