[openstack-dev] [tripleo] Contributing to TripleO is challenging
Arkady_Kanevsky at DELL.com
Arkady_Kanevsky at DELL.com
Fri Mar 18 13:27:33 UTC 2016
Agree on the rant. But not clear on concrete proposal to fix it.
Spend more time "fixing" CI and use Tempest as a gate is a bit wage.
Unless we test known working version of each project in TripleO CI you are dependent on health of other components.
From: Emilien Macchi [mailto:emilien at redhat.com]
Sent: Friday, March 04, 2016 8:23 AM
To: OpenStack Development Mailing List
Subject: [openstack-dev] [tripleo] Contributing to TripleO is challenging
That's not the name of any Summit's talk, it's just an e-mail I wanted to write for a long time.
It is an attempt to expose facts or things I've heard a lot; and bring constructive thoughts about why it's challenging to contribute in TripleO project.
1/ "I don't review this patch, we don't have CI coverage."
One thing I've noticed in TripleO is that a very few people are involved in CI work.
In my opinion, CI system is more critical than any feature in a product.
Developing Software without tests is a bit like http://goo.gl/OlgFRc All people - specially core - in the project should be involved in CI work. If you are TripleO core and you don't contribute on CI, you might ask yourself why.
2/ "I don't review this patch, CI is broken."
Another thing I've noticed in TripleO is that when CI is broken, again, a very few people are actually working on fixing failures.
My experience over the last years taught me to stop my daily work when CI is broken and fix it asap.
3/ "I don't review it, because this feature / code is not my area".
My first though is "Aren't we supposed to be engineers and learn new areas?"
My second though is that I think we have a problem with TripleO Heat Templates.
THT or TripleO Heat Templates's code is 80% of Puppet / Hiera. If TripleO core say "I'm not familiar with Puppet", we have a problem here, isn't?
Maybe should we split this repository? Or revisit the list of people who can +2 patches on THT.
4/ Patches are stalled. Most of the time.
Over the last 12 months, I've pushed a lot of patches in TripleO and one thing I've noticed is that if I don't ping people, my patch got no review. And I have to rebase it, every week, because the interface changed. I got +2, cool ! Oh, merge conflict. Rebasing. Waiting for +2 again... and so on..
I personally spent 20% of my time to review code, every day.
I wrote a blog post about how I'm doing review, with Gertty:
I suggest TripleO folks to spend more time on reviews, for some reasons:
* decreasing frustration from contributors
* accelerate development process
* teach new contributors to work on TripleO, and eventually scale-up the core team. It's a time investment, but worth it.
In Puppet team, we have weekly triage sessions and it's pretty helpful.
5/ Most of the tests are run... manually.
How many times I've heard "I've tested this patch locally, and it does not work so -1".
The only test we do in current CI is a ping to an instance. Seriously?
Most of OpenStack CIs (Fuel included), run Tempest, for testing APIs and real scenarios. And we run a ping.
That's similar to 1/ but I wanted to raise it too.
If we don't change our way to work on TripleO, people will be more frustrated and reduce contributions at some point.
I hope from here we can have a open and constructive discussion to try to improve the TripleO project.
Thank you for reading so far.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the OpenStack-dev