<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:17:04 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-1948] PoC preview capability for PRs in a platform-core ui- module</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-1948</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;The context for this issue is provided on the epic: 
    &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;
&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Goal&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Provide a quick implementation of the PR preview capability for a selected UI module without introducing new CI processes, new multi-tenant deployment environment and new orchestration tools. It is understood that such implementation will not be optimal from the technical standpoint but it will demonstrate the preview functionality.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Assumptions&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Enable the functionality for a single module only: [&lt;span class=&quot;error&quot;&gt;&amp;#91;TBD choose a UI module base on the frequency of PRs -- it can&amp;#39;t be too high&amp;#93;&lt;/span&gt;]&lt;/li&gt;
	&lt;li&gt;Deploy the module with the entire platform-core, use the &lt;b&gt;release&lt;/b&gt; branch of platform-core to provide platform dependencies (stripes) and companion UI modules.&lt;/li&gt;
	&lt;li&gt;Only allow &lt;b&gt;released&lt;/b&gt; backend dependencies&lt;/li&gt;
	&lt;li&gt;Use the existing deployment approach which creates a new single-tenant FOLIO system from scratch (as used e.g for 
    &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;
)&lt;/li&gt;
	&lt;li&gt;For the PoC it is acceptable that deployment take 15-20 minutes (time it take to provision a FOLIO system from scratch)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Further development&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;We have discussed an optimisation to the deployment process where the PR preview env is not deployed as a new environment but is created as a new tenant on an already existing multi-tenant FOLIO environment. This will require a new FOLIO environment and new processes in the CI. It likely won&apos;t require a new kind of deployment orchestrator. &lt;/p&gt;

&lt;p&gt;Further optimisations would rely on a a new approach to deployments and orchestration that would allow running a more flexible and scalable (clustered) FOLIO environment, 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;
 and 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-1823&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1823&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Kubernetes integration (Q3, Okapi features)&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-1823
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Draft&lt;/span&gt;
            &lt;/span&gt;
.&lt;/p&gt;</description>
                <environment></environment>
        <key id="81183">FOLIO-1948</key>
            <summary>PoC preview capability for PRs in a platform-core ui- module</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="5f9abc1eb45b2e007453f423">John Malconian</assignee>
                                                                <reporter accountid="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</reporter>
                                    <labels>
                            <label>platform-backlog</label>
                    </labels>
                <created>Sat, 6 Apr 2019 05:27:28 +0000</created>
                <updated>Wed, 3 Jun 2020 16:39:42 +0000</updated>
                            <resolved>Fri, 3 May 2019 16:17:01 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                <comments>
                                                            <comment id="193468" author="5cffed1a5d548b0c51d6b19b" created="Tue, 9 Apr 2019 19:16:42 +0000"  >&lt;ol&gt;
	&lt;li&gt;To provision the system the similar pipeline will be used to build folio-release-core.aws.indexdata.com&lt;/li&gt;
	&lt;li&gt;System rebuilds itself every night. All changes from yesterday will be wiped out.&lt;/li&gt;
	&lt;li&gt;This POC will address UI module only.&lt;/li&gt;
	&lt;li&gt;Only a single UI bundle can be deployed for this system.&lt;/li&gt;
	&lt;li&gt;UI bundle will be deployed in the original location just like folio-release-core.aws.indexdata.com&lt;/li&gt;
	&lt;li&gt;Jenkins will have a separate job that can build and deploy UI bundle multiple times per day.&lt;/li&gt;
	&lt;li&gt;UI bundle will consist of the code included in UI module PR branch + the rest of folio release modules.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                                                            <comment id="193472" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Fri, 3 May 2019 14:09:30 +0000"  >&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; gave us a demo of the PoC and it looks really neat (there is a PR in mod-users that shows the functionality). There are some changes (I&apos;d say improvements) compared to the original description of the PoC:&lt;/p&gt;

&lt;p&gt;1. There is a dedicated environment for all PR previews (folio-release-pr)&lt;br/&gt;
2. This environment is build from released modules &lt;b&gt;only&lt;/b&gt; (master branch of platform-core and platform-complete)&lt;br/&gt;
3. When a PR is opened the new module code is &quot;injected&quot; into the last released platform (platform-core or platform-complete) a new bundle is build and integration tests (only for that module) are run. Then a &lt;b&gt;new&lt;/b&gt; tenant is created on folio-release-pr environmnent, backend modules are enabled and the bundle is deployed&lt;br/&gt;
4. The link is reported back to the PR.&lt;br/&gt;
5. When more changes are added to the PR the build is repeated and a new tenant created (old tenants are retained). &lt;/p&gt;</comment>
                                                            <comment id="193476" author="5f9abc1eb45b2e007453f423" created="Fri, 3 May 2019 16:16:50 +0000"  >&lt;p&gt;Here are some links I&apos;ll leave up for a short time: &lt;/p&gt;

&lt;p&gt;ui-users test PR for POC in Github:  &lt;a href=&quot;https://github.com/folio-org/ui-users/pull/820&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/ui-users/pull/820&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ui-users PR job in Jenkins:  &lt;a href=&quot;https://jenkins-aws.indexdata.com/job/folio-org/job/ui-users/view/change-requests/job/PR-820/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://jenkins-aws.indexdata.com/job/folio-org/job/ui-users/view/change-requests/job/PR-820/&lt;/a&gt;&lt;br/&gt;
Note: This job can be run manually in Jenkins by a FOLIO developer with the correct permissions)&lt;/p&gt;

&lt;p&gt;The &quot;preview&quot; system built by the PR is at: &lt;a href=&quot;https://folio-release-pr.aws.indexdata.com&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-release-pr.aws.indexdata.com&lt;/a&gt;.  Login as $&lt;/p&gt;
{TENANT}
&lt;p&gt;&lt;em&gt;admin - where TENANT is &apos;pr&lt;/em&gt;$&lt;/p&gt;
{PR_NUMBER}
&lt;p&gt;_&lt;/p&gt;
{JENKINS_BUILD_NUMBER}
&lt;p&gt;.   (The link to the &quot;preview&quot; system and tenant created is posted to the Github PR conversation). &lt;/p&gt;

&lt;p&gt;An immediate next step is to figure out how to host bundles for multiple PRs and repositories.  This POC hosts the stripes bundle on &lt;a href=&quot;https://folio-release-pr.aws.indexdata.com&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-release-pr.aws.indexdata.com&lt;/a&gt;.    This is not scalable past one repository.    Stripes bundles are static,  so a simple web service with a unique URL to the bundle is all that is required as well as a clean up process that removes old bundles and services. &lt;/p&gt;</comment>
                                                            <comment id="193480" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Mon, 6 May 2019 12:44:05 +0000"  >&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; I have created  
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-2001&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2001&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;host bundles for multiple PRs/repositories&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-2001
        &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-2002&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2002&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;clean up no longer needed tenants and bundles (PR previews)&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-2002
        &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 follow up work. Please review it.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="81342">FOLIO-2119</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="10980">UXPROD-1817</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11211">UXPROD-2118</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80889">FOLIO-1596</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="81224">FOLIO-2001</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81225">FOLIO-2002</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_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|hzx7fb:</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>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 9 Apr 2019 19:16:42 +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>