<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:25:02 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>[SERVER-30794] Make it easy to update jstests that set FCV after a major version release</title>
                <link>https://jira.mongodb.org/browse/SERVER-30794</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The shell&apos;s test infrastructure currently supports the aliases &quot;latest&quot; and &quot;last-stable&quot; when starting mongodb processes, where those aliases map to the current and previous major mongodb version number, which can be updated in one place when we branch for a new major version.  It would be nice to have a similar facility for FCV.  Some tests, especially in the multiversion suite, need to explicitly set the FCV to the &quot;previous&quot; version so that can run a mixed-version set, it would be nice to not have to locate and manually update all such tests when the major version changes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="419363">SERVER-30794</key>
            <summary>Make it easy to update jstests that set FCV after a major version release</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</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="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="spencer@mongodb.com">Spencer Brody</reporter>
                        <labels>
                            <label>neweng</label>
                    </labels>
                <created>Wed, 23 Aug 2017 15:05:51 +0000</created>
                <updated>Tue, 6 Dec 2022 03:53:48 +0000</updated>
                                                                            <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1661035" author="max.hirschhorn@10gen.com" created="Wed, 30 Aug 2017 20:22:14 +0000"  >&lt;p&gt;Per a Slack conversation with Spencer, I&apos;m moving this ticket over to the Replication team&apos;s backlog since introducing the &lt;tt&gt;FeatureCompatibilityVersion.kLatest&lt;/tt&gt; and &lt;tt&gt;FeatureCompatibilityVersion.kLastStable&lt;/tt&gt; constants is small and they are the ones who added the generic tests around feature compatibility version.&lt;/p&gt;</comment>
                            <comment id="1660808" author="max.hirschhorn@10gen.com" created="Wed, 30 Aug 2017 16:52:34 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Those tests use the &quot;last-stable&quot; and &quot;latest&quot; labels for picking the mongod versions, but the FCV is hard coded and will need to be updated when we branch for 3.8, would be nice if they could be updated automatically.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Just a couple points of clarification:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The concept of &quot;last-stable&quot; isn&apos;t updated automatically on master after we branch for a new release. The purpose of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27107&quot; title=&quot;Update &amp;#39;last-stable&amp;#39; MongoRunner alias to &amp;quot;3.4&amp;quot; in master branch&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27107&quot;&gt;&lt;del&gt;SERVER-27107&lt;/del&gt;&lt;/a&gt; was to update the major version referenced by &quot;last-stable&quot; and remove any tests that no longer made sense to test in the context of the MongoDB 3.6 release.&lt;/li&gt;
	&lt;li&gt;Bumping the feature compatibility version doesn&apos;t necessarily need to happen soon after we branch for a new release. For example, the changes from &lt;a href=&quot;https://github.com/mongodb/mongo/commit/67500efdc1c677173c737ecde2b07b42015ae5fd#diff-efa27865af4d0aa2a3edc4d8654e612e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;67500ef&lt;/a&gt; as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29350&quot; title=&quot;Bump featureCompatibilityVersion to 3.6&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29350&quot;&gt;&lt;del&gt;SERVER-29350&lt;/del&gt;&lt;/a&gt; happened in early June 2017.&lt;/li&gt;
&lt;/ul&gt;


&lt;blockquote&gt;
&lt;p&gt;It seems like the main reason we didn&apos;t do &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27355&quot; title=&quot;Avoid hard-coding 3.2 and 3.4 featureCompatibilityVersion in JS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27355&quot;&gt;&lt;del&gt;SERVER-27355&lt;/del&gt;&lt;/a&gt; was that at the time we weren&apos;t sure if FCV would continue to exist as a concept past 3.4.  Now that we&apos;ve decided to keep it as part of our general upgrade/downgrade story, it seems to make sense to add this support to our test infrastructure so that it&apos;s easier to write reusable multiVersion tests.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That was my initial apprehension to building testing infrastructure around feature compatibility version; however, Dianna closed the ticket as &quot;Won&apos;t fix&quot; because we ultimately deleted the tests that had explicitly set a feature compatibility version. Your request of wanting to write &lt;b&gt;generic tests&lt;/b&gt; involving feature compatibility version changes that story. I think the simplest thing is going to be to create a module in the jstests/libs/ directory that exposes two constants.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;thead&gt;
			&lt;tr id=&quot;syntaxplugin_title&quot;&gt;
			&lt;td bgcolor=&quot;#f5f5f5&quot; style=&quot;font-family: Arial,sans-serif; color: #333; border-bottom: 1px solid #bbb; background-color: #f5f5f5 !important; font-weight: bold; line-height: 1em;&quot; &gt;
				&lt;p style=&quot;margin: 5px 10px; padding: 0;&quot;&gt;jstests/libs/feature_compatibility_version.js&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/thead&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt; FeatureCompatibilityVersion = {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #008200; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// To-be-updated when we bump the featureCompatibilityVersion for the next release.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    kLastStable = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;3.4&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    kLatest = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;3.6&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;};&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Then it becomes best-effort to use these constants when writing generic tests and use hardcoded values when the test isn&apos;t expected to run after we bump the feature compatibility version, as is the case with binVersion and when the test isn&apos;t expected to run after we bump &quot;last-stable&quot;.&lt;/p&gt;</comment>
                            <comment id="1660004" author="spencer" created="Tue, 29 Aug 2017 20:47:59 +0000"  >&lt;p&gt;Yeah, this came up because we recently added generic multiVersion tests to test initial syncing between the current and previous mongodb versions, and for that test to work it needs to keep the FCV in line with the previous versions.  See &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c0c28f5663d232c67949ba3c6a5536c50018d0d0/jstests/multiVersion/initial_sync_last_stable_from_latest.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initial_sync_last_stable_from_latest.js&lt;/a&gt; and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/jstests/multiVersion/initial_sync_latest_from_last_stable.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initial_sync_latest_from_last_stable.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Those tests use the &quot;last-stable&quot; and &quot;latest&quot; labels for picking the mongod versions, but the FCV is hard coded and will need to be updated when we branch for 3.8, would be nice if they could be updated automatically.&lt;/p&gt;

&lt;p&gt;It seems like the main reason we didn&apos;t do &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27355&quot; title=&quot;Avoid hard-coding 3.2 and 3.4 featureCompatibilityVersion in JS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27355&quot;&gt;&lt;del&gt;SERVER-27355&lt;/del&gt;&lt;/a&gt; was that at the time we weren&apos;t sure if FCV would continue to exist as a concept past 3.4.  Now that we&apos;ve decided to keep it as part of our general upgrade/downgrade story, it seems to make sense to add this support to our test infrastructure so that it&apos;s easier to write reusable multiVersion tests.&lt;/p&gt;</comment>
                            <comment id="1659813" author="max.hirschhorn@10gen.com" created="Tue, 29 Aug 2017 18:08:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=spencer&quot; class=&quot;user-hover&quot; rel=&quot;spencer&quot;&gt;spencer&lt;/a&gt;, this idea came up during the MongoDB 3.4 release under &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27355&quot; title=&quot;Avoid hard-coding 3.2 and 3.4 featureCompatibilityVersion in JS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27355&quot;&gt;&lt;del&gt;SERVER-27355&lt;/del&gt;&lt;/a&gt;. However, after realizing that tests which run the {&lt;tt&gt;setFeatureCompatibilityVersion: &quot;3.2&quot;&lt;/tt&gt;} command would be removed during the MongoDB 3.6 release (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27107&quot; title=&quot;Update &amp;#39;last-stable&amp;#39; MongoRunner alias to &amp;quot;3.4&amp;quot; in master branch&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27107&quot;&gt;&lt;del&gt;SERVER-27107&lt;/del&gt;&lt;/a&gt;) there wasn&apos;t any perceived value in being able to more easily specify the &quot;last-stable&quot; feature compatibility version. Were you planning to write a more generic upgrade/downgrade test involving feature compatibility version?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Some tests, especially in the multiversion suite, need to explicitly set the FCV to the &quot;previous&quot; version so that can run a mixed-version set, it would be nice to not have to locate and manually update all such tests when the major version changes.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Would adding a &lt;tt&gt;requires_fcv34&lt;/tt&gt;, &lt;tt&gt;requires_fcv36&lt;/tt&gt;, etc. resmoke.py tag to these tests make it easier to find these tests in the future when we go to update or remove them?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="337664">SERVER-27355</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25128"><![CDATA[Replication]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 29 Aug 2017 18:08:56 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 24 weeks ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 24 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-repl</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htdhdz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht598n:</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>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htd3gv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>