[OpenStack-Infra] mysqlconnector and pypi vs oracle

Clark Boylan clark.boylan at gmail.com
Fri Jul 11 18:10:22 UTC 2014


On Fri, Jul 11, 2014 at 2:54 AM, Angus Lees <guslees at gmail.com> wrote:
> I'd like to switch to using mysqlconnector rather than mysqldb as our
> default mysql/sqlalchemy driver.  The discussions behind this are underway
> on os-dev and other avenues.
>
> My question here is regarding the simple mechanics of getting
> mysql-connector installed on the test machines.  I don't know much about how
> these are set up, but I gather it's an issue that mysql-connector is an
> external pypi library.
>
> Given that mysql-connector is shipped by the official mysql devs (ie:
> Oracle), I'm not much looking forward to convincing Oracle to ship their
> software through another repo.   How important is this?  Do we have other
> avenues available to us?
>
> --
>  - Gus
>
> _______________________________________________
> OpenStack-Infra mailing list
> OpenStack-Infra at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
>

It is very important that packages be properly hosted on pypi. There
are a few reasons for this. Pip will not install packages that are
externally hosted by default. So this is a user friendlyness thing. If
I pip install neutron it should install every time without me needing
to whitelist libraries it depends on. It is a security issue. I am
trusting pypi to provide the package I asked for, I am not trusting a
third party that I am not aware of to do this for me. And it is a
reliability thing. External links go away all the time breaking
installations.

We will not install external package links for these reasons.

As far as mechanics go we run a bandersnatch built pypi mirror that
mirrors pypi not external links. We do this to avoid pypi.python.org
instability as much as possible. It is much better now than it was in
the past but still a problem. All of our test installations of
openstack are from source using this mirror to pull in dependencies.
The notable exception to this is libvirt because libvirt was not
available on pypi for a long time. It is now available on pypi and we
are working on switching to installing libvirt-python via our mirror
(https://review.openstack.org/#/c/105500/ and
https://review.openstack.org/#/c/105501/).

I think the best alternative at this point is to give PyMySQL a go. It
runs on py3k and pypy, is a pure python implementation that strives
for compatibility with mysql-python and has a liberal MIT license. It
sounds like our requirements are explicity works with eventlet or is
pure python. PyMySQL fits those requirements as well as the other
general requirements of python 3 support, compatible license, hosting
on pypi, and under active care.

Clark



More information about the OpenStack-Infra mailing list