<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:12:50 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 add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-1370] Platforms fail to install on Windows (platform-core, folio-testing-platform)</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1370</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;Platforms containing the &lt;b&gt;postinstall&lt;/b&gt; script &lt;b&gt;&lt;tt&gt;build-module-descriptors.js&lt;/tt&gt;&lt;/b&gt; fail on Windows development environments when included in a yarn workspace.&lt;/p&gt;

&lt;p&gt;The following error is from a small workspace install (users, inventory, stripes-core, folio-testing-platform):&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Exit code: 1
Command: node ./build-module-descriptors.js
Arguments:
Directory: C:\Users\mattjones\projects\folio\tempworkspace4\node_modules\@folio\folio-testing-platform
Output:
* build-module-descriptors
C:\Users\mattjones\projects\folio\tempworkspace4\node_modules\@folio\folio-testing-platform\build-module-descriptors.js: cannot scan &apos;C:\Users\mattjones\projects\folio\tempworkspace4\node_modules\@folio\node_modules\@folio&apos;: ENOENT: no such file or directory, scandir &apos;C:\Users\mattjones\projects\folio\tempworkspace4\node_modules\@folio\node_modules\@folio&apos;

    at ChildProcess.exithandler (child_process.js:291:12)
    at ChildProcess.emit (events.js:182:13)
    at maybeClose (internal/child_process.js:961:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:248:5) killed: false, code: 1, signal: null, cmd: &apos;yarn&apos; }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Error from a large workspace install (all available modules):&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;error C:\Users\mattjones\projects\folio\tempworkspace5all\node_modules\@folio\platform-core: Command failed.
Exit code: 2
Command: node ./build-module-descriptors.js
Arguments:
Directory: C:\Users\mattjones\projects\folio\tempworkspace5all\node_modules\@folio\platform-core
Output:
* build-module-descriptors
processing &apos;eslint-config-stripes&apos;
C:\Users\mattjones\projects\folio\tempworkspace5all\node_modules\@folio\platform-core\build-module-descriptors.js: cannot run &apos;node node_modules/@folio/stripes-core/util/package2md.js node_modules/@folio/eslint-config-stripes/package.json &amp;gt; ModuleDescriptors/eslint-config-stripes.json&apos;: { Error: Command failed: node node_modules/@folio/stripes-core/util/package2md.js node_modules/@folio/eslint-config-stripes/package.json &amp;gt; ModuleDescriptors/eslint-config-stripes.json
internal/modules/cjs/loader.js:596
    throw err;
    ^

Error: Cannot find module &apos;C:\Users\mattjones\projects\folio\tempworkspace5all\node_modules\@folio\platform-core\node_modules\@folio\stripes-core\util\package2md.js&apos;
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
    at Function.Module._load (internal/modules/cjs/loader.js:520:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at startup (internal/bootstrap/node.js:238:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

    at checkExecSyncError (child_process.js:603:11)
    at Object.execSync (child_process.js:640:13)
    at fs.readdir (C:\Users\mattjones\projects\folio\tempworkspace5all\platform-core\build-module-descriptors.js:30:35)
    at FSReqWrap.oncomplete (fs.js:169:20)
  status: 1,
  signal: null,
  output:
   [ null,
     &amp;lt;Buffer &amp;gt;,
     &amp;lt;Buffer 69 6e 74 65 72 6e 61 6c 2f 6d 6f 64 75 6c 65 73 2f 63 6a 73 2f 6c 6f 61 64 65 72 2e 6a 73 3a 35 39 36 0d 0a 20 20 20 20 74 68 72 6f 77 20 65 72 72 3b ... &amp;gt; ],
  pid: 1040,
  stdout: &amp;lt;Buffer &amp;gt;,
  stderr:
   &amp;lt;Buffer 69 6e 74 65 72 6e 61 6c 2f 6d 6f 64 75 6c 65 73 2f 63 6a 73 2f 6c 6f 61 64 65 72 2e 6a 73 3a 35 39 36 0d 0a 20 20 20 20 74 68 72 6f 77 20 65 72 72 3b ... &amp;gt; }
internal/modules/cjs/loader.js:596
    throw err;
    ^

Error: Cannot find module &apos;C:\Users\mattjones\projects\folio\tempworkspace5all\node_modules\@folio\platform-core\node_modules\@folio\stripes-core\util\package2md.js&apos;
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
    at Function.Module._load (internal/modules/cjs/loader.js:520:25)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="80759">FOLIO-1370</key>
            <summary>Platforms fail to install on Windows (platform-core, folio-testing-platform)</summary>
                <type id="10001" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium">Bug</type>
                                            <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/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="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="557058:624212b9-5938-4e3b-84c6-8c8a8db84996">Matthew Jones</assignee>
                                                                <reporter accountid="557058:624212b9-5938-4e3b-84c6-8c8a8db84996">Matthew Jones</reporter>
                                    <labels>
                    </labels>
                <created>Mon, 23 Jul 2018 15:50:04 +0000</created>
                <updated>Tue, 11 Dec 2018 16:14:56 +0000</updated>
                            <resolved>Tue, 11 Dec 2018 16:14:56 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="194730" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Mon, 23 Jul 2018 17:12:27 +0000"  >&lt;p&gt;Some short-term workarounds:&lt;/p&gt;

&lt;p&gt;(a) Don&apos;t select &lt;b&gt;platform-core&lt;/b&gt; and &lt;b&gt;folio-testing-platform&lt;/b&gt; while running &lt;tt&gt;stripes workspace&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;(b) If those platforms are needed, bypass their install scripts.  This can be done by deferring the yarn install, by running stripes workspace with the &lt;b&gt;&amp;#45;&amp;#45;no-install&lt;/b&gt; option.  Following the workspace command, manually disable the &lt;b&gt;postinstall&lt;/b&gt; scripts found in &lt;b&gt;platform-core&lt;/b&gt; and &lt;b&gt;folio-testing-platform&lt;/b&gt;.  This can be done by renaming &quot;postinstall&quot; to anything else.  Finally perfrorm a &lt;b&gt;&lt;tt&gt;yarn install&lt;/tt&gt;&lt;/b&gt; from the workspace directory.&lt;/p&gt;

&lt;p&gt;(c) If the module descriptors from build-module-descriptors are also needed, perform workaround &lt;b&gt;(b)&lt;/b&gt; and run &lt;b&gt;&lt;tt&gt;stripes mod descriptor --configFile stripes.config.js&lt;/tt&gt;&lt;/b&gt; from within the platform.&lt;/p&gt;</comment>
                                                            <comment id="194733" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Mon, 23 Jul 2018 17:47:48 +0000"  >&lt;p&gt;The overall issue appears to be a result of hard-coded paths within build-module-descriptors.js that are non-workspace and/or non-Windows friendly.  The following solutions come to mind:&lt;/p&gt;

&lt;p&gt;(d) Permanently disable the &lt;b&gt;postinstall&lt;/b&gt; script, by renaming it so it doesn&apos;t automatically run with every install.  Then manually invoke the script as needed by Jenkins.  Eventually this would be followed by (e) or (f) below.&lt;/p&gt;

&lt;p&gt;(e) Update and maintain build-module-descriptors.js to be cross-platform and/or workspace friendly. This will likely involve a couple path tweaks to the existing command.&lt;/p&gt;

&lt;p&gt;(f) Retire build-module-descriptors.js replacing it with the CLI&apos;s mod descriptor command that is cross-platform.  I&apos;m inclined to go this route to consolidate code, however, one notable difference is the CLI outputs an array of module descriptors rather than separate files for each.  Therefore added work may be necessary in the CLI or Jenkins to fully support this option.&lt;/p&gt;

&lt;p&gt;Given &quot;platform-&amp;#42;&quot; replaces &quot;folio-testing-platform&quot;, perhaps we start by implementing  &lt;b&gt;(d)&lt;/b&gt; on platform-core, leaving folio-testing-platform alone.  I can then omit folio-testing-platform from the &quot;stripes workspace&quot; command, promoting platform-&amp;#42; in its place.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt;, Any thoughts?  Does diverging &quot;platform-core&quot; from &quot;folio-testing-platform&quot; further complicate things in CI given the outstanding testing issues?&lt;/p&gt;</comment>
                                                            <comment id="194738" author="5f9abc1eb45b2e007453f423" created="Mon, 23 Jul 2018 18:39:29 +0000"  >&lt;p&gt;I like your plan, particularly option (f).  We can work around the json array of MDs issue.   Retiring build-module-descriptors.js would also resolve the issue of generating module descriptors for @folio dependencies that are not modules.  &lt;/p&gt;

&lt;p&gt;I&apos;ve renamed &apos;postinstall&apos; in platform-core to &apos;generate-mod-descriptors&apos; and updated the CI to run &apos;yarn generate-mod-descriptors --strict&apos; for any platform except folio-testing-platform which will continue to execute &apos;yarn postinstall --strict&apos;.  &lt;/p&gt;
</comment>
                                                            <comment id="194739" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Tue, 11 Dec 2018 16:14:56 +0000"  >&lt;p&gt;Closing this issue because platform-core/complete have previously been resolved and folio-testing-platform has since been deprecated in favor of platform-complete&apos;s snapshot branch.  Folio-testing-platform has been removed from selection in the CLI workspace command as well.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="80711">FOLIO-1344</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzyqof:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 23 Jul 2018 18:39:29 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>