Bumps [actions/labeler](https://github.com/actions/labeler) from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/labeler/releases">actions/labeler's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<p>This release contains the following breaking changes:</p>
<ol>
<li>
<p>The ability to apply labels based on the names of base and/or head
branches was added (<a
href="https://redirect.github.com/actions/labeler/issues/186">#186</a>
and <a
href="https://redirect.github.com/actions/labeler/issues/54">#54</a>).
The match object for changed files was expanded with new combinations in
order to make it more intuitive and flexible (<a
href="https://redirect.github.com/actions/labeler/issues/423">#423</a>
and <a
href="https://redirect.github.com/actions/labeler/issues/101">#101</a>).
As a result, the configuration file structure was significantly
redesigned and is not compatible with the structure of the previous
version. Please read the <a
href="https://github.com/actions/labeler/tree/main#pull-request-labeler">action
documentation</a> to find out how to adapt your configuration files for
use with the new action version.</p>
</li>
<li>
<p>The bug related to the <code>sync-labels</code> input was fixed (<a
href="https://redirect.github.com/actions/labeler/issues/112">#112</a>).
Now the input value is read correctly.</p>
</li>
<li>
<p>By default, <code>dot</code> input is set to <code>true</code>. Now,
paths starting with a dot (e.g. <code>.github</code>) are matched by
default.</p>
</li>
<li>
<p>Version 5 of this action updated the <a
href="https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-javascript-actions">runtime
to Node.js 20</a>. All scripts are now run with Node.js 20 instead of
Node.js 16 and are affected by any breaking changes between Node.js 16
and 20.</p>
</li>
</ol>
<p>For more information, please read the <a
href="https://github.com/actions/labeler/tree/main#pull-request-labeler">action
documentation</a>.</p>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/joshdales"><code>@joshdales</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/labeler/pull/203">actions/labeler#203</a></li>
<li><a
href="https://github.com/dusan-trickovic"><code>@dusan-trickovic</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/labeler/pull/626">actions/labeler#626</a></li>
<li><a href="https://github.com/sungh0lim"><code>@sungh0lim</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/labeler/pull/630">actions/labeler#630</a></li>
<li><a
href="https://github.com/TrianguloY"><code>@TrianguloY</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/labeler/pull/629">actions/labeler#629</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/labeler/compare/v4...v5.0.0">https://github.com/actions/labeler/compare/v4...v5.0.0</a></p>
<h2>v5.0.0-beta.1</h2>
<h2>What's Changed</h2>
<p>In scope of this beta release, the structure of the configuration
file (<code>.github/labeler.yml</code>) was changed from</p>
<pre lang="yml"><code>LabelName:
- any:
- changed-files: ['list', 'of', 'globs']
- base-branch: ['list', 'of', 'regexps']
- head-branch: ['list', 'of', 'regexps']
- all:
- changed-files: ['list', 'of', 'globs']
- base-branch: ['list', 'of', 'regexps']
- head-branch: ['list', 'of', 'regexps']
</code></pre>
<p>to</p>
<pre lang="yml"><code>LabelName:
- any:
- changed-files:
- AnyGlobToAnyFile: ['list', 'of', 'globs']
- AnyGlobToAllFiles: ['list', 'of', 'globs']
- AllGlobsToAnyFile: ['list', 'of', 'globs']
- AllGlobsToAllFiles: ['list', 'of', 'globs']
- base-branch: ['list', 'of', 'regexps']
- head-branch: ['list', 'of', 'regexps']
- all:
- changed-files:
- AnyGlobToAnyFile: ['list', 'of', 'globs']
- AnyGlobToAllFiles: ['list', 'of', 'globs']
- AllGlobsToAnyFile: ['list', 'of', 'globs']
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8558fd7429"><code>8558fd7</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/labeler/issues/709">#709</a>
from actions/v5.0.0-beta</li>
<li><a
href="000ca75fe6"><code>000ca75</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/labeler/issues/700">#700</a>
from MaksimZhukov/apply-suggestions-and-update-docume...</li>
<li><a
href="cb66c2f078"><code>cb66c2f</code></a>
Update dist</li>
<li><a
href="9181355e36"><code>9181355</code></a>
Apply suggestions for the beta vesrion and update the documentation</li>
<li><a
href="efe4c1c90e"><code>efe4c1c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/labeler/issues/699">#699</a>
from MaksimZhukov/update-node-runtime-and-dependencies</li>
<li><a
href="c0957ad7c3"><code>c0957ad</code></a>
Run Prettier</li>
<li><a
href="8dc8d1842f"><code>8dc8d18</code></a>
Update Node.js version in reusable workflows</li>
<li><a
href="d0d0bbebfb"><code>d0d0bbe</code></a>
Update documentation</li>
<li><a
href="1375c42512"><code>1375c42</code></a>
5.0.0</li>
<li><a
href="ab7411ec21"><code>ab7411e</code></a>
Change version of Node.js runtime to node20</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/labeler/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/labeler&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Geisler <martin@geisler.net>
Still a long way to go.
Also added a small QoL improvement to the translators instructions.
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
This enforces a consistent formatting for the PO files. The goal of this
is to avoid large diffs due to random and unnecessary reformatting.
We use the format of `msgcat`: this is also waht `msgmerge` produces and
it’s easy to replicate for people by installing Gettext and running
`dprint fmt`.
This is a follow-up to #1351 which started enforcing that the `msgid`
fields don’t change due to reformatting in a PR.
If this turns out to be cumbersome, then we can disable it again.
I don’t know if this is enough on its own? In principle, the new
publication system should work smoothly without people having to know
much about this header, so that’s why I only describe it briefly.
Followup to #1243.
* remove $ from code blocks in translations
* remove $ from code blocks in the other markdown files as well
* Revert "remove $ from code blocks in the other markdown files as well"
This reverts commit eda922dab9.
* remove $ from code blocks in setup.md
* re-added the previous changes
* revert logging.md
* Add missing binaries in TRANSLATIONS.md instructions.
With these instructions, I can start from a clean fork, and get running
quickly.
* Update TRANSLATIONS.md: Add Debian
Co-authored-by: Martin Geisler <martin@geisler.net>
* Update TRANSLATIONS.md, format.
* Remove duplicate info between README and TRANSLATIONS.
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
The dprint formatter is a flexible system which will use sandboxed
WebAssembly formatters to format our code (mostly: it calls out to
`rustfmt` for Rust code).
A particularly interesting feature is that dprint can format Rust code
blocks in the Markdown files. However, before we turn that on, we need
to have a way to normalize the Markdown text as it is extracted[1].
That is so that the word put into the translations is kept after the
reformatting.
[1]: https://github.com/google/mdbook-i18n-helpers/issues/19
The i18n-helpers are now available as a stand-alone crate:
https://crates.io/crates/mdbook-i18n-helpers.
Because we cache the Rust binaries in our GitHub workflows, I bumped
the cache prefix to ensure we use a clean cache. Otherwise, Cargo
won’t install the new binaries in mdbook-i18n-helpers because it sees
the old ones from this repository.
* Make i18n-helpers a requirement
* Skip mdbook-gettext for mdbook-xgettext
* Gettext finds PO file based on `book.language`
* Update workflow
No need to set `preprocessor.gettext.po-file`.
---------
Co-authored-by: Jooyung Han <jooyung@google.com>
There were some backslashed missing in the command to serve the
translated book. Thus the shell would execute the lines one after the
other, instead of as one command.
This lead to the environment variables not actually being set, and thus
the non-translated version was served anyway.
This implements a translation pipeline using the industry-standard
Gettext[1] system.
I picked Gettext for the reasons described in [2] and [3]:
* It’s widely used in open source software. This means that there are
graphical editors which will help you in editing the `.po` files. An
example is Poedit[4], which is available for all major platforms.
There are also many online systems for doing translations. An
example is Pontoon[5], which is used for the Rust website itself. We
can consider setting up such an instance ourselves.
* It is a light-weight yet structured format. This means that nothing
changes with regards to how you update the original English text. We
can still accept fixes and PRs like normal.
The structure means that translators can see exactly which part of
the course they need to update after a change. This is completely
lost if you simply copy over the original text and translate it
in-place in the Markdown files.
The code here only adds support for translations. They are not yet
tested, published or used for anything. Next steps will be:
* Add support for switching languages via a bit of JavaScript on each
page.
* Update the speaker notes feature to support translations (right now
“Speaker Notes” is hard-coded into the generated HTML). I think we
should turn it into a mdbook preprocessor instead.
* Add testing: We should test that the `.po` files are well-formed. We
should also run `mdbook test` on each language since the
translations can alter the embedded code.
Fixes#115.
[1]: https://www.gnu.org/software/gettext/manual/html_node/index.html
[2]: https://github.com/rust-lang/mdBook/pull/1864
[3]:
https://github.com/rust-lang/mdBook/issues/5#issuecomment-1144887806
[4]: https://poedit.net/
[5]: https://pontoon.rust-lang.org/