<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 10, 2017 at 10:42 AM, Martin Sivak <span dir="ltr">&lt;<a href="mailto:msivak@redhat.com" target="_blank">msivak@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">&gt; I think you already can do that.<br>
&gt; When you want to build for a release you can create automation/mom.spec<br>
&gt; and change automaton/build-artifacts.sh<br>
<br>
</span>But that is not what I am after. I want to be able to say: Use this<br>
git hash from this repository for 4.1 and 4.0 for any upcoming release<br>
until I say otherwise (without having to use some special tag).<br>
<br>
This is not about build procedure, but about release management. The<br>
build procedure can be then part of the automation as you say, but I<br>
won&#39;t be the one executing it, Jenkins will do that for me any time<br>
you decide to do a compose.<br></blockquote><div><br></div><div>Not sure to follow.</div><div>jenkins will execute the build right after you&#39;ll merge the change.</div><div>after that, you can add the jenkins build to ovirt-&lt;release&gt;.conf</div><div>and it will be published for that release.</div><div>All following releases will keep that version until you add it to another ovirt-&lt;new-release&gt;.conf, since the files are incremental.</div><div><br></div><div>The only time this may fail is between major releases like 4.0 -&gt; 4.1 or 4.1 -&gt; 4.2</div><div>when beta composes are done by taking latest snapshots in ovirt-&lt;betarelease&gt;.conf</div><div>which I usually ask to review before merging like I did for 4.1: <a href="https://gerrit.ovirt.org/#/c/67645/">https://gerrit.ovirt.org/#/c/67645/</a></div><div><br></div><div>Maybe I&#39;m not seeing something here.</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span class="gmail-HOEnZb"><font color="#888888"><br>
Martin<br>
</font></span><div class="gmail-HOEnZb"><div class="gmail-h5"><br>
On Fri, Feb 10, 2017 at 10:35 AM, Sandro Bonazzola &lt;<a href="mailto:sbonazzo@redhat.com">sbonazzo@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Feb 10, 2017 at 10:07 AM, Martin Sivak &lt;<a href="mailto:msivak@redhat.com">msivak@redhat.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I am using copr for building mom for a single reason. We have no<br>
&gt;&gt; distgit equivalent where I would be able to mark an arbitrary git hash<br>
&gt;&gt; as a release (using my tag and branch structure) and so copr gives me<br>
&gt;&gt; the package release experience I want. Otherwise Jenkins would be fine<br>
&gt;&gt; with me.<br>
&gt;&gt;<br>
&gt;&gt; If we are getting closer to something like that then great and I will<br>
&gt;&gt; use it when it is ready.<br>
&gt;<br>
&gt;<br>
&gt; I think you already can do that.<br>
&gt; When you want to build for a release you can create automation/mom.spec<br>
&gt; and change automaton/build-artifacts.sh<br>
&gt; to just:<br>
&gt; spectool -g automation/mom.spec<br>
&gt; rpmbuild \<br>
&gt;     -ba \<br>
&gt;     --define=&quot;_sourcedir ${PWD}&quot; \<br>
&gt;     --define=&quot;_srcrpmdir ${PWD}&quot; \<br>
&gt;     --define=&quot;_rpmdir ${PWD}&quot; \<br>
&gt;     automation/mom.spec<br>
&gt;<br>
&gt; instead of<br>
&gt;<br>
&gt; ./autogen.sh<br>
&gt; ./configure --prefix=/usr<br>
&gt; make dist<br>
&gt; rpmbuild -ta *.tar.gz<br>
&gt;<br>
&gt; when jenkins will run it will build like in copr.<br>
&gt;<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Martin<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Feb 10, 2017 at 9:57 AM, Sandro Bonazzola &lt;<a href="mailto:sbonazzo@redhat.com">sbonazzo@redhat.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Sun, Feb 5, 2017 at 6:25 PM, Nir Soffer &lt;<a href="mailto:nsoffer@redhat.com">nsoffer@redhat.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Sun, Feb 5, 2017 at 11:33 AM, Martin Sivak &lt;<a href="mailto:msivak@redhat.com">msivak@redhat.com</a>&gt;<br>
&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; A repo where I do not have commit rights means I can&#39;t take full<br>
&gt;&gt; &gt;&gt; &gt;&gt; responsibility.<br>
&gt;&gt; &gt;&gt; &gt;&gt; A repo that is not atomically synchronized with my sources means I<br>
&gt;&gt; &gt;&gt; &gt;&gt; can&#39;t take full responsibility.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Having said that, I would be perfectly fine with a single repository<br>
&gt;&gt; &gt;&gt; &gt; that tracks the release configuration, but only if it also held the<br>
&gt;&gt; &gt;&gt; &gt; git repository link and hash/branch name that is supposed to be<br>
&gt;&gt; &gt;&gt; &gt; released. It would be in some way a &quot;distgit repo&quot;. Something like<br>
&gt;&gt; &gt;&gt; &gt; Sandro has for builds.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; [ovirt-4.0.x-ci]<br>
&gt;&gt; &gt;&gt; &gt; git://<a href="http://gerrit.ovirt.org/project.git#ovirt-4.0.x" rel="noreferrer" target="_blank">gerrit.ovirt.org/<wbr>project.git#ovirt-4.0.x</a><br>
&gt;&gt; &gt;&gt; &gt; git://<a href="http://gerrit.ovirt.org/project2.git#v4.0.x" rel="noreferrer" target="_blank">gerrit.ovirt.org/<wbr>project2.git#v4.0.x</a><br>
&gt;&gt; &gt;&gt; &gt; git://<a href="http://github.com/Me/repo#master" rel="noreferrer" target="_blank">github.com/Me/repo#<wbr>master</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; [ovirt-4.0.6]<br>
&gt;&gt; &gt;&gt; &gt; git://<a href="http://gerrit.ovirt.org/project.git#ovirt-4.0.6" rel="noreferrer" target="_blank">gerrit.ovirt.org/<wbr>project.git#ovirt-4.0.6</a><br>
&gt;&gt; &gt;&gt; &gt; git://<a href="http://gerrit.ovirt.org/project2.git#v4.0.6" rel="noreferrer" target="_blank">gerrit.ovirt.org/<wbr>project2.git#v4.0.6</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="http://github.com/Me/repo/releases/x.y.z.zip" rel="noreferrer" target="_blank">http://github.com/Me/repo/<wbr>releases/x.y.z.zip</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Any release would then be reviewed by the CI team and that would be<br>
&gt;&gt; &gt;&gt; &gt; fine for me. It would allow any branch name or versioning convention<br>
&gt;&gt; &gt;&gt; &gt; and would not pollute the sources. It would also be gerrit agnostic.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Well said!<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; May pain points with jenkins project:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; - No documentation<br>
&gt;&gt; &gt;&gt; - The format is not stable, each time you edit the format is different<br>
&gt;&gt; &gt;&gt; - No way to test changes, only infra guys can test changes, sometimes<br>
&gt;&gt; &gt;&gt;   even infra guys cannot test changes and they simply merge them<br>
&gt;&gt; &gt;&gt;   for testing<br>
&gt;&gt; &gt;&gt; - The project format is full of duplication<br>
&gt;&gt; &gt;&gt; - No commit right, cannot be responsible for something I cannot change<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Compare with travis:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; - Everting defined in *my* project in .travis.yml<br>
&gt;&gt; &gt;&gt; - Configuration format is well documented<br>
&gt;&gt; &gt;&gt;   <a href="https://docs.travis-ci.com/" rel="noreferrer" target="_blank">https://docs.travis-ci.com/</a><br>
&gt;&gt; &gt;&gt; - Configuration format is well designed, can do lot of work with very<br>
&gt;&gt; &gt;&gt;   little configuration<br>
&gt;&gt; &gt;&gt;   For example - this yaml define matrix of 3 builds:<br>
&gt;&gt; &gt;&gt;   <a href="https://github.com/oVirt/vdsm/blob/master/.travis.yml" rel="noreferrer" target="_blank">https://github.com/oVirt/vdsm/<wbr>blob/master/.travis.yml</a><br>
&gt;&gt; &gt;&gt; - Easy to test changes before merging (push to your fork on github)<br>
&gt;&gt; &gt;&gt; - Very nice web ui, e.g.<br>
&gt;&gt; &gt;&gt;   <a href="https://travis-ci.org/oVirt/vdsm/builds/198571421" rel="noreferrer" target="_blank">https://travis-ci.org/oVirt/<wbr>vdsm/builds/198571421</a><br>
&gt;&gt; &gt;&gt;   <a href="https://travis-ci.org/oVirt/vdsm/jobs/198571422" rel="noreferrer" target="_blank">https://travis-ci.org/oVirt/<wbr>vdsm/jobs/198571422</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;ve no strong feelings on this subject. I personally don&#39;t know travis<br>
&gt;&gt; &gt; so I<br>
&gt;&gt; &gt; can&#39;t compare it to anything else.<br>
&gt;&gt; &gt; I&#39;m a jenkins Standard-CI user and I tend to be happy with what we have.<br>
&gt;&gt; &gt; That said, despite I would prefer all ovirt projects to be aligned with<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; same workflow, I&#39;m perfectly fine with whatever CI testing / building<br>
&gt;&gt; &gt; system<br>
&gt;&gt; &gt; is implemented or used for each project provided that:<br>
&gt;&gt; &gt; - it works<br>
&gt;&gt; &gt; - it produces rpms which can be added to ovirt-system-test for<br>
&gt;&gt; &gt; functional<br>
&gt;&gt; &gt; testing<br>
&gt;&gt; &gt; - it produces source archives which can be published on release<br>
&gt;&gt; &gt; - it produces rpms which can be installed on release for all supported<br>
&gt;&gt; &gt; platforms and arches.<br>
&gt;&gt; &gt; - it doesn&#39;t require creative ways to get artifacts to be released<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Nir<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Martin<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; On Sun, Feb 5, 2017 at 10:17 AM, Martin Sivak &lt;<a href="mailto:msivak@redhat.com">msivak@redhat.com</a>&gt;<br>
&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt;&gt; Hi,<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; The fact that this is specified in the &#39;jenkins&#39; repo **does not<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; place<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; this outside the maintainers` responsibility**.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; A repo where I do not have commit rights means I can&#39;t take full<br>
&gt;&gt; &gt;&gt; &gt;&gt; responsibility.<br>
&gt;&gt; &gt;&gt; &gt;&gt; A repo that is not atomically synchronized with my sources means I<br>
&gt;&gt; &gt;&gt; &gt;&gt; can&#39;t take full responsibility.<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; We actually have an initiative to move this information to the<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; project<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; repos. I&#39;ve started with asking on devel list about how to specify<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; this as part of Standard-CI [1]. But have received little topical<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; response so far.<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; [1]:<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="http://lists.ovirt.org/pipermail/devel/2017-January/029161.html" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>pipermail/devel/2017-January/<wbr>029161.html</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; You&#39;ve got enough responses already to propose a different schema<br>
&gt;&gt; &gt;&gt; &gt;&gt; than<br>
&gt;&gt; &gt;&gt; &gt;&gt; fixed branch names. Just give us a config file. Seriously, stop<br>
&gt;&gt; &gt;&gt; &gt;&gt; reinventing the wheel and take a look at how others are doing it<br>
&gt;&gt; &gt;&gt; &gt;&gt; (distgit, travis, tito, ...).<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt; Martin<br>
&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; --<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Barak Korren<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="mailto:bkorren@redhat.com">bkorren@redhat.com</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; RHCE, RHCi, RHV-DevOps Team<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="https://ifireball.wordpress.com/" rel="noreferrer" target="_blank">https://ifireball.wordpress.<wbr>com/</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; Devel mailing list<br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
&gt;&gt; &gt;&gt; &gt;&gt;&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a><br>
&gt;&gt; &gt;&gt; &gt; ______________________________<wbr>_________________<br>
&gt;&gt; &gt;&gt; &gt; Devel mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a><br>
&gt;&gt; &gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; &gt;&gt; Devel mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:Devel@ovirt.org">Devel@ovirt.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://lists.ovirt.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.ovirt.org/<wbr>mailman/listinfo/devel</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; Sandro Bonazzola<br>
&gt;&gt; &gt; Better technology. Faster innovation. Powered by community<br>
&gt;&gt; &gt; collaboration.<br>
&gt;&gt; &gt; See how it works at <a href="http://redhat.com" rel="noreferrer" target="_blank">redhat.com</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Sandro Bonazzola<br>
&gt; Better technology. Faster innovation. Powered by community collaboration.<br>
&gt; See how it works at <a href="http://redhat.com" rel="noreferrer" target="_blank">redhat.com</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Sandro Bonazzola<br>Better technology. Faster innovation. Powered by community collaboration.<br>See how it works at <a href="http://redhat.com" target="_blank">redhat.com</a></div></div></div></div></div></div></div></div>
</div></div>