<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:15:56 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-1790] Check stripes framework for duplicate dependencies in CI</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1790</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;As a safeguard to releasing new versions of &lt;tt&gt;stripes&lt;/tt&gt; (framework), we should ensure that any given version of &lt;tt&gt;stripes&lt;/tt&gt; does not pull down duplicate &lt;tt&gt;stripes-*&lt;/tt&gt; dependencies.  This check can be performed by running &lt;tt&gt;yarn why&lt;/tt&gt; (or inspecting the lock file) after a &lt;tt&gt;yarn install&lt;/tt&gt; of &lt;tt&gt;stripes&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;For example, repeat &lt;tt&gt;yarn why @folio/stripes-[name]&lt;/tt&gt; for each of the stripes modules.&lt;/p&gt;

&lt;p&gt;This is an example of expected output for &lt;tt&gt;yarn why @folio/stripes-components&lt;/tt&gt;.  Note there is only one reference to &lt;tt&gt;Found &quot;@folio/stripes-components@5.0.2&quot;&lt;/tt&gt;&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;$ yarn why @folio/stripes-components
yarn why v1.12.3
[1/4]   Why do we have the module &quot;@folio/stripes-components&quot;...?
[2/4]   Initialising dependency graph...
[3/4]   Finding dependency...
[4/4]   Calculating file sizes...
=&amp;gt; Found &quot;@folio/stripes-components@5.0.2&quot;
info Has been hoisted to &quot;@folio/stripes-components&quot;
info Reasons this module exists
   - Specified in &quot;dependencies&quot;
   - Hoisted from &quot;@folio#stripes-core#@folio#stripes-components&quot;
   - Hoisted from &quot;@folio#stripes-smart-components#@folio#stripes-components&quot;
   - Hoisted from &quot;@folio#stripes-form#@folio#stripes-components&quot;
info Disk size without dependencies: &quot;7.86MB&quot;
info Disk size with unique dependencies: &quot;26.2MB&quot;
info Disk size with transitive dependencies: &quot;62.79MB&quot;
info Number of shared dependencies: 48
  Done in 1.12s.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here is an example of a duplication.  This one should result in a failure:&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;$ yarn why @folio/stripes-components
yarn why v1.12.3
[1/4]   Why do we have the module &quot;@folio/stripes-components&quot;...?
[2/4]   Initialising dependency graph...
[3/4]   Finding dependency...
[4/4]   Calculating file sizes...
=&amp;gt; Found &quot;@folio/stripes-components@5.0.2&quot;
info Has been hoisted to &quot;@folio/stripes-components&quot;
info Reasons this module exists
   - Specified in &quot;dependencies&quot;
   - Hoisted from &quot;@folio#stripes-core#@folio#stripes-components&quot;
   - Hoisted from &quot;@folio#stripes-smart-components#@folio#stripes-components&quot;
   - Hoisted from &quot;@folio#stripes-smart-components#@folio#stripes-form#@folio#stripes-components&quot;
info Disk size without dependencies: &quot;7.86MB&quot;
info Disk size with unique dependencies: &quot;26.11MB&quot;
info Disk size with transitive dependencies: &quot;62.71MB&quot;
info Number of shared dependencies: 48
=&amp;gt; Found &quot;@folio/stripes-form#@folio/stripes-components@4.5.1&quot;
info Reasons this module exists
   - &quot;@folio#stripes-form&quot; depends on it
   - Hoisted from &quot;@folio#stripes-form#@folio#stripes-core#@folio#stripes-components&quot;
info Disk size without dependencies: &quot;7.26MB&quot;
info Disk size with unique dependencies: &quot;26.05MB&quot;
info Disk size with transitive dependencies: &quot;62.64MB&quot;
info Number of shared dependencies: 50
  Done in 1.68s.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In this case yarn is reporting two versions of stripes-components:&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;=&amp;gt; Found &quot;@folio/stripes-components@5.0.2&quot;
=&amp;gt; Found &quot;@folio/stripes-form#@folio/stripes-components@4.5.1&quot;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ideally we prevent a merge to master if such failures are present.&lt;/p&gt;</description>
                <environment></environment>
        <key id="81044">FOLIO-1790</key>
            <summary>Check stripes framework for duplicate dependencies in CI</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="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="5cd423bebc70090d6ce241b1">Ian Hardy</assignee>
                                                                <reporter accountid="557058:624212b9-5938-4e3b-84c6-8c8a8db84996">Matthew Jones</reporter>
                                    <labels>
                            <label>ci</label>
                            <label>platform-backlog</label>
                    </labels>
                <created>Thu, 7 Feb 2019 20:33:29 +0000</created>
                <updated>Wed, 3 Jun 2020 16:39:29 +0000</updated>
                            <resolved>Tue, 23 Apr 2019 17:54:34 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                <comments>
                                                            <comment id="195414" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Thu, 7 Feb 2019 20:38:33 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&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;, FYI.  This quality check was discussed following the stripes 2.0 release.  I&apos;ve added &quot;ci&quot; and &quot;platform-backlog&quot; labels.  Would you apply any others necessary for it to be considered for future planning/work?&lt;/p&gt;</comment>
                                                            <comment id="195418" author="5f9abc1eb45b2e007453f423" created="Thu, 7 Feb 2019 21:36:01 +0000"  >&lt;p&gt;Thanks, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A624212b9-5938-4e3b-84c6-8c8a8db84996&quot; class=&quot;user-hover&quot; rel=&quot;557058:624212b9-5938-4e3b-84c6-8c8a8db84996&quot; data-account-id=&quot;557058:624212b9-5938-4e3b-84c6-8c8a8db84996&quot; accountid=&quot;557058:624212b9-5938-4e3b-84c6-8c8a8db84996&quot; rel=&quot;noreferrer&quot;&gt;Matthew Jones&lt;/a&gt;.  I added the Development Team as well so it should appear in our backlog for further &quot;grooming&quot;. &lt;/p&gt;</comment>
                                                            <comment id="195421" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Thu, 14 Feb 2019 14:35:37 +0000"  >&lt;p&gt;I removed my suggestion from the description that this would also be a good check for platform-* builds.  This is because a platform could have multiple copies of &lt;tt&gt;stripes&amp;#45;&amp;#42;&lt;/tt&gt; modules &lt;em&gt;downloaded&lt;/em&gt; to the node modules directory , but that does not necessarily mean duplicates are included in the bundle.  For instance, the platform&apos;s devDependency on stripes-cli could pull down an extra copy of stripes-core. However, when the platform provides its own copy (via stripes framework), the CLI will use that instead.&lt;/p&gt;

&lt;p&gt;The stripes framework, on the other hand, should not be contributing to duplication within the modules it brings in.  Therefore this check described here should be limited to validating &lt;tt&gt;stripes&lt;/tt&gt; and not the platforms.  For platforms, we can configure the stripes-duplicate-plugin to error on such duplicates (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STCOR-222&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STCOR-222&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;define the stripes-duplicate-plugin list of non-dupe packages&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-222
        &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;
).  The plugin captures only those modules that are duplicated in the bundle and not on disk.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(also 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;FOLIO-1569&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1569&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;CI stripes build should fail on unmet peerDependency for stripes framework&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;
            FOLIO-1569
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
 is somewhat related, with regards to running quality checks on a platform)&lt;/em&gt;&lt;/p&gt;</comment>
                                                            <comment id="195425" author="5f9abc1eb45b2e007453f423" created="Mon, 8 Apr 2019 15:34:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cd423bebc70090d6ce241b1&quot; class=&quot;user-hover&quot; rel=&quot;5cd423bebc70090d6ce241b1&quot; data-account-id=&quot;5cd423bebc70090d6ce241b1&quot; accountid=&quot;5cd423bebc70090d6ce241b1&quot; rel=&quot;noreferrer&quot;&gt;Ian Hardy&lt;/a&gt; - Try to keep this as a self-contained script/function in jenkins-pipeline-libs/vars.   That way we can call it from multiple places if needed in the future.  &lt;/p&gt;</comment>
                                                            <comment id="195428" author="5cd423bebc70090d6ce241b1" created="Mon, 22 Apr 2019 13:11:36 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A624212b9-5938-4e3b-84c6-8c8a8db84996&quot; class=&quot;user-hover&quot; rel=&quot;557058:624212b9-5938-4e3b-84c6-8c8a8db84996&quot; data-account-id=&quot;557058:624212b9-5938-4e3b-84c6-8c8a8db84996&quot; accountid=&quot;557058:624212b9-5938-4e3b-84c6-8c8a8db84996&quot; rel=&quot;noreferrer&quot;&gt;Matthew Jones&lt;/a&gt; - Added an optional function to check yarn.lock for duplicate stripes-* modules. It runs `yarn why` and causes a build failure if a duplicate is found.&lt;/p&gt;

&lt;p&gt;Success looks like this: &lt;a href=&quot;https://jenkins-aws.indexdata.com/job/folio-org/job/stripes/job/folio-1790-testing/6/console&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://jenkins-aws.indexdata.com/job/folio-org/job/stripes/job/folio-1790-testing/6/console&lt;/a&gt;&lt;br/&gt;
Failure looks like this: &lt;a href=&quot;https://jenkins-aws.indexdata.com/job/folio-org/job/stripes/job/folio-1790-testing/7/console&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://jenkins-aws.indexdata.com/job/folio-org/job/stripes/job/folio-1790-testing/7/console&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I can turn on this quality check in the stripes Jenkins file if you&apos;re ready.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="61825">STCOR-222</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="61362">STRIPES-566</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="10144"><![CDATA[Core: Platform]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1533">CP: sprint 62</customfieldvalue>
    <customfieldvalue id="1534">Core: Platform - Sprint 61</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 7 Feb 2019 21:36:01 +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>