<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:22:24 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-2673] SPIKE: investigate if stripes bundle can be &quot;precompiled&quot;</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2673</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;We are facing high mem and cpu load when compiling Stripes bundles.&lt;/p&gt;

&lt;p&gt;It would be interesting to investigate if some of the compilation work can be performed during individual module compilation so that a bundle created from (mostly) released UI modules can be compiled more efficiently.&lt;/p&gt;

&lt;p&gt;Also, are there any steps that can be skipped when constructing the bundle if the bundler is supposed to be used for development only?&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; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=6291011f9c617b006a6f8d98&quot; class=&quot;user-hover&quot; rel=&quot;6291011f9c617b006a6f8d98&quot; data-account-id=&quot;6291011f9c617b006a6f8d98&quot; accountid=&quot;6291011f9c617b006a6f8d98&quot; rel=&quot;noreferrer&quot;&gt;jroot&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; please provide more details, if any&lt;/p&gt;</description>
                <environment></environment>
        <key id="81713">FOLIO-2673</key>
            <summary>SPIKE: investigate if stripes bundle can be &quot;precompiled&quot;</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</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:b5c00130-8516-454c-acae-335db2b62fd8">Ryan Berger</assignee>
                                                                <reporter accountid="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</reporter>
                                    <labels>
                    </labels>
                <created>Wed, 1 Jul 2020 13:58:12 +0000</created>
                <updated>Wed, 6 Jan 2021 18:17:01 +0000</updated>
                            <resolved>Tue, 20 Oct 2020 14:52:56 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                <comments>
                                                            <comment id="199306" author="5f9abc1eb45b2e007453f423" created="Wed, 1 Jul 2020 14:16:43 +0000"  >&lt;p&gt;I wonder if, for development purposes only,  Snowpack is a viable alternative.  &lt;a href=&quot;https://www.snowpack.dev/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.snowpack.dev/&lt;/a&gt;&lt;/p&gt;
</comment>
                                                            <comment id="199307" author="62a96ae7192edb006f9f1bf9" created="Wed, 8 Jul 2020 14:49:25 +0000"  >&lt;p&gt;per 7/8 stripes-force meeting, Ryan is assigned to this spike. Will consider for Sprint 94 or 95. &lt;/p&gt;</comment>
                                                            <comment id="199308" author="557058:b5c00130-8516-454c-acae-335db2b62fd8" created="Wed, 7 Oct 2020 13:23:08 +0000"  >&lt;p&gt;As I&apos;ve been working on this, I started testing out Snowpack, but did find that it did not play well with a number of aspects to our bundling process such as the `stripes-config` imports. Could get there potentially with more massaging, but for the time being, I&apos;m focusing on &lt;a href=&quot;https://webpack.js.org/plugins/dll-plugin&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://webpack.js.org/plugins/dll-plugin&lt;/a&gt; which would be far less invasive to our current setup but should still provide the same benefits.&lt;/p&gt;</comment>
                                                            <comment id="199309" author="62a96ae7192edb006f9f1bf9" created="Mon, 19 Oct 2020 12:30:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab5c00130-8516-454c-acae-335db2b62fd8&quot; class=&quot;user-hover&quot; rel=&quot;557058:b5c00130-8516-454c-acae-335db2b62fd8&quot; data-account-id=&quot;557058:b5c00130-8516-454c-acae-335db2b62fd8&quot; accountid=&quot;557058:b5c00130-8516-454c-acae-335db2b62fd8&quot; rel=&quot;noreferrer&quot;&gt;Ryan Berger&lt;/a&gt;, should we add 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STCLI-154&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STCLI-154&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Add support for creating and consuming Webpack DLL bundles&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            STCLI-154
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 and 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STCOR-471&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STCOR-471&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Add support for React Webpack DLL bundle&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            STCOR-471
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 to this Sprint (aka Sprint 100)?&lt;/p&gt;</comment>
                                                            <comment id="199310" author="557058:b5c00130-8516-454c-acae-335db2b62fd8" created="Tue, 20 Oct 2020 14:52:56 +0000"  >&lt;p&gt;Confirmed that we can pre-compile using Webpack DLL plugin. Created stories linked to this story for implementation.&lt;/p&gt;</comment>
                                                            <comment id="199311" author="557058:b5c00130-8516-454c-acae-335db2b62fd8" created="Tue, 20 Oct 2020 19:20:30 +0000"  >&lt;p&gt;Yes, let&apos;s add 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STCLI-154&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STCLI-154&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Add support for creating and consuming Webpack DLL bundles&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            STCLI-154
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 and 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STCOR-471&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STCOR-471&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Add support for React Webpack DLL bundle&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            STCOR-471
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 to this Sprint (aka Sprint 100).&lt;/p&gt;</comment>
                                                            <comment id="199312" author="557058:ff6a9612-bb35-41b2-88a8-a5b66d0a41a0" created="Wed, 6 Jan 2021 16:52:53 +0000"  >&lt;p&gt;We spent some time working on the DLL approach. The DLL which includes 3rd party dependencies (react, moment, etc) is now included in &lt;br/&gt;
&lt;a href=&quot;https://github.com/folio-org/stripes-vendor-dll&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/stripes-vendor-dll&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two way to consume it:&lt;/p&gt;

&lt;p&gt;1. Add  &quot;@folio/stripes-vendor-dll&quot; to package.json in the ui module / platform you want to build:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-javascript&quot;&gt;
  &lt;span class=&quot;code-quote&quot;&gt;&quot;@folio/stripes-vendor-dll&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;1.0.0&quot;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then yarn it and run: &lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-javascript&quot;&gt;
stripes build ./stripes.config.js --useDll ./node_modules/@folio/stripes-vendor-dll/output/stripesVendorDll.json
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;2. Clone stripes-vendor-dll from &lt;a href=&quot;https://github.com/folio-org/stripes-vendor-dll&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/stripes-vendor-dll&lt;/a&gt; and run:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-javascript&quot;&gt;
cd ./stripes-vendor-dll &amp;amp;&amp;amp; yarn &amp;amp;&amp;amp; yarn build
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then from the module or platform folder run:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-javascript&quot;&gt;
stripes build ./stripes.config.js --useDll ../stripes-vendor-dll/output/stripesVendorDll.json
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The stripes-vendor-dll currently only includes 3rd party dependencies with some stripes dependencies (stripes-components). With this setup we noticed only 20% improvement while building platform-complete.&lt;/p&gt;

&lt;p&gt;With stripes-core included in the DLL the build performance was about 10x faster.&lt;/p&gt;

&lt;p&gt;The stripes-core, stripes-smart-components, redux-form and redux-final-form are currently not included in the vendor DLL due to the way the stripes-core is structured. &lt;/p&gt;

&lt;p&gt;When trying to create a DLL with stripes-core I ran into an issue related to stripes-config. stripes-core currently consumes stripes-config so the default stripes-config is also being included in the DLL bundle. When that DLL is being used to create a fresh build with a new stripes.config.js the previous one from the DLL is being used. I tried to extract stripes-config into a separate DLL and make the vendor DLL depend on it. That way the vendor DLL could be used and just swap the stripes-config DLL with the fresh one. That didn&apos;t work out well because the stripes-config also includes &lt;b&gt;getModule&lt;/b&gt; which pulls in code for individual ui modules which also include stripes-core. This creates a circular dependency: stripes-core -&amp;gt; stripes-config -&amp;gt; getModule (ui module) -&amp;gt; stripes-core.&lt;/p&gt;

&lt;p&gt;We will need to restructure stripes-core / stripes-config first before we can make any further progress with this. &lt;/p&gt;


</comment>
                                                            <comment id="199313" author="557058:ff6a9612-bb35-41b2-88a8-a5b66d0a41a0" created="Wed, 6 Jan 2021 18:17:01 +0000"  >&lt;p&gt;Another idea to explore here is to use webpack externals: &lt;a href=&quot;https://webpack.js.org/configuration/externals/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://webpack.js.org/configuration/externals/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&apos;m not sure yet if this plays nicely with DLL but it&apos;s worth trying it out.&lt;/p&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="71455">STCLI-154</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="62002">STCOR-428</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="61993">STCOR-471</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="62104">STCOR-474</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="62105">STCOR-475</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11562">UXPROD-2767</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="81710">FOLIO-2672</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81849">FOLIO-2889</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="62118">STCOR-487</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10183"><![CDATA[Stripes Force]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzx3sp:0r</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1140">stripes-force 98</customfieldvalue>
    <customfieldvalue id="970">stripes-force 99</customfieldvalue>
    <customfieldvalue id="971">stripes-force 100</customfieldvalue>
    <customfieldvalue id="1758">stripes-force 95</customfieldvalue>
    <customfieldvalue id="1759">stripes-force 96</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 1 Jul 2020 14:16:43 +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>