<div dir="ltr">Emilien, debtor looks like an interesting tool, thanks for the link.<div><br></div><div>As far as tracking upstream branches from local forks and carrying local patches, we've had good luck with using the git-upstream tool on stack forge: <a href="https://github.com/stackforge/git-upstream">https://github.com/stackforge/git-upstream</a></div><div><br></div><div>It allows you to merge in upstream changes on a regular basis and will automatically drop local changes if there is a matching Change-Id field in the upstream branch. It also allows you to manually tag specific changes to drop. We have this setup to run as a regular job and the merge commit for the changes gets pushed to our internal Gerrit instance for review and all our normal CI tools run against that so we can gauge the impact of the merge.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 29, 2015 at 6:16 PM, Emilien Macchi <span dir="ltr"><<a href="mailto:emilien@redhat.com" target="_blank">emilien@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 07/29/2015 03:48 PM, Alex Schultz wrote:<br>
> Hello everyone,<br>
><br>
> I have put together a wiki describing the proposed interactions between<br>
> fuel-library and upstream modules based on previous talks around<br>
> librarian-puppet[0]. Please take some time to<br>
</span>> review <a href="https://wiki.openstack.org/wiki/Fuel/Library_and_Upstream_Modules" rel="noreferrer" target="_blank">https://wiki.openstack.org/wiki/Fuel/Library_and_Upstream_Modules</a>.<br>
<span class="">> This page provides a brief history of this change, details of the<br>
> changes, best practices, and workflows for dealing with upstream modules.<br>
><br>
> I have updated this page based on the feedback previously solicited<br>
> around my suggestion to use librarian-puppet to manage the inclusion of<br>
> upstream modules into fuel-library. During the implementation, we found<br>
> that packaging librarian-puppet and the dependency management became<br>
> burdensome. As a substitute, we have packaged librarian-puppet-simple<br>
> and will only be using git repository references for inclusion of<br>
> upstream modules. Also based on our build requirements, we are also<br>
> leveraging a fuel-infra mirror of upstream repositories to allow for<br>
> local builds and CI to not have to fetch modules continuously from<br>
> upstream github repositories.<br>
><br>
> I have also taken the time to update the proposed patches[1] with the<br>
> librarian-puppet-simple configurations so they they are ready to merge<br>
> if there is an agreement on this process.<br>
><br>
> Thanks,<br>
> -Alex<br>
><br>
> [0] <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-June/067806.html" rel="noreferrer" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2015-June/067806.html</a><br>
</span><span class="">> [1] <a href="https://review.openstack.org/#/q/topic:bp/fuel-puppet-librarian+project:stackforge/fuel-library,n,z" rel="noreferrer" target="_blank">https://review.openstack.org/#/q/topic:bp/fuel-puppet-librarian+project:stackforge/fuel-library,n,z</a><br>
><br>
<br>
</span>This is a very good initiative and I'm happy to see that happening. It<br>
reflects what I was asking in our collaboration request.<br>
<br>
Though I have one suggestion for "Custom Upstream Module Changes" section.<br>
I suggest you:<br>
<br>
1/ first submit the change in the upstream module<br>
2/ cherry-pick the commit in Fuel custom branch<br>
3/ keep track of upstream patch (address reviews, etc), and establish a<br>
sort of scoring to evaluate the debt [1] between downstream (Fuel) and<br>
upstream (OpenStack). It will make sure a maximum of code is upstream<br>
and downstream patches won't be forgotten.<br>
4/ when an upstream patch is merged, drop the cherry-pick by rebasing.<br>
<br>
This is the workflow I try to push at Red Hat (in RDO) and to me, this<br>
is the way to go for having Puppet modules the closest as possible from<br>
upstream with the freedom to have custom patches downstream.<br>
<br>
Best,<br>
<br>
[1] <a href="https://github.com/redhat-cip/debtor" rel="noreferrer" target="_blank">https://github.com/redhat-cip/debtor</a><br>
<span class="HOEnZb"><font color="#888888">--<br>
Emilien Macchi<br>
<br>
</font></span><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>