<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:26:14 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-3184] execute formatjs-compile in CI for translation PRs</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-3184</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;&lt;b&gt;Summary:&lt;/b&gt; Execute the &quot;Run yarn formatjs-compile&quot; build step during translation PRs to prevent corrupt translation files from being merged.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Details:&lt;/b&gt; The CI build step &quot;Run yarn formatjs-compile&quot; will fail if an input file contains a syntax error, e.g. if a keyword in a substitution block is inadvertently translated (&lt;a href=&quot;https://github.com/folio-org/stripes-core/commit/a793957d5c78c6b23838963f3c02b598398abd01&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;e.g. 1&lt;/a&gt;, &lt;a href=&quot;https://github.com/folio-org/ui-users/commit/1a59a1f129244e56d8c2217a206650a3a24e9f33&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;e.g. 2&lt;/a&gt;). Because this step is part of the regular-PR UI build pipeline but not part of the translation-commit build pipeline, corrupt translation files may be merged, causing future PRs to fail. It would be preferable for the translation-commit to fail. &lt;/p&gt;</description>
                <environment></environment>
        <key id="82093">FOLIO-3184</key>
            <summary>execute formatjs-compile in CI for translation PRs</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="10005" iconUrl="https://dev.folio.org/assets/jira-priority/tbd.svg">TBD</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="615afd1cd9820f0070a09ef0">Zak Burke</reporter>
                                    <labels>
                    </labels>
                <created>Wed, 2 Jun 2021 03:21:34 +0000</created>
                <updated>Mon, 13 Dec 2021 21:09:20 +0000</updated>
                            <resolved>Mon, 13 Dec 2021 21:09:20 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                <comments>
                                                            <comment id="197632" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Thu, 3 Jun 2021 13:43:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ced27478b03050f27825a93&quot; class=&quot;user-hover&quot; rel=&quot;5ced27478b03050f27825a93&quot; data-account-id=&quot;5ced27478b03050f27825a93&quot; accountid=&quot;5ced27478b03050f27825a93&quot; rel=&quot;noreferrer&quot;&gt;Peter Murray&lt;/a&gt; how important is this?&lt;/p&gt;</comment>
                                                            <comment id="197634" author="5ced27478b03050f27825a93" created="Thu, 3 Jun 2021 15:54:44 +0000"  >&lt;p&gt;If these corrupt translation files are caught earlier in the process, it does prevent failed deployments later down the line.&#160; I don&apos;t have a way of checking for this corruption in an automated fashion during the pull request process from Lokalise to GitHub.&#160; I think &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=615afd1cd9820f0070a09ef0&quot; class=&quot;user-hover&quot; rel=&quot;615afd1cd9820f0070a09ef0&quot; data-account-id=&quot;615afd1cd9820f0070a09ef0&quot; accountid=&quot;615afd1cd9820f0070a09ef0&quot; rel=&quot;noreferrer&quot;&gt;Zak Burke&lt;/a&gt; has a better idea of how often this occurs, but I would guess this is a medium to medium-high priority.&lt;/p&gt;</comment>
                                                            <comment id="197637" author="615afd1cd9820f0070a09ef0" created="Thu, 3 Jun 2021 17:22:23 +0000"  >&lt;p&gt;I&apos;d put this at P2: there&apos;s a workaround (manually fix the syntax errors in a separate PR, merge it to master, merge master into the original branch), but it&apos;s kinda painful. You could argue for P3 and I wouldn&apos;t fight you. Resolving the problem isn&apos;t hard once you understand it, though it is some scutwork.&lt;/p&gt;

&lt;p&gt;This ticket amounts to &quot;do a syntax check before committing translation-file changes in order to avoid committing corrupt files&quot;.&lt;/p&gt;

&lt;p&gt;WRT &quot;how often&quot; this occurs, I dunno. There were errors in every single repository when we compiled translations for the first time (i.e., catching existing errors) back in April (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-3111&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-3111&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;fix syntax errors in translation files&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-3111
        &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;
). Since then, I bumped into it two PRs this week but there may have been more; I alerted &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ced27478b03050f27825a93&quot; class=&quot;user-hover&quot; rel=&quot;5ced27478b03050f27825a93&quot; data-account-id=&quot;5ced27478b03050f27825a93&quot; accountid=&quot;5ced27478b03050f27825a93&quot; rel=&quot;noreferrer&quot;&gt;Peter Murray&lt;/a&gt; to the problem and he took over, because he is awesome like that.&lt;/p&gt;</comment>
                                                            <comment id="197640" author="615afd1cd9820f0070a09ef0" created="Thu, 17 Jun 2021 17:07:56 +0000"  >&lt;p&gt;Fuel for this fire: Attempting to add automated compilation to ui-users (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UIU-2115&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UIU-2115&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Compile Translation Files into AST Format&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;
            UIU-2115
        &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;
) fails because of existing corrupt translations: &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;
$ yarn formatjs-compile
yarn run v1.22.10
$ formatjs compile-folder --ast --format simple ./translations/ui-users ./translations/users/compiled
Error validating message &lt;span class=&quot;code-quote&quot;&gt;&quot;{total, number} &#21333;&#20214;&#24050;&#36873;&#12290; {items, number} {items, plural, one {item} &#20854;&#20182; {items}} &#26080;&#27861; {action} &#22240;&#20026;&#24050;&#20851;&#38381;&#12290;&quot;&lt;/span&gt; with ID &lt;span class=&quot;code-quote&quot;&gt;&quot;accounts.warning.itemSelected&quot;&lt;/span&gt; in file &lt;span class=&quot;code-quote&quot;&gt;&quot;./translations/ui-users/zh_TW.json&quot;&lt;/span&gt;
Error validating message &lt;span class=&quot;code-quote&quot;&gt;&quot;{total, number} &#21333;&#20214;&#24050;&#36873;&#12290; {items, number} {items, plural, one {item} &#20854;&#20182; {items}} &#26080;&#27861; {action} &#22240;&#20026;&#24050;&#20851;&#38381;&#12290;&quot;&lt;/span&gt; with ID &lt;span class=&quot;code-quote&quot;&gt;&quot;accounts.warning.itemSelected&quot;&lt;/span&gt; in file &lt;span class=&quot;code-quote&quot;&gt;&quot;./translations/ui-users/zh_CN.json&quot;&lt;/span&gt;
SyntaxError: MISSING_OTHER_CLAUSE
    at &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;.parse (/Users/zburke/temp/ui-users/node_modules/@formatjs/cli/node_modules/@formatjs/icu-messageformat-parser/index.js:34:21)
    at &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;.&amp;lt;anonymous&amp;gt; (/Users/zburke/temp/ui-users/node_modules/@formatjs/cli/src/compile.js:44:69)
    at step (/Users/zburke/temp/ui-users/node_modules/tslib/tslib.js:143:27)
    at &lt;span class=&quot;code-object&quot;&gt;Object&lt;/span&gt;.next (/Users/zburke/temp/ui-users/node_modules/tslib/tslib.js:124:57)
    at fulfilled (/Users/zburke/temp/ui-users/node_modules/tslib/tslib.js:114:62)
error Command failed with exit code 1.
info Visit https:&lt;span class=&quot;code-comment&quot;&gt;//yarnpkg.com/en/docs/cli/run &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; documentation about &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; command.&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As we complete the &quot;automate translation compilation&quot; tickets linked to 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;STCLI-158&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/STCLI-158&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;compile translation files to AST for efficiency&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;
            STCLI-158
        &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;
, blocked PRs due to corrupt translations will become a more and more frequent problem.&lt;/p&gt;</comment>
                                                            <comment id="197644" author="5ced27478b03050f27825a93" created="Thu, 17 Jun 2021 19:56:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=615afd1cd9820f0070a09ef0&quot; class=&quot;user-hover&quot; rel=&quot;615afd1cd9820f0070a09ef0&quot; data-account-id=&quot;615afd1cd9820f0070a09ef0&quot; accountid=&quot;615afd1cd9820f0070a09ef0&quot; rel=&quot;noreferrer&quot;&gt;Zak Burke&lt;/a&gt;: I looked at these and others, and I&apos;m speculating that there is some sort of bug in the Lokalise user interface that is not surfacing these placeholder issues when I use the &quot;Multilanguage&quot; view.&#160; If I go into the &quot;bilingual&quot; view, I see them.&#160; So I&apos;ve gone through each of the languages defined in Lokalise with the &quot;missing/incorrect placeholder&quot; filter: fixing what I could figure out (most of them) or deleting the translation strings for those that I couldn&apos;t (just a few).&#160; Fortunately, none involved a R-t-L language, although I had to puzzle out a few CJK strings.&lt;/p&gt;

&lt;p&gt;These changes are being pulled into the GitHub repos now.&#160; I&apos;ll let you know when that task is done.&lt;/p&gt;</comment>
                                                            <comment id="197646" author="5ced27478b03050f27825a93" created="Thu, 17 Jun 2021 21:38:53 +0000"  >&lt;p&gt;Now done.&lt;/p&gt;</comment>
                                                            <comment id="197649" author="615afd1cd9820f0070a09ef0" created="Mon, 21 Jun 2021 11:49:20 +0000"  >&lt;p&gt;Yay! Thanks &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ced27478b03050f27825a93&quot; class=&quot;user-hover&quot; rel=&quot;5ced27478b03050f27825a93&quot; data-account-id=&quot;5ced27478b03050f27825a93&quot; accountid=&quot;5ced27478b03050f27825a93&quot; rel=&quot;noreferrer&quot;&gt;Peter Murray&lt;/a&gt;! The PR for 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UIU-2115&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UIU-2115&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Compile Translation Files into AST Format&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;
            UIU-2115
        &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;
 looks clean now. &lt;/p&gt;</comment>
                                                            <comment id="197652" author="5f9abc1eb45b2e007453f423" created="Wed, 10 Nov 2021 14:46:54 +0000"  >&lt;p&gt;Run &apos;yarn formatjs-compile&apos; step to Jenkins and Github Actions CI pipelines when translation-only updates are made.  &lt;/p&gt;</comment>
                                                            <comment id="197655" author="5f9abc1eb45b2e007453f423" created="Mon, 13 Dec 2021 21:05:03 +0000"  >&lt;p&gt;I&apos;ve made a change to Jenkins pipelines such that the &apos;runScripts&apos; option is no longer bypassed if translations are made via the FOLIO translations bot.    Therefore,  as long as &apos;yarn formatjs-compile&apos; is configured as a runScripts option,  it will be run on for all builds. e.g.&lt;/p&gt;

&lt;p&gt;  runScripts = [&lt;br/&gt;
      &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;#39;formatjs-compile&amp;#39;: &amp;#39;&amp;#39;&amp;#93;&lt;/span&gt;,&lt;br/&gt;
    ]&lt;/p&gt;



</comment>
                                                            <comment id="197658" author="5f9abc1eb45b2e007453f423" created="Mon, 13 Dec 2021 21:09:10 +0000"  >&lt;p&gt;For repos that use Github Actions,  no further action is needed except to ensure the environment variable COMPILE_TRANSLATION_FILES is set to &apos;true&apos; in the workflows.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="82115">FOLIO-3340</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="82084">FOLIO-3067</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="10155"><![CDATA[FOLIO DevOps]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03b6c:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="284">DevOps Sprint 127</customfieldvalue>
    <customfieldvalue id="285">DevOps Sprint 128</customfieldvalue>
    <customfieldvalue id="286">DevOps Sprint 129</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 3 Jun 2021 13:43:00 +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>