Compare commits

...

66 Commits

Author SHA1 Message Date
Taiki Endo
a3bd4a6f9c Release 2.49.2 2025-02-25 09:17:00 +09:00
Taiki Endo
a124e0a223 Update sccache@latest to 0.10.0 2025-02-25 06:13:23 +09:00
Taiki Endo
77262c00ec Update cargo-machete@latest to 0.8.0 2025-02-25 06:13:23 +09:00
Taiki Endo
ae97ff9daf Release 2.49.1 2025-02-24 18:50:52 +09:00
Taiki Endo
4226e24080 Update cargo-deny@latest to 0.18.0 2025-02-24 18:44:52 +09:00
Taiki Endo
e03236526a Release 2.49.0 2025-02-24 03:58:48 +09:00
Taiki Endo
7cd5fd4051 Update changelog 2025-02-24 03:58:09 +09:00
Taiki Endo
bfd7aadad6 Allow installing pre-release versions using binstall 2025-02-24 03:57:25 +09:00
Taiki Endo
011a3fc5ce rustfmt: set style_edition = "2024" 2025-02-23 22:32:18 +09:00
Taiki Endo
eb454bad93 Release 2.48.22 2025-02-23 13:39:07 +09:00
Taiki Endo
d041e4befe Update cargo-binstall@latest to 1.11.1 2025-02-23 13:22:51 +09:00
Taiki Endo
1f8ff2cc46 Update release-plz@latest to 0.3.122 2025-02-23 06:12:03 +09:00
Taiki Endo
6a4015d722 Release 2.48.21 2025-02-22 12:37:02 +09:00
Taiki Endo
817fcd18a5 Update wasmtime@latest to 30.0.1 2025-02-22 09:28:46 +09:00
Taiki Endo
dee334f610 Update syft@latest to 1.20.0 2025-02-22 06:14:30 +09:00
Taiki Endo
38c7691f46 Update scripts 2025-02-21 23:48:30 +09:00
Taiki Endo
2dbeb927f5 Release 2.48.20 2025-02-21 20:15:39 +09:00
Taiki Endo
7852930e42 Update cargo-udeps@latest to 0.1.55 2025-02-21 09:31:15 +09:00
Taiki Endo
46724b7a3e Revert "ci: Temporarily disable buggy ubuntu-24.04-arm runner"
This reverts commit 0b0596dd1e.
2025-02-21 00:40:15 +09:00
Taiki Endo
55451daf94 Release 2.48.19 2025-02-21 00:15:51 +09:00
Taiki Endo
964cdcf277 Update typos@latest to 1.29.9 2025-02-21 00:13:17 +09:00
Taiki Endo
dd548c6593 Release 2.48.18 2025-02-20 20:18:57 +09:00
Taiki Endo
de33aea2e5 Update cargo-deny@latest to 0.17.0 2025-02-20 20:09:17 +09:00
Taiki Endo
69a1d2b891 Release 2.48.17 2025-02-20 20:02:50 +09:00
Taiki Endo
c57ce37e13 Update wasmtime@latest to 30.0.0 2025-02-20 13:15:42 +09:00
Taiki Endo
7afac3d3be Release 2.48.16 2025-02-20 03:39:57 +09:00
Taiki Endo
c036d35ea6 Update typos@latest to 1.29.8 2025-02-20 03:36:15 +09:00
Taiki Endo
54b836426b Release 2.48.15 2025-02-19 02:10:33 +09:00
Taiki Endo
9fff09cbe0 Update xh@latest to 0.24.0 2025-02-18 18:14:12 +09:00
Taiki Endo
13b3c51a32 Release 2.48.14 2025-02-18 09:08:33 +09:00
Taiki Endo
3ccbe21af2 Update mdbook@latest to 0.4.45 2025-02-18 06:13:44 +09:00
Taiki Endo
ad0904967b Release 2.48.13 2025-02-17 02:17:11 +09:00
Taiki Endo
3fc69e7246 tools: Update publish.sh 2025-02-17 02:16:54 +09:00
Taiki Endo
f45576468f codegen: zola now provides AArch64 Linux binary 2025-02-17 02:16:06 +09:00
Taiki Endo
7b30dcdca1 Mark zola as glibc_pre_2_35_incompat
```
zola: /lib64/libm.so.6: version `GLIBC_2.35' not found (required by zola)
```
2025-02-17 02:16:06 +09:00
Taiki Endo
f188d3633d Update zola@latest to 0.20.0 2025-02-17 02:16:06 +09:00
Taiki Endo
83080f843d Update cargo-binstall@latest to 1.11.0 2025-02-17 02:16:06 +09:00
Taiki Endo
7bcfa52bea Release 2.48.12 2025-02-15 03:15:59 +09:00
Taiki Endo
f8ea9d2f10 Update rclone@latest to 1.69.1 2025-02-15 03:14:15 +09:00
Taiki Endo
dfe4a92949 Update cargo-tarpaulin@latest to 0.32.0 2025-02-14 21:15:19 +09:00
Taiki Endo
85f2be18a0 Update cargo-nextest@latest to 0.9.91 2025-02-14 11:03:25 +09:00
Taiki Endo
297054b274 Release 2.48.11 2025-02-14 10:55:03 +09:00
Taiki Endo
bdbb267a22 Update typos@latest to 1.29.7 2025-02-14 03:18:51 +09:00
Taiki Endo
ae9d9ea210 Release 2.48.10 2025-02-13 10:48:20 +09:00
Taiki Endo
df7d9c70b5 Update cargo-nextest@latest to 0.9.90 2025-02-13 09:29:48 +09:00
Taiki Endo
174dd15542 Update cargo-binstall@latest to 1.10.23 2025-02-12 13:09:48 +09:00
Taiki Endo
995f97569c Release 2.48.9 2025-02-11 21:28:32 +09:00
Taiki Endo
8492d65459 Update cargo-spellcheck@latest to 0.15.2 2025-02-11 21:19:24 +09:00
Taiki Endo
23db74cab2 Release 2.48.8 2025-02-11 19:00:49 +09:00
Taiki Endo
b95243b2fd Simplify template version replace in read_download_info 2025-02-11 18:55:50 +09:00
Taiki Endo
804d0fbae7 Revert "codegen: Update ureq from 2 to 3"
This reverts commit bee06ee963.

See https://github.com/taiki-e/install-action/pull/831#issuecomment-2650284580.
2025-02-11 18:45:46 +09:00
Taiki Endo
c92f25fe23 codegen: Dedup x86_64_windows/aarch64_windows 2025-02-11 18:41:00 +09:00
Taiki Endo
771bd4fef9 codegen: Tweak code around BufWriter 2025-02-11 18:40:20 +09:00
Taiki Endo
dd213e8db4 Update cargo-no-dev-deps@latest to 0.2.15 2025-02-11 18:38:26 +09:00
Taiki Endo
63b321e245 Update cargo-minimal-versions@latest to 0.1.30 2025-02-11 18:38:26 +09:00
Taiki Endo
f8eeeb3526 Update cargo-hack@latest to 0.6.35 2025-02-11 18:38:26 +09:00
Taiki Endo
82c3ccf997 Release 2.48.7 2025-02-11 06:35:24 +09:00
Taiki Endo
4ba684457e Update cargo-nextest@latest to 0.9.89 2025-02-11 06:33:50 +09:00
Taiki Endo
5bc300ae62 Release 2.48.6 2025-02-10 19:58:20 +09:00
Taiki Endo
a07119b7b1 Update cargo-spellcheck@latest to 0.15.1 2025-02-10 18:40:38 +09:00
Taiki Endo
c1952a69c3 Release 2.48.5 2025-02-10 10:50:11 +09:00
Taiki Endo
b24387dafd Update release-plz@latest to 0.3.120 2025-02-10 06:33:09 +09:00
Taiki Endo
5ae641ad51 Release 2.48.4 2025-02-10 00:39:10 +09:00
Taiki Endo
4fa427fe8e Update cargo-zigbuild@latest to 0.19.8 2025-02-10 00:36:11 +09:00
Taiki Endo
1bfd4d7803 Release 2.48.3 2025-02-09 21:56:18 +09:00
Taiki Endo
128658a456 Update release-plz@latest to 0.3.119 2025-02-09 21:39:11 +09:00
34 changed files with 1013 additions and 142 deletions

View File

@@ -6,6 +6,9 @@ updates:
interval: daily
commit-message:
prefix: ''
ignore:
# https://github.com/taiki-e/install-action/pull/831#issuecomment-2650284580
- dependency-name: ureq
labels: []
- package-ecosystem: github-actions
directory: /

View File

@@ -62,7 +62,7 @@ jobs:
- os: ubuntu-22.04
- os: ubuntu-22.04-arm
- os: ubuntu-24.04
# - os: ubuntu-24.04-arm # TODO: re-enable when https://github.com/rust-lang/rust/issues/135867 solved
- os: ubuntu-24.04-arm
- os: ubuntu-22.04
tool: major.minor.patch
- os: ubuntu-22.04

View File

@@ -53,7 +53,7 @@ jobs:
id: diff
run: tools/ci/manifest.sh
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main')
- run: git add -N . && git diff --exit-code
- run: git add -N . && git -c color.ui=always diff --exit-code
- id: create-pull-request
uses: peter-evans/create-pull-request@v7
with:

View File

@@ -8,7 +8,6 @@ error_on_line_overflow = true
# Override the default formatting style.
# See https://internals.rust-lang.org/t/running-rustfmt-on-rust-lang-rust-and-other-rust-lang-repositories/8732/81.
use_small_heuristics = "Max"
# This is the default of 2024 edition https://github.com/rust-lang/rust/pull/114764.
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/3370)
overflow_delimited_expr = true
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/4991).
@@ -27,6 +26,7 @@ use_try_shorthand = true
# Set the default settings again to always apply the proper formatting without
# being affected by the editor settings.
edition = "2021"
style_edition = "2024"
hard_tabs = false
newline_style = "Unix"
tab_spaces = 4

View File

@@ -10,6 +10,118 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.49.2] - 2025-02-25
- Update `sccache@latest` to 0.10.0.
- Update `cargo-machete@latest` to 0.8.0.
## [2.49.1] - 2025-02-24
- Update `cargo-deny@latest` to 0.18.0.
## [2.49.0] - 2025-02-23
- Allow installing pre-release versions using binstall. ([#868](https://github.com/taiki-e/install-action/pull/868))
## [2.48.22] - 2025-02-23
- Update `cargo-binstall@latest` to 1.11.1.
- Update `release-plz@latest` to 0.3.122.
## [2.48.21] - 2025-02-22
- Update `wasmtime@latest` to 30.0.1.
- Update `syft@latest` to 1.20.0.
## [2.48.20] - 2025-02-21
- Update `cargo-udeps@latest` to 0.1.55.
## [2.48.19] - 2025-02-20
- Update `typos@latest` to 1.29.9.
## [2.48.18] - 2025-02-20
- Update `cargo-deny@latest` to 0.17.0.
## [2.48.17] - 2025-02-20
- Update `wasmtime@latest` to 30.0.0.
## [2.48.16] - 2025-02-19
- Update `typos@latest` to 1.29.8.
## [2.48.15] - 2025-02-18
- Update `xh@latest` to 0.24.0.
## [2.48.14] - 2025-02-18
- Update `mdbook@latest` to 0.4.45.
## [2.48.13] - 2025-02-16
- Support `zola` on AArch64 Linux.
- Update `zola@latest` to 0.20.0.
- Update `cargo-binstall@latest` to 1.11.0.
## [2.48.12] - 2025-02-14
- Update `rclone@latest` to 1.69.1.
- Update `cargo-tarpaulin@latest` to 0.32.0.
- Update `cargo-nextest@latest` to 0.9.91.
## [2.48.11] - 2025-02-14
- Update `typos@latest` to 1.29.7.
## [2.48.10] - 2025-02-13
- Update `cargo-nextest@latest` to 0.9.90.
- Update `cargo-binstall@latest` to 1.10.23.
## [2.48.9] - 2025-02-11
- Update `cargo-spellcheck@latest` to 0.15.2.
## [2.48.8] - 2025-02-11
- Update `cargo-no-dev-deps@latest` to 0.2.15.
- Update `cargo-minimal-versions@latest` to 0.1.30.
- Update `cargo-hack@latest` to 0.6.35.
## [2.48.7] - 2025-02-10
- Update `cargo-nextest@latest` to 0.9.89.
## [2.48.6] - 2025-02-10
- Update `cargo-spellcheck@latest` to 0.15.1.
## [2.48.5] - 2025-02-10
- Update `release-plz@latest` to 0.3.120.
## [2.48.4] - 2025-02-09
- Update `cargo-zigbuild@latest` to 0.19.8.
## [2.48.3] - 2025-02-09
- Update `release-plz@latest` to 0.3.119.
## [2.48.2] - 2025-02-09
- Update `release-plz@latest` to 0.3.118.
@@ -3456,7 +3568,30 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.48.2...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.49.2...HEAD
[2.49.2]: https://github.com/taiki-e/install-action/compare/v2.49.1...v2.49.2
[2.49.1]: https://github.com/taiki-e/install-action/compare/v2.49.0...v2.49.1
[2.49.0]: https://github.com/taiki-e/install-action/compare/v2.48.22...v2.49.0
[2.48.22]: https://github.com/taiki-e/install-action/compare/v2.48.21...v2.48.22
[2.48.21]: https://github.com/taiki-e/install-action/compare/v2.48.20...v2.48.21
[2.48.20]: https://github.com/taiki-e/install-action/compare/v2.48.19...v2.48.20
[2.48.19]: https://github.com/taiki-e/install-action/compare/v2.48.18...v2.48.19
[2.48.18]: https://github.com/taiki-e/install-action/compare/v2.48.17...v2.48.18
[2.48.17]: https://github.com/taiki-e/install-action/compare/v2.48.16...v2.48.17
[2.48.16]: https://github.com/taiki-e/install-action/compare/v2.48.15...v2.48.16
[2.48.15]: https://github.com/taiki-e/install-action/compare/v2.48.14...v2.48.15
[2.48.14]: https://github.com/taiki-e/install-action/compare/v2.48.13...v2.48.14
[2.48.13]: https://github.com/taiki-e/install-action/compare/v2.48.12...v2.48.13
[2.48.12]: https://github.com/taiki-e/install-action/compare/v2.48.11...v2.48.12
[2.48.11]: https://github.com/taiki-e/install-action/compare/v2.48.10...v2.48.11
[2.48.10]: https://github.com/taiki-e/install-action/compare/v2.48.9...v2.48.10
[2.48.9]: https://github.com/taiki-e/install-action/compare/v2.48.8...v2.48.9
[2.48.8]: https://github.com/taiki-e/install-action/compare/v2.48.7...v2.48.8
[2.48.7]: https://github.com/taiki-e/install-action/compare/v2.48.6...v2.48.7
[2.48.6]: https://github.com/taiki-e/install-action/compare/v2.48.5...v2.48.6
[2.48.5]: https://github.com/taiki-e/install-action/compare/v2.48.4...v2.48.5
[2.48.4]: https://github.com/taiki-e/install-action/compare/v2.48.3...v2.48.4
[2.48.3]: https://github.com/taiki-e/install-action/compare/v2.48.2...v2.48.3
[2.48.2]: https://github.com/taiki-e/install-action/compare/v2.48.1...v2.48.2
[2.48.1]: https://github.com/taiki-e/install-action/compare/v2.48.0...v2.48.1
[2.48.0]: https://github.com/taiki-e/install-action/compare/v2.47.32...v2.48.0

12
main.sh
View File

@@ -277,13 +277,13 @@ read_download_info() {
bin_in_archive=()
if [[ "${url}" == "null" ]]; then
local template
template=$(jq -r ".template.${host_platform}" "${manifest_dir}/${tool}.json")
template=$(jq -c ".template.${host_platform}" "${manifest_dir}/${tool}.json")
template="${template//\$\{version\}/${exact_version}}"
url=$(jq -r '.url' <<<"${template}")
url="${url//\$\{version\}/${exact_version}}"
tmp=$(jq -r '.bin' <<<"${template}" | sed -E "s/\\$\\{version\\}/${exact_version}/g")
tmp=$(jq -r '.bin' <<<"${template}")
if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207
bin_in_archive=($(jq -r '.bin[]' <<<"${template}" | sed -E "s/\\$\\{version\\}/${exact_version}/g"))
bin_in_archive=($(jq -r '.bin[]' <<<"${template}"))
fi
else
tmp=$(jq -r '.bin' <<<"${download_info}")
@@ -639,11 +639,11 @@ for tool in "${tools[@]}"; do
if [[ "${tool}" == *"@"* ]]; then
version="${tool#*@}"
tool="${tool%@*}"
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)$|^latest$ ]]; then
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?$|^latest$ ]]; then
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$|^latest$ ]]; then
bail "install-action does not support semver operators: '${version}'"
fi
bail "install-action v2 does not support semver pre-release and build-metadata: '${version}'; if you need these supports again, please submit an issue at <https://github.com/taiki-e/install-action>"
bail "install-action v2 does not support semver build-metadata: '${version}'; if you need these supports again, please submit an issue at <https://github.com/taiki-e/install-action>"
fi
else
version=latest

View File

@@ -22,32 +22,32 @@
},
"license_markdown": "[GPL-3.0](https://github.com/cargo-bins/cargo-binstall/blob/HEAD/crates/bin/LICENSE)",
"latest": {
"version": "1.10.22"
"version": "1.11.1"
},
"1.10.22": {
"1.11.1": {
"x86_64_linux_musl": {
"etag": "0x8DD38568770C382",
"checksum": "74d7c647c7e60bb8464fa551702fdd38a7241f5cedb2c4edc3b11639cd1dae47"
"etag": "0x8DD53AD432C0E1E",
"checksum": "e4ee181b2d8fc814b340f5da849dd67acfc985b18c92bcd654c9d223d205e4d5"
},
"x86_64_macos": {
"etag": "0x8DD38560D10F1DA",
"checksum": "0abaad286197df9e5a3d25bfdca682fa91fef65fef13f42e20ec24a98165c71a"
"etag": "0x8DD53AD12F83C0F",
"checksum": "fca395de3047f7868c3b57d7563a8342b2b446b0c6839509527fff56e2156068"
},
"x86_64_windows": {
"etag": "0x8DD3857BFED715A",
"checksum": "36d6ea24db049a36d0eab33003e6ee007955f01a8ce89fef46d4026adb86db96"
"etag": "0x8DD53AE25C0C75B",
"checksum": "b092d9f1dea240fb7269e25bd097575fd8bd7b0acd9b44cf5319e5a52adb9952"
},
"aarch64_linux_musl": {
"etag": "0x8DD38563219A538",
"checksum": "b8c32b1b007482f42f6c4b5f8cfeb168f9674ec6448bfa29ae0c4ba01b7a370b"
"etag": "0x8DD53ACE9F477BA",
"checksum": "096f2d7afb87856f58a8c95a5a99130b60ad2763f38378c62b1ffa3ec8e93c1f"
},
"aarch64_macos": {
"etag": "0x8DD3856413081F7",
"checksum": "97ce4a2f18181f052dda266b042d8bb220e48ffe40ca75e796ae4c5e418b9e01"
"etag": "0x8DD53AD22027CC8",
"checksum": "2837ffc3ad798eec1629638ed43ca85a52abf9d0db5ab38d498d803fd65c38c3"
},
"aarch64_windows": {
"etag": "0x8DD3857931A5667",
"checksum": "d86dfba0c13f7c84724e1d21fcec35b8a42633733215a61d1ee183455b12db5e"
"etag": "0x8DD53ADFC1A99F6",
"checksum": "d675ea21614f99482569f4bae2a24cd312b98755c8f3708766baa7cb502b640b"
}
}
}

View File

@@ -24,7 +24,57 @@
},
"license_markdown": "[MIT](https://github.com/EmbarkStudios/cargo-deny/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/EmbarkStudios/cargo-deny/blob/main/LICENSE-APACHE)",
"latest": {
"version": "0.16.4"
"version": "0.18.0"
},
"0.18": {
"version": "0.18.0"
},
"0.18.0": {
"x86_64_linux_musl": {
"etag": "0x8DD54AD3CA8695C",
"checksum": "9f0c7b5b84242db9b1d4c47155c4cecc006a9dd657aa730a186939379a8c2200"
},
"x86_64_macos": {
"etag": "0x8DD54AD2A210547",
"checksum": "b131c2871d982aa1e322a65c09c5c2971dffb24689921df287d73f423c888991"
},
"x86_64_windows": {
"etag": "0x8DD54ADAE24EDA7",
"checksum": "5f1d1ad125f2e626b2c393d71e2ab36b4f468c47711547832c1f4da19f892ca0"
},
"aarch64_linux_musl": {
"etag": "0x8DD54AD5819A2C2",
"checksum": "1a6f16dbaf308a64dfa1fb310a717a268f2b38bfd1bc32d5ce2c1f8b72adeec2"
},
"aarch64_macos": {
"etag": "0x8DD54AD34C97FE5",
"checksum": "e1cb27af1d1020a19dd3c48019071b0c21b2641b8fbc49a2806223f6cb47e2ff"
}
},
"0.17": {
"version": "0.17.0"
},
"0.17.0": {
"x86_64_linux_musl": {
"etag": "0x8DD518E866BDAA6",
"checksum": "eafaffd87b2c7e97a644ed6eeac267b2af471a5bcf9cff7435852661caadf353"
},
"x86_64_macos": {
"etag": "0x8DD518E713313D0",
"checksum": "fdd12d35aee874abcebe1ce9aff10fb224219326895edd5d5eb23e014366b301"
},
"x86_64_windows": {
"etag": "0x8DD518F2975306A",
"checksum": "95d72fd9a079e83e93ddc345227fd9dfb4d4133275f5d0cb0f7df322eac6d3b7"
},
"aarch64_linux_musl": {
"etag": "0x8DD518E96C67017",
"checksum": "147422f4914e0c322ac8f2d0676afddfcd40c91a226d69b5b799af8c6978cf21"
},
"aarch64_macos": {
"etag": "0x8DD518E9D5EDDB7",
"checksum": "8f59efe8d4785ba4febe0e8b079952a03d435f50345533c3dd4ef2b107ba18e0"
}
},
"0.16": {
"version": "0.16.4"

View File

@@ -3,10 +3,42 @@
"template": null,
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-hack/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-hack/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.6.34"
"version": "0.6.35"
},
"0.6": {
"version": "0.6.34"
"version": "0.6.35"
},
"0.6.35": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4A6E5EB58C77",
"checksum": "eff70993a6da63125e378ff37b029e8ec3df738d8f52e100a003d0f1bb999a46"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD4A6E7EFB6D18",
"checksum": "04a5849fe5d8da9f41cb9a784c0a3f9a4c572db6dfcb2bd585da565cba51b5f2"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD4A6E6C197A37",
"checksum": "bb00d151d1acd36f2c545941cbc1c84ad6efbd54dd5a284d1699b10c9175c97d"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4A6E34F0549E",
"checksum": "917a14465547ca09b7e0872ca2532e877c5a2ed1f919bc52ff297d812ee34012"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD4A6E44BEE1EA",
"checksum": "4a147720e1ab3ef295af88d6c26781999b2c23bd6d40f9f7ddad7cf2e68441ed"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"etag": "0x8DD4A6E338AB5BB",
"checksum": "43e878cb91d845cbfc396e146d0e9eb174e7b28623dbf4f8b7d8039f120a6a45"
}
},
"0.6.34": {
"x86_64_linux_musl": {

View File

@@ -3,7 +3,36 @@
"template": null,
"license_markdown": "[MIT](https://github.com/bnjbvr/cargo-machete/blob/main/LICENSE.md)",
"latest": {
"version": "0.7.0"
"version": "0.8.0"
},
"0.8": {
"version": "0.8.0"
},
"0.8.0": {
"x86_64_linux_musl": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD550F01B09F95",
"checksum": "020f6608f9be1562d1fb601e5808e541ccb8806e7e4dfde27d48bc22254a002c",
"bin": "cargo-machete-v0.8.0-x86_64-unknown-linux-musl/cargo-machete"
},
"x86_64_macos": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD550F074262C8",
"checksum": "f1304100fef4012e6b3f4b74fa7d6a71ff0de3cc3d8a3e67773a434f2854a0d8",
"bin": "cargo-machete-v0.8.0-x86_64-apple-darwin/cargo-machete"
},
"x86_64_windows": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD550F250F5178",
"checksum": "19f15db89529f0e01fa0afb56d1d3c3d54bfb709086479bd190a0f4a3e2efd8c",
"bin": "cargo-machete-v0.8.0-x86_64-pc-windows-msvc/cargo-machete.exe"
},
"aarch64_macos": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD550F00F685B8",
"checksum": "9047eacf791e23ff2b3b7b3489a9537c34df02dbdbbfe46541720e9ed3308adf",
"bin": "cargo-machete-v0.8.0-aarch64-apple-darwin/cargo-machete"
}
},
"0.7": {
"version": "0.7.0"

View File

@@ -22,10 +22,36 @@
},
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.1.29"
"version": "0.1.30"
},
"0.1": {
"version": "0.1.29"
"version": "0.1.30"
},
"0.1.30": {
"x86_64_linux_musl": {
"etag": "0x8DD4A6E25DB06C6",
"checksum": "72a89985f39e12285b7d8e63cf26d8f41c97d72aea83478dc685d513d9e75044"
},
"x86_64_macos": {
"etag": "0x8DD4A6E0A5AE6A1",
"checksum": "3cacfaedc52499c4a2875148ede335c504e6dadd605a726baafc76929d6f7ddc"
},
"x86_64_windows": {
"etag": "0x8DD4A6E000C0CDA",
"checksum": "58516125269596aa451e524663f30e70fbacacf252bff6f35ca606abf1be43ec"
},
"aarch64_linux_musl": {
"etag": "0x8DD4A6E044102DA",
"checksum": "60371ed27eb44193774ada646fd58608fa6441b89913268880168795d9cd0a65"
},
"aarch64_macos": {
"etag": "0x8DD4A6DDE1DB827",
"checksum": "99c141466361587a6e9c5a0455245e1379ada63d7258b6a6765bc0f715a4444e"
},
"aarch64_windows": {
"etag": "0x8DD4A6E17E7FE9E",
"checksum": "3e226428d21c4db9dd9aaf34b8ea7046be87af3ef9b294b80ac14d8cb6a75845"
}
},
"0.1.29": {
"x86_64_linux_musl": {

View File

@@ -19,10 +19,79 @@
},
"license_markdown": "[Apache-2.0](https://github.com/nextest-rs/nextest/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/nextest-rs/nextest/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.9.88"
"version": "0.9.91"
},
"0.9": {
"version": "0.9.88"
"version": "0.9.91"
},
"0.9.91": {
"previous_stable_version": "0.9.90",
"x86_64_linux_gnu": {
"etag": "0x8DD4C9803365D77",
"checksum": "c28e4d7380662860eff0bc407d9830f59c2ac0a4b2d1c73d0d9c671139fa2eac"
},
"x86_64_linux_musl": {
"etag": "0x8DD4C9831FCF8ED",
"checksum": "e5e319f562b250ef2d806201a0b023aa1ab3e9880f11c4176d6fbf6e366d3c50"
},
"x86_64_macos": {
"etag": "0x8DD4C98297BA941",
"checksum": "104ba3670bb3a277fdfd2e94f4eb09909165ef114f2808e887332d859ba1ca92"
},
"x86_64_windows": {
"etag": "0x8DD4C98D37ED80B",
"checksum": "54d18079329ce85af4dd77f15662eb97eab08a3f36b36290363a919b48714e5e"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4C9823CE6601",
"checksum": "9169fe49cd6cc432e233d75ba8a6f35e0797ee2ea8ca917703c99ff9cc08922a"
}
},
"0.9.90": {
"previous_stable_version": "0.9.89",
"x86_64_linux_gnu": {
"etag": "0x8DD4BC2B4419A0D",
"checksum": "c713b60d9612cd63cad22e65fa368d44e60a7708dc06f43c35ef1210a3176e48"
},
"x86_64_linux_musl": {
"etag": "0x8DD4BC2FD016D79",
"checksum": "2d41dcd1766be58d96aa6b312eb82f75c059c2a4738ff5ff9b748a5ed0b7b7ae"
},
"x86_64_macos": {
"etag": "0x8DD4BC2F506FD01",
"checksum": "062f0e5a4470122304e2e1d91ee26d1aa4e4d4b931ce8969dc2f233e0185fd40"
},
"x86_64_windows": {
"etag": "0x8DD4BC326350110",
"checksum": "7d953a469fe271a6085f203ab000d80bc03c022c10adf6026aa665b9da4f21cd"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4BC2C54D2DE2",
"checksum": "4b63d96f5624759d8e3543bff2c4ac38556da4a18b114e8ed16aa13ecfd3b29c"
}
},
"0.9.89": {
"previous_stable_version": "0.9.88",
"x86_64_linux_gnu": {
"etag": "0x8DD4A15B96B1A84",
"checksum": "d90785677e767a0b8b50fbaffc465f3ab2d67d1f692137898130ae9d338070b9"
},
"x86_64_linux_musl": {
"etag": "0x8DD4A15D2E5AF8F",
"checksum": "8998b930c766e34975f9ec2490f54fb29ec5bd614340bff79883c78c9c4c5809"
},
"x86_64_macos": {
"etag": "0x8DD4A15D38E51B7",
"checksum": "e7686274224c5e32469cd1da66495663b87620cf2bf800d7b406fb58f4938b82"
},
"x86_64_windows": {
"etag": "0x8DD4A1668EB3B53",
"checksum": "e3651fe04052a654ed613e7368a0a7be08cc85190f2d8c9380cd4702b2604868"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4A1575ED9107",
"checksum": "8f00921063058b650e44246549c476e42e850a4925892b0b1a4f9b2b45bb7035"
}
},
"0.9.88": {
"previous_stable_version": "0.9.87",

View File

@@ -22,10 +22,36 @@
},
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.2.14"
"version": "0.2.15"
},
"0.2": {
"version": "0.2.14"
"version": "0.2.15"
},
"0.2.15": {
"x86_64_linux_musl": {
"etag": "0x8DD4A6E15A58780",
"checksum": "d917d43b52d04a643b8bca6492d2592eeb34d78d76aad26861e15247689f6d6a"
},
"x86_64_macos": {
"etag": "0x8DD4A6E115D44AA",
"checksum": "5f260e5bbc1c8ff760cd68d0a05ea953a3c69940fc1f766209a5310b7ddd910d"
},
"x86_64_windows": {
"etag": "0x8DD4A6DFE0E5EA1",
"checksum": "255d926f677c970a653528e10e159db9d35b70eb6b4363d14a012c39b890c2be"
},
"aarch64_linux_musl": {
"etag": "0x8DD4A6E04BB2D14",
"checksum": "05179148e3e2c84b1e808b52fcd30395a49df3347c932a2ae4dd34a3db5c6dcb"
},
"aarch64_macos": {
"etag": "0x8DD4A6DE379D4E7",
"checksum": "859e6f542b701b279641cc7616214e69c3b951195a4b9372f70a7e8b8a3ec1ac"
},
"aarch64_windows": {
"etag": "0x8DD4A6E0CFFBCF1",
"checksum": "44467a4d4b290edf18ec28dd2e6cb63c4b551cd6c7a96350205a3cd4ceb555b0"
}
},
"0.2.14": {
"x86_64_linux_musl": {

View File

@@ -10,7 +10,30 @@
},
"license_markdown": "[LGPLv2.1](https://github.com/drahnr/cargo-spellcheck/blob/master/LICENSE-LGPL)",
"latest": {
"version": "0.14.0"
"version": "0.15.2"
},
"0.15": {
"version": "0.15.2"
},
"0.15.2": {
"x86_64_linux_gnu": {
"etag": "0x8DD4A85530EF13A",
"checksum": "9b36eb04e83aaea2c943064fbb2e5a04d37a46bcf51dfd99495b74b09ff56455"
},
"x86_64_windows": {
"etag": "0x8DD4A8564500872",
"checksum": "5d70eac68be1dae5fb69439217581f79e642867ddd4b67ba258e224de6ff82a2"
}
},
"0.15.1": {
"x86_64_linux_gnu": {
"etag": "0x8DD49AEF852F898",
"checksum": "b96e4e73babd959aa138d1629b143180e83ebd8461064fa68e99e2e961560029"
},
"x86_64_windows": {
"etag": "0x8DD49AF09E6176C",
"checksum": "53e697b1016880ffe864dfba9fda68c050694644267557450881d52d9eed987d"
}
},
"0.14": {
"version": "0.14.0"

View File

@@ -19,7 +19,32 @@
},
"license_markdown": "[MIT](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-MIT) OR [Apache-2.0](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-APACHE)",
"latest": {
"version": "0.31.5"
"version": "0.32.0"
},
"0.32": {
"version": "0.32.0"
},
"0.32.0": {
"x86_64_linux_musl": {
"etag": "0x8DD4CE72F1035B0",
"checksum": "a2ccc0792895182dd3df52e356401932fdefdfba17d4ae08831927337eaee337"
},
"x86_64_macos": {
"etag": "0x8DD4CE6F0127B7F",
"checksum": "f595f9dee318c92866c762e43d97005ea30e76f7e1d5713e548300aea4d9a6b4"
},
"x86_64_windows": {
"etag": "0x8DD4CE776A3C8A3",
"checksum": "b9614633539be588314a0ec367a80365d00854dbe54a92bfa0981757cc88b1e5"
},
"aarch64_linux_musl": {
"etag": "0x8DD4CE70205449F",
"checksum": "47236114c45b584f3aba663fecd454d15151785b51ac0e94631f4babfba5700d"
},
"aarch64_macos": {
"etag": "0x8DD4CE6C913BEBF",
"checksum": "e46aabe1f6b0cbee10ed6f4ca3c5efbfc1eec961a6ec8a5a03933622d9804965"
}
},
"0.31": {
"version": "0.31.5"

View File

@@ -32,10 +32,36 @@
},
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/est31/cargo-udeps/blob/HEAD/LICENSE)",
"latest": {
"version": "0.1.54"
"version": "0.1.55"
},
"0.1": {
"version": "0.1.54"
"version": "0.1.55"
},
"0.1.55": {
"x86_64_linux_musl": {
"etag": "0x8DD51FD656FD61C",
"checksum": "63b9dd69eef610477ead31a02a8262ec321a0e0272080c8db60d547233b2b55f"
},
"x86_64_macos": {
"etag": "0x8DD51FD3F1522FD",
"checksum": "bf5264e82de4db53dda851cfadf1fc84681e89f839703077b99238562da9b4be"
},
"x86_64_windows": {
"etag": "0x8DD51FDD1BF0962",
"checksum": "b6ac0a3aaa91609924e8f116bedf33f9892f25bea10437b73ac62b886baf0bdd"
},
"aarch64_linux_musl": {
"etag": "0x8DD51FD66F8DA00",
"checksum": "a7b554ce1ad67e7e2c7679496c6bc4e57e35a36be50300670314fa3879405b2a"
},
"aarch64_macos": {
"etag": "0x8DD51FD5B3C7F18",
"checksum": "83727df0216eb08b4af11ab0f6f0699d06cfe807973b7cad83bc0a8a3b61ca1a"
},
"aarch64_windows": {
"etag": "0x8DD51FDD55FDE6B",
"checksum": "d0a2c26f11369c5855ffeaafaf6f299d179eb87afe3f2955fad893a7eff12dd3"
}
},
"0.1.54": {
"x86_64_linux_musl": {

View File

@@ -19,10 +19,32 @@
},
"license_markdown": "[MIT](https://github.com/rust-cross/cargo-zigbuild/blob/main/LICENSE)",
"latest": {
"version": "0.19.7"
"version": "0.19.8"
},
"0.19": {
"version": "0.19.7"
"version": "0.19.8"
},
"0.19.8": {
"x86_64_linux_musl": {
"etag": "0x8DD490D612D2ABC",
"checksum": "f7fe3a25727e5b58e1b1d7fb8119a845675d441276214039cd1c2e3e49376180"
},
"x86_64_macos": {
"etag": "0x8DD490D767A3640",
"checksum": "9a807773528537ffd60d3b09a657a0a63b237a6cefb31155584646bf01aae302"
},
"x86_64_windows": {
"etag": "0x8DD490D84454E90",
"checksum": "8a35efb6041d35fea144e05e730531acfd232b1193dd2272804aeb1205452ed6"
},
"aarch64_linux_musl": {
"etag": "0x8DD490D610F8ADB",
"checksum": "ca193cab2f29cb1380992fe51ed7e13ea759be519a4afdd045f70f01508f1853"
},
"aarch64_windows": {
"etag": "0x8DD490DBC8F876E",
"checksum": "2f60fdbe8e2c7b8bd0562225a97a6c66f87f8966f532bc24bd86309961b5728b"
}
},
"0.19.7": {
"x86_64_linux_musl": {

26
manifests/mdbook.json generated
View File

@@ -22,10 +22,32 @@
},
"license_markdown": "[MPL-2.0](https://github.com/rust-lang/mdBook/blob/master/LICENSE)",
"latest": {
"version": "0.4.44"
"version": "0.4.45"
},
"0.4": {
"version": "0.4.44"
"version": "0.4.45"
},
"0.4.45": {
"x86_64_linux_musl": {
"etag": "0x8DD4F82D422F91C",
"checksum": "1b7ff6c18d20f367d97978d82273b5a5b343ef8e2300118c7d7f13d780619609"
},
"x86_64_macos": {
"etag": "0x8DD4F82D91DE44D",
"checksum": "085256959b89a90d476203720e3a9527f49509158f4afd218a532525711164d5"
},
"x86_64_windows": {
"etag": "0x8DD4F832D86EFB3",
"checksum": "ee9025ac339ce151bfb3a9dbfc7bce55580e84b2bcbc02a45a8dcca57dbd8a10"
},
"aarch64_linux_musl": {
"etag": "0x8DD4F82E1F83EAC",
"checksum": "8de76e084888803af4b2b710ac8e874107bbd5686f59323776defb8faa837818"
},
"aarch64_macos": {
"etag": "0x8DD4F82D89B8B35",
"checksum": "7e0368004c6e16c176f74498cc348717578c747759460b6082b62fb184e4f417"
}
},
"0.4.44": {
"x86_64_linux_musl": {

32
manifests/rclone.json generated
View File

@@ -28,13 +28,39 @@
},
"license_markdown": "[MIT](https://github.com/rclone/rclone/blob/master/COPYING)",
"latest": {
"version": "1.69.0"
"version": "1.69.1"
},
"1": {
"version": "1.69.0"
"version": "1.69.1"
},
"1.69": {
"version": "1.69.0"
"version": "1.69.1"
},
"1.69.1": {
"x86_64_linux_musl": {
"etag": "0x8DD4D194D7A0994",
"checksum": "231841f8d8029ae6cfca932b601b3b50d0e2c3c2cb9da3166293f1c3eae7d79c"
},
"x86_64_macos": {
"etag": "0x8DD4D1A46FD41A1",
"checksum": "ebe1d5e13b0255605becfafbfa7c1809bc985272bcea0b342675c7e29c57629b"
},
"x86_64_windows": {
"etag": "0x8DD4D1A7D5C54F1",
"checksum": "0803f06d721e5399e48794538294099b195d51cc84b27bdb67e131096ad93ee4"
},
"aarch64_linux_musl": {
"etag": "0x8DD4D199A88035B",
"checksum": "a03de8f700fcda7a1aef6b568f88d44218b698fb4e1637596c024d341bb24124"
},
"aarch64_macos": {
"etag": "0x8DD4D1A4F323719",
"checksum": "09b42295c30ba6b41a0d9c6741e4b5769de9ddecf5069f93c33f01bb46caa228"
},
"aarch64_windows": {
"etag": "0x8DD4D1A847A5706",
"checksum": "0f8a786c1eae54594bd067e05c1d22b3b346c5a8fb02392c446f63bab52be5aa"
}
},
"1.69.0": {
"x86_64_linux_musl": {

View File

@@ -22,10 +22,114 @@
},
"license_markdown": "[MIT](https://github.com/release-plz/release-plz/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/release-plz/release-plz/blob/main/LICENSE-APACHE)",
"latest": {
"version": "0.3.118"
"version": "0.3.122"
},
"0.3": {
"version": "0.3.118"
"version": "0.3.122"
},
"0.3.122": {
"x86_64_linux_musl": {
"etag": "0x8DD537551B92DC7",
"checksum": "c2d96cccacc03dcfa29d8300bd2acaab1a5e2cab25952d0e4b1d131918ad756a"
},
"x86_64_macos": {
"etag": "0x8DD5375D4F795CB",
"checksum": "eb08314c438a6a4af29dcb574a32ae140156c0f084e46273680660af6dafa082"
},
"x86_64_windows": {
"etag": "0x8DD537619A1C1AF",
"checksum": "74f4d5bc392c2f4cff7fd32d7241ccb8a5531cf60b180e435b22f4a5fe2716b9"
},
"aarch64_linux_musl": {
"etag": "0x8DD53755C4828BF",
"checksum": "1ca3021665e381bda6d10b5e91e24773141e62a6559a2b09d59f558c47977ce8"
},
"aarch64_macos": {
"etag": "0x8DD5375C9894846",
"checksum": "2ad90e487ce5fa010b3349606e6c8d8be483fc9a09cf5853b77c205f0a1cdfb1"
},
"aarch64_windows": {
"etag": "0x8DD53761D58537A",
"checksum": "34feea582a64a179ea9a03824c65299132a557ef7db2c3edba18420195e99e04"
}
},
"0.3.121": {
"x86_64_linux_musl": {
"etag": "0x8DD536DECC2FBC1",
"checksum": "8efd266e4254dc3caf75788645d99df96dfaa6e89ae0370846667f997389ac93"
},
"x86_64_macos": {
"etag": "0x8DD536E8F265D59",
"checksum": "90d89d597cdd4eaa72472ef7f7b07bd691bff98343b155bd3880d5eb5547c8b3"
},
"x86_64_windows": {
"etag": "0x8DD536E96DF0255",
"checksum": "3e896b61d4c98cdf24435df5f6670cc884cfe376e75406f1bcc2e953947591a6"
},
"aarch64_linux_musl": {
"etag": "0x8DD536DFC95334C",
"checksum": "1b4a5a41e473cda09fd07bfb2041dc26172b976a797e341a26b7f1b9b607697c"
},
"aarch64_macos": {
"etag": "0x8DD536E3D04F1FB",
"checksum": "26f81aeee258a3f2dc071bebd82e4c829e1c00f8d0c3c4179880ad2d49012eba"
},
"aarch64_windows": {
"etag": "0x8DD536EA3C7BF48",
"checksum": "eeb321d688421ff73aed37652d7bec2eb68e9399f9bed6f215bed6409c6c6453"
}
},
"0.3.120": {
"x86_64_linux_musl": {
"etag": "0x8DD493BAA7B1A03",
"checksum": "d4098b2256d9d72117a25dfe7cfc668006a55b0056e3e00003c02100c08ca118"
},
"x86_64_macos": {
"etag": "0x8DD493C09063E5E",
"checksum": "d07b769b953bee775de789ad57058d02c1276723dfceac9cdc067620a40a2cb2"
},
"x86_64_windows": {
"etag": "0x8DD493C59593D51",
"checksum": "185dac76c26be85afe87d799e8f4fb432fd23d0acdac3ce5840d8245f931a7ec"
},
"aarch64_linux_musl": {
"etag": "0x8DD493BADBBEC1F",
"checksum": "3b75dd1b9ceb3d40c3c65eb50139b1b67cdb08eec830f48887f1b381fd791b4c"
},
"aarch64_macos": {
"etag": "0x8DD493C7A153DBF",
"checksum": "700f6155c8017b2ee72131e2b707c4298b55c2a970abef6d2af0cf407ef7960f"
},
"aarch64_windows": {
"etag": "0x8DD493C8F1D18C1",
"checksum": "9bcbf23b4f0700a0bb818e33543bf79171d6850620f3eb1d872b1cadeb89f213"
}
},
"0.3.119": {
"x86_64_linux_musl": {
"etag": "0x8DD48EFF131643C",
"checksum": "3b8c3c69d6fcec0578418122dc7b69a0045ba4c91ae982b88f498ae53971d22a"
},
"x86_64_macos": {
"etag": "0x8DD48F0BA80B7C8",
"checksum": "aed372262ed9becc9f47606fdc7129af80787e323888d8a9af8b4415b8391926"
},
"x86_64_windows": {
"etag": "0x8DD48F0E65B8A2D",
"checksum": "a3b58e918f3dc7b577e7eeed670e715bca5901ef76664e096f9fab2230ef07f7"
},
"aarch64_linux_musl": {
"etag": "0x8DD48F0053A7A76",
"checksum": "1b6ad1802f03db6294efcfee57d2badad041d7725868f3418ca344ddf439a2df"
},
"aarch64_macos": {
"etag": "0x8DD48F15FD3FDEE",
"checksum": "39759880db4ca52942589c57a1c293750cc1315ae96f4cd1060ef4fefac9cc1e"
},
"aarch64_windows": {
"etag": "0x8DD48F0EC5D1CD8",
"checksum": "645cc73ecb19571ba8c145015ed80eaadeee0fbc0e5f7a49d481a5a8cc23623b"
}
},
"0.3.118": {
"x86_64_linux_musl": {

31
manifests/sccache.json generated
View File

@@ -28,7 +28,36 @@
},
"license_markdown": "[Apache-2.0](https://github.com/mozilla/sccache/blob/main/LICENSE)",
"latest": {
"version": "0.9.1"
"version": "0.10.0"
},
"0.10": {
"version": "0.10.0"
},
"0.10.0": {
"x86_64_linux_musl": {
"etag": "0x8DD55012416929F",
"checksum": "1fbb35e135660d04a2d5e42b59c7874d39b3deb17de56330b25b713ec59f849b"
},
"x86_64_macos": {
"etag": "0x8DD550122EF3D9A",
"checksum": "6d4a77802ec83607478df7b6338be28171e65e58a38a49497ebec1fbb300fce4"
},
"x86_64_windows": {
"etag": "0x8DD550123829A62",
"checksum": "0d499d0f73fa575f805df014af6ece49b840195fb7de0c552230899d77186ceb"
},
"aarch64_linux_musl": {
"etag": "0x8DD5501211A9151",
"checksum": "d6a1ce4acd02b937cd61bc675a8be029a60f7bc167594c33d75732bbc0a07400"
},
"aarch64_macos": {
"etag": "0x8DD55011FE604AA",
"checksum": "5aba39252e2efa26bd76144f87ac59787d60fe567ab785e27e2a8c8190892eac"
},
"aarch64_windows": {
"etag": "0x8DD5501207F9BF4",
"checksum": "5fd6cd6dd474e91c37510719bf27cfe1826f929e40dd383c22a7b96da9a5458d"
}
},
"0.9": {
"version": "0.9.1"

29
manifests/syft.json generated
View File

@@ -24,10 +24,35 @@
},
"license_markdown": "[Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE)",
"latest": {
"version": "1.19.0"
"version": "1.20.0"
},
"1": {
"version": "1.19.0"
"version": "1.20.0"
},
"1.20": {
"version": "1.20.0"
},
"1.20.0": {
"x86_64_linux_musl": {
"etag": "0x8DD52B9B44D9131",
"checksum": "689e12c5cbf67521ce61b9c126068f9eaabe1223e77971b2fede50033ff6b5cc"
},
"x86_64_macos": {
"etag": "0x8DD52B9B5107ADF",
"checksum": "5fdf7afd0f1bfdbb2a1a575eacef8e10edfcb4783631baaa7572a9f4a4d86441"
},
"x86_64_windows": {
"etag": "0x8DD52B9B4FD568D",
"checksum": "b8bfdedb261de2a69768097422a73bc72273ee92136ff676a20c3161e658881f"
},
"aarch64_linux_musl": {
"etag": "0x8DD52B9B448B4AE",
"checksum": "53f76737ddbf425c89240d5b0be0990b1a71e66890b44f19743221b17e6ee635"
},
"aarch64_macos": {
"etag": "0x8DD52B9B5075D68",
"checksum": "91365712a06af0c0dcd06f5e87fc8791c4332831b3dd6f5474acaaf803d71d82"
}
},
"1.19": {
"version": "1.19.0"

78
manifests/typos.json generated
View File

@@ -16,13 +16,85 @@
},
"license_markdown": "[MIT](https://github.com/crate-ci/typos/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/crate-ci/typos/blob/master/LICENSE-APACHE)",
"latest": {
"version": "1.29.5"
"version": "1.29.9"
},
"1": {
"version": "1.29.5"
"version": "1.29.9"
},
"1.29": {
"version": "1.29.5"
"version": "1.29.9"
},
"1.29.9": {
"x86_64_linux_musl": {
"etag": "0x8DD51BEAEB7902D",
"checksum": "ef985fe226e823297c9c2aa8553fb718bb11838b744c54429f2900d5dbfd5415"
},
"x86_64_macos": {
"etag": "0x8DD51BED49B2305",
"checksum": "2dbe0f9ac6a0377592c7d0cf6709caba68765036c00646bd02d608e723b64014"
},
"x86_64_windows": {
"etag": "0x8DD51BF1E2DE6DA",
"checksum": "8e85bf422026ee15b9464796c48bfb26b53a040132ed5cdf905cbf60d4283764"
},
"aarch64_macos": {
"etag": "0x8DD51BEDDC55FCA",
"checksum": "d8cdf714be02e1b5ea78376d257ebd8776e5bf2bd9ea92954b6289e7f5f041f9"
}
},
"1.29.8": {
"x86_64_linux_musl": {
"etag": "0x8DD50FF6B404955",
"checksum": "f1eebf7060e33ff08145bd5f211e75045608b39282c87483033bfe57cbeff3dc"
},
"x86_64_macos": {
"etag": "0x8DD50FF76650FE8",
"checksum": "90deb589e2d41cf808fde17f2036083c3e92a1a067f867860c4e01b37608034e"
},
"x86_64_windows": {
"etag": "0x8DD50FFEAD694DD",
"checksum": "b4590074a208bc62a4194a3ab35fbb776c785c135cb7bd6f9689c920761b962d"
},
"aarch64_macos": {
"etag": "0x8DD50FF9B929E8E",
"checksum": "f30be4284ca2780e999dcbe54c58671dcff38e715cfedd2c3c526123054f5715"
}
},
"1.29.7": {
"x86_64_linux_musl": {
"etag": "0x8DD4C4ABE7A46E8",
"checksum": "27e96ea40ce90c1c81e0c761b3c3161e8b0a0184f89cc938f101e1719754e6e6"
},
"x86_64_macos": {
"etag": "0x8DD4C4AD50F54F0",
"checksum": "5406408d4b701520d06b84b0852b8539a76a68ee28b0cec5fe506544577f6e6b"
},
"x86_64_windows": {
"etag": "0x8DD4C4B1EEE52D2",
"checksum": "4b90d1d6c4f2ef90c5dfffdbc79288576f6a5590783e6f86741c14e62baeaba6"
},
"aarch64_macos": {
"etag": "0x8DD4C4AA38D01D4",
"checksum": "e7f683d02a224515e2e0efb74fee6b8a55bd75698bef6aab0fbedafaacc6298d"
}
},
"1.29.6": {
"x86_64_linux_musl": {
"etag": "0x8DD4C447EF53536",
"checksum": "384dce303c9139f7a2834eedeea1370e5f94665cd15f97340937f070a15431f1"
},
"x86_64_macos": {
"etag": "0x8DD4C448D48BC67",
"checksum": "2d407c1bc8e92f3931138b6612848dc0a60ff1c8d7f01d4bd74ba9549ca2e4b0"
},
"x86_64_windows": {
"etag": "0x8DD4C452CE68A20",
"checksum": "bcb73abfee73a7679ee951d3565c00e4f595bbb4dd0e8b5d6aff561ebcf81262"
},
"aarch64_macos": {
"etag": "0x8DD4C449D3122A1",
"checksum": "5cd7b551962e4d62e7f82d299472d7e8df181d45babc41a46480587bb5c5633c"
}
},
"1.29.5": {
"x86_64_linux_musl": {

View File

@@ -28,7 +28,65 @@
},
"license_markdown": "[Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/main/LICENSE)",
"latest": {
"version": "29.0.1"
"version": "30.0.1"
},
"30": {
"version": "30.0.1"
},
"30.0": {
"version": "30.0.1"
},
"30.0.1": {
"x86_64_linux_gnu": {
"etag": "0x8DD52CF8F3C37D8",
"checksum": "199ad22a5bd21bb58254a08694ea21736218eb98543d8115fe5b061c86acce88"
},
"x86_64_macos": {
"etag": "0x8DD52CF90715FF0",
"checksum": "14b1c4544e8bd0b5634b8abc6645f067b4805f1cfed888c472311beb171d38a1"
},
"x86_64_windows": {
"etag": "0x8DD52CF956BD41D",
"checksum": "2403df495779198f55199bcf96b4755338bcecc47803ec892280c79936ff5a88"
},
"aarch64_linux_gnu": {
"etag": "0x8DD52CF7F0DAC3F",
"checksum": "3c7898be02de6daf70dae9daba2916dc04916ce1c5c08d7480dc394059f1962b"
},
"aarch64_macos": {
"etag": "0x8DD52CF8028D9DE",
"checksum": "7d5484feb0711efa546173e6db4a7006a8412ec1ff0df01498cf83b1450d4840"
},
"aarch64_windows": {
"etag": "0x8DD52CF82FDA8E7",
"checksum": "378304dd8b05d6ca6547013594e022af923ad047e66d4c8539c0b30f7a4fccbf"
}
},
"30.0.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD515A370042BA",
"checksum": "e5a1539288e5314eacdbace8b39412302f231233bb4f6e90551958ceb4ed5bef"
},
"x86_64_macos": {
"etag": "0x8DD515A38224727",
"checksum": "f85a5d3a13a5ef5a757bac0494cd7053fd894cc9c137e7a8fe56f3a53ec4a998"
},
"x86_64_windows": {
"etag": "0x8DD515A3CED862C",
"checksum": "e3d5f97ffea844a958b2b9a2c266ac60ea090f738ac875bf5ea5172c565be84c"
},
"aarch64_linux_gnu": {
"etag": "0x8DD515A26A641FA",
"checksum": "1b686f8c306ca37b222073ca1fa64a21b4f1a4beaaaf28627d3a0e546635f6b5"
},
"aarch64_macos": {
"etag": "0x8DD515A27E5710B",
"checksum": "04c8711e050229c94f121f62afe87722846d635d31b3ca7dddd7764c3dddf03b"
},
"aarch64_windows": {
"etag": "0x8DD515A2A941EC2",
"checksum": "5cbe71bea3af19a56207a12cd5a636165e32a592b6b55469dc6b17d5650b4c25"
}
},
"29": {
"version": "29.0.1"

27
manifests/xh.json generated
View File

@@ -24,7 +24,32 @@
},
"license_markdown": "[MIT](https://github.com/ducaale/xh/blob/master/LICENSE)",
"latest": {
"version": "0.23.1"
"version": "0.24.0"
},
"0.24": {
"version": "0.24.0"
},
"0.24.0": {
"x86_64_linux_musl": {
"etag": "0x8DD4FF88945D0F5",
"checksum": "c65ffd3aca38cb7d9a618342718650957d2f371f21435f62eb1a19229b033825"
},
"x86_64_macos": {
"etag": "0x8DD4FF8787DD46E",
"checksum": "9a16febb0eb25a0c226dbb889985f2cce1b4f3808a18113742f82f93e5a1290b"
},
"x86_64_windows": {
"etag": "0x8DD4FF8D187B278",
"checksum": "ffadf8460c5f16ccf0da36baa3703ea3da64bc74e8ef13cb9e1b5d29aba3c23d"
},
"aarch64_linux_musl": {
"etag": "0x8DD4FF876E9B91B",
"checksum": "e32e714a5babf1196d20c46b198af3083576cd0ffc94e593fc263239f14bfe8d"
},
"aarch64_macos": {
"etag": "0x8DD4FF872EAD8EB",
"checksum": "15f4fcd7c0321723455b6a56812914fd557baf05d6712d9d086a5008f1dc0579"
}
},
"0.23": {
"version": "0.23.1"

30
manifests/zola.json generated
View File

@@ -10,13 +10,41 @@
"x86_64_windows": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-x86_64-pc-windows-msvc.zip"
},
"aarch64_linux_gnu": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-aarch64-unknown-linux-gnu.tar.gz"
},
"aarch64_macos": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-aarch64-apple-darwin.tar.gz"
}
},
"license_markdown": "[MIT](https://github.com/getzola/zola/blob/master/LICENSE)",
"latest": {
"version": "0.19.2"
"version": "0.20.0"
},
"0.20": {
"version": "0.20.0"
},
"0.20.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD4D41F3D3509F",
"checksum": "ca7ed5b33a739c5b5b35a0e207e5c3578a652cd12b61c675763b3ff34c322d08"
},
"x86_64_macos": {
"etag": "0x8DD4D41F3E3B8E8",
"checksum": "23f1d5e117c7a01aa1c452cd1ffd3da1af533cf74a93762d9e4e1459fb029646"
},
"x86_64_windows": {
"etag": "0x8DD4D41F41345F4",
"checksum": "25cd5082b6717fe50fd1351a4867ece6d898211a9bf37b58180c7b4013f9e061"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4D41F41ADE85",
"checksum": "91b428514d1c6b5674ed0e7ec244152b98c0a3eb6b63bb2c887e5966f185f7fa"
},
"aarch64_macos": {
"etag": "0x8DD4D41F4283CF9",
"checksum": "6dd8a3c77baef359df00916709e954e415c5acc1fa99fcd754bb600627fb4935"
}
},
"0.19": {
"version": "0.19.2"

View File

@@ -22,7 +22,7 @@ set -x
has_update=''
for manifest in manifests/*.json; do
git add -N "${manifest}"
if ! git diff --exit-code -- "${manifest}"; then
if ! git diff --exit-code -- "${manifest}" &>/dev/null; then
name="${manifest##*/}"
name="${name%.*}"
git stash

View File

@@ -6,8 +6,13 @@ trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit w
cd -- "$(dirname -- "$0")"/../..
# They don't provide prebuilt binaries for musl or old glibc host.
# version `GLIBC_2.35' not found
glibc_pre_2_35_incompat=(
zola
)
# version `GLIBC_2.34' not found
glibc_pre_2_34_incompat=(
"${glibc_pre_2_35_incompat[@]}"
cargo-spellcheck
wait-for-them
xbuild
@@ -17,7 +22,6 @@ glibc_pre_2_31_incompat=(
"${glibc_pre_2_34_incompat[@]}"
cargo-sort
espup
zola
)
# version `GLIBC_2.28' not found
glibc_pre_2_28_incompat=(
@@ -67,28 +71,33 @@ case "$(uname -s)" in
incompat_tools+=("${musl_incompat[@]}")
else
host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed "s/.* //g")
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.34"$'\n'"${host_glibc_version}" | tail -1)
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.35"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.31"$'\n'"${host_glibc_version}" | tail -1)
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.34"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.28"$'\n'"${host_glibc_version}" | tail -1)
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.31"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.27"$'\n'"${host_glibc_version}" | tail -1)
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.28"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.17"$'\n'"${host_glibc_version}" | tail -1)
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.27"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
incompat_tools+=("${glibc_pre_2_17_incompat[@]}")
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.17"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
incompat_tools+=("${glibc_pre_2_17_incompat[@]}")
else
incompat_tools+=("${glibc_pre_2_27_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_27_incompat[@]}")
incompat_tools+=("${glibc_pre_2_28_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_28_incompat[@]}")
incompat_tools+=("${glibc_pre_2_31_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_31_incompat[@]}")
incompat_tools+=("${glibc_pre_2_34_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_34_incompat[@]}")
incompat_tools+=("${glibc_pre_2_35_incompat[@]}")
fi
fi
fi

View File

@@ -18,7 +18,7 @@ spdx = "0.10"
tar = "0.4"
toml_edit = { version = "0.22", default-features = false, features = ["parse", "serde"] }
# TODO: call curl command instead of using ureq?
ureq = { version = "3", features = ["json"] }
ureq = { version = "2", features = ["json"] }
[lints]
workspace = true

View File

@@ -9,6 +9,7 @@
"x86_64_windows": {
"asset_name": "${package}-v${version}-${rust_target}.zip"
},
"aarch64_linux_gnu": {},
"aarch64_macos": {}
}
}

View File

@@ -11,15 +11,14 @@ use std::{
time::Duration,
};
use anyhow::{bail, Context as _, Result};
use anyhow::{Context as _, Result, bail};
use fs_err as fs;
use install_action_internal_codegen::{
workspace_root, BaseManifest, HostPlatform, Manifest, ManifestDownloadInfo, ManifestRef,
ManifestTemplate, ManifestTemplateDownloadInfo, Manifests, Signing, SigningKind, Version,
BaseManifest, HostPlatform, Manifest, ManifestDownloadInfo, ManifestRef, ManifestTemplate,
ManifestTemplateDownloadInfo, Manifests, Signing, SigningKind, Version, workspace_root,
};
use sha2::{Digest as _, Sha256};
use spdx::expression::{ExprNode, ExpressionReq, Operator};
use ureq::http::header;
fn main() -> Result<()> {
let args: Vec<_> = env::args().skip(1).collect();
@@ -53,7 +52,7 @@ fn main() -> Result<()> {
eprintln!("downloading metadata from https://api.github.com/repos/{repo}");
let repo_info: github::RepoMetadata =
download(&format!("https://api.github.com/repos/{repo}"))?.body_mut().read_json()?;
download(&format!("https://api.github.com/repos/{repo}"))?.into_json()?;
eprintln!("downloading releases from https://api.github.com/repos/{repo}/releases");
let mut releases: github::Releases = vec![];
@@ -64,8 +63,7 @@ fn main() -> Result<()> {
let mut r: github::Releases = download(&format!(
"https://api.github.com/repos/{repo}/releases?per_page={per_page}&page={page}"
))?
.body_mut()
.read_json()?;
.into_json()?;
// If version_req is latest, it is usually sufficient to look at the latest 100 releases.
if r.len() < per_page || version_req.is_some_and(|req| req == "latest") {
releases.append(&mut r);
@@ -100,13 +98,11 @@ fn main() -> Result<()> {
if let Some(crate_name) = &base_info.rust_crate {
eprintln!("downloading crate info from https://crates.io/api/v1/crates/{crate_name}");
let info = download(&format!("https://crates.io/api/v1/crates/{crate_name}"))?
.body_mut()
.read_json::<crates_io::Crate>()?;
.into_json::<crates_io::Crate>()?;
let latest_version = &info.versions[0].num;
crates_io_version_detail = Some(
download(&format!("https://crates.io/api/v1/crates/{crate_name}/{latest_version}"))?
.body_mut()
.read_json::<crates_io::VersionMetadata>()?
.into_json::<crates_io::VersionMetadata>()?
.version,
);
@@ -197,7 +193,7 @@ fn main() -> Result<()> {
let version_req: Option<semver::VersionReq> = match version_req {
_ if latest_only => {
let req = format!("={}", releases.first_key_value().unwrap().0 .0).parse()?;
let req = format!("={}", releases.first_key_value().unwrap().0.0).parse()?;
eprintln!("update manifest for versions '{req}'");
Some(req)
}
@@ -219,7 +215,7 @@ fn main() -> Result<()> {
let req = if version_req == "latest" {
// TODO: this should check all missing versions
if manifests.map.is_empty() {
format!("={}", releases.first_key_value().unwrap().0 .0).parse()?
format!("={}", releases.first_key_value().unwrap().0.0).parse()?
} else {
format!(">={}", semver_versions.last().unwrap()).parse()?
}
@@ -296,13 +292,8 @@ fn main() -> Result<()> {
Path::new(&url).file_name().unwrap().to_str().unwrap()
));
let response = download(&url)?;
let etag = response
.headers()
.get("etag")
.expect("binary should have an etag")
.to_str()
.unwrap()
.replace('\"', "");
let etag =
response.header("etag").expect("binary should have an etag").replace('\"', "");
if let Some(ManifestRef::Real(ref manifest)) = existing_manifest {
if let Some(entry) = manifest.download_info.get(&platform) {
@@ -319,9 +310,9 @@ fn main() -> Result<()> {
if download_cache.is_file() {
eprintln!("already downloaded");
fs::File::open(download_cache)?.read_to_end(&mut buf)?;
fs::File::open(download_cache)?.read_to_end(&mut buf)?; // Not buffered because it is read at once.
} else {
response.into_body().into_reader().read_to_end(&mut buf)?;
response.into_reader().read_to_end(&mut buf)?;
eprintln!("download complete");
fs::write(download_cache, &buf)?;
}
@@ -344,7 +335,7 @@ fn main() -> Result<()> {
eprintln!("already downloaded");
minisign_verify::Signature::from_file(sig_download_cache)?
} else {
let buf = download(&url)?.body_mut().read_to_string()?;
let buf = download(&url)?.into_string()?;
eprintln!("download complete");
fs::write(sig_download_cache, &buf)?;
minisign_verify::Signature::decode(&buf)?
@@ -362,7 +353,7 @@ fn main() -> Result<()> {
if crate_download_cache.is_file() {
eprintln!("already downloaded");
} else {
download(&url)?.into_body().into_reader().read_to_end(&mut buf2)?;
download(&url)?.into_reader().read_to_end(&mut buf2)?;
let hash = Sha256::digest(&buf2);
if format!("{hash:x}") != v.checksum {
bail!("checksum mismatch for {url}");
@@ -454,6 +445,14 @@ fn main() -> Result<()> {
// macOS universal binary or x86_64 binary that works on both x86_64 and AArch64 (rosetta).
download_info.remove(&HostPlatform::aarch64_macos);
}
if download_info.contains_key(&HostPlatform::x86_64_windows)
&& download_info.contains_key(&HostPlatform::aarch64_windows)
&& download_info[&HostPlatform::x86_64_windows].url
== download_info[&HostPlatform::aarch64_windows].url
{
// x86_64 Windows binary that works on both x86_64 and AArch64.
download_info.remove(&HostPlatform::aarch64_windows);
}
has_build_metadata |= !semver_version.build.is_empty();
if semver_version.pre.is_empty() {
semver_versions.insert(semver_version.clone());
@@ -691,7 +690,7 @@ static GITHUB_TOKENS: LazyLock<GitHubTokens> = LazyLock::new(|| {
}
});
fn download(url: &str) -> Result<ureq::http::Response<ureq::Body>> {
fn download(url: &str) -> Result<ureq::Response> {
let mut token = GITHUB_TOKENS.get(url);
let mut retry = 0;
let mut retry_time = 0;
@@ -703,7 +702,7 @@ fn download(url: &str) -> Result<ureq::http::Response<ureq::Body>> {
loop {
let mut req = ureq::get(url);
if let Some(token) = &token {
req = req.header(header::AUTHORIZATION, &format!("Bearer {token}"));
req = req.set("Authorization", &format!("Bearer {token}"));
}
match req.call() {
Ok(res) => return Ok(res),
@@ -739,12 +738,12 @@ fn github_head(url: &str) -> Result<()> {
loop {
let mut req = ureq::head(url);
if let Some(token) = &token {
req = req.header(header::AUTHORIZATION, &format!("Bearer {token}"));
req = req.set("Authorization", &format!("Bearer {token}"));
}
match req.call() {
Ok(_) => return Ok(()),
// rate limit
Err(e @ ureq::Error::StatusCode(403)) => last_error = Some(e),
Err(e @ ureq::Error::Status(403, _)) => last_error = Some(e),
Err(e) => return Err(e.into()),
}
retry_time += 1;
@@ -853,7 +852,9 @@ fn get_license_markdown(spdx_expr: &str, repo: &str, default_branch: &str) -> Op
panic!("Unable to find any license files in the repo for licenses {license_ids:?}");
}
if license_markdowns.len() != len {
panic!("Unable to find license files in the repo for all licenses {license_ids:?}; found {license_markdowns:?}");
panic!(
"Unable to find license files in the repo for all licenses {license_ids:?}; found {license_markdowns:?}"
);
}
match op {
None => panic!("op expected"),

View File

@@ -1,10 +1,14 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT
use std::{env, fmt, io::Write as _, path::PathBuf};
use std::{
env, fmt,
io::{BufWriter, Write as _},
path::PathBuf,
};
use anyhow::Result;
use fs_err as fs;
use install_action_internal_codegen::{workspace_root, BaseManifest, Manifests};
use install_action_internal_codegen::{BaseManifest, Manifests, workspace_root};
const HEADER: &str = "# Tools
@@ -111,8 +115,7 @@ fn main() -> Result<()> {
let mut markdown_file = workspace_root.clone();
markdown_file.push("TOOLS.md");
let file = std::fs::File::create(markdown_file).expect("Unable to create file");
let mut file = std::io::BufWriter::new(file);
let mut file = BufWriter::new(fs::File::create(markdown_file).unwrap()); // Buffered because it is written many times.
file.write_all(HEADER.as_bytes()).expect("Unable to write header");
@@ -121,6 +124,7 @@ fn main() -> Result<()> {
}
file.write_all(FOOTER.as_bytes()).expect("Unable to write footer");
file.flush()?;
Ok(())
}

View File

@@ -144,8 +144,9 @@ tools+=(valgrind)
for tool in "${tools[@]}"; do
git checkout -b "${tool}"
sed -E "${in_place[@]}" "s/required: true/required: false/g" action.yml
sed -E "${in_place[@]}" "s/# default: #publish:tool/default: ${tool}/g" action.yml
sed -E "${in_place[@]}" action.yml \
-e "s/required: true/required: false/g" \
-e "s/# default: #publish:tool/default: ${tool}/g"
git add action.yml
git commit -m "${tool}"
retry git push origin -f refs/heads/"${tool}"
@@ -193,9 +194,11 @@ cp -- ./manifests/* "${schema_workspace}"
# Detect changes, then commit and push if changes exist
if [[ "$(git status --porcelain=v1 | wc -l)" != "0" ]]; then
git commit -m 'Update manifest schema'
git push origin HEAD
retry git push origin HEAD
fi
)
rm -rf -- "${schema_workspace}"
git worktree prune
# TODO: get branch in schema_workspace dir instead
git branch -D "${schema_branch}" "${schema_workspace##*/}"

View File

@@ -11,7 +11,7 @@ cd -- "$(dirname -- "$0")"/..
# ./tools/tidy.sh
#
# Note: This script requires the following tools:
# - git
# - git 1.8+
# - jq 1.6+
# - npm (node 18+)
# - python 3.6+
@@ -60,7 +60,11 @@ print_fenced() {
printf '=======================================\n\n'
}
check_diff() {
if [[ -n "${CI:-}" ]]; then
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
if ! git -c color.ui=always --no-pager diff --exit-code "$@"; then
should_fail=1
fi
elif [[ -n "${CI:-}" ]]; then
if ! git --no-pager diff --exit-code "$@"; then
should_fail=1
fi
@@ -489,9 +493,7 @@ prettier_ext=('*.css' '*.html' '*.js' '*.json' '*.yml' '*.yaml')
if [[ -n "$(ls_files "${prettier_ext[@]}")" ]]; then
info "checking YAML/HTML/CSS/JavaScript/JSON code style"
check_config .editorconfig
if [[ "${ostype}" == 'solaris' ]] && [[ -n "${CI:-}" ]] && ! type -P npm >/dev/null; then
warn "this check is skipped on Solaris due to no node 18+ in upstream package manager"
elif check_install npm; then
if check_install npm; then
IFS=' '
info "running \`npx -y prettier -l -w \$(git ls-files ${prettier_ext[*]})\`"
IFS=$'\n\t'
@@ -510,9 +512,7 @@ check_alt '.yml extension' '.yaml extension' "$(ls_files '*.yaml' | { grep -Fv '
if [[ -n "$(ls_files '*.toml' | { grep -Fv '.taplo.toml' || true; })" ]]; then
info "checking TOML style"
check_config .taplo.toml
if [[ "${ostype}" == 'solaris' ]] && [[ -n "${CI:-}" ]] && ! type -P npm >/dev/null; then
warn "this check is skipped on Solaris due to no node 18+ in upstream package manager"
elif check_install npm; then
if check_install npm; then
info "running \`npx -y @taplo/cli fmt \$(git ls-files '*.toml')\`"
RUST_LOG=warn npx -y @taplo/cli fmt $(ls_files '*.toml')
check_diff $(ls_files '*.toml')
@@ -527,9 +527,7 @@ check_hidden taplo.toml
if [[ -n "$(ls_files '*.md')" ]]; then
info "checking markdown style"
check_config .markdownlint-cli2.yaml
if [[ "${ostype}" == 'solaris' ]] && [[ -n "${CI:-}" ]] && ! type -P npm >/dev/null; then
warn "this check is skipped on Solaris due to no node 18+ in upstream package manager"
elif check_install npm; then
if check_install npm; then
info "running \`npx -y markdownlint-cli2 \$(git ls-files '*.md')\`"
if ! npx -y markdownlint-cli2 $(ls_files '*.md'); then
error "check failed; please resolve the above markdownlint error(s)"
@@ -669,12 +667,7 @@ elif check_install shellcheck; then
# Exclude SC2096 due to the way the temporary script is created.
shellcheck_exclude=SC2096
info "running \`shellcheck --exclude ${shellcheck_exclude}\` for scripts in \$(git ls-files '*Dockerfile*')\`"
if [[ "${ostype}" == 'windows' ]]; then
# No such file or directory: '/proc/N/fd/N'
warn "this check is skipped on Windows due to upstream bug (failed to found fd created by <())"
elif [[ "${ostype}" == 'dragonfly' ]]; then
warn "this check is skipped on DragonFly BSD due to upstream bug (hang)"
elif check_install jq python3 parse-dockerfile; then
if check_install jq python3 parse-dockerfile; then
shellcheck_for_dockerfile() {
local text=$1
local shell=$2
@@ -684,15 +677,23 @@ elif check_install shellcheck; then
fi
text="#!${shell}"$'\n'"${text}"
case "${ostype}" in
windows) text=${text//\r/} ;;
windows) text=${text//$'\r'/} ;; # Parse error on git bash/msys2 bash.
esac
local color=auto
if [[ -t 1 ]] || [[ -n "${GITHUB_ACTIONS:-}" ]]; then
color=always
fi
if ! shellcheck --color="${color}" --exclude "${shellcheck_exclude}" <(printf '%s\n' "${text}") | sed "s/\/dev\/fd\/[0-9][0-9]*/$(sed_rhs_escape "${display_path}")/g"; then
# We don't use <(printf '%s\n' "${text}") here because:
# Windows: failed to found fd created by <() ("/proc/*/fd/* (git bash/msys2 bash) /dev/fd/* (cygwin bash): openBinaryFile: does not exist (No such file or directory)" error)
# DragonFly BSD: hang
# Others: false negative
trap -- 'rm -- ./tools/.tidy-tmp; printf >&2 "%s\n" "${0##*/}: trapped SIGINT"; exit 1' SIGINT
printf '%s\n' "${text}" >|./tools/.tidy-tmp
if ! shellcheck --color="${color}" --exclude "${shellcheck_exclude}" ./tools/.tidy-tmp | sed "s/\.\/tools\/\.tidy-tmp/$(sed_rhs_escape "${display_path}")/g"; then
error "check failed; please resolve the above shellcheck error(s)"
fi
rm -- ./tools/.tidy-tmp
trap -- 'printf >&2 "%s\n" "${0##*/}: trapped SIGINT"; exit 1' SIGINT
}
for dockerfile_path in ${docker_files[@]+"${docker_files[@]}"}; do
dockerfile=$(parse-dockerfile "${dockerfile_path}")
@@ -799,12 +800,7 @@ elif check_install shellcheck; then
# Exclude SC2096 due to the way the temporary script is created.
shellcheck_exclude=SC2086,SC2096,SC2129
info "running \`shellcheck --exclude ${shellcheck_exclude}\` for scripts in .github/workflows/*.yml and **/action.yml"
if [[ "${ostype}" == 'windows' ]]; then
# No such file or directory: '/proc/N/fd/N'
warn "this check is skipped on Windows due to upstream bug (failed to found fd created by <())"
elif [[ "${ostype}" == 'dragonfly' ]]; then
warn "this check is skipped on DragonFly BSD due to upstream bug (hang)"
elif check_install jq python3; then
if check_install jq python3; then
shellcheck_for_gha() {
local text=$1
local shell=$2
@@ -816,27 +812,33 @@ elif check_install shellcheck; then
bash* | sh*) ;;
*) return ;;
esac
text="#!/usr/bin/env ${shell%' {0}'}"$'\n'"${text}"
# Use python because sed doesn't support .*?.
text=$(
"python${py_suffix}" - <(printf '%s\n%s' "#!/usr/bin/env ${shell%' {0}'}" "${text}") <<EOF
"python${py_suffix}" - <<EOF
import re
import sys
with open(sys.argv[1], 'r') as f:
text = f.read()
text = re.sub(r"\\\${{.*?}}", "\${__GHA_SYNTAX__}", text)
text = re.sub(r"\\\${{.*?}}", "\${__GHA_SYNTAX__}", r'''${text}''')
print(text)
EOF
)
case "${ostype}" in
windows) text=${text//\r/} ;;
windows) text=${text//$'\r'/} ;; # Python print emits \r\n.
esac
local color=auto
if [[ -t 1 ]] || [[ -n "${GITHUB_ACTIONS:-}" ]]; then
color=always
fi
if ! shellcheck --color="${color}" --exclude "${shellcheck_exclude}" <(printf '%s\n' "${text}") | sed "s/\/dev\/fd\/[0-9][0-9]*/$(sed_rhs_escape "${display_path}")/g"; then
# We don't use <(printf '%s\n' "${text}") here because:
# Windows: failed to found fd created by <() ("/proc/*/fd/* (git bash/msys2 bash) /dev/fd/* (cygwin bash): openBinaryFile: does not exist (No such file or directory)" error)
# DragonFly BSD: hang
# Others: false negative
trap -- 'rm -- ./tools/.tidy-tmp; printf >&2 "%s\n" "${0##*/}: trapped SIGINT"; exit 1' SIGINT
printf '%s\n' "${text}" >|./tools/.tidy-tmp
if ! shellcheck --color="${color}" --exclude "${shellcheck_exclude}" ./tools/.tidy-tmp | sed "s/\.\/tools\/\.tidy-tmp/$(sed_rhs_escape "${display_path}")/g"; then
error "check failed; please resolve the above shellcheck error(s)"
fi
rm -- ./tools/.tidy-tmp
trap -- 'printf >&2 "%s\n" "${0##*/}: trapped SIGINT"; exit 1' SIGINT
}
for workflow_path in ${workflows[@]+"${workflows[@]}"}; do
workflow=$(yq -c '.' "${workflow_path}")
@@ -966,11 +968,7 @@ fi
if [[ -f .cspell.json ]]; then
info "spell checking"
project_dictionary=.github/.cspell/project-dictionary.txt
if [[ "${ostype}" == 'solaris' ]] && [[ -n "${CI:-}" ]] && ! type -P npm >/dev/null; then
warn "this check is skipped on Solaris due to no node 18+ in upstream package manager"
elif [[ "${ostype}" == 'illumos' ]]; then
warn "this check is skipped on illumos due to upstream bug (dictionaries are not loaded correctly)"
elif check_install npm jq python3; then
if check_install npm jq python3; then
has_rust=''
if [[ -n "$(ls_files '*Cargo.toml')" ]]; then
has_rust=1