<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:08:43 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>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[MONGOCRYPT-456] Assess feasibility of migrating from GetVersion.cmake to calc_release_version.py</title>
                <link>https://jira.mongodb.org/browse/MONGOCRYPT-456</link>
                <project id="17481" key="MONGOCRYPT">Libmongocrypt</project>
                    <description>&lt;p&gt;The way which the libmongocrypt build currently calculates versions is with a special purpose program which was implemented for the project, &lt;tt&gt;GetVersion.cmake&lt;/tt&gt;.  When the program was implemented the project had a linear development history and releases were made directly from the &lt;tt&gt;master&lt;/tt&gt; branch.  Today, releases are made from release branches (e.g., &lt;tt&gt;r1.3&lt;/tt&gt;, &lt;tt&gt;r1.4&lt;/tt&gt;, &lt;tt&gt;r1.5&lt;/tt&gt;), following a pattern essentially identical to the C driver.  This has resulted in some latent issues (i.e., &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-455&quot; title=&quot;Ensure builds from master carry versions higher than latest release branch&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-455&quot;&gt;&lt;del&gt;MONGOCRYPT-455&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The task of calculating build versions is handled by the program &lt;tt&gt;calc_release_version.py&lt;/tt&gt; in the C driver and C++ driver builds.  That program should be assessed for suitability of use in the libmongocrypt project.  If it is found to be suitable to the needs of the project, it should be incorporated to replace &lt;tt&gt;GetVersion.cmake&lt;/tt&gt; and the release process adjusted to best take advantage of the capabilities of &lt;tt&gt;calc_release_version.py&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2084865">MONGOCRYPT-456</key>
            <summary>Assess feasibility of migrating from GetVersion.cmake to calc_release_version.py</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/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="13201">Fixed</resolution>
                                        <assignee username="roberto.sanchez@mongodb.com">Roberto Sanchez</assignee>
                                    <reporter username="roberto.sanchez@mongodb.com">Roberto Sanchez</reporter>
                        <labels>
                    </labels>
                <created>Thu, 7 Jul 2022 15:35:32 +0000</created>
                <updated>Sat, 28 Oct 2023 10:25:47 +0000</updated>
                            <resolved>Thu, 25 Aug 2022 22:17:02 +0000</resolved>
                                                    <fixVersion>1.6.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4778198" author="xgen-internal-githook" created="Thu, 25 Aug 2022 22:14:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Roberto C. S&#225;nchez&apos;, &apos;email&apos;: &apos;roberto@connexer.com&apos;, &apos;username&apos;: &apos;rcsanchez97&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-456&quot; title=&quot;Assess feasibility of migrating from GetVersion.cmake to calc_release_version.py&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-456&quot;&gt;&lt;del&gt;MONGOCRYPT-456&lt;/del&gt;&lt;/a&gt; migrate GetVersion.cmake to calc_release_version.py (#446)&lt;/p&gt;

&lt;p&gt;Co-authored-by: Kevin Albertson &amp;lt;kevin.albertson@10gen.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/ab327d01e169b428f22a7e71ea9b810891c5b17c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/ab327d01e169b428f22a7e71ea9b810891c5b17c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4739183" author="kevin.albertson" created="Tue, 9 Aug 2022 21:09:43 +0000"  >&lt;p&gt;Proceeding SGTM.&lt;/p&gt;</comment>
                            <comment id="4739120" author="roberto.sanchez" created="Tue, 9 Aug 2022 20:53:24 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kevin.albertson%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;kevin.albertson@mongodb.com&quot;&gt;kevin.albertson@mongodb.com&lt;/a&gt; after evaluating &lt;tt&gt;calc_release_version.py&lt;/tt&gt; and comparing its output with the output of &lt;tt&gt;GetVersion.cmake&lt;/tt&gt;, it appears that &lt;tt&gt;calc_release_version.py&lt;/tt&gt; can completely replace &lt;tt&gt;GetVersion.cmake&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;The benefits are that the version calculation is more robust, does not suffer from the quirks that we&apos;ve encountered with &lt;tt&gt;GetVersion.cmake&lt;/tt&gt;, and does not require the invocation to specify a reference branch.  Additionally, the branch structure and release process of libmongocrypt are essentially identical to those of the C driver, so the maintenance of &lt;tt&gt;calc_release_version.py&lt;/tt&gt; for libmongocrypt should not require any additional effort above keeping the script in sync between the two projects.&lt;/p&gt;

&lt;p&gt;The only drawback that I can see is that making the switch would introduce a dependency on python/python3.  This seems like a worthwhile trade-off for the increased robustness and increased uniformity among our projects.&lt;/p&gt;

&lt;p&gt;I intend to move ahead with the replacement of &lt;tt&gt;GetVersion.cmake&lt;/tt&gt; with &lt;tt&gt;calc_release_version.py&lt;/tt&gt;.  Please let me know if I should hold off, or if you can think of anything that I might have missed.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0k7v4:</customfieldvalue>

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