<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:26:06 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>[DRIVERS-2649] Ensure unified spec tests use the lowest possible spec version</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2649</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-color: #21313c;border-style: solid;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;The unified test runner specification requires tests to use the lowest possible spec version that supports all features that are used. This is not enforced however, and adhering to this requirement is difficult for spec authors. A script to check files could help authors ensure their tests comply with the requirement, and allows us to also check it during the CI process.&lt;/p&gt;

&lt;p&gt;The test process is as follows (for each test file):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Read spec version from test file&lt;/li&gt;
	&lt;li&gt;Validate test file against indicated schema version&lt;/li&gt;
	&lt;li&gt;Validate against previous schema version, expect failure&lt;/li&gt;
	&lt;li&gt;If previous task does not fail, keep repeating with older versions until validation failure is achieved&lt;/li&gt;
	&lt;li&gt;Once the test fails validation against a schema version &lt;tt&gt;X.Y&lt;/tt&gt;, &lt;tt&gt;X.Y+1&lt;/tt&gt; is the lowest required schema version and can be printed in the output.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;
&lt;p&gt;Driver authors.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;
&lt;p&gt;Using a higher than necessary spec version can cause problems for drivers that haven&apos;t yet implemented the changes required for that version. For example, version 1.13 introduced changes for logging, so any driver that hasn&apos;t yet implemented changes for the logging spec will not be able to run such files. Only tests that use logging functionality (or any other functionality added later) should specify a 1.13 requirement to ensure maximum compatibility with drivers.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;
&lt;p&gt;This has occurred multiple times and has generally been difficult to enforce (both as author and as reviewer).&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;
&lt;p&gt;Drivers can&apos;t run spec tests even when the test runner supports all features in the tests.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;
&lt;p&gt;Not urgent&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;
&lt;p&gt;No&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;
&lt;p&gt;No functional impact and only test changes&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;AcceptanceCriteria&quot;&gt;&lt;/a&gt;&lt;b&gt;Acceptance Criteria&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Create a script that verifies that each test file uses the lowest possible schema version&lt;/li&gt;
	&lt;li&gt;Set up CI workflow to run script and fail CI if a file could use a lower spec version.&lt;/li&gt;
	&lt;li&gt;Ideally, the CI step would create an error in the affected file, which is then shown in the &quot;Code&quot; tab of a pull request. This can be done using &lt;a href=&quot;https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Workflow Commands&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2364995">DRIVERS-2649</key>
            <summary>Ensure unified spec tests use the lowest possible spec version</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="andreas.braun@mongodb.com">Andreas Braun</reporter>
                        <labels>
                    </labels>
                <created>Mon, 12 Jun 2023 07:47:14 +0000</created>
                <updated>Thu, 21 Sep 2023 19:17:59 +0000</updated>
                                                                <component>Unified Test Runner</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="5494263" author="xgen-internal-githook" created="Tue, 13 Jun 2023 07:02:05 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;J&#233;r&#244;me Tamarelle&apos;, &apos;email&apos;: &apos;jerome@tamarelle.net&apos;, &apos;username&apos;: &apos;GromNaN&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2644&quot; title=&quot;Downgrade to the lowest supported schema version&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2644&quot;&gt;&lt;del&gt;DRIVERS-2644&lt;/del&gt;&lt;/a&gt; Downgrade unified test files to the lowest supported schema version (#1431)&lt;/p&gt;

&lt;p&gt;CI Script to be created later as part of &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2649&quot; title=&quot;Ensure unified spec tests use the lowest possible spec version&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2649&quot;&gt;DRIVERS-2649&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/3880a6ab41d495c1fbe88b49f2d67347ea128dd2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/3880a6ab41d495c1fbe88b49f2d67347ea128dd2&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2361046">DRIVERS-2644</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10940"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1vj9c:</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>