<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Emilien,<o:p></o:p></p>
<p class="MsoNormal">Agree on the rant. But not clear on concrete proposal to fix it.<o:p></o:p></p>
<p class="MsoNormal">Spend more time “fixing” CI and use Tempest as a gate is a bit wage.<o:p></o:p></p>
<p class="MsoNormal">Unless we test known working version of each project in TripleO CI you are dependent on health of other components.<o:p></o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Arkady<o:p></o:p></p>
<p>-----Original Message-----<br>
From: Emilien Macchi [mailto:emilien@redhat.com] <br>
Sent: Friday, March 04, 2016 8:23 AM<br>
To: OpenStack Development Mailing List <br>
Subject: [openstack-dev] [tripleo] Contributing to TripleO is challenging<br>
<br>
That's not the name of any Summit's talk, it's just an e-mail I wanted to write for a long time.<br>
<br>
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.<br>
<br>
<br>
1/ "I don't review this patch, we don't have CI coverage."<br>
<br>
One thing I've noticed in TripleO is that a very few people are involved in CI work.<br>
In my opinion, CI system is more critical than any feature in a product.<br>
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.<br>
<br>
<br>
2/ "I don't review this patch, CI is broken."<br>
<br>
Another thing I've noticed in TripleO is that when CI is broken, again, a very few people are actually working on fixing failures.<br>
My experience over the last years taught me to stop my daily work when CI is broken and fix it asap.<br>
<br>
<br>
3/ "I don't review it, because this feature / code is not my area".<br>
<br>
My first though is "Aren't we supposed to be engineers and learn new areas?"<br>
My second though is that I think we have a problem with TripleO Heat Templates.<br>
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?<br>
Maybe should we split this repository? Or revisit the list of people who can +2 patches on THT.<br>
<br>
<br>
4/ Patches are stalled. Most of the time.<br>
<br>
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..<br>
<br>
I personally spent 20% of my time to review code, every day.<br>
I wrote a blog post about how I'm doing review, with Gertty:<br>
http://my1.fr/blog/reviewing-puppet-openstack-patches/<br>
I suggest TripleO folks to spend more time on reviews, for some reasons:<br>
<br>
* decreasing frustration from contributors<br>
* accelerate development process<br>
* teach new contributors to work on TripleO, and eventually scale-up the core team. It's a time investment, but worth it.<br>
<br>
In Puppet team, we have weekly triage sessions and it's pretty helpful.<br>
<br>
<br>
5/ Most of the tests are run... manually.<br>
<br>
How many times I've heard "I've tested this patch locally, and it does not work so -1".<br>
<br>
The only test we do in current CI is a ping to an instance. Seriously?<br>
Most of OpenStack CIs (Fuel included), run Tempest, for testing APIs and real scenarios. And we run a ping.<br>
That's similar to 1/ but I wanted to raise it too.<br>
<br>
<br>
<br>
If we don't change our way to work on TripleO, people will be more frustrated and reduce contributions at some point.<br>
I hope from here we can have a open and constructive discussion to try to improve the TripleO project.<br>
<br>
Thank you for reading so far.<br>
--<br>
Emilien Macchi<o:p></o:p></p>
</div>
</body>
</html>