I haven't been sending Fuel-Puppet "state of collaboration" emails for a while now. First couple of months, both projects were very cautious and it took a great deal of number crunching and persuasion to demonstrate that the efforts to reconcile are going pay off. Now, I already have seen enough benefits for both projects to confidently say: yes, it did pay off, and it's worth going forward with this and doing more of the same.
Lets have a closer look at the facts to see if my impression is correct. Last 30 days contribution stats, compared to August [0]: Denis Egorenko (#2): 87.5% -> 76.7% (disagreements 13.9% -> 4.8%) Alex Schultz (#4): 80% -> 93.0% (disagreements 26.7% -> 9.6%) Ivan Berezovskiy (#7): 92.3% -> 91.2% (disagreements 3.8% -> 7.0%) Sergey Kolekonov: 95.7% -> 69.2% (disagreements 13% -> 15.4%) Ekaterina Chernova: 100.0% (disagreements 23.5%) Max Yatsenko: 100% -> 100.0% (disagreements 17.4% -> 6.7%) Kirill Zaitsev: 91.7% (disagreements 0%) Matthew Mosesohn: 80.0% (disagreements 0%) Alexander Tivelkov: 100.0% (disagreements 0%) [0] http://lists.openstack.org/pipermail/openstack-dev/2015-August/072313.html First thing that sticks out is that the + percentage seems to have gone up for most reviewers (except Denis and Sergey: nice job both of you!). Considering that the same is true across the board (only 3 of top 10 reviewers are below 90%), while the disagreements percentage has gone down noticeably, I choose to interpret this as a sign of an improvement in quality of initial submissions, rather than reduced scrutiny. Between 9 of 20 top reviewers and 30.4% of reviews, I think it's fair to pronounce that Puppet OpenStack benefits from a high-quality code review effort contributed by Fuel developers. A fact obviously recognized by the project as Denis, our best upstream reviewer, was nominated and approved as a core in PuppetOpenstack. Thanks Emilien! Still, it would be nice if the load was spread out more evenly among more than a handful of top reviewers, with more top reviewers contributing equally to both fuel-library and upstream (thanks Alex!). Weekly IRC meeting participation has also continued to improve: Oct-6: 10 of 18 participants, 104 of 276 lines Oct-13: 9 of 23 participants, 80 of 307 lines Oct-20: 9 of 18 participants, 62 of 171 lines Commit stats remain good, although not quite as good as I expected: Over the first two weeks of October, we've got 14 commits merged (15.2% of total commits merged), which is slightly down from 19 commits (18.4%) in August. At the same time, patch sets per commit ratio has crept up from 5.6 to 7.14 (while average for Puppet OpenStack went down from 6.5 to 4.38), and Fuel's share of patch sets has gone up from 15.9% to 24.8%). I think we can and should do better here, I've seen Puppet team merge the first patch set immediately when it's simple enough [1], and there haven't been any Fuel related commits stuck without review for a few weeks now. [1] https://review.openstack.org/236169 On the other hand, the progress with eliminating duplication of Puppet OpenStack code in fuel-library is much better than I expected: we don't have any forks of Puppet OpenStack code left in fuel-library. Of 60 modules in fuel-library, 32 are now managed by librarian and pulled into fuel-library package at build time [2]. [3] https://github.com/openstack/fuel-library/blob/master/deployment/update_modules.sh This includes 9 modules from Puppet OpenStack project: - ceilometer - cinder - glance - heat - horizon - ironic - keystone - neutron - nova Of the modules remaining inside fuel-library, there's two that overlap with Puppet OpenStack even though they are not forks: ceph and murano. We plan to replace the former with the upstream puppet-ceph module as part of upgrading the supported Ceph release from Firefly to Hammer in Fuel 8.0. For the latter, we have put the Fuel module on life support and started a clean-room reimplementation in upstream [4] in September, and we will switch to that as soon as it reaches feature parity with the Fuel version (which I expect to be only a few commits away). [4] https://github.com/openstack/puppet-murano/commit/518800e37f4f8805ce489ca58169299accc346e1 There's going to be more work to migrate the few remaining non-OpenStack modules to librarian (haproxy, mysql, rabbitmq etc.), but at least for the OpenStack modules we're in a good shape. Once again, many thanks to Alex Schultz for starting and spearheading this work! Comparing the upstream contribution numbers with commit, patch set, and review stats in fuel-library over the same time period (600 patch sets, 626 reviews) tells me that upstream Puppet OpenStack contribution now constitutes 15-25% of the Puppet related development effort in Fuel, while constituting 25-30% of total development effort that goes into Puppet OpenStack. In other words, roughly 15-20% of combined Fuel Library and Puppet OpenStack effort is now spent on something that equally benefits both projects. A non-trivial overlap with still more room for improvement: based on the ratio between OpenStack and non-OpenStack modules in fuel-library, a full alignment would produce an overlap of roughly 30%. To sum up, I think we've reached the point where the value contributed to the Puppet OpenStack project outweighs the burden of onboarding and code review initially carried by Puppet OpenStack core reviewers, and the value Fuel project gains from directly consuming upstream modules outweighs the effort spent on collaborating with Puppet OpenStack. -- Dmitry Borodaenko __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev