<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 22:46:17 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>[COMPASS-7358] [Developer experience] CONTRIBUTING.md does not mention prerequisites; &quot;Getting started&quot; steps are incomplete and cannot be executed</title>
                <link>https://jira.mongodb.org/browse/COMPASS-7358</link>
                <project id="13182" key="COMPASS">Compass </project>
                    <description>&lt;h3&gt;&lt;a name=&quot;ProblemStatement%2FRationale&quot;&gt;&lt;/a&gt;&lt;b&gt;Problem Statement/Rationale&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;font color=&quot;#505f79&quot;&gt;What is going wrong?  What action would you like the Engineering team to take?&lt;/font&gt;&lt;br/&gt;
Cannot follow steps in &quot;Getting started&quot; in CONTRIBUTING.md. It would be nice if &quot;Getting started&quot; section listed all the prerequisites needed to get going. This can probably also affect the onboarding of the new internal contributors.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;StepstoReproduce&quot;&gt;&lt;/a&gt;&lt;b&gt;Steps to Reproduce&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;font color=&quot;#505f79&quot;&gt;How could an engineer replicate the issue you&#8217;re reporting?&lt;/font&gt;&lt;br/&gt;
On fresh Alpine Edge system with v3.16 repository added (should probably also work on fresh Alpine v3.16 system; on other distributions the results will probably be slightly different): install nodejs and npm packages from v3.16 repository (since &lt;a href=&quot;https://github.com/mongodb-js/compass/blob/main/CONTRIBUTING.md&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-js/compass/blob/main/CONTRIBUTING.md&lt;/a&gt; says that you&apos;ll need older node v16 and npm v8, and this is the latest Alpine version that has these); install git.&lt;br/&gt;
Then clone compass repository, and, as CONTRIBUTING.md instructs: navigate to the repository and run `npm run bootstrap`.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;ExpectedResults&quot;&gt;&lt;/a&gt;&lt;b&gt;Expected Results&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;font color=&quot;#505f79&quot;&gt;What do you expect to happen?&lt;/font&gt;&lt;br/&gt;
`npm run bootstrap` finishes successfully.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;ActualResults&quot;&gt;&lt;/a&gt;&lt;b&gt;Actual Results&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;font color=&quot;#505f79&quot;&gt;What do you observe is happening?&lt;/font&gt;&lt;br/&gt;
Some errors are produced; fixing them results in more errors; some of them require effort to figure out how to fix them. Not all errors seem to be fixable.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;AdditionalNotes&quot;&gt;&lt;/a&gt;&lt;b&gt;Additional Notes&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;font color=&quot;#505f79&quot;&gt;Any additional information that may be useful to include.&lt;/font&gt;&lt;br/&gt;
It seems that at least `python3`, `gcc`, `g++`, `make` and `krb5-dev` are required for `npm install` in the root monorepo directory (first part of what `npm run bootstrap` does) to finish successfully. This list is incomplete, because I didn&apos;t even manage to get `npm install` to finish successfully.&lt;/p&gt;

&lt;p&gt;Some specific examples:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;While CONTRIBUTING.md says &quot;You&apos;ll need node ^16 and npm ^8 installed on your machine to work with the repository locally&quot;, actual requirements in `package.json` are `&quot;node&quot;: &quot;&amp;gt;=16.15.1&quot;` and `&quot;npm&quot;: &quot;&amp;gt;=8.19.4&quot;`. So while e.g. node v18 and npm v10 satisfy these requirements, npm v8.10 (from Alpine v3.16 repository) does satisfy them. This can be solved easily enough;&lt;/li&gt;
	&lt;li&gt;`compass-shell` subpackage depends on `node-runtime-worker` which depends on `interruptor` (by MongoDB) which, according to its readme (&lt;a href=&quot;https://github.com/mongodb-js/interruptor&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb-js/interruptor&lt;/a&gt;) does not provide any pre-built binaries, so one has to manually figure out what dependencies does it need to be built; there are several more examples like that, but all seem to eventually be solved by installing `python3`, `make`, `gcc` and `g++`;&lt;/li&gt;
	&lt;li&gt;Several subpackages including `compass` depend on `kerberos` (by MongoDB), which, according to its readme (&lt;a href=&quot;https://www.npmjs.com/package/kerberos&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.npmjs.com/package/kerberos&lt;/a&gt;), requires &quot;Distribution-specific kerberos packages&quot;. This is solved by installing `krb5-dev` package, but some effort was required to figure that out when the only thing I had was the error message saying that `gssapi/gssapi.h` is not found;&lt;/li&gt;
	&lt;li&gt;Several subpackages, including `compass`, depend on `mongodb-client-encryption`, which I wasn&apos;t able to get to install on my system at all (related issue: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-600&quot; title=&quot;Cannot install mongodb-client-encryption npm dependency on Alpine&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-600&quot;&gt;MONGOCRYPT-600&lt;/a&gt;);&lt;/li&gt;
	&lt;li&gt;There are probably more issues, but I didn&apos;t go further after getting stuck at `npm run bootstrap` (or `npm install`) failing with &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-600&quot; title=&quot;Cannot install mongodb-client-encryption npm dependency on Alpine&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-600&quot;&gt;MONGOCRYPT-600&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;None of these issues are very significant, but they block outside contributors from following CONTRIBUTING.md, and might also make developer experience worse for new internal contributors (unless this is already resolved in some internal onboarding document).&lt;/p&gt;

&lt;p&gt;Unfortunately, because the list of issues above is non-exhaustive (because I wasn&apos;t able to get even `npm install` to finish successfully), I cannot submit any patch to CONTRIBUTING.md.&lt;/p&gt;</description>
                <environment>OS: Alpine Edge (with nodejs and npm packages from v3.16) x86_64.&lt;br/&gt;
node.js / npm versions: v16/v8</environment>
        <key id="2478072">COMPASS-7358</key>
            <summary>[Developer experience] CONTRIBUTING.md does not mention prerequisites; &quot;Getting started&quot; steps are incomplete and cannot be executed</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="inga.lovinde@outlook.com">Inga L</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 Oct 2023 19:20:55 +0000</created>
                <updated>Wed, 1 Nov 2023 23:14:09 +0000</updated>
                            <resolved>Wed, 1 Nov 2023 15:44:01 +0000</resolved>
                                                    <fixVersion>No version</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5847912" author="JIRAUSER1275518" created="Wed, 1 Nov 2023 23:14:09 +0000"  >&lt;p&gt;Just an update: I was able to run &lt;b&gt;&lt;tt&gt;npm run bootstrap&lt;/tt&gt;&lt;/b&gt; on Ubuntu 22.04 LTS with Node v16 and npm v8, but I still had to install &lt;b&gt;&lt;tt&gt;g++&lt;/tt&gt;&lt;/b&gt; and &lt;b&gt;&lt;tt&gt;make&lt;/tt&gt;&lt;/b&gt; (but nothing else). I was even able to run some tests.&lt;/p&gt;

&lt;p&gt;So updating CONTRIBUTING.md with the list of supported systems (Alpine is definitely not supported, Ubuntu 22.04 LTS seems to be supported... what else is?) and mentioning that &lt;a href=&quot;https://www.npmjs.com/package/node-gyp&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;standard node-gyp dependencies&lt;/a&gt; are required should be enough to resolve this ticket (and to simplify onboarding for new contributors) &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/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;</comment>
                            <comment id="5847864" author="JIRAUSER1275518" created="Wed, 1 Nov 2023 22:34:17 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=julia.oppenheim%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;julia.oppenheim@mongodb.com&quot;&gt;julia.oppenheim@mongodb.com&lt;/a&gt;, thank you for the feedback. I&apos;ve just researched things a bit deeper and it seems that Alpine support is a problem in general for MongoDB, both for the server and the tools (e.g. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36790&quot; title=&quot;Add build for Linux Alpine&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36790&quot;&gt;&lt;del&gt;SERVER-36790&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/browse/PHPC-1555&quot; title=&quot;Add Alpine Linux to the operating system axis&quot; class=&quot;issue-link&quot; data-issue-key=&quot;PHPC-1555&quot;&gt;&lt;del&gt;PHPC-1555&lt;/del&gt;&lt;/a&gt;). So you&apos;re right, and inability to follow the steps in CONTRIBUTING.md on Alpine is indeed not a huge problem at the moment, because nothing else mongo-related will work on Alpine anyway, not now at least. (It might be interesting for me to try to tackle this at some point in the future... after all, being able to run tooling on developer&apos;s OS of choice, from some point of view, can also be said to be a part of developer experience that dev tools team tries to improve, so that&apos;s not something completely unrelated &#128578;)&lt;/p&gt;

&lt;p&gt;I&apos;ll try to set up an Ubuntu container later and see if I encounter any problems with it. My guess is that I&apos;ll still have to install `make`, `gcc`, `krb5-dev` etc, so it might still be worth it to update CONTRIBUTING.md with the list of prerequisites (and mention that only some systems, such as Ubuntu, are supported for contributors).&lt;/p&gt;</comment>
                            <comment id="5846465" author="julia.oppenheim" created="Wed, 1 Nov 2023 15:43:32 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=inga.lovinde%40outlook.com&quot; class=&quot;user-hover&quot; rel=&quot;inga.lovinde@outlook.com&quot;&gt;inga.lovinde@outlook.com&lt;/a&gt; - we&apos;re closing this ticket for now, as this is a pretty specific edge case. We will revisit the priority of this in the future if it continues to come up. Thank you for your attention to this!&#160;&lt;/p&gt;</comment>
                            <comment id="5788962" author="JIRAUSER1275518" created="Wed, 18 Oct 2023 19:26:25 +0000"  >&lt;p&gt;There is a mistype in the issue description, but I don&apos;t see how to edit it:&lt;/p&gt;

&lt;p&gt;&amp;gt; So while e.g. node v18 and npm v10 satisfy these requirements, npm v8.10 (from Alpine v3.16 repository) does *&lt;b&gt;NOT&lt;/b&gt;* satisfy them.&lt;/p&gt;</comment>
                            <comment id="5788948" author="dbeng-pm-bot" created="Wed, 18 Oct 2023 19:20:57 +0000"  >&lt;p&gt;Hello &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=inga.lovinde%40outlook.com&quot; class=&quot;user-hover&quot; rel=&quot;inga.lovinde@outlook.com&quot;&gt;inga.lovinde@outlook.com&lt;/a&gt;, thank you for reaching out to us! The team will review your issue and get back to you soon as soon as possible. &lt;/p&gt;

&lt;p&gt;Please review your issue to ensure you&apos;ve included your environment details and have attached relevant logs (with any sensitive data redacted), so that we&apos;re best able to provide you a timely and thorough response. Thanks again!&lt;/p&gt;</comment>
                    </comments>
                    <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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 18 Oct 2023 19:20:57 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        13 weeks, 6 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_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></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>inga.lovinde@outlook.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            13 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>inga.lovinde@outlook.com</customfieldvalue>
            <customfieldvalue>julia.oppenheim@mongodb.com</customfieldvalue>
            <customfieldvalue>dbeng-pm-bot</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2wowf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2ekn0:</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_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2wb1r:</customfieldvalue>

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