<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:13:10 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-1415] SPIKE: consider pre-release syntax for UI module snapshots</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1415</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;This ticket is being creating because I don&apos;t want &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;&apos;s suggestion in 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-1344&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1344&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;use stripes-cli in the build and test process&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-1344
        &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;
 get get overlooked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I&apos;m thinking that the way we version UI components in the CI needs to change. It doesn&apos;t make any sense to version a component in testing as v1.2.3000123 and then release v1.3.0. It would make more sense for a developer to version the component in Github as something like 1.3.0-SNAPSHOT before development for that sprint or feature branch begins - similar to the process the backend Maven developers use - The CI can then iteratively append build numbers to that i.e 1.3.0-SNAPSHOT.1 until the release is actually made for 1.3.0 or whatever. I know that there are some limitations to how NPM dependency resolution occurs with snapshot releases, but they may work in our favor with this model - TBD. &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Use of this pre-release syntax will also enable our build numbers to adhere to semver. Currently our &lt;b&gt;npm-folioci&lt;/b&gt; build numbers can be misleading at the patch segment. For example, version &lt;b&gt;1.2.3000123&lt;/b&gt; generated from a package defining itself as &lt;b&gt;1.2.3&lt;/b&gt;, technically can be satisfied by a request for &lt;b&gt;^1.2.4&lt;/b&gt;.  Also, determining compatibility with our own npm-folio can also be a challenge. For example, is &lt;b&gt;1.2.3000456&lt;/b&gt; actually the CI build of &lt;b&gt;1.2.3&lt;/b&gt; or a build working toward &lt;b&gt;1.3.0&lt;/b&gt;?&lt;/p&gt;

&lt;p&gt;One challenge, as I understand from the earlier JIRAs on this topic (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-690&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-690&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;folio-testing.aws.indexdata.com does not use latest stripes-connect etc.&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium&quot; /&gt;
            FOLIO-690
        &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;FOLIO-696&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-696&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Rethink NPM package versioning for generating packages from HEAD. &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-696
        &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;
), is with pulling in the latest versions of stripes dependencies defined below the platform&apos;s package.json (eg. platform &amp;gt; ui-app &amp;gt; stripes-smart-components &amp;gt; stripes-components). Grouping our stripes-* dependencies (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STRIPES-543&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STRIPES-543&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Consider &amp;quot;stripes-framework&amp;quot; to wrap &amp;quot;stripes-*&amp;quot; dependencies&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;
            STRIPES-543
        &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;
) should alleviate this, by pointing the app/platform to a version/snapshot of the framework which takes care of the underlying dependencies.&lt;/p&gt;</description>
                <environment></environment>
        <key id="79533">FOLIO-1415</key>
            <summary>SPIKE: consider pre-release syntax for UI module snapshots</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="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="557058:624212b9-5938-4e3b-84c6-8c8a8db84996">Matthew Jones</reporter>
                                    <labels>
                            <label>RFC</label>
                            <label>build-release</label>
                            <label>ci</label>
                            <label>platform-backlog</label>
                    </labels>
                <created>Thu, 16 Aug 2018 19:50:17 +0000</created>
                <updated>Mon, 8 Feb 2021 09:10:04 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                <comments>
                                                            <comment id="191505" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Thu, 16 Aug 2018 20:17:34 +0000"  >&lt;p&gt;To make this work, what would the process look like?  Here is one suggestion:&lt;/p&gt;

&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Step&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Typical development in the master branch maintains a package.json matching &lt;b&gt;x.y.z-SNAPSHOT&lt;/b&gt;, where &quot;x.y.z&quot; represents one patch number increment over the prior release&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&lt;b&gt;1.2.4-SNAPSHOT&lt;/b&gt; when prior release was &lt;b&gt;1.2.3&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Changelog.md reflects progress toward version &lt;b&gt;x.y.z&lt;/b&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &lt;b&gt;1.2.4 (IN PROGRESS)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;As merges into master are made, Jenkins/CI publishes packages as &lt;b&gt;x.y.z.-SNAPSHOT.buildnumber&lt;/b&gt; to &lt;b&gt;npm-folioci&lt;/b&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&lt;b&gt;1.2.4-SNAPSHOT.107&lt;/b&gt; (npm-folioci)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;When creating a release branch, developer follows typical release process reconciling changelog as necessary.  New: The developer omits &quot;-SNAPSHOT&quot; from the package.json&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &lt;b&gt;1.2.4&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;A merge without &quot;-SNAPSHOT&quot; instructs Jenkins to publish version &lt;b&gt;x.y.z&lt;/b&gt; to &lt;b&gt;npm-folio&lt;/b&gt;, in addition to &lt;b&gt;npm-folioci&lt;/b&gt;.  Tagged automatically.&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &lt;b&gt;1.2.4&lt;/b&gt; (npm-folio) and &lt;b&gt;1.2.4.SNAPSHOT.108&lt;/b&gt; (npm-folioci)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Then package.json version is automatically bumped by a patch number and &lt;b&gt;-SNAPSHOT&lt;/b&gt; is appended back to the package.json in preparation for more work&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; &lt;b&gt;1.2.5-SNAPSHOT&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;At any point during subsequent development, should a new feature be added (rather than fix), the minor version is bumped.&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&lt;b&gt;1.3.0-SNAPSHOT&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Likewise, should a breaking change be introduced the major version is bumped.  In either case &quot;-SNAPSHOT&quot; remains.&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&lt;b&gt;2.0.0-SNAPSHOT&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;Note:&lt;br/&gt;
This suggestion maintains the pre-release suffix (SNAPSHOT) in the master branch, using the omission of the suffix as a trigger to publish to &lt;b&gt;npm-folio&lt;/b&gt;.  This could be reversed, however, where CI automatically &lt;em&gt;appends&lt;/em&gt; &quot;-SNAPSHOT&quot; on non-release merges, using another trigger (the tag?) to prompt CI to publish to &lt;b&gt;npm-folio&lt;/b&gt;. That said, having &quot;-SNAPSHOT&quot; exist in master may give clarity to the fact that a developer cloning master is working on unreleased code, particularly when developing in a workspace environment that has a lot of modules in play.&lt;/p&gt;
</comment>
                                                            <comment id="191506" author="557058:624212b9-5938-4e3b-84c6-8c8a8db84996" created="Thu, 16 Aug 2018 20:22:16 +0000"  >&lt;p&gt;What does this look like when building a platform in CI?&lt;/p&gt;

&lt;p&gt;Because of the pre-release suffix, we won&apos;t be able to use &quot;latest&quot; or &quot;&amp;gt;=0.0.0&quot; for dependencies (the latter of which basically says &quot;I&apos;ll take any version&quot;).  We will have to be more specific in knowing the latest intended major.minor.patch, but could take the latest snapshot:&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-java&quot;&gt;
&lt;span class=&quot;code-quote&quot;&gt;&quot;dependencies&quot;&lt;/span&gt;: {
    &lt;span class=&quot;code-quote&quot;&gt;&quot;@folio/users&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;&amp;gt;2.12.3-SNAPSHOT&quot;&lt;/span&gt;,
    &lt;span class=&quot;code-quote&quot;&gt;&quot;@folio/stripes&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;&amp;gt;1.0.0-SNAPSHOT&quot;&lt;/span&gt;
},
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="54875">STCOM-334</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="79537">FOLIO-1450</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="79549">FOLIO-1704</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80711">FOLIO-1344</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|hzx3o9:i</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="994">CP: ready for planning</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>