[openstack-dev] pyparsing 2.0 postmortem
Monty Taylor
mordred at inaugust.com
Wed Feb 27 19:59:14 UTC 2013
On 02/27/2013 02:48 PM, Doug Hellmann wrote:
>
>
> On Wed, Feb 27, 2013 at 1:18 PM, Sean Dague <sdague at linux.vnet.ibm.com
> <mailto:sdague at linux.vnet.ibm.com>> wrote:
>
> After lots of running around this morning, we've got a new
> python-quantumclient v.2.1.2 that fixes OpenStack CI. The gate merge
> was only broken for 4 hours, before California woke up, so overall
> project impact was pretty bad.
>
> I think there are a couple lessons learned out of this, at least in
> my opinion. As someone that's chased 2 big breaks like this in 2
> days, I'd like to figure out how we stop doing that. :)
>
> 1) python-FOOclients should release more often
>
> All it takes is setting a tag on a python-FOOclient to generate a
> release, CI does the push into pypi. We should be releasing early
> and often here. This issue was known to be an issue back in
> December, which is when the fix landed in the python-quantumclient
> tree, but because there wasn't a python-quantumclient release it
> managed to be a gate blocker.
>
> Release early, release often. clients don't need to be on the 6
> month cadence that the server projects are on, as clients should
> work with multiple versions of the servers.
>
> It's also probably worth making sure that all cores on a project
> known and understand the python-client release process -
> https://wiki.openstack.org/__wiki/GerritJenkinsGithub#__Tagging_a_Release
> <https://wiki.openstack.org/wiki/GerritJenkinsGithub#Tagging_a_Release>
>
> It's super easy, and should be doable at any time.
>
> 2) open ended requires are going to hurt us once we go to freeze.
>
> We've had 3 breaks of our gate this week due to pip updates. Horizon
> due to django, Glance due to jsonscheme, and Quantum Client due to
> pyparsing. These typically break stable as well (I known the django
> one did).
>
> I've chased the gate fixes on 2 of these, it's definitely getting
> old. I understand the desire to not artificially limit ourselves,
> but it feels like once we get into freeze we should start capping
> these things. We can keep them open in open development, but I think
> we need to start clamping these down once we hit freeze.
>
>
> I'm having the same issue with prettytable and some of the client
> libraries under devstack right now, too. I wonder if that's the other
> issue you chased down?
I totally understand the argument against stricter pinning, but I'd like
to repeat my argument for it.
That is - while in theory it might seem nice to be able to "get upgrades
for free" from upstreams, experience in this project has shown over and
over that it's almost always a disaster. It _shouldn't_ be - but it is.
> 3) order in pip-requires matters :)
>
> The eventual fix for python-quantumclient was to bump cliff. There
> was nothing wrong with cliff, but cliff depends on pyparsing as
> well, and didn't specify strict version until 1.3.1. In reality this
> probably wasn't even a needed change for the pypi package, but it
> did let it get through our pip based pep8 scans.
>
>
> The CI fix should really have been to move pyparsing up in the file
> to install before cliff, and 1.2.1 would then still work.
>
>
> Yes, cliff didn't require any code changes. I borrowed some setup code
> from an unreleased version cmd2 (the library that actually specifies the
> pyparsing dependency) and copied it into cliff's requirements list to
> pin the version earlier. As you say, it probably would have been
> possible to do that right in the quantumclient dependency list, too.
> OTOH, cliff 1.3.1 also includes some UI fixes requested by the Quantum
> team, and I had promised a release soon anyway, so two birds, one stone,
> etc.
We were considering the other day, when talking about the
openstack/requirements repo, writing a script that would recursively
expand all of the requirements of the requirements and place all of them
in the master list so that had an explicit list of everything.
> Anyway, alternative thoughts are really appreciated. I realize point
> #2 is a little contentious, and there is also another thread on it.
> But it's also no good to have git code stop working for people, and
> us to not realize it until someone tries to merge code.
>
> -Sean
>
> --
> Sean Dague
> IBM Linux Technology Center
> email: sdague at linux.vnet.ibm.com <mailto:sdague at linux.vnet.ibm.com>
> alt-email: sldague at us.ibm.com <mailto:sldague at us.ibm.com>
>
>
> _________________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.__org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list