[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.

-----Original Message-----
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.
Emilien Macchi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160318/5d048dad/attachment.html>

More information about the OpenStack-dev mailing list