<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:11:10 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-7699] Overhaul lustre&apos;s versioning</title>
                <link>https://jira.whamcloud.com/browse/LU-7699</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;There are numerous oddities about Lustre&apos;s system for applying version numbers in the configuration and packaging system.  At this point, it is looking strongly like an overhaul is in order.&lt;/p&gt;</description>
                <environment></environment>
        <key id="34259">LU-7699</key>
            <summary>Overhaul lustre&apos;s versioning</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="20969">LU-3953</parent>
                                    <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</priority>
                        <status id="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="morrone">Christopher Morrone</assignee>
                                    <reporter username="morrone">Christopher Morrone</reporter>
                        <labels>
                    </labels>
                <created>Fri, 22 Jan 2016 20:06:11 +0000</created>
                <updated>Wed, 6 Nov 2019 06:02:40 +0000</updated>
                            <resolved>Tue, 3 May 2016 17:45:15 +0000</resolved>
                                                    <fixVersion>Lustre 2.9.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>13</watches>
                                                                            <comments>
                            <comment id="139816" author="morrone" created="Sat, 23 Jan 2016 03:23:14 +0000"  >&lt;p&gt;Why do we have both lustre_ver.h and lustre_build_version.h?  So silly.&lt;/p&gt;</comment>
                            <comment id="139818" author="gerrit" created="Sat, 23 Jan 2016 04:25:58 +0000"  >&lt;p&gt;Christopher J. Morrone (morrone2@llnl.gov) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/18107&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18107&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Replace version_tag.pl with LUSTRE-VERSION-GEN&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e0a4a49958df15608615533c1e6f67bf3aca9f26&lt;/p&gt;</comment>
                            <comment id="139819" author="morrone" created="Sat, 23 Jan 2016 04:34:34 +0000"  >&lt;p&gt;I have a first rough version of the first overhaul patch.  It is a net &lt;em&gt;reduction&lt;/em&gt; in almost 300 lines, so I must be doing something right. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;I think the patch is already decent, but I haven&apos;t really considered how lbuild is going to react to the changes, or looked at how the rpm or dpkg packaging systems are going to handle it.  It may need further work to get along with all of that.  But it is worth running this version through the build farm as a fortestonly patch to see what blows up first.&lt;/p&gt;

&lt;p&gt;There is quite a bit of additional cleanup that can be done, but I want to try to avoid putting too much change in one patch.  I&apos;ll add additional cleanup in a follow-on patch.&lt;/p&gt;

&lt;p&gt;Some things that I&apos;ll look into (just so I don&apos;t forget):&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Get rid of lustre_build_version.h&lt;/li&gt;
	&lt;li&gt;Fix how Lustre embeds the version into its binaries&lt;/li&gt;
	&lt;li&gt;Further cleanup autoconf variables and m4 macros pertaining to versioning that are no longer necessary if we use standard ones like 
{AC_}
&lt;p&gt;PACKAGE_VERSION&lt;/p&gt;&lt;/li&gt;
	&lt;li&gt;git grep for &quot;META&quot; and deal with its obsolescence&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="139820" author="morrone" created="Sat, 23 Jan 2016 05:04:56 +0000"  >&lt;p&gt;Two more revisions to fix easy problems.  The first major issue is now what I expected:  I need to teach lbuild about the new versioning scheme.&lt;/p&gt;

&lt;p&gt;It also looks like the ppc64 builder isn&apos;t happy either.  I&apos;m not sure that it provides enough information to do anything about it though...maybe I can make a good enough guess to get it working.&lt;/p&gt;

&lt;p&gt;But that will all have to wait until next week.&lt;/p&gt;</comment>
                            <comment id="139832" author="gerrit" created="Sat, 23 Jan 2016 21:29:54 +0000"  >&lt;p&gt;Christopher J. Morrone (morrone2@llnl.gov) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/18108&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18108&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Eliminate lustre_build_version.h&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 49e8ccfea6d6845ca13e9a2dd8d0a5635c9bc8c0&lt;/p&gt;</comment>
                            <comment id="139833" author="gerrit" created="Sat, 23 Jan 2016 22:44:33 +0000"  >&lt;p&gt;Christopher J. Morrone (morrone2@llnl.gov) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/18110&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18110&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Replace LUSTRE_VERSION_STRING with PACKAGE_VERSION&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 4ace235aef94e2182bc62a28e5cdb479ac3c2fcb&lt;/p&gt;</comment>
                            <comment id="139837" author="gerrit" created="Sun, 24 Jan 2016 01:00:14 +0000"  >&lt;p&gt;Christopher J. Morrone (morrone2@llnl.gov) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/18111&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18111&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Remove unnecessary AC_LUSTRE_&lt;/p&gt;
{MAJOR,MINOR,PATCH,FIX}
&lt;p&gt;Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: b28a363a54d2b45a8f64b6ec81f0d0abedc220f7&lt;/p&gt;</comment>
                            <comment id="139839" author="gerrit" created="Sun, 24 Jan 2016 07:51:18 +0000"  >&lt;p&gt;Christopher J. Morrone (morrone2@llnl.gov) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/18112&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18112&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: debug intel buildfarm&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 073eb66d36756f2f498d4c9aceb982a25c97e364&lt;/p&gt;</comment>
                            <comment id="139985" author="morrone" created="Mon, 25 Jan 2016 23:08:17 +0000"  >&lt;p&gt;OK, I think I&apos;m ready for the first round of reviews on the current four patches:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18107&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18107&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18108&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18108&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18110&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18110&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18111&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18111&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="142363" author="morrone" created="Wed, 17 Feb 2016 01:44:34 +0000"  >&lt;p&gt;It is now just three patches:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18107&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18107&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18108&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18108&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://review.whamcloud.com/18111&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18111&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="145525" author="morrone" created="Tue, 15 Mar 2016 01:27:18 +0000"  >&lt;p&gt;In a &lt;a href=&quot;http://review.whamcloud.com/18107&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18107&lt;/a&gt; review, Oleg pointed out a potential issue with lack of a special-case for RC releases.  I admit that I totally missed how RC releases are currently being done.  To make a long story short, I am going to argue that we really shouldn&apos;t do it that way any more.&lt;/p&gt;

&lt;p&gt;Correct me if I am wrong, but as I now understand it, even though a tag might have a name of &quot;2.8.0-RC1&quot;, the build system is currently stripping off the &quot;-RC1&quot; and building the code as if it is a final &quot;2.8.0&quot; release.  As Oleg explained it, the intention here has been that when an RC is tested and agreed to be the final release, the packages from the RC build are already named with the final release version and can be released as-is.  The advantage here is that we don&apos;t need to trust our build procedures to be consistent, we can simply release the packages from the most recent RC.&lt;/p&gt;

&lt;p&gt;The down side should be pretty clear though too: RC releases are things that we explicitly want to release and have the general community test and vet.  So takeing 2.8.0 as an example, which to date has five RC releases (-RC1 through -RC5), there are exactly five &lt;em&gt;different&lt;/em&gt; versions of the code now out there in the wild with no way to tell them apart.&lt;/p&gt;

&lt;p&gt;I would argue that this downside of having multiple different codes out in the wild with exactly the same version vastly out weighs the possibility that we might not compile and generate packages the same way twice.&lt;/p&gt;

&lt;p&gt;So I would argue that not special-casing RC releases is a feature of change 18017, not a defect.  We will need to come up with a new way of versioning RC releases.  I would suggest that we use the obvious method already established (but not actually fully employeed):&lt;/p&gt;

&lt;p&gt;Release candidates will use the previous release&apos;s number, but have the thrid number start at 90.  For example, release candidates for the 2.8.0 release would have version numbers like: 2.7.90, 2.7.91, 2.7.92, 2.7.93, etc.&lt;/p&gt;

&lt;p&gt;This also has the advantage that it works well with packaging systems like RPM.  Many rpm-based distros explicitly advise against using substrings like &quot;RC1&quot; in version strings, because rpm just doesn&apos;t handle them, and assiciated package upgrades in any particularly intelligent way.  Granted, we somewhat avoided that problem by stripping off the RC altogether.&lt;/p&gt;

&lt;p&gt;But I think it is very bad form to have multiple different versions of the code to have the same version string.&lt;/p&gt;</comment>
                            <comment id="145537" author="green" created="Tue, 15 Mar 2016 05:30:57 +0000"  >&lt;p&gt;2.7.90, 2.7.91, ... are already used. they mean code drops in code freeze - i.e. when only blockers remain.&lt;/p&gt;

&lt;p&gt;RCs (release candidates) on the other hand are generated when there are no more blockers left (At the time of tagging, anyway). I guess it&apos;s possible to continue the versioning as is, but we might run our of digits quite soon in some cases.&lt;/p&gt;

&lt;p&gt;The &quot;five versions of code&quot; issue is real, I guess, but on the other hand it could be solved with other means. E.g. once we transition to signed packages, the real releases might be signed with a different key than the unsigned (or signed with a &quot;build bot&quot; only) key. Also we don&apos;t widely distribute these RCs and so nobody could get them. We can also destroy interim RCs from download site if needed (or it happens automatically over a relatively short time). And we can tell them apart by a build date too.&lt;br/&gt;
The actual drawbacks I encountered are: The changelog could only list an estimated &quot;release date&quot; since who knows how long the testing and all the approvals would take.&lt;/p&gt;

&lt;p&gt;The &quot;we don&apos;t need to trust our build procedures to be consistent&quot; is a real risk on the other hand on many levels. There might have been a system update between the latest RC and the release that updated some library breaking something in process (updating gcc, whatever), a glitch during building for other reasons producing a dud (ram error, disk error), somebody might have compromised the build server meanwhile (or inserted some code into the git tree), ...&lt;br/&gt;
All in all what it really means is we would really need to test the final release just like an another RC just to be sure it&apos;s still viable, and if it&apos;s not then what?&lt;/p&gt;

&lt;p&gt;In short, there&apos;s certain appeal to release code that was actually tested vs code that was only built even when it&apos;s supposedly the same as the one that was tested because it was supposedly built from the same source.&lt;/p&gt;</comment>
                            <comment id="145674" author="morrone" created="Tue, 15 Mar 2016 21:05:57 +0000"  >&lt;blockquote&gt;&lt;p&gt;2.7.90, 2.7.91, ... are already used&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;OK, fine, then they could start at .120, or .500, or whatever.  I don&apos;t care so much about the details as long as we follow some simple rules that make the versioning work well for the various packaging systems like RPM.  For instance, each release (including release candidate releases) should have a unique version number.  The version number should be mostly numerical, and atomically increasing.  Letters should be used sparingly, and preferably not at all, in the main part of the version string.  (Where main part is the first four period-separated numbers.  We allow for alphanumeric strings for per-organization branding after that)&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The &quot;five versions of code&quot; issue is real, I guess, but on the other hand it could be solved with other means. E.g. once we transition to signed packages, the real releases might be signed with a different key than the unsigned (or signed with a &quot;build bot&quot; only) key.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;With all due respect, I do no think that will be an acceptable solution.  The version string is specifically designed to make it easy to tell different builds and packages apart.  Unique version numbers are something packaging systems like rpm, and dpkg understand.  The relationship between different keys and how they effect install precedence, is not.  You say that there are other reasonable methods, but I do not really think we are likely to find one.  The version string is very explicitly the universal solution for this problem.  We are introducing larger problems by trying to avoid that universal solution.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Also we don&apos;t widely distribute these RCs and so nobody could get them.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Right, and no doubt that is how this has flown under the radar for so long.  Because this part of your development phase is kept pretty secret.&lt;/p&gt;

&lt;p&gt;But this is pretty much the opposite of how a good open source development project, with an open development process, should work.  If we had a more open process with good communication, then every RC release would have an announcement on mailing lists letting people know where to get the packages and asking for help in testing.  This announcement shouldn&apos;t just go to lustre-devel, it should also got to lustre-discuss.  We &lt;em&gt;want&lt;/em&gt; adventurous users/sysadmins that can carve out some time to help with testing to do so.  They should not have to go to git to do that, they should be able to download packages.&lt;/p&gt;

&lt;p&gt;If we make those packages reasonably well known and easy to access (which we should definitely do for 2.9.0 RCs and into the future), then it will not be at all acceptable to have them all use exactly the same version number.  They have to be uniquely and clearly versioned.&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;The &quot;we don&apos;t need to trust our build procedures to be consistent&quot; is a real risk on the other hand on many levels. There might have been a system update between the latest RC and the release that updated some library breaking something in process (updating gcc, whatever)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I agree, that is a more reasonable concern.  But it is one that is pretty much entirely manageable with a small amount of process and good communication.  When RC releases are about to start, we send an announcment out to the build farm admins saying &quot;RCs are about to begin.  Please freeze all changes to builders for branch X until further notice&quot;.   If you are really worried, you call them on the phone and get a verbal confirmation that they understand.  Many, many, many software projects are able to handle that level of release management in the real world.  I believe that we can on Lustre as well.  I&apos;m putting my money where my mouth is too, by spending LLNL manpower on setting up a new buildfarm for Lustre.  We&apos;ll present the prototype at LUG this year.&lt;/p&gt;

&lt;p&gt;Furthermore, there are those that would argue that if Lustre can&apos;t compile against multiple different libraries with the same ABI, then Lustre is just broken.  Remember that Lustre does not own the entire OS.  It really needs to work correctly anywhere the packages install without being forced.&lt;/p&gt;

&lt;p&gt;But I think keeping the builders static during the RC phase is totally reasonable.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;a glitch during building for other reasons producing a dud (ram error, disk error),&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Thats a one-in-a-billion type of problem.  I don&apos;t think that in even remotely as much of a problem as releasing several packages with different contents, but versioning them identically.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;somebody might have compromised the build server meanwhile (or inserted some code into the git tree), ...&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That isn&apos;t a problem specific to release condidates, so I don&apos;t think it is relevant to the conversation.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;All in all what it really means is we would really need to test the final release just like an another RC just to be sure it&apos;s still viable, and if it&apos;s not then what?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I actually think it is fairly reasonable to build the same commit with no other change but the version string and not do any additional testing.  But if people want to do more testing, that is certainly fine with me.   I would argue that 8-24 hours of automated-only testing would be more than sufficient as a sanity check that nothing went horribly wrong between the two tags (of the exact same commit).&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;In short, there&apos;s certain appeal to release code that was actually tested vs code that was only built even when it&apos;s supposedly the same as the one that was tested because it was supposedly built from the same source.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, I understand the appeal and your points.  But I don&apos;t think they are strong enough to justify the offsetting bad packing practice that you have introduced.&lt;/p&gt;

&lt;p&gt;We need to stop having multiple packages of different contents with the same exact version.  That is simply not acceptable.&lt;/p&gt;</comment>
                            <comment id="146561" author="gerrit" created="Wed, 23 Mar 2016 06:01:41 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/18107/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18107/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Replace version_tag.pl with LUSTRE-VERSION-GEN&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: ee813dbaa2a2b86f4873c4c289f62a0243aa9809&lt;/p&gt;</comment>
                            <comment id="148332" author="simmonsja" created="Mon, 11 Apr 2016 01:44:02 +0000"  >&lt;p&gt;I tried a spin with the latest lustre on Ubuntu 15.04 and I get this error:&lt;/p&gt;

&lt;p&gt;dpkg-buildpackage: warning:     debian/changelog(l1): version &apos;2.8.51_17_g5bd8f72-1&apos; is invalid: version number contains illegal character &apos;_&apos;&lt;br/&gt;
LINE: lustre (2.8.51_17_g5bd8f72-1) unstable; urgency=low&lt;br/&gt;
dpkg-buildpackage: source package lustre&lt;br/&gt;
dpkg-buildpackage: source version 2.8.51_17_g5bd8f72-1&lt;br/&gt;
dpkg-buildpackage: error: version number contains illegal character &apos;_&apos;&lt;br/&gt;
autoMakefile:1136: recipe for target &apos;debs&apos; failed&lt;br/&gt;
make: *** &lt;span class=&quot;error&quot;&gt;&amp;#91;debs&amp;#93;&lt;/span&gt; Error 25&lt;/p&gt;

&lt;p&gt;So I did some digging and I found that &apos;_&apos; is actually an invalid character for fedora as well. See this link:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So basically we will need to fix the lustre version not to contain any &apos;_&apos; for proper packaging on rpm and deb systems.&lt;/p&gt;</comment>
                            <comment id="148452" author="morrone" created="Mon, 11 Apr 2016 17:55:57 +0000"  >&lt;blockquote&gt;&lt;p&gt;So I did some digging and I found that &apos;_&apos; is actually an invalid character for fedora as well. See this link:&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Actually, that page says the following:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;When naming packages for Fedora, the maintainer must use the dash &apos;-&apos; as the delimiter for name parts. The maintainer must NOT use an underscore &apos;_&apos;, a plus &apos;+&apos;, or a period &apos;.&apos; as a delimiter.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;We are not using underscores in the &lt;em&gt;name parts&lt;/em&gt;, i.e. the Name field.  Underscores are only used in the Version.&lt;/p&gt;

&lt;p&gt;But yes, it looks like we&apos;ll need to work something out for dpkg systems.&lt;/p&gt;

&lt;p&gt;The main reason that we use underscores in the version is because Lustre currently has a variable number of version fields, which makes it difficult to tell the delineation between the upstream version and the following part of the version, whether third-party or development (git describe) information.&lt;/p&gt;

&lt;p&gt;We can&apos;t use a dash (&amp;#45;) in the version string on rpm systems.  That pretty much leaves a period as the only other sane option if we decide to stop using underscores.&lt;/p&gt;

&lt;p&gt;But maybe we stick with underscores on rpm systems, and munge the string in some acceptable way for dpkg?&lt;/p&gt;</comment>
                            <comment id="148480" author="simmonsja" created="Mon, 11 Apr 2016 19:45:23 +0000"  >&lt;p&gt;I discovered the &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/forbidden.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; is needed on rpms systems for the version field the hard way today.  For dpkgs both Name and Version fields can not have &apos;_&apos;. I need to rethink this. I did see many sites stating you should avoid &apos;-&apos; at all cost for rpms &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; Also I found when you have a top level .git directory if you remove the LUSTRE-VERSION-FILE it will not regenerate and it causes make rpms to fail.&lt;/p&gt;</comment>
                            <comment id="148489" author="morrone" created="Mon, 11 Apr 2016 20:18:31 +0000"  >&lt;blockquote&gt;&lt;p&gt;Also I found when you have a top level .git directory if you remove the LUSTRE-VERSION-FILE it will not regenerate and it causes make rpms to fail.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yeah, that is true.  For now, you will just need to rerun autogen.sh to make any version changes.  This could be automated in the future, but we pretty much need to fix autoreconf (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7700&quot; title=&quot;autoreconf does not work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7700&quot;&gt;LU-7700&lt;/a&gt;) to do it sanely.&lt;/p&gt;</comment>
                            <comment id="148619" author="simmonsja" created="Tue, 12 Apr 2016 17:52:47 +0000"  >&lt;p&gt;I tracked down what needs to be changed for make debs. We have:&lt;/p&gt;

&lt;p&gt;lversion=$$(sed -ne &apos;s/^#define VERSION &quot;&amp;#40;.*&amp;#41;&quot;$$/\1/p&apos; config.h);&lt;/p&gt;

&lt;p&gt;The sed command needs to be modified to change &apos;_&apos; to &apos;-&apos;. I&apos;m no sed master so Chris what needs to be done to make that so. &lt;/p&gt;</comment>
                            <comment id="148627" author="morrone" created="Tue, 12 Apr 2016 18:41:40 +0000"  >&lt;p&gt;Thanks for the legwork on that, James!&lt;/p&gt;

&lt;p&gt;We don&apos;t even need sed any more; I&apos;ll just use tr.&lt;/p&gt;</comment>
                            <comment id="148630" author="gerrit" created="Tue, 12 Apr 2016 18:48:09 +0000"  >&lt;p&gt;Christopher J. Morrone (morrone2@llnl.gov) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/19488&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/19488&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Convert version underscores to dashes for dpkg&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 368150054a379f1da81dce8b2e5016016f126655&lt;/p&gt;</comment>
                            <comment id="148668" author="simmonsja" created="Tue, 12 Apr 2016 22:37:39 +0000"  >&lt;p&gt;Yeah more simplification. Debian platforms are back in business. Thanks Chris.&lt;/p&gt;</comment>
                            <comment id="148812" author="dinatale2" created="Wed, 13 Apr 2016 20:39:28 +0000"  >&lt;p&gt;Already mentioned this to Chris, but this may have broken SUSE builds on the Lustre Buildbot. The error I&apos;m seeing on builds is &quot;error: line 86: Empty tag: Release:&quot;. Example log is &lt;a href=&quot;http://build.lustre.org/builders/SLES%2012.1%20x86_64%20%28BUILD%29/builds/878/steps/shell_2/logs/stdio&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="148850" author="morrone" created="Wed, 13 Apr 2016 23:52:02 +0000"  >&lt;blockquote&gt;&lt;p&gt;Already mentioned this to Chris, but this may have broken SUSE builds on the Lustre Buildbot.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I don&apos;t think so.  I think that this is a problem in the buildbot configuration.  I will open a github ticket shortly.&lt;/p&gt;</comment>
                            <comment id="149247" author="gerrit" created="Sun, 17 Apr 2016 20:51:26 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/18108/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18108/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Eliminate lustre_build_version.h&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 9c710162e5acebd860f1d3f0e1bf204ac1ba98c1&lt;/p&gt;</comment>
                            <comment id="149621" author="gerrit" created="Thu, 21 Apr 2016 02:26:41 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/18111/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18111/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Convert lustre_ver.h.in into a static .h file&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 6e84dbce05959e854d886772841a5d6d0690eb65&lt;/p&gt;</comment>
                            <comment id="150778" author="gerrit" created="Mon, 2 May 2016 23:56:30 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/19488/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/19488/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;del&gt;LU-7699&lt;/del&gt;&lt;/a&gt; build: Convert version underscores to dashes for dpkg&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: f2d28899a2c3b5a427f4322623ba138887fe6adc&lt;/p&gt;</comment>
                            <comment id="150856" author="simmonsja" created="Tue, 3 May 2016 17:08:11 +0000"  >&lt;p&gt;Chris is everything for this ticket landed. Can it be closed?&lt;/p&gt;</comment>
                            <comment id="150864" author="morrone" created="Tue, 3 May 2016 17:45:02 +0000"  >&lt;p&gt;Yes, I think now is a good time to close this one.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10120">
                    <name>Blocker</name>
                                            <outwardlinks description="is blocking">
                                        <issuelink>
            <issuekey id="34025">LU-7642</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="34026">LU-7643</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="34028">LU-7645</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="35781">LU-7976</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11259">LU-474</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzxz5z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>