<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:17:41 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-48638] Enforce more rules for LIBDEPS</title>
                <link>https://jira.mongodb.org/browse/SERVER-48638</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;We don&apos;t restrict LIBDEPS usage much, but we probably should. At least the following should probably be disallowed:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;We should only allow one of &lt;tt&gt;LIBDEPS&lt;/tt&gt; or &lt;tt&gt;LIBDEPS_PRIVATE&lt;/tt&gt; on anything that is a &lt;tt&gt;Program&lt;/tt&gt;. Since things don&apos;t link to &lt;tt&gt;Program&lt;/tt&gt; nodes, it doesn&apos;t matter which, but there is no advantage to declaring them one way or the other. Since &lt;tt&gt;LIBDEPS_PRIVATE&lt;/tt&gt; doesn&apos;t really mean anything (or &lt;tt&gt;LIBDEPS_INTERFACE&lt;/tt&gt; for that matter), we should disallow use of all forms other than &lt;tt&gt;LIBDEPS&lt;/tt&gt; on things that are {{Program}}s.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;We have a facility for injecting reverse dependency edges via &lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;PROG|LIB&amp;#93;&lt;/span&gt;DEPS_DEPENDENTS&lt;/tt&gt;. An injectable library by definition adds behavior that may or may not be present. We should disallow linking directly to nodes that use &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt;, since if that happens the node participates in both the forward and reverse sense, which is very confusing.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Continuing with &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt;, with the above rule enforced, it doesn&apos;t make sense for any &lt;tt&gt;Library&lt;/tt&gt; that declares itself to function via reverse dependency edges to have anything other than &lt;tt&gt;LIBDEPS_PRIVATE&lt;/tt&gt; dependencies, since if the injectable library is truly optional, it cannot be the source of any resolved symbols.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;If it is not currently enforced, we should ensure that for a given &lt;tt&gt;Program&lt;/tt&gt; or &lt;tt&gt;Library&lt;/tt&gt;, that any other library is listed exactly once among its &lt;tt&gt;LIBDEPS&lt;/tt&gt;, &lt;tt&gt;LIBDEPS_PRIVATE&lt;/tt&gt;, and &lt;tt&gt;LIBDEPS_INTERFACE&lt;/tt&gt; sections.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;While working on the above, we should also investigate any use of &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt; in the community repo, as it is somewhat unclear what purpose they serve.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1374323">SERVER-48638</key>
            <summary>Enforce more rules for LIBDEPS</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="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="9">Done</resolution>
                                        <assignee username="daniel.moody@mongodb.com">Daniel Moody</assignee>
                                    <reporter username="andrew.morrow@mongodb.com">Andrew Morrow</reporter>
                        <labels>
                    </labels>
                <created>Sat, 6 Jun 2020 16:06:35 +0000</created>
                <updated>Sat, 15 Aug 2020 03:08:56 +0000</updated>
                            <resolved>Fri, 24 Jul 2020 15:03:46 +0000</resolved>
                                                                    <component>Build</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3341037" author="xgen-internal-githook" created="Sat, 15 Aug 2020 03:08:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Moody&apos;, &apos;email&apos;: &apos;daniel.moody@mongodb.com&apos;, &apos;username&apos;: &apos;dmoody256&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48638&quot; title=&quot;Enforce more rules for LIBDEPS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48638&quot;&gt;&lt;del&gt;SERVER-48638&lt;/del&gt;&lt;/a&gt; added missing quote to error message&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ecd1e0b022a68110ada6517f84ffd91ea8a91bca&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ecd1e0b022a68110ada6517f84ffd91ea8a91bca&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3299760" author="xgen-internal-githook" created="Thu, 23 Jul 2020 21:52:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Moody&apos;, &apos;email&apos;: &apos;daniel.moody@mongodb.com&apos;, &apos;username&apos;: &apos;dmoody256&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48638&quot; title=&quot;Enforce more rules for LIBDEPS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48638&quot;&gt;&lt;del&gt;SERVER-48638&lt;/del&gt;&lt;/a&gt; Added LibdepsLinter to enforce LIBDEPS rules&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d986854f5ec4fda16d22baab2d380b202626661f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d986854f5ec4fda16d22baab2d380b202626661f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3299759" author="xgen-internal-githook" created="Thu, 23 Jul 2020 21:52:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Moody&apos;, &apos;email&apos;: &apos;daniel.moody@mongodb.com&apos;, &apos;username&apos;: &apos;dmoody256&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48638&quot; title=&quot;Enforce more rules for LIBDEPS&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48638&quot;&gt;&lt;del&gt;SERVER-48638&lt;/del&gt;&lt;/a&gt; Added LibdepsLinter to enforce LIBDEPS rules&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/22e64080b563ee5e15ffdda5a408f43fc838917a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/22e64080b563ee5e15ffdda5a408f43fc838917a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3279925" author="acm" created="Fri, 10 Jul 2020 17:00:20 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.moody&quot; class=&quot;user-hover&quot; rel=&quot;daniel.moody&quot;&gt;daniel.moody&lt;/a&gt; - That might be one way to achieve that restriction. Another, which had been my original hand-wavy idea, would be to split library &lt;tt&gt;libx&lt;/tt&gt; into two new libraries. The bulk of &lt;tt&gt;libx&lt;/tt&gt; would remain as is, and &lt;tt&gt;liba&lt;/tt&gt; would continue to depend on it the normal way. And then there would be a new, little library &lt;tt&gt;liby&lt;/tt&gt;, that depended on &lt;tt&gt;libx&lt;/tt&gt; and was injected into &lt;tt&gt;libb&lt;/tt&gt; via &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt;. And then we would enforce that because &lt;tt&gt;liby&lt;/tt&gt; had &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt;, it was prohibited from being the target of any &lt;tt&gt;LIBDEP&lt;/tt&gt; declaration. I think the advantage of doing it that way (though I haven&apos;t fully thought it through) would be that we wouldn&apos;t need to add a lot of new &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt; declarations. They are unusual and most developers aren&apos;t very familiar with them. I think both approaches could work though. Overall, I think this particular restriction should wait until last, as I think it is the most complex.&lt;/p&gt;</comment>
                            <comment id="3279800" author="JIRAUSER1253549" created="Fri, 10 Jul 2020 16:24:22 +0000"  >&lt;p&gt;&lt;b&gt;&lt;em&gt;we should disallow linking directly to nodes that use &lt;tt&gt;DEPS_DEPENDENTS&lt;/tt&gt;, since if that happens the node participates in both the forward and reverse sense, which is very confusing.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So a given library A, that is linking directly to node X, where node X is using DEPS_DEPENDENTS for reverse dependency to library B, library A should instead of direct linking, be listed as a reverse dependency on node X as well?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1413685">SERVER-49703</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1415782">SERVER-49760</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1415791">SERVER-49761</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 10 Jul 2020 16:24:22 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 25 weeks, 5 days 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1112</customfieldvalue>
                        </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>xgen-internal-githook</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 25 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxouqv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxe5zb:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="4007">Dev Platform 2020-07-13</customfieldvalue>
    <customfieldvalue id="4088">Dev Platform 2020-07-27</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</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|hxoh07:</customfieldvalue>

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