5
0
mirror of https://github.com/astral-sh/setup-uv.git synced 2025-12-15 11:07:14 +00:00

Compare commits

...

61 Commits
v3.0.0 ... v4.0

Author SHA1 Message Date
Kevin Stillhammer
d8db0a86d3 Change some formulations in README.md (#164) 2024-11-23 15:47:24 +00:00
Kevin Stillhammer
ed171c292b Fail when cache local path does not exist when trying to cache (#163)
Can be disabled by setting `ignore-nothing-to-cache: true`
2024-11-23 16:30:54 +01:00
Kevin Stillhammer
691a091485 Remove working dir from cacheDependencyGlob error message (#162)
Since https://github.com/astral-sh/setup-uv/pull/160 we allow searching
everywhere
2024-11-23 11:03:08 +00:00
Kevin Stillhammer
9b71657bb2 Add comment to clarify process.exit(0) (#161)
Copied from https://github.com/actions/cache/pull/1217
2024-11-23 10:58:21 +00:00
Kevin Stillhammer
caf0cab7a6 Expand TILDE (~) in path inputs (#160)
Closes: #159
2024-11-23 09:21:51 +01:00
github-actions[bot]
7c238111e6 chore: update known checksums for 0.5.4 (#158)
chore: update known checksums for 0.5.4

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-11-20 22:32:28 +00:00
dependabot[bot]
3eca4c2715 Bump @types/node from 22.9.0 to 22.9.1 (#157)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.9.0 to 22.9.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.9.0&new-version=22.9.1)](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>
2024-11-20 16:02:30 +01:00
github-actions[bot]
aee2e918ee chore: update known checksums for 0.5.3 (#156)
chore: update known checksums for 0.5.3

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-11-19 22:03:11 +00:00
dependabot[bot]
4ffb6d766c Bump @vercel/ncc from 0.38.2 to 0.38.3 (#155)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.38.2 to
0.38.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/ncc/releases"><code>@​vercel/ncc</code>'s
releases</a>.</em></p>
<blockquote>
<h2>0.38.3</h2>
<h2><a
href="https://github.com/vercel/ncc/compare/0.38.2...0.38.3">0.38.3</a>
(2024-11-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add missing <code>--asset-builds</code> to cli help message (<a
href="https://redirect.github.com/vercel/ncc/issues/1228">#1228</a>) (<a
href="84f8c52872">84f8c52</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="84f8c52872"><code>84f8c52</code></a>
fix: add missing <code>--asset-builds</code> to cli help message (<a
href="https://redirect.github.com/vercel/ncc/issues/1228">#1228</a>)</li>
<li><a
href="0ff93c67f8"><code>0ff93c6</code></a>
chore(deps): Bump elliptic from 6.5.7 to 6.6.0 (<a
href="https://redirect.github.com/vercel/ncc/issues/1223">#1223</a>)</li>
<li><a
href="ae5bf16cb3"><code>ae5bf16</code></a>
chore(deps): Bump amannn/action-semantic-pull-request from 5.3.0 to
5.5.3 (<a
href="https://redirect.github.com/vercel/ncc/issues/1">#1</a>...</li>
<li><a
href="738a2bfe3d"><code>738a2bf</code></a>
chore(deps-dev): Bump axios from 0.21.4 to 1.7.7 (<a
href="https://redirect.github.com/vercel/ncc/issues/1209">#1209</a>)</li>
<li>See full diff in <a
href="https://github.com/vercel/ncc/compare/0.38.2...0.38.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@vercel/ncc&package-manager=npm_and_yarn&previous-version=0.38.2&new-version=0.38.3)](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>
2024-11-15 11:15:58 +01:00
github-actions[bot]
e779db7426 chore: update known checksums for 0.5.2 (#154)
chore: update known checksums for 0.5.2

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-11-15 06:53:19 +00:00
github-actions[bot]
cb1ce8a914 chore: update known checksums for 0.5.1 (#152)
chore: update known checksums for 0.5.1

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-11-09 11:01:15 +01:00
github-actions[bot]
cf7bbf8f13 chore: update known checksums for 0.5.0 (#151)
chore: update known checksums for 0.5.0

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-11-08 09:39:20 +01:00
Kevin Stillhammer
2e657c127d Avoid leftover files by using temp dir (#150)
Fixes: #149
2024-11-06 12:52:46 +01:00
dependabot[bot]
a7e15805d2 Bump @actions/cache from 3.2.4 to 3.3.0 (#143)
Bumps
[@actions/cache](https://github.com/actions/toolkit/tree/HEAD/packages/cache)
from 3.2.4 to 3.3.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/cache/RELEASES.md"><code>@​actions/cache</code>'s
changelog</a>.</em></p>
<blockquote>
<h3>3.3.0</h3>
<ul>
<li>Update <code>@actions/core</code> to <code>1.11.1</code></li>
<li>Remove dependency on <code>uuid</code> package <a
href="https://redirect.github.com/actions/toolkit/pull/1824">#1824</a>,
<a
href="https://redirect.github.com/actions/toolkit/pull/1842">#1842</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/cache">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@actions/cache&package-manager=npm_and_yarn&previous-version=3.2.4&new-version=3.3.0)](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>
2024-11-05 20:57:00 +00:00
dependabot[bot]
2a578ce17f Bump @types/node from 22.8.6 to 22.9.0 (#146)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.8.6 to 22.9.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.8.6&new-version=22.9.0)](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>
2024-11-05 21:48:02 +01:00
Kevin Stillhammer
6f467a02b3 add archive extension to downloaded assets (#148)
Fixes missing .zip extensions
which breaks on old PowerShell versions

Fixes: #147
2024-11-05 21:21:57 +01:00
github-actions[bot]
d2242d1901 chore: update known checksums for 0.4.30 (#145)
chore: update known checksums for 0.4.30

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-11-05 06:55:55 +00:00
dependabot[bot]
5552ab3709 Bump @types/node from 22.7.9 to 22.8.6 (#142)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.9 to 22.8.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.9&new-version=22.8.6)](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>
2024-11-02 14:48:47 +01:00
github-actions[bot]
3e4fe09ab3 chore: update known checksums for 0.4.29 (#140)
chore: update known checksums for 0.4.29

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-31 08:15:34 +00:00
github-actions[bot]
56f89d8124 chore: update known checksums for 0.4.28 (#136)
chore: update known checksums for 0.4.28

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-29 09:22:48 +00:00
Merlin
3b9817b1bf feat: add option to disable cache pruning (#134)
This PR adds an input to control whether or not the cache is pruned
before saving.

Closes #122

---------

Co-authored-by: Kevin Stillhammer <kevin.stillhammer@gmail.com>
Co-authored-by: Charlie Marsh <crmarsh416@gmail.com>
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2024-10-25 14:11:32 +02:00
dependabot[bot]
cf841c25e2 Bump @types/node from 22.7.8 to 22.7.9 (#132)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.8 to 22.7.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.8&new-version=22.7.9)](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>
2024-10-24 09:58:30 +02:00
github-actions[bot]
864c48a352 chore: update known checksums for 0.4.26 (#133)
chore: update known checksums for 0.4.26

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-24 07:53:38 +00:00
dependabot[bot]
64311bdf43 Bump @types/node from 22.7.7 to 22.7.8 (#131)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.7 to 22.7.8.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.7&new-version=22.7.8)](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>
2024-10-22 12:36:29 +02:00
github-actions[bot]
59604e6118 chore: update known checksums for 0.4.25 (#130)
chore: update known checksums for 0.4.25

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-21 12:21:15 +00:00
dependabot[bot]
260f4a22de Bump @types/node from 22.7.6 to 22.7.7 (#129)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.6 to 22.7.7.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.6&new-version=22.7.7)](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>
2024-10-21 13:16:28 +02:00
Trevor Manz
273d3782a2 Use 0.4.x for versioning examples (#128)
I figured having the syntax examples with the latest minor semver would
be more convenient for copy pasting.
2024-10-18 12:35:52 -04:00
dependabot[bot]
ed0a39790e Bump @types/node from 22.7.5 to 22.7.6 (#123)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.5 to 22.7.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.5&new-version=22.7.6)](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>
2024-10-18 13:19:40 +02:00
dependabot[bot]
2d11fcb2c1 Bump @biomejs/biome from 1.9.3 to 1.9.4 (#127)
Bumps
[@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)
from 1.9.3 to 1.9.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/biomejs/biome/releases"><code>@​biomejs/biome</code>'s
releases</a>.</em></p>
<blockquote>
<h2>CLI v1.9.4</h2>
<h3>Analyzer</h3>
<h4>Bug fixes</h4>
<ul>
<li>
<p>Improved the message for unused suppression comments. Contributed by
<a href="https://github.com/dyc3"><code>@​dyc3</code></a></p>
</li>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4228">#4228</a>,
where the rule
<code>a11y/noInteractiveElementToNoninteractiveRole</code> incorrectly
reports a <code>role</code> for non-interactive elements. Contributed by
<a href="https://github.com/eryue0220"><code>@​eryue0220</code></a></p>
</li>
<li>
<p><code>noSuspiciousSemicolonInJsx</code> now catches suspicious
semicolons in React fragments. Contributed by <a
href="https://github.com/vasucp1207"><code>@​vasucp1207</code></a></p>
</li>
</ul>
<h3>CLI</h3>
<h4>Enhancements</h4>
<ul>
<li>
<p>The <code>--summary</code> reporter now reports parsing diagnostics
too. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></p>
</li>
<li>
<p>Improved performance of GritQL queries by roughly 25-30%. Contributed
by <a href="https://github.com/arendjr"><code>@​arendjr</code></a></p>
</li>
</ul>
<h3>Configuration</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix an issue where the JSON schema marked lint rules options as
mandatory. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></li>
</ul>
<h3>Formatter</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4121">#4121</a>.
Respect line width when printing multiline strings. Contributed by <a
href="https://github.com/ah-yu"><code>@​ah-yu</code></a></li>
</ul>
<h3>Linter</h3>
<h4>New features</h4>
<ul>
<li>Add <a
href="https://biomejs.dev/linter/rules/use-guard-for-in/">useGuardForIn</a>.
Contributed by <a
href="https://github.com/fireairforce"><code>@​fireairforce</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-document-cookie/">noDocumentCookie</a>.
Contributed by <a
href="https://github.com/tunamaguro"><code>@​tunamaguro</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-document-import-in-page/">noDocumentImportInPage</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-duplicate-properties/">noDuplicateProperties</a>.
Contributed by <a
href="https://github.com/togami2864"><code>@​togami2864</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-head-element/">noHeadElement</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-head-import-in-document/">noHeadImportInDocument</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-img-element/">noImgElement</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-unknown-type-selector/">noUnknownTypeSelector</a>.
Contributed by <a
href="https://github.com/Kazuhiro-Mimaki"><code>@​Kazuhiro-Mimaki</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/use-at-index/">useAtIndex</a>.
Contributed by <a
href="https://github.com/GunseiKPaseri"><code>@​GunseiKPaseri</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-useless-string-raw/">noUselessStringRaw</a>.
Contributed by <a
href="https://github.com/fireairforce"><code>@​fireairforce</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/use-collapsed-if/">nursery/useCollapsedIf</a>.
Contributed by <a
href="https://github.com/siketyan"><code>@​siketyan</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/use-google-font-display/">useGoogleFontDisplay</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
</ul>
<h4>Bug Fixes</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/biomejs/biome/blob/main/CHANGELOG.md"><code>@​biomejs/biome</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v1.9.4 (2024-10-17)</h2>
<h3>Analyzer</h3>
<h4>Bug fixes</h4>
<ul>
<li>
<p>Improved the message for unused suppression comments. Contributed by
<a href="https://github.com/dyc3"><code>@​dyc3</code></a></p>
</li>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4228">#4228</a>,
where the rule
<code>a11y/noInteractiveElementToNoninteractiveRole</code> incorrectly
reports a <code>role</code> for non-interactive elements. Contributed by
<a href="https://github.com/eryue0220"><code>@​eryue0220</code></a></p>
</li>
<li>
<p><code>noSuspiciousSemicolonInJsx</code> now catches suspicious
semicolons in React fragments. Contributed by <a
href="https://github.com/vasucp1207"><code>@​vasucp1207</code></a></p>
</li>
</ul>
<h3>CLI</h3>
<h4>Enhancements</h4>
<ul>
<li>
<p>The <code>--summary</code> reporter now reports parsing diagnostics
too. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></p>
</li>
<li>
<p>Improved performance of GritQL queries by roughly 25-30%. Contributed
by <a href="https://github.com/arendjr"><code>@​arendjr</code></a></p>
</li>
</ul>
<h3>Configuration</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix an issue where the JSON schema marked lint rules options as
mandatory. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></li>
</ul>
<h3>Editors</h3>
<h3>Formatter</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4121">#4121</a>.
Respect line width when printing multiline strings. Contributed by <a
href="https://github.com/ah-yu"><code>@​ah-yu</code></a></li>
</ul>
<h3>JavaScript APIs</h3>
<h3>Linter</h3>
<h4>New features</h4>
<ul>
<li>Add <a
href="https://biomejs.dev/linter/rules/use-guard-for-in/">useGuardForIn</a>.
Contributed by <a
href="https://github.com/fireairforce"><code>@​fireairforce</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-document-cookie/">noDocumentCookie</a>.
Contributed by <a
href="https://github.com/tunamaguro"><code>@​tunamaguro</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-document-import-in-page/">noDocumentImportInPage</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-duplicate-properties/">noDuplicateProperties</a>.
Contributed by <a
href="https://github.com/togami2864"><code>@​togami2864</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-head-element/">noHeadElement</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-head-import-in-document/">noHeadImportInDocument</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-img-element/">noImgElement</a>.
Contributed by <a
href="https://github.com/kaioduarte"><code>@​kaioduarte</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-unknown-type-selector/">noUnknownTypeSelector</a>.
Contributed by <a
href="https://github.com/Kazuhiro-Mimaki"><code>@​Kazuhiro-Mimaki</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/use-at-index/">useAtIndex</a>.
Contributed by <a
href="https://github.com/GunseiKPaseri"><code>@​GunseiKPaseri</code></a></li>
<li>Add <a
href="https://biomejs.dev/linter/rules/no-useless-string-raw/">noUselessStringRaw</a>.
Contributed by <a
href="https://github.com/fireairforce"><code>@​fireairforce</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fa93a147ab"><code>fa93a14</code></a>
release: v1.9.4 (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4320">#4320</a>)</li>
<li><a
href="2a05cd47fd"><code>2a05cd4</code></a>
feat(lint): add <code>useGoogleFontDisplay</code> rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4264">#4264</a>)</li>
<li><a
href="bbb93b98b4"><code>bbb93b9</code></a>
feat(lint): useCollapsedIf JS lint rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4179">#4179</a>)</li>
<li><a
href="561b54c936"><code>561b54c</code></a>
feat(linter): implement noUselessStringRaw (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4263">#4263</a>)</li>
<li><a
href="5b7d1581c5"><code>5b7d158</code></a>
feat(linter): implement <code>noDuplicateProperties</code> (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4029">#4029</a>)</li>
<li><a
href="2342984b92"><code>2342984</code></a>
feat(lint): add <code>noDocumentImportInPage</code> rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4265">#4265</a>)</li>
<li><a
href="3cf20ebb81"><code>3cf20eb</code></a>
chore(linter): rename <code>useExplicitFunctionReturnType</code> to
`useExplicit… (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4261">#4261</a>)</li>
<li><a
href="970f49884e"><code>970f498</code></a>
feat(useGuardForIn): add rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4104">#4104</a>)</li>
<li><a
href="2e5b6564d9"><code>2e5b656</code></a>
feat(lint): add <code>noDocumentCookie</code> rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4204">#4204</a>)</li>
<li><a
href="3364640e1f"><code>3364640</code></a>
feat(lint): add rule <code>useAtIndex</code> (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4120">#4120</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/biomejs/biome/commits/cli/v1.9.4/packages/@biomejs/biome">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@biomejs/biome&package-manager=npm_and_yarn&previous-version=1.9.3&new-version=1.9.4)](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>
2024-10-18 13:11:13 +02:00
github-actions[bot]
a714a3589c chore: update known checksums for 0.4.24 (#126)
chore: update known checksums for 0.4.24

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-18 09:02:22 +00:00
github-actions[bot]
59ca521371 chore: update known checksums for 0.4.23 (#125)
chore: update known checksums for 0.4.23

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-17 15:44:41 +00:00
Kevin Stillhammer
f3bcaebff5 Update deps (#121)
Fixes: https://github.com/astral-sh/setup-uv/issues/119
2024-10-15 11:33:59 +00:00
github-actions[bot]
10d8740fc2 chore: update known checksums for 0.4.21 (#120)
chore: update known checksums for 0.4.21

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-15 10:00:41 +00:00
Yoshihisa Mochihara
f731690a1d Fix cache linebreak in linux runner (#118)
Related https://github.com/astral-sh/setup-uv/issues/106

We can see the differences `uv --version` in different platforms:

OSX: uv 0.4.20 (0e1b25a53 2024-10-08)\n
Linux: uv 0.4.20\n

In getVersion function we split the output by space and return the
second part.
This PR trims the version number to remove the line break.
2024-10-12 08:59:22 +02:00
github-actions[bot]
77c28f02b3 chore: update known checksums for 0.4.20 (#115)
chore: update known checksums for 0.4.20

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-09 09:55:25 +02:00
dependabot[bot]
00c695b84c Bump @types/node from 22.7.4 to 22.7.5 (#114)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.4 to 22.7.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.4&new-version=22.7.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>
2024-10-08 13:21:35 +02:00
github-actions[bot]
2422c84f47 chore: update known checksums for 0.4.19 (#113)
chore: update known checksums for 0.4.19

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-08 05:35:45 +00:00
dependabot[bot]
680950fd0f Bump @biomejs/biome from 1.9.2 to 1.9.3 (#110)
Bumps
[@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)
from 1.9.2 to 1.9.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/biomejs/biome/releases"><code>@​biomejs/biome</code>'s
releases</a>.</em></p>
<blockquote>
<h2>CLI v1.9.3</h2>
<h3>CLI</h3>
<h4>New features</h4>
<ul>
<li>
<p>GritQL queries that match functions or methods will now match async
functions or methods as well.</p>
<p>If this is not what you want, you can capture the <code>async</code>
keyword (or its absence) in a metavariable and assert its emptiness:</p>
<pre lang="grit"><code>$async function foo() {} where $async &lt;: .
</code></pre>
<p>Contributed by <a
href="https://github.com/arendjr"><code>@​arendjr</code></a></p>
</li>
</ul>
<h4>Bug fixes</h4>
<ul>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4077">#4077</a>:
Grit queries no longer need to match the statement's trailing semicolon.
Contributed by <a
href="https://github.com/arendjr"><code>@​arendjr</code></a></p>
</li>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4102">#4102</a>.
Now the CLI command <code>lint</code> doesn't exit with an error code
when using <code>--write</code>/<code>--fix</code>. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></p>
</li>
</ul>
<h3>Configuration</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4125">#4125</a>,
where <code>noLabelWithoutControl</code> options where incorrectly
marked as mandatory. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></li>
</ul>
<h3>Editors</h3>
<ul>
<li>Fix a case where CSS files weren't correctly linted using the
default configuration. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></li>
</ul>
<h3>Formatter</h3>
<h4>Bug fixes</h4>
<ul>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/3924">#3924</a>
where GraphQL formatter panics in block comments with empty line.
Contributed by <a
href="https://github.com/vohoanglong0107"><code>@​vohoanglong0107</code></a></p>
</li>
<li>
<p>Fix a case where raw values inside <code>url()</code> functions
weren't properly trimmed.</p>
<pre lang="diff"><code>.value {
-  background: url(
-   whitespace-around-string
-  );
+ background: url(whitespace-around-string);
}
</code></pre>
<p>Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></p>
</li>
<li>
<p>Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/4076">#4076</a>,
where a media query wasn't correctly formatted:</p>
<pre lang="diff"><code>.class {
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/biomejs/biome/blob/main/CHANGELOG.md"><code>@​biomejs/biome</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v1.9.3 (2024-10-01)</h2>
<h3>CLI</h3>
<h4>New features</h4>
<ul>
<li>
<p>GritQL queries that match functions or methods will now match async
functions or methods as well.</p>
<p>If this is not what you want, you can capture the <code>async</code>
keyword (or its absence) in a metavariable and assert its emptiness:</p>
<pre lang="grit"><code>$async function foo() {} where $async &lt;: .
</code></pre>
<p>Contributed by <a
href="https://github.com/arendjr"><code>@​arendjr</code></a></p>
</li>
</ul>
<h4>Bug fixes</h4>
<ul>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4077">#4077</a>:
Grit queries no longer need to match the statement's trailing semicolon.
Contributed by <a
href="https://github.com/arendjr"><code>@​arendjr</code></a></p>
</li>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4102">#4102</a>.
Now the CLI command <code>lint</code> doesn't exit with an error code
when using <code>--write</code>/<code>--fix</code>. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></p>
</li>
</ul>
<h3>Configuration</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/4125">#4125</a>,
where <code>noLabelWithoutControl</code> options where incorrectly
marked as mandatory. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></li>
</ul>
<h3>Editors</h3>
<ul>
<li>Fix a case where CSS files weren't correctly linted using the
default configuration. Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></li>
</ul>
<h3>Formatter</h3>
<h4>Bug fixes</h4>
<ul>
<li>
<p>Fix <a
href="https://redirect.github.com/biomejs/biome/issues/3924">#3924</a>
where GraphQL formatter panics in block comments with empty line.
Contributed by <a
href="https://github.com/vohoanglong0107"><code>@​vohoanglong0107</code></a></p>
</li>
<li>
<p>Fix a case where raw values inside <code>url()</code> functions
weren't properly trimmed.</p>
<pre lang="diff"><code>.value {
-  background: url(
-   whitespace-around-string
-  );
+ background: url(whitespace-around-string);
}
</code></pre>
<p>Contributed by <a
href="https://github.com/ematipico"><code>@​ematipico</code></a></p>
</li>
<li>
<p>Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/4076">#4076</a>,
where a media query wasn't correctly formatted:</p>
<pre lang="diff"><code></code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3d498ed639"><code>3d498ed</code></a>
release: v1.9.3 (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4140">#4140</a>)</li>
<li><a
href="7e29f06930"><code>7e29f06</code></a>
fix(lint): options for <code>noLabelWithoutControl</code> are optional
(<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4138">#4138</a>)</li>
<li><a
href="10a1371dca"><code>10a1371</code></a>
feat(useExhaustiveDependencies): add option to disable errors for
unecessary ...</li>
<li><a
href="295efb90b9"><code>295efb9</code></a>
feat(biome_css_analyze): implement <code>noDescendingSpecificity</code>
(<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4097">#4097</a>)</li>
<li><a
href="f3cfa8a92d"><code>f3cfa8a</code></a>
fix(schema): make optional the <code>options</code> JSON schema field
(<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4080">#4080</a>)</li>
<li><a
href="cc4c867575"><code>cc4c867</code></a>
feat(linter): implement noTemplateCurlyInString (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4069">#4069</a>)</li>
<li><a
href="d03c6cd029"><code>d03c6cd</code></a>
feat(linter): implement no-nested-ternary (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4067">#4067</a>)</li>
<li><a
href="2b6b3c8aa9"><code>2b6b3c8</code></a>
chore(deps): update <a
href="https://github.com/biomejs"><code>@​biomejs</code></a> packages
(<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4047">#4047</a>)</li>
<li><a
href="b76cb416da"><code>b76cb41</code></a>
feat(linter): implement useExplicitFunctionReturnType (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/3990">#3990</a>)</li>
<li><a
href="a766aebd6c"><code>a766aeb</code></a>
chore(readme): use polar shield (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/4000">#4000</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/biomejs/biome/commits/cli/v1.9.3/packages/@biomejs/biome">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@biomejs/biome&package-manager=npm_and_yarn&previous-version=1.9.2&new-version=1.9.3)](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>
2024-10-08 07:22:05 +02:00
github-actions[bot]
c9aa747934 chore: update known checksums for 0.4.18 (#109)
chore: update known checksums for 0.4.18

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-10-02 09:37:03 +00:00
dependabot[bot]
97dc6041e9 Bump @types/node from 22.7.3 to 22.7.4 (#108)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.3 to 22.7.4.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.3&new-version=22.7.4)](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>
2024-10-02 09:44:49 +02:00
Charlie Marsh
c11f8674f8 Migrate to Biome for linting and formatting (#107) 2024-09-30 08:55:24 +02:00
github-actions[bot]
023eb7875f chore: update known checksums for 0.4.17 (#104)
chore: update known checksums for 0.4.17

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-27 20:26:47 +02:00
dependabot[bot]
315da29189 Bump @types/node from 22.7.0 to 22.7.3 (#103)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.7.0 to 22.7.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.7.0&new-version=22.7.3)](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>
2024-09-27 13:05:44 +02:00
dependabot[bot]
4cda7d7332 Bump @types/node from 22.6.1 to 22.7.0 (#101)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.6.1 to 22.7.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.6.1&new-version=22.7.0)](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>
2024-09-25 13:02:33 +02:00
github-actions[bot]
8114e5e81b chore: update known checksums for 0.4.16 (#100)
chore: update known checksums for 0.4.16

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-25 07:25:31 +00:00
dependabot[bot]
7ee921e18a Bump @types/node from 22.5.5 to 22.6.1 (#98)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 22.5.5 to 22.6.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=22.5.5&new-version=22.6.1)](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>
2024-09-25 09:02:25 +02:00
Kevin Stillhammer
8c3a35e468 Only log checksum is valid when it really is (#97) 2024-09-21 19:10:22 +00:00
Kevin Stillhammer
abac0ce7b0 Use runner label selfhosted-ubuntu-arm64 (#96)
Replaces oracle-aarch64 to better express what the runner is used for
2024-09-21 20:19:02 +02:00
github-actions[bot]
03e245b158 chore: update known checksums for 0.4.15 (#95)
chore: update known checksums for 0.4.15

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-21 17:07:50 +02:00
Kevin Stillhammer
aeb46491c7 Set tool(-bin) dir and add to PATH (#87)
Fixes: #83
Fixes: #60
2024-09-21 10:14:36 +02:00
github-actions[bot]
dbb680fbd2 chore: update known checksums for 0.4.14 (#94)
chore: update known checksums for 0.4.14

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-20 21:53:28 +00:00
github-actions[bot]
8de9ba90a2 chore: update known checksums for 0.4.13 (#93)
chore: update known checksums for 0.4.13

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-19 21:30:53 +00:00
dependabot[bot]
118bd876d2 Bump peter-evans/create-pull-request from 7.0.3 to 7.0.5 (#91)
Bumps
[peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request)
from 7.0.3 to 7.0.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>Create Pull Request v7.0.5</h2>
<p>⚙️ Fixes an issue with commit signing to allow it to support
symlinks</p>
<h2>What's Changed</h2>
<ul>
<li>fix: support symlinks when commit signing by <a
href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3359">peter-evans/create-pull-request#3359</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v7.0.4...v7.0.5">https://github.com/peter-evans/create-pull-request/compare/v7.0.4...v7.0.5</a></p>
<h2>Create Pull Request v7.0.4</h2>
<p>⚙️ Fixes an issue with commit signing to allow it to support
submodules</p>
<h2>What's Changed</h2>
<ul>
<li>docs: correct suggestion for bot setup by <a
href="https://github.com/henryiii"><code>@​henryiii</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3342">peter-evans/create-pull-request#3342</a></li>
<li>build(deps-dev): bump <code>@​types/jest</code> from 29.5.12 to
29.5.13 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3343">peter-evans/create-pull-request#3343</a></li>
<li>build(deps-dev): bump eslint from 8.57.0 to 8.57.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3344">peter-evans/create-pull-request#3344</a></li>
<li>fix: support submodules when commit signing by <a
href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3354">peter-evans/create-pull-request#3354</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/henryiii"><code>@​henryiii</code></a>
made their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3342">peter-evans/create-pull-request#3342</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v7.0.3...v7.0.4">https://github.com/peter-evans/create-pull-request/compare/v7.0.3...v7.0.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5e914681df"><code>5e91468</code></a>
fix: support symlinks when commit signing (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3359">#3359</a>)</li>
<li><a
href="2f38cd26bf"><code>2f38cd2</code></a>
fix: support submodules when commit signing (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3354">#3354</a>)</li>
<li><a
href="7a8aeac749"><code>7a8aeac</code></a>
build(deps-dev): bump eslint from 8.57.0 to 8.57.1 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3344">#3344</a>)</li>
<li><a
href="d39d596a77"><code>d39d596</code></a>
build(deps-dev): bump <code>@​types/jest</code> from 29.5.12 to 29.5.13
(<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3343">#3343</a>)</li>
<li><a
href="f6f978fd3d"><code>f6f978f</code></a>
docs: correct suggestion for bot setup (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3342">#3342</a>)</li>
<li>See full diff in <a
href="6cd32fd936...5e914681df">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/create-pull-request&package-manager=github_actions&previous-version=7.0.3&new-version=7.0.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>
2024-09-19 18:40:01 +02:00
Bartosz Sławecki
adcf5c892e Fix a typo SHA265 → SHA256 (#90)
:)
2024-09-19 09:10:29 +00:00
github-actions[bot]
0c326cbd51 chore: update known checksums for 0.4.12 (#86)
chore: update known checksums for 0.4.12

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-18 18:53:44 +02:00
Kevin Stillhammer
8205eab75b Update version in README from v2 to v3 (#85) 2024-09-18 09:34:56 +00:00
Kevin Stillhammer
ce0062aac7 Add support for semver version ranges (#82)
Closes: #38
2024-09-18 09:29:09 +00:00
github-actions[bot]
8e09161b4b chore: update known checksums for 0.4.11 (#84)
chore: update known checksums for 0.4.11

Co-authored-by: eifinger <1481961+eifinger@users.noreply.github.com>
2024-09-18 07:23:29 +00:00
dependabot[bot]
bf2778f5d6 Bump eslint from 8.57.0 to 8.57.1 (#81) 2024-09-17 23:20:41 -04:00
Charlie Marsh
223591d242 Tweak the action branding (#49) 2024-09-17 23:20:15 -04:00
Kevin Stillhammer
79fb68ebfe Fix prettier destroying markdown NOTE (#80) 2024-09-17 08:27:37 +02:00
25 changed files with 11352 additions and 11841 deletions

View File

@@ -1,4 +0,0 @@
dist/
lib/
node_modules/
jest.config.js

View File

@@ -1,61 +0,0 @@
{
"plugins": ["jest", "@typescript-eslint"],
"extends": ["plugin:github/recommended"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 9,
"sourceType": "module",
"project": "./tsconfig.json"
},
"rules": {
"no-shadow": "off",
"@typescript-eslint/no-shadow": ["error"],
"i18n-text/no-en": "off",
"eslint-comments/no-use": "off",
"import/no-namespace": "off",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/explicit-member-accessibility": [
"error",
{ "accessibility": "no-public" }
],
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/ban-ts-comment": "error",
"camelcase": "off",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/explicit-function-return-type": [
"error",
{ "allowExpressions": true }
],
"@typescript-eslint/func-call-spacing": ["error", "never"],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-empty-interface": "error",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-extraneous-class": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-inferrable-types": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "warn",
"@typescript-eslint/no-unnecessary-qualifier": "error",
"@typescript-eslint/no-unnecessary-type-assertion": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/prefer-for-of": "warn",
"@typescript-eslint/prefer-function-type": "warn",
"@typescript-eslint/prefer-includes": "error",
"@typescript-eslint/prefer-string-starts-ends-with": "error",
"@typescript-eslint/promise-function-async": "error",
"@typescript-eslint/require-array-sort-compare": "error",
"@typescript-eslint/restrict-plus-operands": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unbound-method": "error"
},
"env": {
"node": true,
"es6": true,
"jest/globals": true
}
}

View File

@@ -21,7 +21,7 @@ jobs:
uses: ./
with:
enable-cache: true
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-restore-cache:
@@ -37,7 +37,7 @@ jobs:
uses: ./
with:
enable-cache: true
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache
- name: Cache was hit
run: |
if [ "$CACHE_HIT" != "true" ]; then
@@ -59,7 +59,7 @@ jobs:
cache-dependency-glob: |
__tests__/fixtures/uv-project/uv.lock
**/pyproject.toml
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-restore-cache-dependency-glob:
@@ -79,7 +79,8 @@ jobs:
cache-dependency-glob: |
__tests__/fixtures/uv-project/uv.lock
**/pyproject.toml
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
ignore-nothing-to-cache: true
- name: Cache was not hit
run: |
if [ "$CACHE_HIT" == "true" ]; then
@@ -89,19 +90,19 @@ jobs:
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
test-setup-cache-local:
runs-on: oracle-aarch64
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@v4
- name: Setup with cache
uses: ./
with:
enable-cache: true
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
cache-local-path: /tmp/uv-cache
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-restore-cache-local:
runs-on: oracle-aarch64
runs-on: selfhosted-ubuntu-arm64
needs: test-setup-cache-local
steps:
- uses: actions/checkout@v4
@@ -110,7 +111,7 @@ jobs:
uses: ./
with:
enable-cache: true
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
cache-local-path: /tmp/uv-cache
- name: Cache was hit
run: |
@@ -121,3 +122,49 @@ jobs:
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-tilde-expansion-cache-local-path:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@v4
- name: Create cache directory
run: mkdir -p ~/uv-cache
shell: bash
- name: Setup with cache
uses: ./
with:
cache-local-path: ~/uv-cache/cache-local-path
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-tilde-expansion-cache-dependency-glob:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@v4
- name: Create cache directory
run: mkdir -p ~/uv-cache
shell: bash
- name: Create cache dependency glob file
run: touch ~/uv-cache.glob
shell: bash
- name: Setup with cache
uses: ./
with:
enable-cache: true
cache-local-path: ~/uv-cache/cache-dependency-glob
cache-dependency-glob: "~/uv-cache.glob"
- run: uv sync
working-directory: __tests__/fixtures/uv-project
cleanup-tilde-expansion-tests:
needs:
- test-tilde-expansion-cache-local-path
- test-tilde-expansion-cache-dependency-glob
runs-on: selfhosted-ubuntu-arm64
steps:
- name: Remove cache directory
run: rm -rf ~/uv-cache
shell: bash
- name: Remove cache dependency glob file
run: rm -f ~/uv-cache.glob
shell: bash

View File

@@ -28,7 +28,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, macos-14, oracle-aarch64]
os: [ubuntu-latest, macos-latest, macos-14, selfhosted-ubuntu-arm64]
steps:
- uses: actions/checkout@v4
- name: Install default version
@@ -39,8 +39,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, macos-14, oracle-aarch64]
uv-version: ["latest", "0.3.0", "0.3.2"]
os: [ubuntu-latest, macos-latest, macos-14, selfhosted-ubuntu-arm64]
uv-version: ["latest", "0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
steps:
- uses: actions/checkout@v4
- name: Install version ${{ matrix.uv-version }}
@@ -49,18 +49,37 @@ jobs:
version: ${{ matrix.uv-version }}
- run: uv sync
working-directory: __tests__/fixtures/uv-project
test-semver-range:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, selfhosted-ubuntu-arm64]
steps:
- uses: actions/checkout@v4
- name: Install version 0.3
id: setup-uv
uses: ./
with:
version: "0.3"
- name: Correct version gets installed
run: |
if [ "$UV_VERSION" != "0.3.5" ]; then
exit 1
fi
env:
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
test-checksum:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, oracle-aarch64]
os: [ubuntu-latest, selfhosted-ubuntu-arm64]
checksum:
["4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"]
exclude:
- os: oracle-aarch64
- os: selfhosted-ubuntu-arm64
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"
include:
- os: oracle-aarch64
- os: selfhosted-ubuntu-arm64
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
steps:
- uses: actions/checkout@v4
@@ -86,3 +105,42 @@ jobs:
- name: Install default version
uses: ./
- run: uvx ruff --version
test-tool-install:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
[
ubuntu-latest,
macos-latest,
macos-14,
windows-latest,
selfhosted-ubuntu-arm64,
]
steps:
- uses: actions/checkout@v4
- name: Install default version
uses: ./
- run: uv tool install ruff
- run: ruff --version
test-tilde-expansion-tool-dirs:
runs-on: selfhosted-ubuntu-arm64
steps:
- uses: actions/checkout@v4
- name: Setup with cache
uses: ./
with:
tool-bin-dir: "~/tool-bin-dir"
tool-dir: "~/tool-dir"
- name: "Check if tool dirs are expanded"
run: |
if ! echo "$PATH" | grep -q "/home/ubuntu/tool-bin-dir"; then
echo "PATH does not contain /home/ubuntu/tool-bin-dir: $PATH"
exit 1
fi
if [ "$UV_TOOL_DIR" != "/home/ubuntu/tool-dir" ]; then
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR"
exit 1
fi

View File

@@ -17,7 +17,7 @@ jobs:
src/download/checksum/known-checksums.ts ${{ secrets.GITHUB_TOKEN }}
- run: npm install && npm run all
- name: Create Pull Request
uses: peter-evans/create-pull-request@6cd32fd93684475c31847837f87bb135d40a2b79 # v7.0.3
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
with:
commit-message: "chore: update known checksums"
title:

View File

@@ -1,3 +0,0 @@
dist/
lib/
node_modules/

View File

@@ -1,4 +0,0 @@
{
"trailingComma": "all",
"proseWrap": "always"
}

172
README.md
View File

@@ -13,11 +13,17 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
- [Usage](#usage)
- [Install the latest version (default)](#install-the-latest-version-default)
- [Install a specific version](#install-a-specific-version)
- [Install a version by supplying a semver range](#install-a-version-by-supplying-a-semver-range)
- [Validate checksum](#validate-checksum)
- [Enable Caching](#enable-caching)
- [Cache dependency glob](#cache-dependency-glob)
- [Local cache path](#local-cache-path)
- [Disable cache pruning](#disable-cache-pruning)
- [Ignore nothing to cache](#ignore-nothing-to-cache)
- [GitHub authentication token](#github-authentication-token)
- [UV_TOOL_DIR](#uv_tool_dir)
- [UV_TOOL_BIN_DIR](#uv_tool_bin_dir)
- [Tilde Expansion](#tilde-expansion)
- [How it works](#how-it-works)
- [FAQ](#faq)
@@ -27,7 +33,7 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
```yaml
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
version: "latest"
```
@@ -37,7 +43,7 @@ For an example workflow, see
> [!TIP]
>
> Using `latest` requires that uv download the executable on every run, which incurs a cost
> Using `latest` requires to download the uv executable on every run, which incurs a cost
> (especially on self-hosted runners). As a best practice, consider pinning the version to a
> specific release.
@@ -45,20 +51,39 @@ For an example workflow, see
```yaml
- name: Install a specific version of uv
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
version: "0.4.4"
```
### Install a version by supplying a semver range
You can specify a [semver range](https://github.com/npm/node-semver?tab=readme-ov-file#ranges)
to install the latest version that satisfies the range.
```yaml
- name: Install a semver range of uv
uses: astral-sh/setup-uv@v3
with:
version: ">=0.4.0"
```
```yaml
- name: Pinning a minor version of uv
uses: astral-sh/setup-uv@v3
with:
version: "0.4.x"
```
### Validate checksum
You can also specify a checksum to validate the downloaded file. Checksums up to the default version
are automatically verified by this action. The sha265 hashes can be found on the
You can specify a checksum to validate the downloaded executable. Checksums up to the default version
are automatically verified by this action. The sha256 hashes can be found on the
[releases page](https://github.com/astral-sh/uv/releases) of the uv repo.
```yaml
- name: Install a specific version and validate the checksum
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
version: "0.3.1"
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
@@ -66,8 +91,8 @@ are automatically verified by this action. The sha265 hashes can be found on the
### Enable caching
If you enable caching, the [uv cache](https://docs.astral.sh/uv/concepts/cache/) will be cached to
the GitHub Actions Cache. This can speed up runs that reuse the cache by several minutes.
If you enable caching, the [uv cache](https://docs.astral.sh/uv/concepts/cache/) will be uploaded to
the GitHub Actions cache. This can speed up runs that reuse the cache by several minutes.
> [!TIP]
>
@@ -79,7 +104,7 @@ You can optionally define a custom cache key suffix.
```yaml
- name: Enable caching and define a custom cache key suffix
id: setup-uv
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-suffix: "optional-suffix"
@@ -96,15 +121,17 @@ use it in subsequent steps. For example, to use the cache in the above case:
#### Cache dependency glob
If you want to control when the cache is invalidated, specify a glob pattern with the
`cache-dependency-glob` input. The cache will be invalidated if any file matching the glob pattern
changes. The glob matches files relative to the repository root.
If you want to control when the GitHub Actions cache is invalidated, specify a glob pattern with the
`cache-dependency-glob` input. The GitHub Actions cache will be invalidated if any file matching the glob pattern
changes. If you use relative paths, they are relative to the repository root.
> [!NOTE] The default is `**/uv.lock`.
> [!NOTE]
>
> The default is `**/uv.lock`.
```yaml
- name: Define a cache dependency glob
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "**/requirements*.txt"
@@ -112,7 +139,7 @@ changes. The glob matches files relative to the repository root.
```yaml
- name: Define a list of cache dependency globs
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: |
@@ -120,9 +147,17 @@ changes. The glob matches files relative to the repository root.
**/pyproject.toml
```
```yaml
- name: Define an absolute cache dependency glob
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "/tmp/my-folder/requirements*.txt"
```
```yaml
- name: Never invalidate the cache
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: ""
@@ -130,16 +165,51 @@ changes. The glob matches files relative to the repository root.
### Local cache path
This action controls where uv stores its cache on the runner's filesystem. You can change the
default (`/tmp/setup-uv-cache`) by specifying the path with the `cache-local-path` input.
This action controls where uv stores its cache on the runner's filesystem by setting `UV_CACHE_DIR`.
It defaults to `setup-uv-cache` in the `TMP` dir, `D:\a\_temp\uv-tool-dir` on Windows and
`/tmp/setup-uv-cache` on Linux/macOS. You can change the default by specifying the path with the
`cache-local-path` input.
```yaml
- name: Define a custom uv cache path
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
cache-local-path: "/path/to/cache"
```
### Disable cache pruning
By default, the uv cache is pruned after every run, removing pre-built wheels, but retaining any
wheels that were built from source. On GitHub-hosted runners, it's typically faster to omit those
pre-built wheels from the cache (and instead re-download them from the registry on each run).
However, on self-hosted or local runners, preserving the cache may be more efficient. See
the [documentation](https://docs.astral.sh/uv/concepts/cache/#caching-in-continuous-integration) for
more information.
If you want to persist the entire cache across runs, disable cache pruning with the `prune-cache`
input.
```yaml
- name: Don't prune the cache before saving it
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
prune-cache: false
```
### Ignore nothing to cache
By default, the action will fail if there is nothing to cache (the uv cache directory does not exist).
If you want to ignore this, set the `ignore-nothing-to-cache` input to `true`.
```yaml
- name: Ignore nothing to cache
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
ignore-nothing-to-cache: true
```
### GitHub authentication token
This action uses the GitHub API to fetch the uv release artifacts. To avoid hitting the GitHub API
@@ -152,11 +222,67 @@ are not sufficient, you can provide a custom GitHub token with the necessary per
```yaml
- name: Install the latest version of uv with a custom GitHub token
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
```
### UV_TOOL_DIR
On Windows `UV_TOOL_DIR` is set to `uv-tool-dir` in the `TMP` dir (e.g. `D:\a\_temp\uv-tool-dir`).
On GitHub hosted runners this is on the much faster `D:` drive.
On all other platforms the tool environments are placed in the
[default location](https://docs.astral.sh/uv/concepts/tools/#tools-directory).
If you want to change this behaviour (especially on self-hosted runners) you can use the `tool-dir`
input:
```yaml
- name: Install the latest version of uv with a custom tool dir
uses: astral-sh/setup-uv@v3
with:
tool-dir: "/path/to/tool/dir"
```
### UV_TOOL_BIN_DIR
On Windows `UV_TOOL_BIN_DIR` is set to `uv-tool-bin-dir` in the `TMP` dir (e.g.
`D:\a\_temp\uv-tool-bin-dir`). On GitHub hosted runners this is on the much faster `D:` drive. This
path is also automatically added to the PATH.
On all other platforms the tool binaries get installed to the
[default location](https://docs.astral.sh/uv/concepts/tools/#the-bin-directory).
If you want to change this behaviour (especially on self-hosted runners) you can use the
`tool-bin-dir` input:
```yaml
- name: Install the latest version of uv with a custom tool bin dir
uses: astral-sh/setup-uv@v3
with:
tool-bin-dir: "/path/to/tool-bin/dir"
```
### Tilde Expansion
This action supports expanding the `~` character to the user's home directory for the following inputs:
- `cache-local-path`
- `tool-dir`
- `tool-bin-dir`
- `cache-dependency-glob`
```yaml
- name: Expand the tilde character
uses: astral-sh/setup-uv@v3
with:
cache-local-path: "~/path/to/cache"
tool-dir: "~/path/to/tool/dir"
tool-bin-dir: "~/path/to/tool-bin/dir"
cache-dependency-glob: "~/my-cache-buster"
```
## How it works
This action downloads uv from the uv repo's official
@@ -181,7 +307,7 @@ For example:
- name: Checkout the repository
uses: actions/checkout@main
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: Test
@@ -193,7 +319,7 @@ To install a specific version of Python, use
```yaml
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
- name: Install Python 3.12
@@ -212,7 +338,7 @@ output:
uses: actions/checkout@main
- name: Install the default version of uv
id: setup-uv
uses: astral-sh/setup-uv@v2
uses: astral-sh/setup-uv@v3
- name: Print the installed version
run: echo "Installed uv version is ${{ steps.setup-uv.outputs.uv-version }}"
```

View File

@@ -1,6 +1,7 @@
name: "Python setup uv"
description: "Set up your GitHub Actions workflow with a specific version of uv"
author: "eifinger"
name: "astral-sh/setup-uv"
description:
"Set up your GitHub Actions workflow with a specific version of uv."
author: "astral-sh"
inputs:
version:
description: "The version of uv to install"
@@ -28,6 +29,18 @@ inputs:
cache-local-path:
description: "Local path to store the cache."
default: ""
prune-cache:
description: "Prune cache before saving."
default: "true"
ignore-nothing-to-cache:
description: "Ignore when nothing is found to cache."
default: "false"
tool-dir:
description: "Custom path to set UV_TOOL_DIR to."
required: false
tool-bin-dir:
description: "Custom path to set UV_TOOL_BIN_DIR to."
required: false
outputs:
uv-version:
description: "The installed uv version. Useful when using latest."
@@ -40,4 +53,4 @@ runs:
post-if: success()
branding:
icon: "package"
color: "blue"
color: "black"

31
biome.json Normal file
View File

@@ -0,0 +1,31 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.2/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": false
},
"files": {
"ignoreUnknown": false,
"ignore": ["dist", "lib", "node_modules"]
},
"formatter": {
"enabled": true,
"indentStyle": "space"
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
},
"javascript": {
"formatter": {
"quoteStyle": "double",
"trailingCommas": "all"
}
}
}

3997
dist/save-cache/index.js generated vendored

File diff suppressed because one or more lines are too long

8647
dist/setup/index.js generated vendored

File diff suppressed because one or more lines are too long

2518
dist/update-known-checksums/index.js generated vendored

File diff suppressed because one or more lines are too long

6331
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -6,9 +6,9 @@
"main": "dist/index.js",
"scripts": {
"build": "tsc",
"format": "prettier --write .",
"format-check": "prettier --check .",
"lint": "eslint src/**/*.ts --fix",
"format": "biome format --fix",
"format-check": "biome format",
"lint": "biome lint --fix",
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-checksums src/update-known-checksums.ts",
"test": "jest",
"act": "act pull_request -W .github/workflows/test.yml --container-architecture linux/amd64 -s GITHUB_TOKEN=\"$(gh auth token)\"",
@@ -19,17 +19,12 @@
"type": "git",
"url": "git+https://github.com/astral-sh/setup-uv.git"
},
"keywords": [
"actions",
"python",
"setup",
"uv"
],
"keywords": ["actions", "python", "setup", "uv"],
"author": "@eifinger",
"license": "MIT",
"dependencies": {
"@actions/cache": "^3.2.4",
"@actions/core": "^1.10.1",
"@actions/cache": "^3.3.0",
"@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.0",
"@actions/glob": "^0.5.0",
@@ -38,20 +33,13 @@
"@octokit/rest": "^21.0.2"
},
"devDependencies": {
"@types/node": "^22.5.5",
"@biomejs/biome": "1.9.4",
"@types/node": "^22.9.1",
"@types/semver": "^7.5.8",
"@typescript-eslint/eslint-plugin": "^7.15.0",
"@typescript-eslint/parser": "^7.18.0",
"@vercel/ncc": "^0.38.1",
"eslint": "^8.57.0",
"eslint-plugin-github": "^5.0.2",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-jest": "^28.8.3",
"eslint-plugin-prettier": "^5.2.1",
"@vercel/ncc": "^0.38.3",
"jest": "^29.7.0",
"js-yaml": "^4.1.0",
"prettier": "^3.3.3",
"ts-jest": "^29.2.5",
"typescript": "^5.6.2"
"typescript": "^5.6.3"
}
}

View File

@@ -1,5 +1,4 @@
import * as cache from "@actions/cache";
import * as glob from "@actions/glob";
import * as core from "@actions/core";
import {
cacheDependencyGlob,
@@ -7,6 +6,7 @@ import {
cacheSuffix,
} from "../utils/inputs";
import { getArch, getPlatform } from "../utils/platforms";
import { hashFiles } from "../hash/hash-files";
export const STATE_CACHE_KEY = "cache-key";
export const STATE_CACHE_MATCHED_KEY = "cache-matched-key";
@@ -39,15 +39,10 @@ async function computeKeys(version: string): Promise<string> {
core.info(
`Searching files using cache dependency glob: ${cacheDependencyGlob.split("\n").join(",")}`,
);
cacheDependencyPathHash += await glob.hashFiles(
cacheDependencyGlob,
undefined,
undefined,
true,
);
cacheDependencyPathHash += await hashFiles(cacheDependencyGlob, true);
if (cacheDependencyPathHash === "-") {
throw new Error(
`No file in ${process.cwd()} matched to [${cacheDependencyGlob.split("\n").join(",")}], make sure you have checked out the target repository`,
`No file matched to [${cacheDependencyGlob.split("\n").join(",")}], make sure you have checked out the target repository`,
);
}
} else {

View File

@@ -1,9 +1,9 @@
import * as fs from "fs";
import * as crypto from "crypto";
import * as fs from "node:fs";
import * as crypto from "node:crypto";
import * as core from "@actions/core";
import { KNOWN_CHECKSUMS } from "./known-checksums";
import { Architecture, Platform } from "../../utils/platforms";
import type { Architecture, Platform } from "../../utils/platforms";
export async function validateChecksum(
checkSum: string | undefined,
@@ -12,11 +12,11 @@ export async function validateChecksum(
platform: Platform,
version: string,
): Promise<void> {
let isValid = true;
let isValid: boolean | undefined = undefined;
if (checkSum !== undefined && checkSum !== "") {
isValid = await validateFileCheckSum(downloadPath, checkSum);
} else {
core.debug(`Checksum not provided. Checking known checksums.`);
core.debug("Checksum not provided. Checking known checksums.");
const key = `${arch}-${platform}-${version}`;
if (key in KNOWN_CHECKSUMS) {
const knownChecksum = KNOWN_CHECKSUMS[`${arch}-${platform}-${version}`];
@@ -27,10 +27,12 @@ export async function validateChecksum(
}
}
if (!isValid) {
if (isValid === false) {
throw new Error(`Checksum for ${downloadPath} did not match ${checkSum}.`);
}
core.debug(`Checksum for ${downloadPath} is valid.`);
if (isValid === true) {
core.debug(`Checksum for ${downloadPath} is valid.`);
}
}
async function validateFileCheckSum(

View File

@@ -1,5 +1,905 @@
// AUTOGENERATED_DO_NOT_EDIT
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
"undefined-0.5.4":
"10c2c0f34d520fa39cde9e9941c23facc01682c44621b407c3bca0d685d1e0bf",
"aarch64-apple-darwin-0.5.4":
"f924d82255a0b25fd04a78c7012f90300cdadfb72ca0af4508f3eeaf9509010f",
"aarch64-unknown-linux-gnu-0.5.4":
"7a1d505fa5c8425b0391398a49efc747836fcfbb7df82d1cc5b2a048c5d79ccb",
"aarch64-unknown-linux-musl-0.5.4":
"3efc0e33d6f6f2c9e6b6567c713f4a02bf21339ca850465983997fd18fbc1bf8",
"arm-unknown-linux-musleabihf-0.5.4":
"6033792a905d9fd4159a7e932a65a730920c2b7d706bd7ee24cf67db5ee0b0b2",
"armv7-unknown-linux-gnueabihf-0.5.4":
"f650b2c618c77a535e32d9594ac07f60019f338bb9c244d13f75579851d9b8e7",
"armv7-unknown-linux-musleabihf-0.5.4":
"55267162c22bd10ac1f6a45e6417be776eb7b3246403eb302c508f2311b37f24",
"i686-pc-windows-msvc-0.5.4":
"357ecb0b64de0e0c4ddb9d30818d8569a1b524df115aed181ade34f96cde9dfd",
"i686-unknown-linux-gnu-0.5.4":
"07cd53252ac1a95e5639cd5bc40b09236ac6d314f26d3de83df44a581c357ed9",
"i686-unknown-linux-musl-0.5.4":
"5489b2207e2a6d44a9553bccb3eb93e87c92092abeee489799b5d412aa5d36ec",
"powerpc64-unknown-linux-gnu-0.5.4":
"1c5b0edc2e1c5195e110fc5c11c6e0b7d7e043264e9c6e18bbff114b4dae34da",
"powerpc64le-unknown-linux-gnu-0.5.4":
"99f357c6461ff687e13bd28f20d2115166a0d9de0f54c80eea2605cb30b03e19",
"powerpc64le-unknown-linux-musl-0.5.4":
"e9f5c4c25a3aea450c93b23fb0d09d69cd9355150cae965ae01be4fc799f4a90",
"s390x-unknown-linux-gnu-0.5.4":
"4a93135b8b1336fb6877da2b5426b4b42b4e0e2b8a23275d853fea0876e66c0d",
"x86_64-apple-darwin-0.5.4":
"f879864954b2229611155bb201088d0f09becf1436b0ec8707c8f560e98e9209",
"x86_64-pc-windows-msvc-0.5.4":
"db68a1850f156c89b82ecec359d09ba298fb1ce2a35dabc5072de458b175d8fb",
"x86_64-unknown-linux-gnu-0.5.4":
"c5b63d1cd0a894246195250c034f9d82d646dc8f718f1f424cec2bb1a42e7b17",
"x86_64-unknown-linux-musl-0.5.4":
"054016bcb6c7171feccd4234738d65727e67d39eddb500146edc779845b8846f",
"undefined-0.5.3":
"ee4a3027f0ddff52c89df8d37cba54b6c40cd320d6fdb6ef033c7f11a6918f56",
"aarch64-apple-darwin-0.5.3":
"634a7bd1250ab42a1b185789ceb733b7a186791eb78f995ecee283758abe44f6",
"aarch64-unknown-linux-gnu-0.5.3":
"bebf7c00cad982137346ed30b31d0d2de2868d5925f98fcdb950380b27cdee8f",
"aarch64-unknown-linux-musl-0.5.3":
"8a348779ea5b5698827ab0787dce9a9e6a16b7ac69beb9a7cb244e6aad8a8f1b",
"arm-unknown-linux-musleabihf-0.5.3":
"79ad77f1260fb6147c4f7ba6292c62b667e64e6e139343a1aaf0e75868ebf208",
"armv7-unknown-linux-gnueabihf-0.5.3":
"750037a75d9333365051afb0801a236bc07f7bbf28976abb1b0d77fb0dd7ccd7",
"armv7-unknown-linux-musleabihf-0.5.3":
"e143cbc82ed16fa19d92a9ef3117aee27f043f784d55f909f9796edb2887ab35",
"i686-pc-windows-msvc-0.5.3":
"fc10c2d9660893f0e8409742ac4af3767f04564b0be016dfd2088fe86c1427c7",
"i686-unknown-linux-gnu-0.5.3":
"5a9f5d61ce8906589b8bd399710f659dcabf2f52504533dc9c9a14d125492a5a",
"i686-unknown-linux-musl-0.5.3":
"517182e5cfc84fe9d7bfe5bd2d49ea9aff9ffa5ab279ae744dc796771118e594",
"powerpc64-unknown-linux-gnu-0.5.3":
"c21e205404b9613b9cfcd82cb84222dc71d4f4534bef822c7306b44847ff7842",
"powerpc64le-unknown-linux-gnu-0.5.3":
"b68f0f2a1a3a90808fbf0f82d09ad50857b430eaa7b086982824af040f13bda8",
"powerpc64le-unknown-linux-musl-0.5.3":
"c2621d3b9db558147c3290a15c1968d016a236147c122a2540eff7c5970883f7",
"s390x-unknown-linux-gnu-0.5.3":
"f18ce59914e4d4a8e51e4fd13b6f0f2c57eb6d529abbb7d90c355bb0fb867dc8",
"x86_64-apple-darwin-0.5.3":
"f4b4f2b24b8f91704a4d821ac0ca4262de3d64bb15c3090cab549834bdf77753",
"x86_64-pc-windows-msvc-0.5.3":
"146e5d6305b6f3c1a4d87d344bee80c2aea5439f9a540365e940b1b54caa20c2",
"x86_64-unknown-linux-gnu-0.5.3":
"ba8828266c79c299ca24a1d9f2f78172667254d0f8ff07e24e1735d50c03d9b7",
"x86_64-unknown-linux-musl-0.5.3":
"73b06fce21772d1c279d33bf53fa2f69c1ed9f929b5b06b14405bbf7244394fc",
"undefined-0.5.2":
"60465d87552cd6febfdee8c58176d699e00d5549f2d35db3261ec5a113996099",
"aarch64-apple-darwin-0.5.2":
"b4dc200d88ee9a8c9c3d5c755d9641fdf0e22b7d77239b4eeda08f204571f871",
"aarch64-unknown-linux-gnu-0.5.2":
"e118c53908dc5baf779319129ed93ac783796fbe0b8416db03066877f0425ee6",
"aarch64-unknown-linux-musl-0.5.2":
"4de0933b3a2dbdbf0bc17579ddda21e13d1a2cd6dfbc644e45ddab558f45e827",
"arm-unknown-linux-musleabihf-0.5.2":
"926a0f6effd0439360fef7a6726320f0a5212da2259e68046882d4f32e69e933",
"armv7-unknown-linux-gnueabihf-0.5.2":
"01e9c31b32f894b8e7b500991dfb35ed7f110d4c91ee9b2ead5f0408d8d91df5",
"armv7-unknown-linux-musleabihf-0.5.2":
"b099de4fa747ea34f3f96122906143bf48de4c1c2529348e0651c95b53a0eea4",
"i686-pc-windows-msvc-0.5.2":
"66e5934ee5f384270c39e54e5833411dca0c07f8e972d29e6c3c3e87fa53b9a8",
"i686-unknown-linux-gnu-0.5.2":
"c91111b470608555c3ed4dc140071d7b041be7fd4a3328cf5ed2ffc5b011b024",
"i686-unknown-linux-musl-0.5.2":
"ce67a80b31785268e7252521565b8aca7db8cf7d2f5b4a712a3173d919ad6e33",
"powerpc64-unknown-linux-gnu-0.5.2":
"ca6c5dd9f02dbf97b0dce1005ff299632a36a9bc28dd343f26a5ae7aaae4d778",
"powerpc64le-unknown-linux-gnu-0.5.2":
"2c60b1537b82c0c873ca0666b69452775566c4519a85efab51f47e2e3e59841a",
"powerpc64le-unknown-linux-musl-0.5.2":
"14126a436daf913c86fad68e13db002e7c92ced381a72e8f2df186c1a729a9cf",
"s390x-unknown-linux-gnu-0.5.2":
"cad1e4ad85f29fc73ec8fe79b1c0498fdea8e0071e38ecacb953633f1b553c71",
"x86_64-apple-darwin-0.5.2":
"00bf6b346cc8fcf57df7653f48fc4bad1b47c6024f75e96e32e3193e9bc8ff73",
"x86_64-pc-windows-msvc-0.5.2":
"0e97899b5c800da39730d3a612d8359ad2f346bdea540f973fa6c6ad17129a17",
"x86_64-unknown-linux-gnu-0.5.2":
"d2d9d4b9ce536ab7ebb09d33629694385a3ebb72d156ae0b4dd28c9b6f6cbd13",
"x86_64-unknown-linux-musl-0.5.2":
"61c386972ce13850cf20308de0be98a056d932e58d4154d1aec663714ac57067",
"undefined-0.5.1":
"bdb7aa8f79ea3af27b1c618901fda6a622ae67700195f4c351085fa868c0c3d5",
"aarch64-apple-darwin-0.5.1":
"240bc4dc0d424ce652746ea030e61798c07e3d22426c0e0fb46d1b408078df91",
"aarch64-unknown-linux-gnu-0.5.1":
"aab7f31071c548e3ce64de5f622494f8d8679ef838d5b07e53e74399d14ee79f",
"aarch64-unknown-linux-musl-0.5.1":
"f7b2b4dfb45d6a6c1b98ce1b40b0a3b67b72263f5f722fc8b452d340325fd169",
"arm-unknown-linux-musleabihf-0.5.1":
"0205c18b606dd9e496bd664190ab380da27cedb09a84857367431c48bec71c82",
"armv7-unknown-linux-gnueabihf-0.5.1":
"f91a59e1fbd3f913464841afd6d7a65b570b2e9255e8df0b36866a8ccbe82833",
"armv7-unknown-linux-musleabihf-0.5.1":
"6285fc7f9c3c6872c55846fe57c643e47ba8fabf3c8be825ccbbd373369dba5c",
"i686-pc-windows-msvc-0.5.1":
"7b0d716352f36730b3bdd40e1785e5e0299a2fa84929537c69f0b7ad9a1040e7",
"i686-unknown-linux-gnu-0.5.1":
"db2950f841070db17192fbba149aebfe64f4087eb6ba842974a03ee12c66fddb",
"i686-unknown-linux-musl-0.5.1":
"bac54f3c4afc0508fc91d03091dbce87efc8ab30e8d6ed2fcb7b9fc23533d040",
"powerpc64-unknown-linux-gnu-0.5.1":
"40c415fa19fbaa4fe7452bea6248a381cc509c43eb25aa77b1d207b4d201987a",
"powerpc64le-unknown-linux-gnu-0.5.1":
"1ce2764b411864597309fc331a31009dfb44abdd5ce767b83e4fa8208b9a7a9a",
"powerpc64le-unknown-linux-musl-0.5.1":
"44239fdc81cd3eaf510683009aea1728cd7f647aea8b5901fa6e17071e77cbfa",
"s390x-unknown-linux-gnu-0.5.1":
"362fbe64935721239c7e75e96ad1b313b30a2fc13b4a87470a5ff040c883bf2c",
"x86_64-apple-darwin-0.5.1":
"817c11ee1808a775290d694c28090e032076be2c97e04c3fb7d5563a2aa52041",
"x86_64-pc-windows-msvc-0.5.1":
"3dcb47a9334d7527e402eba8ba5aae3a62c77cddc3ce400f57fe2a40a621000d",
"x86_64-unknown-linux-gnu-0.5.1":
"942e29ff6769b096c7c99e9c3b1c08276869667d0d5d6121852dd9b9d875b3f3",
"x86_64-unknown-linux-musl-0.5.1":
"c446a98876ed86c810a80621a43e2378c35f39794020f8de99da72b003b17dd5",
"undefined-0.5.0":
"2a5a63a6d7ddc2413c2f31e17d841b6d9b0815825f6e72789b7b9b405f5dacf5",
"aarch64-apple-darwin-0.5.0":
"400f1e87d211af5ba4c412984b6d0e1e885cae480ee37cab58b5fabe9f9539c5",
"aarch64-unknown-linux-gnu-0.5.0":
"ae2832e4e4cc923cdc62072eb23eab784be10450d6c1f10da58a24a3d552aa46",
"aarch64-unknown-linux-musl-0.5.0":
"f49e979a2d64de50006951f15eb303524548a40c240b111acf3bf422abba7aa8",
"arm-unknown-linux-musleabihf-0.5.0":
"9d77d34abbae1e77fdeb022dffc3dc736ddb193e2fd5e99068d16ebd0583b7ef",
"armv7-unknown-linux-gnueabihf-0.5.0":
"e18fd84a30b89da3d850c003381b7946ac9a2c10e097206883c6f3d041a8b4ab",
"armv7-unknown-linux-musleabihf-0.5.0":
"e1ccf1342253f5124442981b1fd01e8715a6ae20932370b8ebb4ddae06dd0003",
"i686-pc-windows-msvc-0.5.0":
"288a13a986ac78c6f6a8b303b537e5eafc0501aab77249b2724484fa6ffae21f",
"i686-unknown-linux-gnu-0.5.0":
"2edca509d6a57d07ad4b755cd992e4733531954374b7220c5795fcdef267af71",
"i686-unknown-linux-musl-0.5.0":
"509a326cff65ca2fcf467b117ecb30c689b98ed35f79542fd358b44958fd7aa3",
"powerpc64-unknown-linux-gnu-0.5.0":
"be94c615d8767f174beaf354fdb3fa3374bddb4ff88b8c157ce3c9e648ce4f95",
"powerpc64le-unknown-linux-gnu-0.5.0":
"04c5883f4f4f1bcdfee452db51e97e00a2fbdc5abfd20a080aede481e7478743",
"powerpc64le-unknown-linux-musl-0.5.0":
"4d8b6b581344d4ebd3fa3cb7c144e62be6671c62eca6f1dee8e799f0daf23707",
"s390x-unknown-linux-gnu-0.5.0":
"68bb232360d081407674f740460071c6c34567dda0ff1782eb352ff7ca437b8f",
"x86_64-apple-darwin-0.5.0":
"e0b64fb827ad2d93e0bf5fc508c38a9c6cdd295949f66efee92448c89a786913",
"x86_64-pc-windows-msvc-0.5.0":
"47ce6713934f9c692a2051551e04cc9d63ee2e418f4179dd3ec8545b5cc22cb3",
"x86_64-unknown-linux-gnu-0.5.0":
"e8f8c7e55ef2dfb0b57faba265faeb5049e30b9065a38e2a4fef89d6f6a492d0",
"x86_64-unknown-linux-musl-0.5.0":
"a82a2e9c0cf4af58aa1f8d4a6f910c2d36abd38dd6d3315a6e11e7176c872a8d",
"undefined-0.4.30":
"f077365676f0ed0e2275bd55015ad32f381a9d8684559ce9ee4d0e3c84906a0a",
"aarch64-apple-darwin-0.4.30":
"5fb068be1d0c77d0829a0a611a470f74318f114c4dc8671cfaf1e606ab81e40a",
"aarch64-unknown-linux-gnu-0.4.30":
"1beafc7773f20dc89154a338d5d4cfda98a8004d40249fe040806c5780ecb33f",
"aarch64-unknown-linux-musl-0.4.30":
"c6b267c78d4dd2dc90853b4dd265d9508de2b454b20ef03bd242848d5994df9c",
"arm-unknown-linux-musleabihf-0.4.30":
"1a7f220167a49128b3dce0b96b3f71ec5c8b9eb4f85c9b520f0d849c0c55f348",
"armv7-unknown-linux-gnueabihf-0.4.30":
"18f4fcdc86a9c1cb6cf65aed94ac72e9cc9486b0aa4266dec75e332d65f14cdb",
"armv7-unknown-linux-musleabihf-0.4.30":
"589a642bf0d9c9ef98a3cabb67fe87a899ada28bb576a8d3d825d4088e74848b",
"i686-pc-windows-msvc-0.4.30":
"c809f327b9347e95d5743ff65538d31fff2ca2bd7a1504d3abe19641d66256bc",
"i686-unknown-linux-gnu-0.4.30":
"66b3193e64a97249f24b8f743957a65c8e28ffcb951d048e37067d4003604568",
"i686-unknown-linux-musl-0.4.30":
"550e5643bf396bcc6f5ef44bee1da0e8ac934fccbc4bb5c9d0a4642c55b15c5a",
"powerpc64-unknown-linux-gnu-0.4.30":
"134fa292c8a51520b9c5cc25a486d5420a2b902b40a27c172844bb1ae741b468",
"powerpc64le-unknown-linux-gnu-0.4.30":
"92e9e1c766108be851fbf7a6fb9e6152d98582d7cb32c1501ee088f524514815",
"powerpc64le-unknown-linux-musl-0.4.30":
"4f5c6b7eeabd81bf9a12cb4d709d9ababa89ab2ac2e53c765de50dce342b6f06",
"s390x-unknown-linux-gnu-0.4.30":
"b894d5f74d7b250805b12d0d241528023c611bc6331303ce4581c1518ba00cc9",
"x86_64-apple-darwin-0.4.30":
"a56b550c08e3315bfa450c134410bbe91318ae2f39a0ce2649b882a76cd9b601",
"x86_64-pc-windows-msvc-0.4.30":
"0a2315679441bb3f861b814fd3900a3f2bbf05d7f77eb43612371f9710f1feb4",
"x86_64-unknown-linux-gnu-0.4.30":
"5637be5d163ccdcb9f0fe625890d84bbc3596810320be1f56b53bb111edb5dd7",
"x86_64-unknown-linux-musl-0.4.30":
"f01c55c20eb356bfb7316020ec79d18ac2846ce2dd5bc68ef68858810ccac7c5",
"undefined-0.4.29":
"259a292505fe1dbb59de3018b44a0627880365d2076e53ab910536fe224dd7b7",
"aarch64-apple-darwin-0.4.29":
"0679dd093e97c1d8996caee91ce5aed76533f023fef639b281b2479574d22338",
"aarch64-unknown-linux-gnu-0.4.29":
"985f7909af497dce312fe57c6f34d8e7a213445ebb219dd002bc4f0b60261b2a",
"aarch64-unknown-linux-musl-0.4.29":
"5c052a5ffcfe3e9ebf42bd0af57c1be76842cee3aaec74c0c87d57882b53eb1e",
"arm-unknown-linux-musleabihf-0.4.29":
"39aa63a330bd6eb458965fed2dff31511c75ff3c9da17640f30742a7d698529d",
"armv7-unknown-linux-gnueabihf-0.4.29":
"4c515eab94b3c008ce4cbfb082f3f804827793495ab4d72b5643bfdfe582ce52",
"armv7-unknown-linux-musleabihf-0.4.29":
"28f0aef0e5b667c9e131345215915dde3e95e73f6c9c7fc06efd2df6efdf92e2",
"i686-pc-windows-msvc-0.4.29":
"3d22457614bd80280d385166da1e38e4e046610730be5e1a74e053b7ffc4a1ab",
"i686-unknown-linux-gnu-0.4.29":
"660736950f58bfbe2c2ed2427c93d54dd733f002dd6057e174ab906cb6d51488",
"i686-unknown-linux-musl-0.4.29":
"c4d398316eaaa0d9a024370d8e4694fbca4c8afb5d86911b612a823d1a2bdf08",
"powerpc64-unknown-linux-gnu-0.4.29":
"f256106ee2a69ac3b632e65f8d240b6f01f1150c98c343386d3729eaa580a7c0",
"powerpc64le-unknown-linux-gnu-0.4.29":
"a81f1c190562b372f081b630be7b459e66a151b1a18c09bfb1a1944b3a560cc1",
"powerpc64le-unknown-linux-musl-0.4.29":
"3fcfe1b5d0e6b4e81d852d0d60adcafe1e8c49f03e14cd9bec8607cef198fd80",
"s390x-unknown-linux-gnu-0.4.29":
"d55dc29f3b071cbb873a099144be6e498bf6961e5acf0d6f75e18791667574a4",
"x86_64-apple-darwin-0.4.29":
"3c0336e162707938b6b37d516522607128045f9cdd8443b5ff6434df4c66c97e",
"x86_64-pc-windows-msvc-0.4.29":
"5b7c6d0ee94a6b389fa289d09642352793dc972701a6ad50a73a02431f392e17",
"x86_64-unknown-linux-gnu-0.4.29":
"c755b97c0c555eb449538b6d8c7cc5555a5668f08ff23a300eb874277fa58668",
"x86_64-unknown-linux-musl-0.4.29":
"3b4030b5f4c0a57c5f2691db47c29c8e14d3712ea81dae0c7fdae0034ae1f353",
"undefined-0.4.28":
"cf9d32e161ada0695823066037e3ec3eae49ace36ddcf38020be06891b6c714a",
"aarch64-apple-darwin-0.4.28":
"ac75193926e6295ee0b8715296054b48b758f63fcf3732d8538c69140b9793f4",
"aarch64-unknown-linux-gnu-0.4.28":
"d7dcda636da601a9f5578e5448eb6de00f56a06e37bdb05d6669f91ed7191555",
"aarch64-unknown-linux-musl-0.4.28":
"a18f1d1a356bfa0b20b0218f5d83a05da38380b087ffe56ab82adbeb9ab5c1f1",
"arm-unknown-linux-musleabihf-0.4.28":
"2742349f37c96b0bbfecc6c4c240c17cfbbe247470cb2b3e2c18af05ccd4e795",
"armv7-unknown-linux-gnueabihf-0.4.28":
"2df2aced6e8fb601bfd0f0a17bc82c5d35d0117a9df8ef14ddef6693b8c38d48",
"armv7-unknown-linux-musleabihf-0.4.28":
"94c3960e02899e839d3fed43de61208281e3b81b72c4934172b369ef647660ee",
"i686-pc-windows-msvc-0.4.28":
"118bbc97bd416b63b0d49ed20f198ac3801bcd177598fa431f87fa30aac5c8b0",
"i686-unknown-linux-gnu-0.4.28":
"5bc1598815cc261b01d107252b653617b4e2601f5c27780cbfc2d8caaa26001a",
"i686-unknown-linux-musl-0.4.28":
"e80d6481943123fcc29f86dcdd723a3a3680dc0c3420010823016f1f7b572b0b",
"powerpc64-unknown-linux-gnu-0.4.28":
"91a7b40a678119451250126816b773dc73f3f54c8339e5693f28087214f2d3b0",
"powerpc64le-unknown-linux-gnu-0.4.28":
"b041d98ca978c09e4d957b9a55d997b63d8b9c97675b32c88e7973187aa9da7a",
"powerpc64le-unknown-linux-musl-0.4.28":
"7ad21951e1cdf66a9ca2402aaee294e0d62922b01049bc48132373c1d9500176",
"s390x-unknown-linux-gnu-0.4.28":
"b46121ac837af41fbeba0a1caabd62413a33a6f638a4650b3123385e92580d5f",
"x86_64-apple-darwin-0.4.28":
"445e3f3ef48725bfd838f7ce3163cd7757797186ea2c89f6d374e6fffe24cc8b",
"x86_64-pc-windows-msvc-0.4.28":
"8341760e108c8584c5d3ce4ff45d174cbb5f9ba5adf1a97c50af14f47f3b7699",
"x86_64-unknown-linux-gnu-0.4.28":
"fa0183aa09a410bec74c70f4e750ab6f9e91c152a452da4a06692938a3d5556d",
"x86_64-unknown-linux-musl-0.4.28":
"6c0317109500cd38cb27dfe1e8d0fad032caaab1afaa1062a7a9480606da6cac",
"undefined-0.4.27":
"6ebf2732b3c4af6c0d433258cd938c40193602ddccf4996a757e2d5392a6b22b",
"aarch64-apple-darwin-0.4.27":
"f2424efb16c5e646901a8c09b604e3cec3adfa871481c401947a4ae8476ae02f",
"aarch64-unknown-linux-gnu-0.4.27":
"474ec2797950ccb0ed7a7300a20d9b84e0af71cac48d24ed8dacb0ab3e8ffd73",
"aarch64-unknown-linux-musl-0.4.27":
"31a6aaa90b9948c1b738a0e30ae80f1e0d69938a7e76f5ef7d755d619547e7d8",
"arm-unknown-linux-musleabihf-0.4.27":
"7e2ad3c1a30580ec6e7065ac12737b8a078c81d30de54b24717ecfc6caa7b364",
"armv7-unknown-linux-gnueabihf-0.4.27":
"8b5b195913bfbcfe0cdfc013d6a3e073afbde347b68261c66d4fbb182ab5b073",
"armv7-unknown-linux-musleabihf-0.4.27":
"70bb9bc564fc88a4b76b55c6ec9c8e3e6a3f7cdcbb05affd93bed5e9bc26f71a",
"i686-pc-windows-msvc-0.4.27":
"5dd59d011bf19968628a25a76ff7e7d0ff5ed0b43ba1c6bc0e2ce960802048bf",
"i686-unknown-linux-gnu-0.4.27":
"23fd57db751b7e919ba72c0c38566ddab808447b74ab582cd80580733c781f65",
"i686-unknown-linux-musl-0.4.27":
"f21a27146c88107597440d79f3cc9c5d40a049b2e8241f11cdeafd0f74b91d70",
"powerpc64-unknown-linux-gnu-0.4.27":
"ed16a3983285267abe92309219694cf06f8711d217f9aa609638d756201a442a",
"powerpc64le-unknown-linux-gnu-0.4.27":
"ec0f343b330d380dca7808be3262d55c5559fdbc09abafcafc9ab2396fb108a3",
"powerpc64le-unknown-linux-musl-0.4.27":
"7fd1b021b807e255c7742e8a0b0ac6738742a6faedee16229f9cac6a27f3283d",
"s390x-unknown-linux-gnu-0.4.27":
"d6ec2c48705f0e3eb319cafcd3fe7265f7ad831a4ce9f75ccec2f45f2ee18cda",
"x86_64-apple-darwin-0.4.27":
"607810910c630333a6dca3e75257bc69ccaf0531febde41c00c7e7ac2b173d3d",
"x86_64-pc-windows-msvc-0.4.27":
"6ad21f2d42ff61740666133de00b6195bcb806780d08d7734d1ba1adad940700",
"x86_64-unknown-linux-gnu-0.4.27":
"5565ad9d050a08fef2951d28aef1372ccfe39ccd41dec6fea13167589baae087",
"x86_64-unknown-linux-musl-0.4.27":
"6b8233d4890b28575f3636f974d906089b9c4a6e9903ddfea257a2f16f3ca28a",
"undefined-0.4.26":
"5b36575a355193cb3dd3461e477ad7bfddf12d67d941f805caa4aaff52157491",
"aarch64-apple-darwin-0.4.26":
"42cdc5e7adad5348c8763ec3d57ef7972a25c034121d13424614b83849585303",
"aarch64-unknown-linux-gnu-0.4.26":
"3f4bd759d3c089b6db87b278642aac1a681ef22a0d413dc3d6da7afb0606649b",
"aarch64-unknown-linux-musl-0.4.26":
"8ce7ac4d93cf145b9d67642cb54f2311142fad62a59fadb7ca36ad68a3108f98",
"arm-unknown-linux-musleabihf-0.4.26":
"5fd4cf5be34a90eccfe0c86137a06be77b9e6355fbcd7581aa9a69c6de275568",
"armv7-unknown-linux-gnueabihf-0.4.26":
"e680cd84efd4f2b7ced6ff566afa8ab88e38c3bf33d66989f6ff905ff9cb1abf",
"armv7-unknown-linux-musleabihf-0.4.26":
"4decb4481b10fcf862ddbfb03f3dbf270652180086eb6dc40e36684f592daa49",
"i686-pc-windows-msvc-0.4.26":
"bd3599762172f1d321be22f1f788cf2a6b981123f53bc7aa5336901e31e9a9bd",
"i686-unknown-linux-gnu-0.4.26":
"4db90f578dffb5cd0017c5d4e77f01756961fccb1144e1770efea740af771532",
"i686-unknown-linux-musl-0.4.26":
"8b3a73585b3d7a868190f44373be62c38c05877e1636d467b68850a0b98a0930",
"powerpc64-unknown-linux-gnu-0.4.26":
"47d14be9be1c5b63518a3170acb9191bf4a8a39f4ee98e54c666b9384fe7a781",
"powerpc64le-unknown-linux-gnu-0.4.26":
"c65b94d17c4f06ca8d2d443851e9eff00a428a2dc147925fd5de1654fd1a9620",
"powerpc64le-unknown-linux-musl-0.4.26":
"220979e1f842263e00039d44a7f774f0d798a9ecd8e1a75187c8db192ea67b3d",
"s390x-unknown-linux-gnu-0.4.26":
"22bd9d010316bc78a0a2f5bf5c726dbac8c84df5856fa745621aaf1691d7a2fd",
"x86_64-apple-darwin-0.4.26":
"b424403d93939fa025b3f1dcc34f23b0676ad48d3c33c9486a4e55d095b8ad07",
"x86_64-pc-windows-msvc-0.4.26":
"1dfb521253945f381279d21b7c3f4e6539100a7fefdcd0bc7080668237575cd3",
"x86_64-unknown-linux-gnu-0.4.26":
"6fab73c9e2ea841852bc3c7157c1e49470ba62d1cde4af401436f13468b8d709",
"x86_64-unknown-linux-musl-0.4.26":
"c9dfe6a38354a85b3c4c4718703c23682c8cd7f5ad2e592458cb081b970f4c02",
"undefined-0.4.25":
"b3c707e3b7a21acb8e949dd7a0db524623df8beae7bca86708ecd5799f01a28c",
"aarch64-apple-darwin-0.4.25":
"bb2ff4348114ef220ca52e44d5086640c4a1a18f797a5f1ab6f8559fc37b1230",
"aarch64-unknown-linux-gnu-0.4.25":
"4485852eb8013530c4275cd222c0056ce123f92742321f012610f1b241463f39",
"aarch64-unknown-linux-musl-0.4.25":
"d08a7a8adfa7f1e7e6d427b9ab38b071a50dcf63a11b3cbfaaad9b8e68e69df6",
"arm-unknown-linux-musleabihf-0.4.25":
"31255c91483407ab20000a7e46d702aa1c83c886a7639aac1583d3b5ab77b563",
"armv7-unknown-linux-gnueabihf-0.4.25":
"789f18e18b0623e34dfdf9f1cf340d7c432eea575c00f87c0ed2a1004a4ca386",
"armv7-unknown-linux-musleabihf-0.4.25":
"09b8fc32bfbf8bd53251f46a6896f17e86ddb61ef96ee8249a541a73cc8742aa",
"i686-pc-windows-msvc-0.4.25":
"328e36c4a3e262e27f714d580d7f9e8eb9bfe66ed8c65cf9aaf63a6d44d3fa16",
"i686-unknown-linux-gnu-0.4.25":
"496bc5ba76a1d7fcb6fee2f3520333acb7fab6153f54059426e69d0f98db6bae",
"i686-unknown-linux-musl-0.4.25":
"e99caee76fa1e73fd335c164fbfd3bc3a5fcf1dace8a7c846b3707e6ede5222b",
"powerpc64-unknown-linux-gnu-0.4.25":
"b7a1aadea6eb9aa225404d4f9ee79982304864668a6ed4c9dbaed236fad55032",
"powerpc64le-unknown-linux-gnu-0.4.25":
"32421c61e8d497243171b28c7efd74f039251256ae9e57ce4a457fdd7d045e24",
"powerpc64le-unknown-linux-musl-0.4.25":
"57effa74e70011be0579a2d8e0590c636d43f4758c18e52b02c287f677c87be9",
"s390x-unknown-linux-gnu-0.4.25":
"9afa342d87256f5178a592d3eeb44ece8a93e9359db37e31be1b092226338469",
"x86_64-apple-darwin-0.4.25":
"f0ec1f79f4791294382bff242691c6502e95853acef080ae3f7c367a8e1beb6f",
"x86_64-pc-windows-msvc-0.4.25":
"c5c7fa084ae4e8ac9e3b0b6c4c7b61e9355eb0c86801c4c7728c0cb142701f38",
"x86_64-unknown-linux-gnu-0.4.25":
"6cb6eaf711cd7ce5fb1efaa539c5906374c762af547707a2041c9f6fd207769a",
"x86_64-unknown-linux-musl-0.4.25":
"2e19246cb4ac903b9bbe9b52b09de673885785dfe64e5faa818ac13c1e5dfa21",
"undefined-0.4.24":
"917be4e4e96ef555e2c739e3b91eac21b7df6f1b45d80e25fe4e50d1249d6846",
"aarch64-apple-darwin-0.4.24":
"69dbd88647d260dac051db11004f1e6438d1296da23cfec084a5ef9100e46c4b",
"aarch64-unknown-linux-gnu-0.4.24":
"6b2fc7cf361ee7075ddec6d2ba1d724fce887d2fd38014314357821fb52897cc",
"aarch64-unknown-linux-musl-0.4.24":
"887e1aa6e6b616894e273fe543879f4d1f117519275a1c224a3ef03499c54445",
"arm-unknown-linux-musleabihf-0.4.24":
"d43e56087c97b2f2c4bb58926f8c1092a6c653065b4644e21b2ae2b21811b3bf",
"armv7-unknown-linux-gnueabihf-0.4.24":
"7b41b20a13307100c88688e60048bfb5216e0967e884d9fbd3fb22d68d56a085",
"armv7-unknown-linux-musleabihf-0.4.24":
"d1ab37d51e333dac1191e1e7d5359d8405f5b2b05d257b2d5e4dc9dfa618d77a",
"i686-pc-windows-msvc-0.4.24":
"a2a05cecc1252a356528f912688e84fca768eead930082fafba39b1488115b09",
"i686-unknown-linux-gnu-0.4.24":
"0471c00736fd1d101b8d8fc3a73128833ad712e5cc113f3e955ebb79fde4d572",
"i686-unknown-linux-musl-0.4.24":
"735249b972407ea5a714863f1638e3d374b9a8270f1a81a5b1db5e1d59565a4e",
"powerpc64-unknown-linux-gnu-0.4.24":
"51e8aff9c901d57628d565a498c06df1baeec16e6efc0eb7b1cfc73809fcb564",
"powerpc64le-unknown-linux-gnu-0.4.24":
"c2e87f03900f7a386b2e5a541979943295cd44aa9e397854aa295b59a738172c",
"powerpc64le-unknown-linux-musl-0.4.24":
"9d29dfb1b7240fb1672f710cbbc30f59f2fdf52f764fac80bda00c2df7f6b92b",
"s390x-unknown-linux-gnu-0.4.24":
"fccc7c481c33f8f252fcdfaebde8313a6d7881d89e0af6b946b580097f800073",
"x86_64-apple-darwin-0.4.24":
"5cfe28aae1472d3e3dde8323d9351e53425bf56ade838318487b76cb97785684",
"x86_64-pc-windows-msvc-0.4.24":
"a990d2f067c7922493921662e403e9961733d159deb6393f05bf59fdd9e0b0cf",
"x86_64-unknown-linux-gnu-0.4.24":
"06bc8c7de34cedb1dcb6a32a2462b09f92984ceb9d6aec9035424c8fe30ca510",
"x86_64-unknown-linux-musl-0.4.24":
"1d06fbda8f87232acd7b315c1202925e44627821901c49d0920e9bbec34b09b8",
"undefined-0.4.23":
"f9ed8ea5f138e98a8c018112ca59ab82a2983a17738c9d3df577d975f22382a9",
"aarch64-apple-darwin-0.4.23":
"be5cdbdcba170a989f9be991d89277eb42eb3fdf9c020fa4d3ac4d3d292a74e8",
"aarch64-unknown-linux-gnu-0.4.23":
"8139b22b648085c1a89cb56aff05c7c081c544868f323bbd574c41423cc170da",
"aarch64-unknown-linux-musl-0.4.23":
"d35c4849fa12755749450593852859276c52f21a8e9d7457bf058bd84a1263dc",
"arm-unknown-linux-musleabihf-0.4.23":
"9ef3d377a543aa2c5ec4bed4c25327610852af09d9969cc65f2da337632d13d6",
"armv7-unknown-linux-gnueabihf-0.4.23":
"c01cbc3432500394f6c4709879011b499087d3cb37effd162cfca3d6250b72c2",
"armv7-unknown-linux-musleabihf-0.4.23":
"0d4c8eca6b22d062cdf761320d83835508f2504f352ab467e0e3a372d711e3e5",
"i686-pc-windows-msvc-0.4.23":
"640c5c5d23c0ce629a2f68fb1b6de447bcb35388dc9885a998b040b4c34327dd",
"i686-unknown-linux-gnu-0.4.23":
"5c30e7cd12fc1d3ea224a7aa3818cf614c809bb895bcb09e515ecee1bd1c3ee2",
"i686-unknown-linux-musl-0.4.23":
"2ba9a7fcc2a5b9521107dc3614d8cfbd526f195fbe5fb4749ce2ffd938e0fd77",
"powerpc64-unknown-linux-gnu-0.4.23":
"6ccb7bd0a45d6a4cab1ef58172df499676fbbdbca73c2bb1a6d8c3554507a8b9",
"powerpc64le-unknown-linux-gnu-0.4.23":
"c43e004c7cb8b1db4eeb7f751d811e11c9b799c31e2beef239342c5b007e3e2e",
"powerpc64le-unknown-linux-musl-0.4.23":
"fab6d53a945bfd03e738a636f5f2e323c0eeaee12d3c4c8b455e3d95e458a24f",
"s390x-unknown-linux-gnu-0.4.23":
"cd6461ece4c0627890a4f71487dcd538706fc5535c636eaa7cb6908752839d10",
"x86_64-apple-darwin-0.4.23":
"48679f4185aee4f844515a93e22ed9a9dfc9c18356ecd7547d2ddddbb446bce5",
"x86_64-pc-windows-msvc-0.4.23":
"906b19adc9cd7c47e6bd50e5f68e2e64ebc7abaeee90e44e97e560d9bc01a677",
"x86_64-unknown-linux-gnu-0.4.23":
"337d693e4700d7b963ee35ecf12572d2d7f97507bbc151a671eee12e91fcc994",
"x86_64-unknown-linux-musl-0.4.23":
"4545997b54bf405f5dcb2379b4b3c0e1d0bb930e198733f7b8325598a8e95cbf",
"undefined-0.4.22":
"1d72ea82b337c767e2ba5c3ffa11cfccdca99321ab1dca3d4c035f8d52d7ad47",
"aarch64-apple-darwin-0.4.22":
"a58779b2009926745cabbe075ab16824dec53e1ff635a47a43115f6b95fda607",
"aarch64-unknown-linux-gnu-0.4.22":
"bf0f5249da890474c216856e8e4de2a24c33b8a8cc3b5df058f10a38c6f5b234",
"aarch64-unknown-linux-musl-0.4.22":
"4951dd9e5b5fda712db5f30bb76fad4701a85cd8e6dab61d7a78acf040f4c211",
"arm-unknown-linux-musleabihf-0.4.22":
"78de0183e9e7ca4f37a3ab8bed199b07273f010eba95e4e80af07b7717be2f14",
"armv7-unknown-linux-gnueabihf-0.4.22":
"09cb6ed3e3d3ea4ecd7c51a784cdbde920b7bb749cf91589866ecc914910a677",
"armv7-unknown-linux-musleabihf-0.4.22":
"5707dee00cb3b998ca8fe085fd90e19e8e5cf845840a04bebe7636eb75b636c6",
"i686-pc-windows-msvc-0.4.22":
"818250c85496f54f6b703ced9a8e78ac518fb9137eba657e60bfff4a27b28574",
"i686-unknown-linux-gnu-0.4.22":
"57e9465238723814f5f5f78c164bc3f80d7741fc96d3bfcc89b11ccd89cfedec",
"i686-unknown-linux-musl-0.4.22":
"15e2f00e96a12ff5554b86be6a549335d9b1ec8599984daa582c269b2b18ba9e",
"powerpc64-unknown-linux-gnu-0.4.22":
"e9308e5e2e856a28c3080792d93ff8528130ecf327719a19651f8da130779800",
"powerpc64le-unknown-linux-gnu-0.4.22":
"61ff11a99f31036883ce6d1185b7cb3e49b7d37ab79764fecbb7cb11749b01e1",
"powerpc64le-unknown-linux-musl-0.4.22":
"d8f3c7e3a4348816eac7208d40ad4c560f1739b3a34f274b1e50ba7f7f4668ee",
"s390x-unknown-linux-gnu-0.4.22":
"26d737cfafdde8f2a3588915cf2ec4f2a448f03b83f7f15b6f561820a3ecefd2",
"x86_64-apple-darwin-0.4.22":
"90185ec1b8d67cd15e6342a9c82dd404381f42f37ab9721abcfa028034441fc0",
"x86_64-pc-windows-msvc-0.4.22":
"709ab9ccf3958131ad2fac4590ebf005f9dbffb43d801d489492b654f321e49f",
"x86_64-unknown-linux-gnu-0.4.22":
"11c3b92be7b0a72d1b3fe0140485a55ab581ea11e5f61baf9975a89c6d70018f",
"x86_64-unknown-linux-musl-0.4.22":
"4e89a6a01caab6eec0490c8dc47079aaac086ad1723e00ba2b6f2536d8ffd561",
"undefined-0.4.21":
"045d90f82f97e136d29439b20cb0bc910e312e77a2e674350a321fe7a0474ccb",
"aarch64-apple-darwin-0.4.21":
"a7e40398954d45c58573bfd79eb2cb4c329552d50101b519c3477ef525ffa8bb",
"aarch64-unknown-linux-gnu-0.4.21":
"52db7b44b57d904ae336610c5c857087a80cd4ad8e7d30784ca06ce70dc5061e",
"aarch64-unknown-linux-musl-0.4.21":
"1a0f764fbed8b76b7aaf8d866844bca62645b8aaf257d89ef332f4ec17a0dfff",
"arm-unknown-linux-musleabihf-0.4.21":
"b0b0caf931b94e740c68de80ad0c9310fb85e06d0268ed2ffd6ef0a7c5afa836",
"armv7-unknown-linux-gnueabihf-0.4.21":
"2c05350217b3045d010df11758a36f23f17e51594c10533c0d3f0b42a3bf8e29",
"armv7-unknown-linux-musleabihf-0.4.21":
"93a1960fe8edb2ea720615a0c544877bd9e1ce24ac12fb0015c0b38aed09b640",
"i686-pc-windows-msvc-0.4.21":
"f170a08e146cd9c7beb17041e23affc3f379fe39ab8c7035891275cf10e4cda8",
"i686-unknown-linux-gnu-0.4.21":
"29d805ff63e8a31a0e42d50914d8ed714bbbe1148ebd0cf94cdeb62f5c6522c0",
"i686-unknown-linux-musl-0.4.21":
"ed1ba4f8216bcf14ff7f2592fcd4c0c75a88841f2703ba36713f2495b27f0fe3",
"powerpc64-unknown-linux-gnu-0.4.21":
"56cd5bae87ce3c7eb8c8dd678689def06facb8ca5dd91a35a037cafa74b9c761",
"powerpc64le-unknown-linux-gnu-0.4.21":
"9dfa72df994379a8670c9a108f4e9526efc6aaba246168636047f4b3b1466a97",
"powerpc64le-unknown-linux-musl-0.4.21":
"dccd70ddf999f5efc425cba92a7fc3aa423b750d6d46d35902e565bd1c8c22e0",
"s390x-unknown-linux-gnu-0.4.21":
"37c0ca423f7d3fbc708fc6331c62805dbebafb883a9d1360ef9254c2169052cd",
"x86_64-apple-darwin-0.4.21":
"21e3144995d3f8fb44bda6ed859fe0d3dd0d2de0d33a13beb37bb2d99f094057",
"x86_64-pc-windows-msvc-0.4.21":
"9ac448e5406e2e187cfe9b60b767985e1e7d25d479fe39ef7f0423edc2c08939",
"x86_64-unknown-linux-gnu-0.4.21":
"2fb2fd070b27f2ea741fafde8a73ab7bf8e945c802bc92e07db01337d387c8e7",
"x86_64-unknown-linux-musl-0.4.21":
"32902e33b46ef011257d44af1f515eb824b1b17d7f24c139bcecc8eb1984762c",
"undefined-0.4.20":
"68d0b5dc0295baf93c2539a04f3aede44e4a7230d3c470430561ecb119ca5353",
"aarch64-apple-darwin-0.4.20":
"b4a8df5b37ccc80a08a6a39647aa1b329645e932fb770158aa1453ffde11e1ab",
"aarch64-unknown-linux-gnu-0.4.20":
"e7b173900e155210aebf205a3041ba8f896febb05d4863ba6390a3cb79c5a722",
"aarch64-unknown-linux-musl-0.4.20":
"48373b07772021df32f7fbb38226e4ad9f3bbc27f0acf2634e0bf9591d133902",
"arm-unknown-linux-musleabihf-0.4.20":
"fac2d2647ab8651743a144dc5bc9329de5b3f5724817a05c36891b6ede6e4103",
"armv7-unknown-linux-gnueabihf-0.4.20":
"affeb6a9e9d03df245bb5ab252d3b3562f90228bfa4c4029842e8370445b3feb",
"armv7-unknown-linux-musleabihf-0.4.20":
"59c9bba80f7f4c91576b1add15a5d695d931833f7c9193c9dd252e2ca6786a0a",
"i686-pc-windows-msvc-0.4.20":
"3abe03202575bd26fa0e7deb1790dc149f90879561a241ed04b6886461f5e3b1",
"i686-unknown-linux-gnu-0.4.20":
"33a92cb1316de5e28f69e99a8e66eff435b6cc721366be31c46bf603c070d1ae",
"i686-unknown-linux-musl-0.4.20":
"29547e66c0b73a15760416e57be3d1fc58eb4c9c3953f451cc2a6cb432ffacca",
"powerpc64-unknown-linux-gnu-0.4.20":
"233de85af024cc2e724829d183261df574ee69c295646f032fb9ef1da09d0791",
"powerpc64le-unknown-linux-gnu-0.4.20":
"75f0f0f35fd3fd002c546765191fea45a65c88d07ef9bac8417c42acaed8b548",
"powerpc64le-unknown-linux-musl-0.4.20":
"a65075eb916ca738a50e27be0d01afbd6b655ac0c67a0399e84971232ce3a637",
"s390x-unknown-linux-gnu-0.4.20":
"23269967f868b2ad1b8844fefc241604e1217cc7b6e703a084e26f4bd9506d86",
"x86_64-apple-darwin-0.4.20":
"d5ec2279da6bfa06d63a6a79461d07fa678a50d6aa9381d1783a6072d4df558b",
"x86_64-pc-windows-msvc-0.4.20":
"f3a88e0d8a160b696fb4c838521142d2a766b6bd29915c5d5df1a2ddc531030b",
"x86_64-unknown-linux-gnu-0.4.20":
"2283626b627f33382338b7621e5b1c8df5432c5deff9e64e217ff33652beb7f0",
"x86_64-unknown-linux-musl-0.4.20":
"2b826106f075b11e195390385650f16df79b85ea6e51a7e1f3dbf5acd7457899",
"undefined-0.4.19":
"79adb36dc4233272f863d7cbc861907ee3b91685cde6c9cac3d40ec9307de202",
"aarch64-apple-darwin-0.4.19":
"6eba1317f46c1533ad3ea8098b732752d298a1b2726a87d96f146f0c45dae1cd",
"aarch64-unknown-linux-gnu-0.4.19":
"290740d9b749d9ddc3e313230c88dd6618d052a4b32dc9b900d734036e5b4b31",
"aarch64-unknown-linux-musl-0.4.19":
"2ae6ac4f5e3b465ced1f14520d30305924a02ab38e6c20def341b0c50f3b2d0f",
"arm-unknown-linux-musleabihf-0.4.19":
"56bc058c4f92aecaa1b0843790f475d3a8d759f70d2456a64f7a804324406446",
"armv7-unknown-linux-gnueabihf-0.4.19":
"7b94f62297447cdc5d9857cbef2afde685ed74c2f87e1b0606b50647f5b438a5",
"armv7-unknown-linux-musleabihf-0.4.19":
"915827e42348e93877ead47733d721579a837fe4c88e839396f5eb18afbb8bd5",
"i686-pc-windows-msvc-0.4.19":
"97f827433e351140e693c05743d59bf15d5e0b784cf2a7b900113901f0f60268",
"i686-unknown-linux-gnu-0.4.19":
"68b93d15880dd87da1a0866942128d637ccbd399bf4742bdfc3219364f606aea",
"i686-unknown-linux-musl-0.4.19":
"df660a0c66c33bb7c59c1d1e65e352b0b2d14b04469a8448f9d80c621ef594da",
"powerpc64-unknown-linux-gnu-0.4.19":
"e1acc1ae67111b91af895a75ba743510af088d375d1d0dce5bbdb38eccc3feb7",
"powerpc64le-unknown-linux-gnu-0.4.19":
"697e70caa5e4b0d0f7302b5e9e8c9b31c7ccd4e6a91cf03c52b4d783f3527341",
"powerpc64le-unknown-linux-musl-0.4.19":
"3edc272f490d9758e05f1a88db6989606ed6f180c072c7913fbca8c2de2b6845",
"s390x-unknown-linux-gnu-0.4.19":
"64a24a57fee65f5d54573f82354e5fb6d77753fe3ba8d8b62bf0097f76760be7",
"x86_64-apple-darwin-0.4.19":
"2e591e055a2c38734cb35927aa6d7799b1d3b492bc74cede6b9b1be16163c3e2",
"x86_64-pc-windows-msvc-0.4.19":
"b172ec03cbe46b6cc7a328b2cbcdb8d144f53cc18150b288b4476d58d6f69f13",
"x86_64-unknown-linux-gnu-0.4.19":
"72d33be21956a1bed0621cd94ef42a22456fc2731c376947b15f581bce3355a5",
"x86_64-unknown-linux-musl-0.4.19":
"34b780a752ceda46efbd5fe05ac1c058e75eb78eba5308c40c87ddf2547d0ef9",
"undefined-0.4.18":
"9b2ae8c5a8db7b0106f636510b76cf21273ead5cb1162c19c7b2a5d1b1b6782e",
"aarch64-apple-darwin-0.4.18":
"49929e29bad25dfdb2f4ec49973c2265fbb538ddef3b1fa46fdb20245fa7a605",
"aarch64-unknown-linux-gnu-0.4.18":
"6a949b7230ea5c557faf1a2974940036b1b732d2fd073ef35b665fccc11fa34b",
"aarch64-unknown-linux-musl-0.4.18":
"59d50976e32d18ea94210dcd8da4eea3306690e3edc1cb5a40342ca1f7db2c47",
"arm-unknown-linux-musleabihf-0.4.18":
"13a232efd19792802831e13137efae692cb467eb17e53118e4f4dbf65fa37def",
"armv7-unknown-linux-gnueabihf-0.4.18":
"15665159b7f5d27b45eb833f3448714b9069472ccd165af5b9c26ae24306a013",
"armv7-unknown-linux-musleabihf-0.4.18":
"714a63650fddc889053ad27f41ee513f2a736fbecf3fd5ba5051b7a13564d0aa",
"i686-pc-windows-msvc-0.4.18":
"acc6e07df1b96e42d8e3becea4aa70110c921e6f77f69b521f7477222651bc75",
"i686-unknown-linux-gnu-0.4.18":
"908df3634d34f90e49b2e5e67fb627b0a4d8c0571719c60edf28e1a1ee277154",
"i686-unknown-linux-musl-0.4.18":
"48aad5171df7e21d22438bf3af3fbe6cdae409e09cee3842d5782dfd11428003",
"powerpc64-unknown-linux-gnu-0.4.18":
"0f500d33f5c52addf735329ce6818c8b9226ed379dc63593b0a6a51ef5274c04",
"powerpc64le-unknown-linux-gnu-0.4.18":
"8991bddaaad0c06305dd5c4a91e3ece36016de816eeb75f6ee1e3ff9148f65b3",
"powerpc64le-unknown-linux-musl-0.4.18":
"0f12157dab6cd370a5f71d9c6d83d5875a3e11ea91977e4f189115ed9f56805d",
"s390x-unknown-linux-gnu-0.4.18":
"5c4c101fdf5d29677a4b7ed2bb54d0a7b5c3cfa7abadb8d9ef58f02f68703e38",
"x86_64-apple-darwin-0.4.18":
"a99d009f16b6681825ab8a672f83bcf838e851a8914c497ccf65f310b5be17b9",
"x86_64-pc-windows-msvc-0.4.18":
"f6cffb80499da1e3ca0a3bb4710cb3601f6933315f5568ce4b785c664d65c644",
"x86_64-unknown-linux-gnu-0.4.18":
"946243fa93da15d33e2d2bb59cf9bc622806b5bf5776da8b0e27562e608ad8a1",
"x86_64-unknown-linux-musl-0.4.18":
"f0cc269adcad633f06ad50755af38d8f5bf745fbe7e4edafa35cfbb286706397",
"undefined-0.4.17":
"68ad7bf18029bcc9f0c8556e5fb96814fa30d8f67b3ccbc5db19e38b487c9326",
"aarch64-apple-darwin-0.4.17":
"af8e68a0e831e8b482d9e2f5443af63d24d003b0c53e0d5f921c2bcb5eed1644",
"aarch64-unknown-linux-gnu-0.4.17":
"5b7c0269aa15aca1f6171e06db39e24a5ec81f1b484ab382a8db218424afc5b4",
"aarch64-unknown-linux-musl-0.4.17":
"7dc33d60655e7a78bf13ad68bff89da6233b24484cd01a668d72a4ca88c7e70d",
"arm-unknown-linux-musleabihf-0.4.17":
"1e409703fa3639ac01d5c2b277763987b3b6e856097bb7c59dec168861ad9d9b",
"armv7-unknown-linux-gnueabihf-0.4.17":
"b14484ed08fe0073db869ed73c12f2ca1d45f22daabba241e2aa12086793ba51",
"armv7-unknown-linux-musleabihf-0.4.17":
"6920000627deb6f101dd6a144f1930f4649550d9bf2eb9189fa7d38270d85900",
"i686-pc-windows-msvc-0.4.17":
"c8a2c21e23694e4d8079693d8d980642ceabad7589a8da5d5c112844cd9a1530",
"i686-unknown-linux-gnu-0.4.17":
"67d1ed2af42d7f355eb08325645013e24fc3797f33cfa9d5aca18f74a98c4885",
"i686-unknown-linux-musl-0.4.17":
"771dbc2b9bda1653029018eb6b7e98d83935df26595a2194bc7f57251bdd9caf",
"powerpc64-unknown-linux-gnu-0.4.17":
"f2c4ea4bed0f4f42686742bc1078761a232b1ce51532169f17bd99ebb2595ec3",
"powerpc64le-unknown-linux-gnu-0.4.17":
"915a06db243c43cc88f96bf271dd25a3f564ebdda097b79b6d0ee3a6835fc6e2",
"powerpc64le-unknown-linux-musl-0.4.17":
"faaefdc9ed84ab263d0be277b4cccd0a7cd0870fb3bc77a50e293a5d2d74d207",
"s390x-unknown-linux-gnu-0.4.17":
"a49de0293c8177367bd90c527dc88c105e100d04a866ed15898a2f9778e1c648",
"x86_64-apple-darwin-0.4.17":
"7ed2445e83cb919525535774004e294061a8c79253367490647c6aab0e9d06b8",
"x86_64-pc-windows-msvc-0.4.17":
"929407c72ec63c54502c3aef61a2195c2b6a145d6d4b15fd9a0528475cc5cd50",
"x86_64-unknown-linux-gnu-0.4.17":
"9282496b24585c54f4cb71c1cb1dbdecd650f2311237f71ddf217f8756136f79",
"x86_64-unknown-linux-musl-0.4.17":
"6f703368f2d5d4c974e3ece239f64815fb0c6e040eba078ffc87c421a9375deb",
"undefined-0.4.16":
"942296098d4738db464ea170c654d61281f35cd98fc1ecc6c6df784ba9373bb3",
"aarch64-apple-darwin-0.4.16":
"cbfb46932ced7319e0b90cff87bfff759bc319e719cca369ace476906b178f25",
"aarch64-unknown-linux-gnu-0.4.16":
"c5f4f0a7acdbcb6273d117ac9a72767406e2a8da3cc2c72b5818ca08165e90c9",
"aarch64-unknown-linux-musl-0.4.16":
"7f093031e442181b7504fd55e9d0211358646b4fead1317d45aba44efcab719e",
"arm-unknown-linux-musleabihf-0.4.16":
"ec9ca782be4eabb583423539fd335cc1ff9edcbcca8f73cd4cc4a6cdc433023a",
"armv7-unknown-linux-gnueabihf-0.4.16":
"ee55becb4a3e861fdc25eb42fb9fd224625bc6cb06391894aa2b064aa00682d0",
"armv7-unknown-linux-musleabihf-0.4.16":
"5c8dc9de0130004b63ac0b104b460f93bbccc47bc2274294c27ad922142f8d8a",
"i686-pc-windows-msvc-0.4.16":
"44e1d1cb1bb87b18ef6a106585e6860cbe4cda7cd9475cd20eb68b741d4d9293",
"i686-unknown-linux-gnu-0.4.16":
"72799882d18ea4b8ad7cf8b12768c35311d25f6c4eb241a12d44d52b2b02efc3",
"i686-unknown-linux-musl-0.4.16":
"0bb65ab130e6cad00c4d28c8c4f359157bf752ec92145ca44769e66a1143804b",
"powerpc64-unknown-linux-gnu-0.4.16":
"5699b114794b83b42753f4ddeefd00c902e10564733879efeb45b60dd25b04f5",
"powerpc64le-unknown-linux-gnu-0.4.16":
"65f61fc69579d7f6a7238bd180588481ea4b20ff5d45ee62ce590229d53dbb3d",
"powerpc64le-unknown-linux-musl-0.4.16":
"48c83cf9ce5b3e4ecce2fe305aa3f4f8fc0a633f8a0398c7f59f501e8db61fb6",
"s390x-unknown-linux-gnu-0.4.16":
"112e6dea4ddbc6c0dbf416bc7d5dff79fcacd3e0f7fa52772f7647b8cd26ca25",
"x86_64-apple-darwin-0.4.16":
"ecf035262115b216f6cc709917418df9dbafe47d49b8048c465faa406face032",
"x86_64-pc-windows-msvc-0.4.16":
"93a6df8f8225fb73dda275d06455fe5026f00c42e8dccc787812841c0c104291",
"x86_64-unknown-linux-gnu-0.4.16":
"f4f4de434206fb610ecb2dbc3fc44c62adb6b61e8d1237d858a10b407a2737c4",
"x86_64-unknown-linux-musl-0.4.16":
"aab3a3ef8e4ffa641210b1ed374eebd08b5e612b1a928c291a543d3b624d46d1",
"undefined-0.4.15":
"22b605c86cfcb8db9922387151fd8e79d3d2a1caf6f2a03a238ca7ebe058853f",
"aarch64-apple-darwin-0.4.15":
"32f6ad64b9dcf164fa75efef73e0e9a9b769073e6bfe844560329a3176b39b9b",
"aarch64-unknown-linux-gnu-0.4.15":
"cf3f9f98642bd2a7e9d6fa27d880bdbdccc16b6a525b240013789d3048c02348",
"aarch64-unknown-linux-musl-0.4.15":
"fbc0433275134fc50d25ce3c291b3e7a53ffb70b447741398c31d6c4deeba4b8",
"arm-unknown-linux-musleabihf-0.4.15":
"4cc15f1cd1bf5b3508886baa005c6dd51ae7cf995e8699c100ee5a32da70f13b",
"armv7-unknown-linux-gnueabihf-0.4.15":
"380366651e5c924239f1e085fade96ec04d1a312c8a9db7a9f383fcf87e073d1",
"armv7-unknown-linux-musleabihf-0.4.15":
"50eb304472f7b6b02c4fed987e0931f02a0b5e7c1620559f0246416e725297f5",
"i686-pc-windows-msvc-0.4.15":
"3ad9d42a4308adc69dd7061b0ba9451b26d118032d3937dd92e3acef4aa62a40",
"i686-unknown-linux-gnu-0.4.15":
"2e90ee238cba49c5f096c8b0648c7fc531a75dcf0c26eb0cde4d9ce5447d8d82",
"i686-unknown-linux-musl-0.4.15":
"0120dfe81ebc98d20dec01f8ce7a8c571673155dbd67ab08a6cf4000de85df65",
"powerpc64-unknown-linux-gnu-0.4.15":
"ef10cefd6db62ea6c4ae082457b720332927e86ad3e1dc404da75961d9bd987c",
"powerpc64le-unknown-linux-gnu-0.4.15":
"e58fa6d325e81bd845265c980f3dc7ffcd6ae6b912c525bc165938964bc2b0c0",
"powerpc64le-unknown-linux-musl-0.4.15":
"c64194823946c45640990c1616f2043bda63e05a2fcfdcc33fd64bbadcc6408b",
"s390x-unknown-linux-gnu-0.4.15":
"662f0bee11f330a80b002eb3b6d74f574832b1ceee6943a6bdc0486dabde3514",
"x86_64-apple-darwin-0.4.15":
"ab91ee8c6461e9ac385a2f96d23d77e027b4e4274e983d0aedf1d64abfb6353b",
"x86_64-pc-windows-msvc-0.4.15":
"17e7ecb448c8b507bb08347df6aa974f58a7536b6fbe21f0ce57372509e409a0",
"x86_64-unknown-linux-gnu-0.4.15":
"f590376432bcb26c2aff86b6ec495d55ba2384d068c62dca477f498902721674",
"x86_64-unknown-linux-musl-0.4.15":
"70e331be83d97f42fd355f18cb1f8b3f4cadc4973b29fec659109fad4a053a8f",
"undefined-0.4.14":
"d73771243ecb8f38a925f16894126644aec95da7557eef22d7c161d9b8af69e9",
"aarch64-apple-darwin-0.4.14":
"e7368a2ffe19cc39e4b733c0b5ddced9952da85fad5d5eb55c75c4a67c7e4747",
"aarch64-unknown-linux-gnu-0.4.14":
"3647ba1da46b7b2dde959c03e3dfd54ad63e7fefe3de7789e1d88931712da1c1",
"aarch64-unknown-linux-musl-0.4.14":
"11a871df0ca91843e09871e7ee8f5d000a3df73f8dd6d7d1ebf0f237feaa18c8",
"arm-unknown-linux-musleabihf-0.4.14":
"8aaf34ca8078db54597173961788f7a9f292ce473629e0b684f7c7b346fb5a68",
"armv7-unknown-linux-gnueabihf-0.4.14":
"6a59fc0794760c20f01dac7594a7559f871d8428b5440303a9e450ae72a53c96",
"armv7-unknown-linux-musleabihf-0.4.14":
"099db2dc91ea868864c55e0820bfa1c279af07259aee4ccfe151e2f3a208aaf4",
"i686-pc-windows-msvc-0.4.14":
"a6d255d229d2447a259d8affe9e537aadb12079852c1bc9097664371e2406a82",
"i686-unknown-linux-gnu-0.4.14":
"6389b5000e256b150f8c185ff3fb28c6bfc4116ad35f07b7b49088675d7c9ceb",
"i686-unknown-linux-musl-0.4.14":
"2307c79f88b9302b4ec2db9d500a240b0710f9e011548e776dfbd15fa1c084e7",
"powerpc64-unknown-linux-gnu-0.4.14":
"01d94b9de93a424781d5a4b4890b6f4e5f5ea59d98363415d4f90fa75ee80426",
"powerpc64le-unknown-linux-gnu-0.4.14":
"0ab4524a49d201368da79ff3d69a01b780cefcec7115acc1448d4a3b71fa3c24",
"powerpc64le-unknown-linux-musl-0.4.14":
"51cc5cbb145f09e60a4a739a8e664657fd0b3d81053b2973ac133513aa43aae2",
"s390x-unknown-linux-gnu-0.4.14":
"f30bb00682299ca9e10e98f387178f839e136414b66ab99f2e28b6f160258315",
"x86_64-apple-darwin-0.4.14":
"442b93a10d3d5d5422c615f73bb13bd491ee88bc2ea913185728940a31c51b35",
"x86_64-pc-windows-msvc-0.4.14":
"dbde8853a1d7c005e34dee03ec1bfc337374c111c86b26701c403bba6076254c",
"x86_64-unknown-linux-gnu-0.4.14":
"873b4b95c5d3d49ae1306122256cb0b116b5c725e068db8100a76efb13d7669d",
"x86_64-unknown-linux-musl-0.4.14":
"1985046d3e36acd02395c704dcd9d1aff03114afe13fdc166754675bae8ad294",
"undefined-0.4.13":
"1164572b6a4700821bd3cb72594f7421aafa414c8d1a94e9570e530ca7a5c635",
"aarch64-apple-darwin-0.4.13":
"32d73e0257dab4371254d26bd9328de4e43b7817ee154d7c77e879df130b15c4",
"aarch64-unknown-linux-gnu-0.4.13":
"0f653d8ece44da59056dd2fda6bddc7e274ed4d6431787bd7aa26ae7e02a66d3",
"aarch64-unknown-linux-musl-0.4.13":
"c24306c2cfc3bcaeab57f866c2501f07e21098fa03db7c1e5961280d44404443",
"arm-unknown-linux-musleabihf-0.4.13":
"f8b9375a7ff918e6b4ec2fbaa4fbac0707b85d9a391ab82a888ec07f4d7ae813",
"armv7-unknown-linux-gnueabihf-0.4.13":
"ab59e9586b89d11ee043aff7410712fa2bc178b6aa83eb70173b81d6f2ef93b5",
"armv7-unknown-linux-musleabihf-0.4.13":
"bdb133e0ecfe889661910bb52f77c54268b82161fdb8af2b1f6c867537626a39",
"i686-pc-windows-msvc-0.4.13":
"b4a92170b85d63ee9d7ac3a9b07fa444e4257e3dfb91a22774c1f76f94a06ddb",
"i686-unknown-linux-gnu-0.4.13":
"a4f2dc1eb9526ae9f1a617fddfc8e565817540ee06b022cc85a31f8915b8130e",
"i686-unknown-linux-musl-0.4.13":
"0f72e2a16e55b57feb8741f86f3e968f3e080868da6c848f6a115149b7d63652",
"powerpc64-unknown-linux-gnu-0.4.13":
"44471a861399b11870b41f8c0e4b8080490803b2c6be5ebf906a09ac0e67b5c9",
"powerpc64le-unknown-linux-gnu-0.4.13":
"4a95260671f6578f773c70aab21da55f1995dde7dbd38794e510a6b5b0fd0c1e",
"powerpc64le-unknown-linux-musl-0.4.13":
"bf3fef07eeb29f1bd79b677afcc52deb1f594fd13bfe25c0d4f05c171957d717",
"s390x-unknown-linux-gnu-0.4.13":
"548e6cfb8ac09cf422d6fef9886ed8ba73bda8333f69ae420aab2cd5f676d7cc",
"x86_64-apple-darwin-0.4.13":
"fb58d588c237218c275f63b6b77eda9477d2c1e1007605e10207c2504ae2a6d5",
"x86_64-pc-windows-msvc-0.4.13":
"888e73d16bc7c67ee2e369e4660249ec107efaf998583cce68dbcd942b76d047",
"x86_64-unknown-linux-gnu-0.4.13":
"0f955f51eaa3ccf56215ace06dab2e9b78437e22002eabc2cedcfcf541d997b2",
"x86_64-unknown-linux-musl-0.4.13":
"c8f73e30407a6e15eea7334f7067ac84ae1526a1ae7f4420dc873492bdfe626e",
"undefined-0.4.12":
"335861d17540501e2c5f82f5b8955b07034c450edb292fd2d628a837f52e0054",
"aarch64-apple-darwin-0.4.12":
"507aeb4efbb4a2b97654df8333aaa9d78109c55e3c3d5959f50cf0d93baa0263",
"aarch64-unknown-linux-gnu-0.4.12":
"73c6f84462895eb924b6fddc2cfef6b9fde0e0c15ff45a0eb882ec5275f5a2f7",
"aarch64-unknown-linux-musl-0.4.12":
"7329992bee100397b3520f1e93512804aa47ea01404c05609aedd181311cdf3b",
"arm-unknown-linux-musleabihf-0.4.12":
"21e4bcaf22259b4a473912403e9a89debd7f8f052e2f5d7d52f350539adade9e",
"armv7-unknown-linux-gnueabihf-0.4.12":
"7a0433a46595b40d9e50eb9a8aeb193b18eb5d545a677a646f86760b716f4b6e",
"armv7-unknown-linux-musleabihf-0.4.12":
"3803d4ef65fea709940bd897c9d27123cd60ca1f72b173eadad69a9949bf1e69",
"i686-pc-windows-msvc-0.4.12":
"e0550b4db9d9074560cdff66e81298288ddeb75347585514601c598ea46df54f",
"i686-unknown-linux-gnu-0.4.12":
"4c0a025f4b1f40a4248435410cbc1c6df0656ccee02f145aecedefac0efac392",
"i686-unknown-linux-musl-0.4.12":
"a0572decd32eb5917bb80bc8d1de0351be362b6a06423ae36bd03c745292c1f7",
"powerpc64-unknown-linux-gnu-0.4.12":
"51e624d5317e4ac6bcd67d1cae49e092c0186cab3dab4f7fa15c2e32066e16f8",
"powerpc64le-unknown-linux-gnu-0.4.12":
"5eafc18d05671ad38488f1b1d48712e829f4eb7f0d25eac423be79e7d8834cdf",
"powerpc64le-unknown-linux-musl-0.4.12":
"926d3caff745f4b4c376ff4328cf5129b8f61af6671d84614270ed8fa05816ca",
"s390x-unknown-linux-gnu-0.4.12":
"810cd900581925ee16e7d606e30fa39912123f9d96a740dbc1f4f9aa3d7e9760",
"x86_64-apple-darwin-0.4.12":
"d2934f4afba1f33d4078cbde301e780db132df6d33f2f5b27df466775e01b236",
"x86_64-pc-windows-msvc-0.4.12":
"4dc5e08f2f69245859b8ff57c7e6f844ebd1a65df12ae13f66a068268af17389",
"x86_64-unknown-linux-gnu-0.4.12":
"db44453ec57d6e3a35b7af2bb7938b47bdc9e7ca397269e978c53dd3065b1195",
"x86_64-unknown-linux-musl-0.4.12":
"ef9551ecf6f0efd51264f8a6a683b8b0210789aeaeab664863a90535a553b985",
"undefined-0.4.11":
"e6e38118aaa7436d31d3aed0f4b0beb188c273c137bd3185e8b4ebdb301682aa",
"aarch64-apple-darwin-0.4.11":
"b988bce29ca19fa229f088f982b66ef9dbf8571cc45eb98b00370a817cfe383a",
"aarch64-unknown-linux-gnu-0.4.11":
"865feeea66be67497506b76925949f97eb1f6da7dda2583a6558bed972f5de13",
"aarch64-unknown-linux-musl-0.4.11":
"db1b16b5e8d943a296667d176e474739c652660cbf56ee5e9157aa7e267442fb",
"arm-unknown-linux-musleabihf-0.4.11":
"9a141516deb4c966d4ae5a4d14dfef0f3c7880817823645760c09fb4cc580ce3",
"armv7-unknown-linux-gnueabihf-0.4.11":
"4748f81c391e0040eb489056677f6caee5886e5c15ef85448db51f11ea9b90df",
"armv7-unknown-linux-musleabihf-0.4.11":
"b564fb4631b6b668d891ec2ce91af10fda1f4374bd846eab24a85abb6fd77b25",
"i686-pc-windows-msvc-0.4.11":
"f1c0c12a40097949aa793f870f811ac8ffcc349228f0d3cae246bd93108e62da",
"i686-unknown-linux-gnu-0.4.11":
"c894193d37fa6cedb3b6c76d85bcca6031a5ef051adb046d583b7f078edc3872",
"i686-unknown-linux-musl-0.4.11":
"c80a63db7be49971b91417fdd5b9327803c38e23998d88d2a3489a2d9fa32de2",
"powerpc64-unknown-linux-gnu-0.4.11":
"f5ecc0461d1b9a8f56804abf5b2200aa22c08b89f404845a9f684817d0824521",
"powerpc64le-unknown-linux-gnu-0.4.11":
"862c8cdc587d435e09aaa0645440d1a8d72e23c68050cd978d4e5d11aede6a6b",
"powerpc64le-unknown-linux-musl-0.4.11":
"82bfb567ab6f2412706f157a998925fd49a491a4eaffb2bf8c09ca512be51a2f",
"s390x-unknown-linux-gnu-0.4.11":
"4b3cacd593aaecbaf193633f3105851ba7fe6627ed567bc3133e48a398e7c947",
"x86_64-apple-darwin-0.4.11":
"1db522b0eebb16cc08094b558f76048834a4d25878d74e07c5b4b7320239a5ab",
"x86_64-pc-windows-msvc-0.4.11":
"b9d43ddca9affbf03c048e34112c470a37af8d8e04c3ff2b79933a073f48e34d",
"x86_64-unknown-linux-gnu-0.4.11":
"3fc34d56857f24c7065309593a5df05ce953f1736f0cf32965b91f69adb66c46",
"x86_64-unknown-linux-musl-0.4.11":
"c3c6eb97198a29c6ca51bed673941ffbe7d97d481e74eec034fd8ad8d59b187c",
"undefined-0.4.10":
"53751ecdbad6aa09b13986e73e1ba1990b348b1793f313fdecaf3bd464311d28",
"aarch64-apple-darwin-0.4.10":

View File

@@ -1,4 +1,4 @@
import { promises as fs } from "fs";
import { promises as fs } from "node:fs";
import * as tc from "@actions/tool-cache";
export async function updateChecksums(
filePath: string,

View File

@@ -1,8 +1,9 @@
import * as core from "@actions/core";
import * as tc from "@actions/tool-cache";
import * as exec from "@actions/exec";
import * as path from "path";
import { Architecture, Platform } from "../utils/platforms";
import * as path from "node:path";
import { promises as fs } from "node:fs";
import type { Architecture, Platform } from "../utils/platforms";
import { validateChecksum } from "./checksum/checksum";
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
@@ -13,12 +14,11 @@ export async function downloadLatest(
githubToken: string | undefined,
): Promise<{ cachedToolDir: string; version: string }> {
const artifact = `uv-${arch}-${platform}`;
let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/latest/download/${artifact}`;
let extension = ".tar.gz";
if (platform === "pc-windows-msvc") {
downloadUrl += ".zip";
} else {
downloadUrl += ".tar.gz";
extension = ".zip";
}
const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/latest/download/${artifact}${extension}`;
core.info(`Downloading uv from "${downloadUrl}" ...`);
const downloadPath = await tc.downloadTool(
@@ -29,7 +29,9 @@ export async function downloadLatest(
let uvExecutablePath: string;
let uvDir: string;
if (platform === "pc-windows-msvc") {
uvDir = await tc.extractZip(downloadPath);
const fullPathWithExtension = `${downloadPath}${extension}`;
await fs.copyFile(downloadPath, fullPathWithExtension);
uvDir = await tc.extractZip(fullPathWithExtension);
// On windows extracting the zip does not create an intermediate directory
uvExecutablePath = path.join(uvDir, "uv.exe");
} else {
@@ -67,5 +69,5 @@ async function getVersion(uvExecutablePath: string): Promise<string> {
};
await exec.exec(uvExecutablePath, execArgs, options);
const parts = output.split(" ");
return parts[1];
return parts[1].trim();
}

View File

@@ -1,18 +1,25 @@
import * as core from "@actions/core";
import * as tc from "@actions/tool-cache";
import * as path from "path";
import * as path from "node:path";
import { promises as fs } from "node:fs";
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
import { Architecture, Platform } from "../utils/platforms";
import type { Architecture, Platform } from "../utils/platforms";
import { validateChecksum } from "./checksum/checksum";
import * as github from "@actions/github";
export function tryGetFromToolCache(
arch: Architecture,
version: string,
): string | undefined {
): { version: string; installedPath: string | undefined } {
core.debug(`Trying to get uv from tool cache for ${version}...`);
const cachedVersions = tc.findAllVersions(TOOL_CACHE_NAME, arch);
core.debug(`Cached versions: ${cachedVersions}`);
return tc.find(TOOL_CACHE_NAME, version, arch);
let resolvedVersion = tc.evaluateVersions(cachedVersions, version);
if (resolvedVersion === "") {
resolvedVersion = version;
}
const installedPath = tc.find(TOOL_CACHE_NAME, resolvedVersion, arch);
return { version: resolvedVersion, installedPath };
}
export async function downloadVersion(
@@ -20,15 +27,15 @@ export async function downloadVersion(
arch: Architecture,
version: string,
checkSum: string | undefined,
githubToken: string | undefined,
): Promise<string> {
githubToken: string,
): Promise<{ version: string; cachedToolDir: string }> {
const resolvedVersion = await resolveVersion(version, githubToken);
const artifact = `uv-${arch}-${platform}`;
let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${version}/${artifact}`;
let extension = ".tar.gz";
if (platform === "pc-windows-msvc") {
downloadUrl += ".zip";
} else {
downloadUrl += ".tar.gz";
extension = ".zip";
}
const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}${extension}`;
core.info(`Downloading uv from "${downloadUrl}" ...`);
const downloadPath = await tc.downloadTool(
@@ -36,16 +43,55 @@ export async function downloadVersion(
undefined,
githubToken,
);
await validateChecksum(checkSum, downloadPath, arch, platform, version);
await validateChecksum(
checkSum,
downloadPath,
arch,
platform,
resolvedVersion,
);
let uvDir: string;
if (platform === "pc-windows-msvc") {
uvDir = await tc.extractZip(downloadPath);
const fullPathWithExtension = `${downloadPath}${extension}`;
await fs.copyFile(downloadPath, fullPathWithExtension);
uvDir = await tc.extractZip(fullPathWithExtension);
// On windows extracting the zip does not create an intermediate directory
} else {
const extractedDir = await tc.extractTar(downloadPath);
uvDir = path.join(extractedDir, artifact);
}
return await tc.cacheDir(uvDir, TOOL_CACHE_NAME, version, arch);
const cachedToolDir = await tc.cacheDir(
uvDir,
TOOL_CACHE_NAME,
resolvedVersion,
arch,
);
return { version: resolvedVersion, cachedToolDir };
}
async function resolveVersion(
version: string,
githubToken: string,
): Promise<string> {
if (tc.isExplicitVersion(version)) {
core.debug(`Version ${version} is an explicit version.`);
return version;
}
const availableVersions = await getAvailableVersions(githubToken);
const resolvedVersion = tc.evaluateVersions(availableVersions, version);
if (resolvedVersion === "") {
throw new Error(`No version found for ${version}`);
}
return resolvedVersion;
}
async function getAvailableVersions(githubToken: string): Promise<string[]> {
const octokit = github.getOctokit(githubToken);
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
owner: OWNER,
repo: REPO,
});
return response.map((release) => release.tag_name);
}

48
src/hash/hash-files.ts Normal file
View File

@@ -0,0 +1,48 @@
import * as crypto from "node:crypto";
import * as core from "@actions/core";
import * as fs from "node:fs";
import * as stream from "node:stream";
import * as util from "node:util";
import { create } from "@actions/glob";
/**
* Hashes files matching the given glob pattern.
*
* Copied from https://github.com/actions/toolkit/blob/20ed2908f19538e9dfb66d8083f1171c0a50a87c/packages/glob/src/internal-hash-files.ts#L9-L49
* But supports hashing files outside the GITHUB_WORKSPACE.
* @param pattern The glob pattern to match files.
* @param verbose Whether to log the files being hashed.
*/
export async function hashFiles(
pattern: string,
verbose = false,
): Promise<string> {
const globber = await create(pattern);
let hasMatch = false;
const writeDelegate = verbose ? core.info : core.debug;
const result = crypto.createHash("sha256");
let count = 0;
for await (const file of globber.globGenerator()) {
writeDelegate(file);
if (fs.statSync(file).isDirectory()) {
writeDelegate(`Skip directory '${file}'.`);
continue;
}
const hash = crypto.createHash("sha256");
const pipeline = util.promisify(stream.pipeline);
await pipeline(fs.createReadStream(file), hash);
result.write(hash.digest());
count++;
if (!hasMatch) {
hasMatch = true;
}
}
result.end();
if (hasMatch) {
writeDelegate(`Found ${count} files to hash.`);
return result.digest("hex");
}
writeDelegate("No matches found for glob");
return "";
}

View File

@@ -1,22 +1,33 @@
import * as cache from "@actions/cache";
import * as core from "@actions/core";
import * as exec from "@actions/exec";
import * as fs from "node:fs";
import {
STATE_CACHE_MATCHED_KEY,
STATE_CACHE_KEY,
} from "./cache/restore-cache";
import { cacheLocalPath, enableCache } from "./utils/inputs";
import {
cacheLocalPath,
enableCache,
ignoreNothingToCache,
pruneCache as shouldPruneCache,
} from "./utils/inputs";
export async function run(): Promise<void> {
try {
if (enableCache) {
await saveCache();
// node will stay alive if any promises are not resolved,
// which is a possibility if HTTP requests are dangling
// due to retries or timeouts. We know that if we got here
// that all promises that we care about have successfully
// resolved, so simply exit with success.
process.exit(0);
}
} catch (error) {
const err = error as Error;
core.setFailed(err.message);
}
process.exit(0);
}
async function saveCache(): Promise<void> {
@@ -26,17 +37,38 @@ async function saveCache(): Promise<void> {
if (!cacheKey) {
core.warning("Error retrieving cache key from state.");
return;
} else if (matchedKey === cacheKey) {
}
if (matchedKey === cacheKey) {
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
return;
}
await pruneCache();
if (shouldPruneCache) {
await pruneCache();
}
core.info(`Saving cache path: ${cacheLocalPath}`);
await cache.saveCache([cacheLocalPath], cacheKey);
core.info(`cache saved with the key: ${cacheKey}`);
if (!fs.existsSync(cacheLocalPath) && !ignoreNothingToCache) {
throw new Error(
`Cache path ${cacheLocalPath} does not exist on disk. This likely indicates that there are no dependencies to cache. Consider disabling the cache input if it is not needed.`,
);
}
try {
await cache.saveCache([cacheLocalPath], cacheKey);
core.info(`cache saved with the key: ${cacheKey}`);
} catch (e) {
if (
e instanceof Error &&
e.message ===
"Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved."
) {
core.info(
"No cacheable paths were found. Ignoring because ignore-nothing-to-save is enabled.",
);
} else {
throw e;
}
}
}
async function pruneCache(): Promise<void> {

View File

@@ -1,5 +1,5 @@
import * as core from "@actions/core";
import * as path from "path";
import * as path from "node:path";
import {
downloadVersion,
tryGetFromToolCache,
@@ -8,16 +8,18 @@ import { restoreCache } from "./cache/restore-cache";
import { downloadLatest } from "./download/download-latest";
import {
Architecture,
type Architecture,
getArch,
getPlatform,
Platform,
type Platform,
} from "./utils/platforms";
import {
cacheLocalPath,
checkSum,
enableCache,
githubToken,
toolBinDir,
toolDir,
version,
} from "./utils/inputs";
@@ -41,8 +43,10 @@ async function run(): Promise<void> {
);
addUvToPath(setupResult.uvDir);
core.setOutput("uv-version", version);
core.info(`Successfully installed uv version ${version}`);
addToolBinToPath();
setToolDir();
core.setOutput("uv-version", setupResult.version);
core.info(`Successfully installed uv version ${setupResult.version}`);
addMatchers();
setCacheDir(cacheLocalPath);
@@ -50,10 +54,10 @@ async function run(): Promise<void> {
if (enableCache) {
await restoreCache(setupResult.version);
}
process.exit(0);
} catch (err) {
core.setFailed((err as Error).message);
}
process.exit(0);
}
async function setupUv(
@@ -61,29 +65,37 @@ async function setupUv(
arch: Architecture,
versionInput: string,
checkSum: string | undefined,
githubToken: string | undefined,
githubToken: string,
): Promise<{ uvDir: string; version: string }> {
let installedPath: string | undefined;
let cachedToolDir: string;
let version: string;
if (versionInput === "latest") {
const result = await downloadLatest(platform, arch, checkSum, githubToken);
version = result.version;
cachedToolDir = result.cachedToolDir;
const latestResult = await downloadLatest(
platform,
arch,
checkSum,
githubToken,
);
version = latestResult.version;
cachedToolDir = latestResult.cachedToolDir;
} else {
version = versionInput;
installedPath = tryGetFromToolCache(arch, versionInput);
const toolCacheResult = tryGetFromToolCache(arch, versionInput);
version = toolCacheResult.version;
installedPath = toolCacheResult.installedPath;
if (installedPath) {
core.info(`Found uv in tool-cache for ${versionInput}`);
return { uvDir: installedPath, version };
}
cachedToolDir = await downloadVersion(
const versionResult = await downloadVersion(
platform,
arch,
versionInput,
checkSum,
githubToken,
);
cachedToolDir = versionResult.cachedToolDir;
version = versionResult.version;
}
return { uvDir: cachedToolDir, version };
@@ -94,6 +106,33 @@ function addUvToPath(cachedPath: string): void {
core.info(`Added ${cachedPath} to the path`);
}
function addToolBinToPath(): void {
if (toolBinDir !== undefined) {
core.exportVariable("UV_TOOL_BIN_DIR", toolBinDir);
core.info(`Set UV_TOOL_BIN_DIR to ${toolBinDir}`);
core.addPath(toolBinDir);
core.info(`Added ${toolBinDir} to the path`);
} else {
if (process.env.XDG_BIN_HOME !== undefined) {
core.addPath(process.env.XDG_BIN_HOME);
core.info(`Added ${process.env.XDG_BIN_HOME} to the path`);
} else if (process.env.XDG_DATA_HOME !== undefined) {
core.addPath(`${process.env.XDG_DATA_HOME}/../bin`);
core.info(`Added ${process.env.XDG_DATA_HOME}/../bin to the path`);
} else {
core.addPath(`${process.env.HOME}/.local/bin`);
core.info(`Added ${process.env.HOME}/.local/bin to the path`);
}
}
}
function setToolDir(): void {
if (toolDir !== undefined) {
core.exportVariable("UV_TOOL_DIR", toolDir);
core.info(`Set UV_TOOL_DIR to ${toolDir}`);
}
}
function setCacheDir(cacheLocalPath: string): void {
core.exportVariable("UV_CACHE_DIR", cacheLocalPath);
core.info(`Set UV_CACHE_DIR to ${cacheLocalPath}`);

View File

@@ -1,24 +1,67 @@
import * as core from "@actions/core";
import path from "path";
import path from "node:path";
export const version = core.getInput("version");
export const checkSum = core.getInput("checksum");
export const enableCache = core.getInput("enable-cache") === "true";
export const cacheSuffix = core.getInput("cache-suffix") || "";
export const cacheLocalPath = getCacheLocalPath();
export const githubToken = core.getInput("github-token");
export const cacheDependencyGlob = core.getInput("cache-dependency-glob");
export const pruneCache = core.getInput("prune-cache") === "true";
export const ignoreNothingToCache =
core.getInput("ignore-nothing-to-cache") === "true";
export const toolBinDir = getToolBinDir();
export const toolDir = getToolDir();
export const githubToken = core.getInput("github-token");
function getToolBinDir(): string | undefined {
const toolBinDirInput = core.getInput("tool-bin-dir");
if (toolBinDirInput !== "") {
return expandTilde(toolBinDirInput);
}
if (process.platform === "win32") {
if (process.env.RUNNER_TEMP !== undefined) {
return `${process.env.RUNNER_TEMP}${path.sep}uv-tool-bin-dir`;
}
throw Error(
"Could not determine UV_TOOL_BIN_DIR. Please make sure RUNNER_TEMP is set or provide the tool-bin-dir input",
);
}
return undefined;
}
function getToolDir(): string | undefined {
const toolDirInput = core.getInput("tool-dir");
if (toolDirInput !== "") {
return expandTilde(toolDirInput);
}
if (process.platform === "win32") {
if (process.env.RUNNER_TEMP !== undefined) {
return `${process.env.RUNNER_TEMP}${path.sep}uv-tool-dir`;
}
throw Error(
"Could not determine UV_TOOL_DIR. Please make sure RUNNER_TEMP is set or provide the tool-dir input",
);
}
return undefined;
}
function getCacheLocalPath(): string {
const cacheLocalPathInput = core.getInput("cache-local-path");
if (cacheLocalPathInput !== "") {
return cacheLocalPathInput;
return expandTilde(cacheLocalPathInput);
}
if (process.env.RUNNER_TEMP !== undefined) {
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
}
if (process.platform === "win32") {
return "D:\\a\\_temp\\setup-uv-cache";
}
return "/tmp/setup-uv-cache";
throw Error(
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
);
}
function expandTilde(input: string): string {
if (input.startsWith("~")) {
return `${process.env.HOME}${input.substring(1)}`;
}
return input;
}