[openstack-dev] [tripleo] Contributing to TripleO is challenging
emilien at redhat.com
Fri Mar 4 14:23:19 UTC 2016
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
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
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,
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 --------------
A non-text attachment was scrubbed...
Size: 473 bytes
Desc: OpenPGP digital signature
More information about the OpenStack-dev