<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:18:21 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-2119] Preview capability for PRs (Q2, development)</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2119</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;(this issue is a split from 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UXPROD-1817&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1817&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Preview capability for PRs (Q3, initial rollout)&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            UXPROD-1817
        &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 captures work done in Q2 2019 for the PoC and development of this feature)&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Problem statement&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The goal is to build the &quot;preview capability&quot; and integrate it with the PR process by providing a link to an environment as a PR notification from the CI. The link should be used by the PO to verify and accept or reject the feature.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This capability aims to enable POs and manual testers to review development work &lt;em&gt;before&lt;/em&gt; that work is merged to the mainline branch (usually &quot;master&quot;) of any given FOLIO module repository (with the focus on &lt;tt&gt;ui-&lt;/tt&gt; module repositories). The review would be performed on a FOLIO environment deployed at the point in time when the PR is created &amp;#8211; hence it will be isolated from other changes that happen across FOLIO module repositories (changes by other teams or unrelated changes by other developers within the same team). If the review is unsuccessful, the PR is closed and additional development work is performed on the feature branch. Once additional work is completed the PR is re-opened. If the review is successful, code review is performed by the developers responsible for maintenance of the particular FOLIO module repository and the code is merged to the mainline branch. At this point the PR is closed and the preview environment is destroyed.&lt;/p&gt;

&lt;p&gt;In order to assemble a FOLIO system that will serve as the basis for the preview environment, the CI process running during the PR must provide a &quot;baseline&quot; platform (stripes container and a set of backend module dependencies) for the particular module for which the PR was issued. In order to do so, the CI system will rely on &lt;b&gt;released&lt;/b&gt; FOLIO modules and artefacts (see 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-1577&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1577&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Automated builds for FOLIO &amp;#39;release&amp;#39;&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10307?size=medium&quot; /&gt;
            FOLIO-1577
        &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-1519&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1519&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Automatic loading of sample and reference data&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10307?size=medium&quot; /&gt;
            FOLIO-1519
        &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;
 for the relevant work that has been completed in Q1 2019 with relation to FOLIO release environments).&lt;/p&gt;

&lt;p&gt;There are, however, use cases when the developer of the feature may want to rely on &lt;b&gt;unreleased&lt;/b&gt; (aka &lt;b&gt;snapshot&lt;/b&gt;) dependencies &amp;#8211; e.g when a particular feature spans multiple modules and assembling and testing the entire feature would require performing partial module releases that&apos;s not been tested for the particular feature. This should be supported but should be tightly controlled by the developer. Any such snapshot dependencies will be refused by the (existing) CI quality gate during the module release process. In order to perform a release the developer needs to convert any such snapshot dependencies into release dependencies.&lt;/p&gt;

&lt;p&gt;Please see the attached &lt;b&gt;diagram&lt;/b&gt;  &lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;/rest/api/3/attachment/content/64232&quot; title=&quot;FOLIO dev and release process.pdf attached to FOLIO-2119&quot; data-attachment-type=&quot;file&quot; data-attachment-name=&quot;FOLIO dev and release process.pdf&quot; data-media-services-type=&quot;file&quot; data-media-services-id=&quot;27bae25a-1046-4265-9dda-7479fe63e414&quot; rel=&quot;noreferrer&quot;&gt;FOLIO dev and release process.pdf&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt; for a graphical representation of the above process and how it fits with the existing FOLIO development and release processes.&lt;/p&gt;

&lt;p&gt;Consequently, with &quot;PR environments&quot; operational for all ui- modules in FOLIO, the non-isolated and shared &quot;folio-snapshot&quot; environment will no longer play the role of supporting PO and manual tester reviews for new features. In terms of more general (e.g end of quarter) functionality review and testing, those will be moved over to the &quot;folio-release&quot; environment (see 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-1577&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1577&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Automated builds for FOLIO &amp;#39;release&amp;#39;&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10307?size=medium&quot; /&gt;
            FOLIO-1577
        &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;
) which offer a much more stable and predictable user experience. The role of folio-snapshot (and folio-testing, provided in a form of Vagrant boxes) in terms of supporting developer work within their individual development environments must be discussed further and is not in scope for this particular epic. It is preferable that the developers experience on their own development machine is closely aligned with the CI processes.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Implementation notes&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The implementation can be performed in two stages:&lt;/p&gt;

&lt;p&gt;1. Provide the ability to construct the PR environment based on &lt;b&gt;released&lt;/b&gt; platform artefacts &lt;b&gt;only&lt;/b&gt; &amp;#8211; this limits the scope of the task and avoids building additional mechanics in the CI to to construct &quot;mixed&quot; (releases plus snapshots) environments. It does not support directly the use case of building features that span multiple modules but still allows it by developers performing early releases in modules (usually backend) that include partial dependencies for a given feature. This is effectively the scope for the PoC (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-1948&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-1948&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;PoC preview capability for PRs in a platform-core ui- module&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-1948
        &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;
).&lt;/p&gt;

&lt;p&gt;2. Add the ability to include snapshot dependencies in the PR environments &amp;#8211;   e.g by clearly expressing snapshot dependencies in a configuration file provided along with the PR code (e.g &quot;install-extra.json&quot;). This additional configuration would be picked by the CI build process and allow providing snapshot dependencies in the select cases. The configuration file could be merged to the mainline (with any conflicts needing to resolved at the point of the merge) but it would have to be removed during the release process (CI disallows any snapshot dependencies for released artefacts)&lt;/p&gt;

&lt;p&gt;The actual implementation of the CI process may require new approaches in how the FOLIO reference environments are orchestrated &amp;#8211; due to potentially large number of feature branches and PR across FOLIO modules at any given point &amp;#8211; the existing approach to deployment used when constructing existing reference environments may not be sufficient. See 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UXPROD-1827&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1827&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;CI-integrated continuous deployment (Q3, FOLIO setup)&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            UXPROD-1827
        &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;
 for details. For the &quot;proof of concept&quot; (first stage) &amp;#8211; which may be limited to a selected ui- module repository &amp;#8211; the existing CI deployment approach (performed by Ansible) is likely sufficient.&lt;/p&gt;</description>
                <environment></environment>
        <key id="81342">FOLIO-2119</key>
            <summary>Preview capability for PRs (Q2, development)</summary>
                <type id="10006" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10307?size=medium">Umbrella</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:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</assignee>
                                                                <reporter accountid="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</reporter>
                                    <labels>
                            <label>platform-backlog</label>
                            <label>q2-2019</label>
                    </labels>
                <created>Wed, 26 Jun 2019 11:32:11 +0000</created>
                <updated>Wed, 3 Jun 2020 16:39:57 +0000</updated>
                            <resolved>Tue, 2 Jul 2019 11:50:55 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>11</watches>
                                                                    <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="81244">FOLIO-2022</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81183">FOLIO-1948</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81224">FOLIO-2001</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81225">FOLIO-2002</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81207">FOLIO-2036</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81341">FOLIO-2118</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                            <outwardlinks description="clones">
                                        <issuelink>
            <issuekey id="10980">UXPROD-1817</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="81340">FOLIO-2117</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="13064">UXPROD-1823</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="81244">FOLIO-2022</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="79901">FOLIO-2025</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="64232" name="FOLIO dev and release process.pdf" size="92010" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Wed, 26 Jun 2019 11:32:12 +0000"/>
                    </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|hzzunr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </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>