<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:17:31 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-2008] Publish a minimal README at Docker Hub for each back-end module</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2008</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;Gather the relevant pieces of information. Some can be extracted from its Dockerfile, some from its ModuleDescriptor and its launchDescriptor, some from its GitHub repository properties.&lt;/p&gt;

&lt;p&gt;Keep this minimal, and refer back to the module&apos;s README. We want the module&apos;s git README to be the primary source of information.&lt;/p&gt;

&lt;p&gt;Consider also automatically appending part of this, as a summary section of the module&apos;s README in git.&lt;/p&gt;

&lt;p&gt;Add a CI task to do this as part of the build pipelines.&lt;/p&gt;</description>
                <environment></environment>
        <key id="81237">FOLIO-2008</key>
            <summary>Publish a minimal README at Docker Hub for each back-end 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="5fca8bef7cc1030069d4f186">mark.stacy</assignee>
                                                                <reporter accountid="61cd0ca0bce5e00069e98be7">David Crossley</reporter>
                                    <labels>
                            <label>devops</label>
                            <label>platform-backlog</label>
                    </labels>
                <created>Fri, 10 May 2019 04:28:34 +0000</created>
                <updated>Wed, 16 Dec 2020 06:31:06 +0000</updated>
                            <resolved>Fri, 7 Jun 2019 20:26:53 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                <comments>
                                                            <comment id="194276" author="61cd0ca0bce5e00069e98be7" created="Mon, 13 May 2019 08:21:09 +0000"  >&lt;p&gt;Did some initial investigation. Do curl with the &quot;/v2/repositories/&quot; API to issue a &quot;PATCH&quot; with payload being the &quot;registry&quot; and the &quot;full_description&quot;.&lt;/p&gt;</comment>
                                                            <comment id="194279" author="61cd0ca0bce5e00069e98be7" created="Mon, 13 May 2019 14:20:27 +0000"  >&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/34710513/how-can-i-update-full-description-on-docker-hub-automatically&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://stackoverflow.com/questions/34710513/how-can-i-update-full-description-on-docker-hub-automatically&lt;/a&gt;&lt;br/&gt;
See this answer: &lt;a href=&quot;https://stackoverflow.com/a/55082686&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://stackoverflow.com/a/55082686&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is described in a little more detail at &lt;a href=&quot;https://www.sanisimov.com/2019/03/building-docker-images-for-multiple-architectures/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.sanisimov.com/2019/03/building-docker-images-for-multiple-architectures/&lt;/a&gt;&lt;br/&gt;
See the &quot;Pushing README&quot; section.&lt;/p&gt;</comment>
                                                            <comment id="194284" author="61cd0ca0bce5e00069e98be7" created="Tue, 14 May 2019 05:40:06 +0000"  >&lt;p&gt;I did an experiment today for my own test repo, following the abovementioned document&lt;br/&gt;
and &lt;a href=&quot;https://success.docker.com/article/how-do-i-authenticate-with-the-v2-api&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://success.docker.com/article/how-do-i-authenticate-with-the-v2-api&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hooray, success. Added &quot;description&quot; and &quot;full_description&quot;.&lt;/p&gt;</comment>
                                                            <comment id="194289" author="5fca8bef7cc1030069d4f186" created="Wed, 15 May 2019 20:20:46 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=61cd0ca0bce5e00069e98be7&quot; class=&quot;user-hover&quot; rel=&quot;61cd0ca0bce5e00069e98be7&quot; data-account-id=&quot;61cd0ca0bce5e00069e98be7&quot; accountid=&quot;61cd0ca0bce5e00069e98be7&quot; rel=&quot;noreferrer&quot;&gt;David Crossley&lt;/a&gt; Checking in to see if you want to take this task or if you need any assistance?  I see you where successful send readme to docker hub. I really like the script that you found, similar but better than my scripts that I have used in the past to accomplish. &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; how do you want to integrate this into your current workflow? bash script? Willing to work with both of you or keep looking for another task. &lt;/p&gt;</comment>
                                                            <comment id="194295" author="61cd0ca0bce5e00069e98be7" created="Thu, 16 May 2019 07:34:53 +0000"  >&lt;p&gt;Yes Mark, i have plenty else to do. If you and Jakub are happy, then please take this on.&lt;/p&gt;

&lt;p&gt;Some considerations:&lt;/p&gt;

&lt;p&gt;How to handle the credentials for Docker Hub.&lt;/p&gt;

&lt;p&gt;Should the script do some verification for the presence of items in the ModuleDescriptor 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-2003&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2003&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;platform-core backend modules metadata &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-2003
        &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;As part of the initial setup of a new GitHub repository for a back-end module, we currently manually create a &quot;repository&quot; space at Docker Hub (folioorg, folioci). This script could create that on its first run.&lt;/p&gt;</comment>
                                                            <comment id="194300" author="61cd0ca0bce5e00069e98be7" created="Thu, 16 May 2019 15:01:46 +0000"  >&lt;p&gt;The 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-2003&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2003&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;platform-core backend modules metadata &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-2003
        &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 adding a &quot;metadata&quot; section to the ModuleDescriptor of each platform-core backend module. See mod-notes for an actual example (still preparing the other 22 modules). Currently there are two items &quot;containerMemory&quot; and &quot;databaseConnection&quot;. Later there may be more.&lt;/p&gt;

&lt;p&gt;There will also be &quot;port&quot; coming from the launchDescriptor section of the ModuleDescriptor.&lt;/p&gt;

&lt;p&gt;For some modules there may also be an &quot;env&quot; section in the ModuleDescriptor. Not yet done one in 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-2003&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2003&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;platform-core backend modules metadata &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-2003
        &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;
, but mod-login-saml will be one example. See 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;OKAPI-732&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/OKAPI-732&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;add a new section for specifying key/value pairs in the ModuleDescriptor&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;
            OKAPI-732
        &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 its linked PR.&lt;/p&gt;

&lt;p&gt;The &quot;full_description&quot; generated and uploaded to Docker Hub should also have a link back to the GitHub repository.&lt;/p&gt;

&lt;p&gt;Another useful piece of information would be the short &quot;description&quot; from the top of the module&apos;s GitHub repository front page.&lt;/p&gt;</comment>
                                                            <comment id="194305" author="5fca8bef7cc1030069d4f186" created="Wed, 29 May 2019 12:52:31 +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 need to have ENV variables set within the jenkins environment. My code uses DOCKER_USERNAME and DOCKER_PASSWORD. I tested locally and the script is functioning correctly.  &lt;a href=&quot;https://github.com/folio-org/jenkins-pipeline-libs/blob/56e871b722f80a6a03030ebaf040d96b79ee5fc0/resources/org/folio/dockerHubPublishMetadata.sh#L16&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/jenkins-pipeline-libs/blob/56e871b722f80a6a03030ebaf040d96b79ee5fc0/resources/org/folio/dockerHubPublishMetadata.sh#L16&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="194311" author="5f9abc1eb45b2e007453f423" created="Wed, 29 May 2019 13:08:55 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5fca8bef7cc1030069d4f186&quot; class=&quot;user-hover&quot; rel=&quot;5fca8bef7cc1030069d4f186&quot; data-account-id=&quot;5fca8bef7cc1030069d4f186&quot; accountid=&quot;5fca8bef7cc1030069d4f186&quot; rel=&quot;noreferrer&quot;&gt;mark.stacy&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=61cd0ca0bce5e00069e98be7&quot; class=&quot;user-hover&quot; rel=&quot;61cd0ca0bce5e00069e98be7&quot; data-account-id=&quot;61cd0ca0bce5e00069e98be7&quot; accountid=&quot;61cd0ca0bce5e00069e98be7&quot; rel=&quot;noreferrer&quot;&gt;David Crossley&lt;/a&gt; Where and how will this script be invoked?&lt;/p&gt;</comment>
                                                            <comment id="194315" author="61cd0ca0bce5e00069e98be7" created="Wed, 29 May 2019 13:45:47 +0000"  >&lt;p&gt;I expect during the Jenkins &quot;merge to master&quot; after &quot;Build&quot; and before &quot;Docker&quot;.&lt;/p&gt;</comment>
                                                            <comment id="194318" author="5f9abc1eb45b2e007453f423" created="Wed, 29 May 2019 16:04:03 +0000"  >&lt;p&gt;You&apos;ll want to wrap the shell script with the necessary Docker Hub credentials using the following example when you insert it into the pipeline: &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;
withCredentials([usernamePassword(credentialsId: &lt;span class=&quot;code-quote&quot;&gt;&apos;DockerHubIDJenkins&apos;&lt;/span&gt;, passwordVariable: &lt;span class=&quot;code-quote&quot;&gt;&apos;DOCKER_PASSWORD&apos;&lt;/span&gt;, usernameVariable: &lt;span class=&quot;code-quote&quot;&gt;&apos;DOCKER_USERNAME&apos;&lt;/span&gt;)]) {
     writeFile file: &lt;span class=&quot;code-quote&quot;&gt;&apos;dockerHubPublishMetadata.sh&apos;&lt;/span&gt;, text: libraryResource(&lt;span class=&quot;code-quote&quot;&gt;&apos;org/folio/dockerHubPublishMetadata.sh&apos;&lt;/span&gt;)
     sh &lt;span class=&quot;code-quote&quot;&gt;&apos;chmod +x &apos;&lt;/span&gt;dockerHubPublishMetadata.sh&apos;
     sh &lt;span class=&quot;code-quote&quot;&gt;&quot;./dockerHubPublishMetadata.sh ${env.dockerRepo}/${env.name}&quot;&lt;/span&gt;
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The most appropriate pipeline script to add this to is &apos;jenkins-pipeline-libs/vars/buildJavaDocker.groovy&apos; - probably within the following conditional on line 122: &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-keyword&quot;&gt;if&lt;/span&gt; ( (env.BRANCH_NAME == &lt;span class=&quot;code-quote&quot;&gt;&apos;master&apos;&lt;/span&gt; &amp;amp;&amp;amp; publishMaster) || env.isRelease ) {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;FWIW, I think this shell script could pretty easily be re-written as a pipeline code,  but I&apos;ll leave that decision up to you.&lt;/p&gt;</comment>
                                                            <comment id="194324" author="5fca8bef7cc1030069d4f186" created="Wed, 29 May 2019 17:10:56 +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;Thanks for the information regarding the pipeline. I will take a look. &lt;/p&gt;</comment>
                                                            <comment id="194329" author="5fca8bef7cc1030069d4f186" created="Wed, 29 May 2019 17:19:53 +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;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=61cd0ca0bce5e00069e98be7&quot; class=&quot;user-hover&quot; rel=&quot;61cd0ca0bce5e00069e98be7&quot; data-account-id=&quot;61cd0ca0bce5e00069e98be7&quot; accountid=&quot;61cd0ca0bce5e00069e98be7&quot; rel=&quot;noreferrer&quot;&gt;David Crossley&lt;/a&gt; Creating the Repository within Docker Hub will have to be done by a user that is in the owners&apos; team. No other way around this using Docker Hub. One of the drawbacks to Docker Hub. So, not sure if you want to keep it the same manual process or move the Jenkins user into the owners&apos; team? I understand the security risks with the pipeline having the ability to create/delete repositories. Let me know what you want to do. Actually, there is no work to be done if you move into the owners&apos; team. &lt;/p&gt;</comment>
                                                            <comment id="194334" author="5f9abc1eb45b2e007453f423" created="Wed, 29 May 2019 17:56:03 +0000"  >&lt;p&gt;Hmm.   Good to know!    I added the FOLIO jenkins account to the &apos;owners&apos; team for the folioci repos, but not the folioorg repos.  Let&apos;s try it and see how it works out.&lt;/p&gt;</comment>
                                                            <comment id="194338" author="5fca8bef7cc1030069d4f186" created="Fri, 7 Jun 2019 20:26:53 +0000"  >&lt;p&gt;Added PR to Repo. Completed&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="81390">FOLIO-2237</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80990">FOLIO-1696</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80991">FOLIO-1698</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81227">FOLIO-2003</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="81918">FOLIO-2916</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|hzzp27:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1154">CP: sprint 65</customfieldvalue>
    <customfieldvalue id="1662">CP: sprint 64</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 15 May 2019 20:20:46 +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>