Compare commits

...

82 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
Taiki Endo
a2e9aff0dd Release 2.48.2 2025-02-09 10:10:00 +09:00
Taiki Endo
cc0065f838 Update release-plz@latest to 0.3.118 2025-02-09 10:09:19 +09:00
Taiki Endo
be9e3c2b45 Update readme 2025-02-09 02:54:59 +09:00
Taiki Endo
e067f32759 Remove needless escape 2025-02-09 02:54:13 +09:00
Taiki Endo
98c0ece291 Update comments 2025-02-08 15:38:36 +09:00
Taiki Endo
bee06ee963 codegen: Update ureq from 2 to 3 2025-02-06 23:24:03 +09:00
Taiki Endo
daca891144 Update parse-dockerfile@latest to 0.1.1 2025-02-06 22:24:27 +09:00
Taiki Endo
de09ec7413 Update parse-changelog@latest to 0.6.12 2025-02-06 22:24:27 +09:00
Taiki Endo
20d06c5ef0 Fix jq handling on Windows
Fix regression introduced in unreleased 400052b460.
2025-02-05 21:24:56 +09:00
Taiki Endo
8fe89aa3e0 gitattributes: Disable linguist detection for tools/tidy.sh 2025-02-05 15:55:23 +09:00
Taiki Endo
4666e04560 tools: Update tidy.sh and related configs 2025-02-04 01:29:05 +09:00
Taiki Endo
400052b460 Clean up scripts 2025-02-04 01:28:26 +09:00
Taiki Endo
f9f8058789 Add .git-blame-ignore-revs 2025-02-04 01:10:30 +09:00
Taiki Endo
72827a9779 ci: Move manifest job to its own workflow to reduce needless test runs 2025-02-04 00:23:41 +09:00
Taiki Endo
55ec4a4d53 Remove duplicate in action.yml 2025-02-03 22:15:36 +09:00
Taiki Endo
dc9bc151a3 Update .cspell.json 2025-02-03 07:27:19 +09:00
44 changed files with 2250 additions and 616 deletions

View File

@@ -27,24 +27,25 @@
"ignoreRegExpList": [
// Copyright notice
"Copyright .*",
"SPDX-(File|Snippet)CopyrightText: .*",
// GHA actions/workflows
"uses: .+@",
"uses: .+@[\\w_.-]+",
// GHA context (repo name, owner name, etc.)
"github.\\w+ (=|!)= '.+'",
"github.[\\w_.-]+ (=|!)= '[^']+'",
// GH username
"( |\\[)@[\\w_-]+",
// Git config username
"git config user.name .*",
// Username in todo comment
"git config( --[^ ]+)? user.name .*",
// Username in TODO|FIXME comment
"(TODO|FIXME)\\([\\w_., -]+\\)",
// Cargo.toml authors
"authors *= *\\[.*\\]",
"\".* <[\\w_.+-]+@[\\w.-]+>\""
"authors *= *\\[[^\\]]*\\]",
"\"[^\"]* <[\\w_.+-]+@[\\w.-]+>\""
],
"languageSettings": [
{
"languageId": ["*"],
"dictionaries": ["bash", "rust"]
"dictionaries": ["bash", "cpp-refined", "rust"]
}
],
"ignorePaths": []

View File

@@ -11,12 +11,14 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.{json,md,rb,sh,yml,yaml}]
[*.{css,html,json,md,rb,sh,yml,yaml}]
indent_size = 2
[*.{js,yml,yaml}]
quote_type = single
[*.sh]
# https://google.github.io/styleguide/shellguide.html#s5.3-pipelines
binary_next_line = true
# https://google.github.io/styleguide/shellguide.html#s5.5-case-statement
switch_case_indent = true

2
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1,2 @@
# Change indent size of shell script files to match scripts in CI config
946918579413996845b77e146aa8eb3c6f40f7ab

1
.gitattributes vendored
View File

@@ -1,3 +1,4 @@
* text=auto eol=lf
tools/tidy.sh linguist-detectable=false
.github/.cspell/rust-dependencies.txt linguist-generated
manifests/** linguist-generated

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

@@ -11,7 +11,7 @@ on:
- dev
- ci-*
schedule:
- cron: '0 0,3,6,9,12,15,18,21 * * *'
- cron: '0 0 * * *'
workflow_dispatch:
env:
@@ -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
@@ -232,49 +232,3 @@ jobs:
shell: sh
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "sh": executable file not found in $PATH: unknown
if: (!startsWith(matrix.container, 'opensuse'))
manifest:
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: read
pull-requests: write # for gh pr review --approve
steps:
- uses: taiki-e/checkout-action@v1
- uses: taiki-e/github-actions/install-rust@stable
- name: Generate Cargo.lock
run: cargo update
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: 'true'
- run: tools/manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle diff
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
- id: create-pull-request
uses: peter-evans/create-pull-request@v7
with:
title: Update manifest
body: |
Auto-generated by CI using [create-pull-request](https://github.com/peter-evans/create-pull-request).
This will be auto-merged when CI has passed because this is an auto-generated PR in a defined format and is usually considered no additional review is required.
branch: update-manifest
token: ${{ secrets.CREATE_PR_TOKEN }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false'
- name: Enable auto-merge for auto-generated PR
run: gh pr merge --rebase --auto "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.CREATE_PR_TOKEN }}
PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' && steps.create-pull-request.outputs.pull-request-operation == 'created'
- name: Approve auto-generated PR for auto-merge
run: gh pr review --approve "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' && (steps.create-pull-request.outputs.pull-request-operation == 'created' || steps.create-pull-request.outputs.pull-request-operation == 'updated')

79
.github/workflows/manifest.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Manifest
permissions:
contents: read
on:
pull_request:
push:
branches:
- main
- dev
- ci-*
schedule:
- cron: '0 0,3,6,9,12,15,18,21 * * *'
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_NET_RETRY: 10
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10
defaults:
run:
shell: bash --noprofile --norc -CeEuxo pipefail {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
manifest:
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: read
pull-requests: write # for gh pr review --approve
steps:
- uses: taiki-e/checkout-action@v1
- uses: taiki-e/github-actions/install-rust@stable
- name: Generate Cargo.lock
run: cargo update
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: 'true'
- run: tools/manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle diff
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 -c color.ui=always diff --exit-code
- id: create-pull-request
uses: peter-evans/create-pull-request@v7
with:
title: Update manifest
body: |
Auto-generated by CI using [create-pull-request](https://github.com/peter-evans/create-pull-request).
This will be auto-merged when CI has passed because this is an auto-generated PR in a defined format and is usually considered no additional review is required.
branch: update-manifest
token: ${{ secrets.CREATE_PR_TOKEN }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false'
- name: Enable auto-merge for auto-generated PR
run: gh pr merge --rebase --auto "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.CREATE_PR_TOKEN }}
PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' && steps.create-pull-request.outputs.pull-request-operation == 'created'
- name: Approve auto-generated PR for auto-merge
run: gh pr review --approve "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' && (steps.create-pull-request.outputs.pull-request-operation == 'created' || steps.create-pull-request.outputs.pull-request-operation == 'updated')

View File

@@ -2,7 +2,7 @@
config:
line-length: false # MD013
no-duplicate-heading: false # MD024
no-blanks-blockquote: false # MD028
no-blanks-blockquote: false # MD028 (this warns valid GFM alerts usage)
no-inline-html: false # MD033
no-emphasis-as-heading: false # MD036

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

@@ -2,13 +2,34 @@
# https://github.com/koalaman/shellcheck/blob/HEAD/shellcheck.1.md#rc-files
# See also:
# https://www.shellcheck.net/wiki/Optional
# https://github.com/koalaman/shellcheck/wiki/Optional
# https://google.github.io/styleguide/shellguide.html
# https://www.shellcheck.net/wiki/SC2292
# https://github.com/koalaman/shellcheck/wiki/SC2249
# enable=add-default-case
# https://github.com/koalaman/shellcheck/wiki/SC2244
enable=avoid-nullary-conditions
# https://github.com/koalaman/shellcheck/wiki/SC2312
# enable=check-extra-masked-returns
# https://github.com/koalaman/shellcheck/wiki/SC2310
# https://github.com/koalaman/shellcheck/wiki/SC2311
# enable=check-set-e-suppressed
# enable=check-unassigned-uppercase
# https://github.com/koalaman/shellcheck/wiki/SC2230
enable=deprecate-which
# https://github.com/koalaman/shellcheck/wiki/SC2248
enable=quote-safe-variables
# https://github.com/koalaman/shellcheck/wiki/SC2292
# https://google.github.io/styleguide/shellguide.html#s6.3-tests
enable=require-double-brackets
# https://www.shellcheck.net/wiki/SC2250
# https://github.com/koalaman/shellcheck/wiki/SC2250
# https://google.github.io/styleguide/shellguide.html#s5.6-variable-expansion
enable=require-variable-braces

View File

@@ -10,6 +10,126 @@ 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.
- Update `parse-dockerfile@latest` to 0.1.1.
- Update `parse-changelog@latest` to 0.6.12.
## [2.48.1] - 2025-02-02
- Update `dprint@latest` to 0.49.0.
@@ -3448,7 +3568,31 @@ 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.1...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
[2.47.32]: https://github.com/taiki-e/install-action/compare/v2.47.31...v2.47.32

View File

@@ -3,7 +3,7 @@ resolver = "2"
members = ["tools/codegen", "tools/manifest-schema"]
# This table is shared by projects under github.com/taiki-e.
# It is not intended for manual editing.
# Expect for unexpected_cfgs.check-cfg, it is not intended for manual editing.
[workspace.lints.rust]
deprecated_safe = "warn"
improper_ctypes = "warn"

View File

@@ -116,7 +116,7 @@ On Linux, if any required tools are missing, this action will attempt to install
On other platforms, at least the following tools are required:
- bash 3.2+
- jq 1.3+
- jq 1.3+ (only on non-Windows platforms)
- curl 7.34+ (or RHEL7/CentOS7's patched curl 7.29)
Known environments affected by the above version requirements are CentOS 6 (EoL on 2020-11) using curl 7.19, and Ubuntu 12.04 (EoL on 2017-04) using curl 7.22 (see "Install requirements" in [our CI config](https://github.com/taiki-e/install-action/blob/HEAD/.github/workflows/ci.yml) for example of workaround).

View File

@@ -40,14 +40,8 @@ runs:
exit 1
fi
fi
bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
shell: sh
env:
INPUT_TOOL: ${{ inputs.tool }}
INPUT_CHECKSUM: ${{ inputs.checksum }}
INPUT_FALLBACK: ${{ inputs.fallback }}
DEFAULT_GITHUB_TOKEN: ${{ github.token }}
if: runner.os != 'Windows'
if: runner.os == 'Linux'
- run: bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
shell: bash
env:
@@ -55,4 +49,3 @@ runs:
INPUT_CHECKSUM: ${{ inputs.checksum }}
INPUT_FALLBACK: ${{ inputs.fallback }}
DEFAULT_GITHUB_TOKEN: ${{ github.token }}
if: runner.os == 'Windows'

305
main.sh
View File

@@ -1,14 +1,12 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail
set -CeEuo pipefail
IFS=$'\n\t'
rx() {
local cmd="$1"
shift
(
set -x
"${cmd}" "$@"
"$@"
)
}
retry() {
@@ -22,17 +20,17 @@ retry() {
"$@"
}
bail() {
echo "::error::$*"
printf '::error::%s\n' "$*"
exit 1
}
warn() {
echo "::warning::$*"
printf '::warning::%s\n' "$*"
}
info() {
echo "info: $*"
printf >&2 'info: %s\n' "$*"
}
_sudo() {
if type -P sudo &>/dev/null; then
if type -P sudo >/dev/null; then
sudo "$@"
else
"$@"
@@ -42,15 +40,15 @@ download_and_checksum() {
local url="$1"
local checksum="$2"
if [[ -z "${enable_checksum}" ]]; then
checksum=""
checksum=''
fi
info "downloading ${url}"
retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "${url}" -o tmp
if [[ -n "${checksum}" ]]; then
info "verifying sha256 checksum for $(basename "${url}")"
if type -P sha256sum &>/dev/null; then
info "verifying sha256 checksum for $(basename -- "${url}")"
if type -P sha256sum >/dev/null; then
sha256sum -c - >/dev/null <<<"${checksum} *tmp"
elif type -P shasum &>/dev/null; then
elif type -P shasum >/dev/null; then
# GitHub-hosted macOS runner does not install GNU Coreutils by default.
# https://github.com/actions/runner-images/issues/90
shasum -a 256 -c - >/dev/null <<<"${checksum} *tmp"
@@ -80,7 +78,7 @@ download_and_extract() {
editorconfig-checker) installed_bin=("${bin_dir}/${tool}${exe}") ;;
*)
for tmp in "${bin_in_archive[@]}"; do
installed_bin+=("${bin_dir}/$(basename "${tmp}")")
installed_bin+=("${bin_dir}/$(basename -- "${tmp}")")
done
;;
esac
@@ -88,70 +86,70 @@ download_and_extract() {
local tar_args=()
case "${url}" in
*.tar.gz | *.tgz)
tar_args+=("xzf")
if ! type -P gzip &>/dev/null; then
tar_args+=('xzf')
if ! type -P gzip >/dev/null; then
case "${base_distro}" in
debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (gzip)"
printf '::group::Install packages required for installation (gzip)\n'
sys_install gzip
echo "::endgroup::"
printf '::endgroup::\n'
;;
esac
fi
;;
*.tar.bz2 | *.tbz2)
tar_args+=("xjf")
if ! type -P bzip2 &>/dev/null; then
tar_args+=('xjf')
if ! type -P bzip2 >/dev/null; then
case "${base_distro}" in
debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (bzip2)"
printf '::group::Install packages required for installation (bzip2)\n'
sys_install bzip2
echo "::endgroup::"
printf '::endgroup::\n'
;;
esac
fi
;;
*.tar.xz | *.txz)
tar_args+=("xJf")
if ! type -P xz &>/dev/null; then
tar_args+=('xJf')
if ! type -P xz >/dev/null; then
case "${base_distro}" in
debian)
echo "::group::Install packages required for installation (xz-utils)"
printf '::group::Install packages required for installation (xz-utils)\n'
sys_install xz-utils
echo "::endgroup::"
printf '::endgroup::\n'
;;
fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (xz)"
printf '::group::Install packages required for installation (xz)\n'
sys_install xz
echo "::endgroup::"
printf '::endgroup::\n'
;;
esac
fi
;;
*.zip)
if ! type -P unzip &>/dev/null; then
if ! type -P unzip >/dev/null; then
case "${base_distro}" in
debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (unzip)"
printf '::group::Install packages required for installation (unzip)\n'
sys_install unzip
echo "::endgroup::"
printf '::endgroup::\n'
;;
esac
fi
;;
esac
mkdir -p "${tmp_dir}"
mkdir -p -- "${tmp_dir}"
(
cd "${tmp_dir}"
cd -- "${tmp_dir}"
download_and_checksum "${url}" "${checksum}"
if [[ ${#tar_args[@]} -gt 0 ]]; then
tar_args+=("tmp")
tar "${tar_args[@]}"
for tmp in "${bin_in_archive[@]}"; do
case "${tool}" in
editorconfig-checker) mv "${tmp}" "${bin_dir}/${tool}${exe}" ;;
*) mv "${tmp}" "${bin_dir}/" ;;
editorconfig-checker) mv -- "${tmp}" "${bin_dir}/${tool}${exe}" ;;
*) mv -- "${tmp}" "${bin_dir}/" ;;
esac
done
else
@@ -160,20 +158,20 @@ download_and_extract() {
unzip -q tmp "${bin_in_archive#\./}"
for tmp in "${bin_in_archive[@]}"; do
case "${tool}" in
editorconfig-checker) mv "${tmp}" "${bin_dir}/${tool}${exe}" ;;
*) mv "${tmp}" "${bin_dir}/" ;;
editorconfig-checker) mv -- "${tmp}" "${bin_dir}/${tool}${exe}" ;;
*) mv -- "${tmp}" "${bin_dir}/" ;;
esac
done
;;
*)
for tmp in "${installed_bin[@]}"; do
mv tmp "${tmp}"
mv -- tmp "${tmp}"
done
;;
esac
fi
)
rm -rf "${tmp_dir}"
rm -rf -- "${tmp_dir}"
case "${host_os}" in
linux | macos)
@@ -189,28 +187,28 @@ read_manifest() {
local tool="$1"
local version="$2"
local manifest
rust_crate=$(call_jq -r ".rust_crate" "${manifest_dir}/${tool}.json")
manifest=$(call_jq -r ".[\"${version}\"]" "${manifest_dir}/${tool}.json")
rust_crate=$(jq -r '.rust_crate' "${manifest_dir}/${tool}.json")
manifest=$(jq -r ".[\"${version}\"]" "${manifest_dir}/${tool}.json")
if [[ "${manifest}" == "null" ]]; then
download_info="null"
return 0
fi
exact_version=$(call_jq <<<"${manifest}" -r '.version')
exact_version=$(jq -r '.version' <<<"${manifest}")
if [[ "${exact_version}" == "null" ]]; then
exact_version="${version}"
else
manifest=$(call_jq -r ".[\"${exact_version}\"]" "${manifest_dir}/${tool}.json")
manifest=$(jq -r ".[\"${exact_version}\"]" "${manifest_dir}/${tool}.json")
if [[ "${rust_crate}" != "null" ]]; then
# TODO: don't hardcode tool name and use 'immediate_yank_reflection' field in base manifest.
case "${tool}" in
cargo-nextest | nextest)
crate_info=$(retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}")
while true; do
yanked=$(jq <<<"${crate_info}" -r ".versions[] | select(.num == \"${exact_version}\") | .yanked")
yanked=$(jq -r ".versions[] | select(.num == \"${exact_version}\") | .yanked" <<<"${crate_info}")
if [[ "${yanked}" != "true" ]]; then
break
fi
previous_stable_version=$(jq <<<"${manifest}" -r '.previous_stable_version')
previous_stable_version=$(jq -r '.previous_stable_version' <<<"${manifest}")
if [[ "${previous_stable_version}" == "null" ]]; then
break
fi
@@ -229,26 +227,26 @@ read_manifest() {
# usually preferred over linux-gnu binaries because they can avoid glibc version issues.
# (rustc enables statically linking for linux-musl by default, except for mips.)
host_platform="${host_arch}_linux_musl"
download_info=$(call_jq <<<"${manifest}" -r ".${host_platform}")
download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
if [[ "${download_info}" == "null" ]]; then
# Even if host_env is musl, we won't issue an error here because it seems that in
# some cases linux-gnu binaries will work on linux-musl hosts.
# https://wiki.alpinelinux.org/wiki/Running_glibc_programs
# TODO: However, a warning may make sense.
host_platform="${host_arch}_linux_gnu"
download_info=$(call_jq <<<"${manifest}" -r ".${host_platform}")
download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
elif [[ "${host_env}" == "gnu" ]]; then
# TODO: don't hardcode tool name and use 'prefer_linux_gnu' field in base manifest.
case "${tool}" in
cargo-nextest | nextest)
# TODO: don't hardcode required glibc version
required_glibc_version=2.27
higher_glibc_version=$(sort <<<"${required_glibc_version}"$'\n'"${host_glibc_version}" -Vu | tail -1)
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"${required_glibc_version}"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" == "${host_glibc_version}" ]]; then
# musl build of nextest is slow, so use glibc build if host_env is gnu.
# https://github.com/taiki-e/install-action/issues/13
host_platform="${host_arch}_linux_gnu"
download_info=$(jq <<<"${manifest}" -r ".${host_platform}")
download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
fi
;;
esac
@@ -258,10 +256,10 @@ read_manifest() {
# Binaries compiled for x86_64 macOS will usually also work on AArch64 macOS.
# Binaries compiled for x86_64 Windows will usually also work on AArch64 Windows 11+.
host_platform="${host_arch}_${host_os}"
download_info=$(call_jq <<<"${manifest}" -r ".${host_platform}")
download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
if [[ "${download_info}" == "null" ]] && [[ "${host_arch}" != "x86_64" ]]; then
host_platform="x86_64_${host_os}"
download_info=$(call_jq <<<"${manifest}" -r ".${host_platform}")
download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
fi
;;
*) bail "unsupported OS type '${host_os}' for ${tool}" ;;
@@ -273,25 +271,25 @@ read_download_info() {
if [[ "${download_info}" == "null" ]]; then
bail "${tool}@${version} for '${host_os}' is not supported"
fi
checksum=$(call_jq <<<"${download_info}" -r '.checksum')
url=$(call_jq <<<"${download_info}" -r '.url')
checksum=$(jq -r '.checksum' <<<"${download_info}")
url=$(jq -r '.url' <<<"${download_info}")
local tmp
bin_in_archive=()
if [[ "${url}" == "null" ]]; then
local template
template=$(call_jq -r ".template.${host_platform}" "${manifest_dir}/${tool}.json")
url=$(call_jq <<<"${template}" -r '.url')
url="${url//\$\{version\}/${exact_version}}"
tmp=$(call_jq <<<"${template}" -r '.bin' | sed -E "s/\\$\\{version\\}/${exact_version}/g")
template=$(jq -c ".template.${host_platform}" "${manifest_dir}/${tool}.json")
template="${template//\$\{version\}/${exact_version}}"
url=$(jq -r '.url' <<<"${template}")
tmp=$(jq -r '.bin' <<<"${template}")
if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207
bin_in_archive=($(call_jq <<<"${template}" -r '.bin[]' | sed -E "s/\\$\\{version\\}/${exact_version}/g"))
bin_in_archive=($(jq -r '.bin[]' <<<"${template}"))
fi
else
tmp=$(call_jq <<<"${download_info}" -r '.bin')
tmp=$(jq -r '.bin' <<<"${download_info}")
if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207
bin_in_archive=($(call_jq <<<"${download_info}" -r '.bin[]'))
bin_in_archive=($(jq -r '.bin[]' <<<"${download_info}"))
fi
fi
if [[ ${#bin_in_archive[@]} -eq 0 ]]; then
@@ -318,23 +316,23 @@ download_from_download_info() {
}
install_cargo_binstall() {
local binstall_version
binstall_version=$(call_jq -r '.latest.version' "${manifest_dir}/cargo-binstall.json")
local install_binstall='1'
_binstall_version=$("cargo-binstall${exe}" binstall -V 2>/dev/null || echo "")
binstall_version=$(jq -r '.latest.version' "${manifest_dir}/cargo-binstall.json")
local install_binstall=1
_binstall_version=$("cargo-binstall${exe}" binstall -V 2>/dev/null || true)
if [[ -n "${_binstall_version}" ]]; then
if [[ "${_binstall_version}" == "${binstall_version}" ]]; then
info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}"
install_binstall=''
else
info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}, but is not compatible version with install-action, upgrading"
rm "${cargo_bin}/cargo-binstall${exe}"
rm -- "${cargo_bin}/cargo-binstall${exe}"
fi
fi
if [[ -n "${install_binstall}" ]]; then
info "installing cargo-binstall@latest (${binstall_version})"
download_from_manifest "cargo-binstall" "latest"
installed_at=$(type -P "cargo-binstall${exe}" || echo "")
installed_at=$(type -P "cargo-binstall${exe}" || true)
if [[ -n "${installed_at}" ]]; then
info "cargo-binstall installed at ${installed_at}"
else
@@ -369,9 +367,9 @@ pacman_install() {
retry _sudo pacman -Sy --noconfirm "$@"
}
apk_install() {
if type -P sudo &>/dev/null; then
if type -P sudo >/dev/null; then
retry sudo apk --no-cache add "$@"
elif type -P doas &>/dev/null; then
elif type -P doas >/dev/null; then
retry doas apk --no-cache add "$@"
else
retry apk --no-cache add "$@"
@@ -389,19 +387,19 @@ sys_install() {
init_install_action_bin_dir() {
if [[ -z "${init_install_action_bin:-}" ]]; then
init_install_action_bin=1
mkdir -p "${bin_dir}"
mkdir -p -- "${bin_dir}"
export PATH="${PATH}:${bin_dir}"
local _bin_dir
_bin_dir=$(canonicalize_windows_path "${bin_dir}")
# TODO: avoid this when already added
info "adding '${_bin_dir}' to PATH"
echo "${_bin_dir}" >>"${GITHUB_PATH}"
printf '%s\n' "${_bin_dir}" >>"${GITHUB_PATH}"
fi
}
canonicalize_windows_path() {
case "${host_os}" in
windows) sed <<<"$1" 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' ;;
*) echo "$1" ;;
windows) sed -E 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' <<<"$1" ;;
*) printf '%s\n' "$1" ;;
esac
}
@@ -415,7 +413,7 @@ if [[ $# -gt 0 ]]; then
fi
export DEBIAN_FRONTEND=noninteractive
manifest_dir="$(dirname "$0")/manifests"
manifest_dir="$(dirname -- "$0")/manifests"
# Inputs
tool="${INPUT_TOOL:-}"
@@ -446,17 +444,17 @@ case "${fallback}" in
esac
# Refs: https://github.com/rust-lang/rustup/blob/HEAD/rustup-init.sh
base_distro=""
exe=""
base_distro=''
exe=''
case "$(uname -s)" in
Linux)
host_os=linux
ldd_version=$(ldd --version 2>&1 || true)
if grep <<<"${ldd_version}" -q 'musl'; then
host_env="musl"
if grep -Fq musl <<<"${ldd_version}"; then
host_env=musl
else
host_env="gnu"
host_glibc_version=$(grep <<<"${ldd_version}" -E "GLIBC|GNU libc" | sed "s/.* //g")
host_env=gnu
host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed -E "s/.* //g")
fi
if [[ -e /etc/os-release ]]; then
if grep -Eq '^ID_LIKE=' /etc/os-release; then
@@ -471,14 +469,19 @@ case "$(uname -s)" in
else
base_distro=$(grep -E '^ID=' /etc/os-release | cut -d= -f2)
fi
base_distro="${base_distro//\"/}"
elif [[ -e /etc/redhat-release ]]; then
# /etc/os-release is available on RHEL/CentOS 7+
base_distro=fedora
elif [[ -e /etc/debian_version ]]; then
# /etc/os-release is available on Debian 7+
base_distro=debian
fi
case "${base_distro}" in
fedora)
dnf=dnf
if ! type -P dnf &>/dev/null; then
if type -P microdnf &>/dev/null; then
if ! type -P dnf >/dev/null; then
if type -P microdnf >/dev/null; then
# fedora-based distributions have "minimal" images that
# use microdnf instead of dnf.
dnf=microdnf
@@ -495,12 +498,12 @@ case "$(uname -s)" in
Darwin) host_os=macos ;;
MINGW* | MSYS* | CYGWIN* | Windows_NT)
host_os=windows
exe=".exe"
exe=.exe
;;
*) bail "unrecognized OS type '$(uname -s)'" ;;
esac
case "$(uname -m)" in
aarch64 | arm64) host_arch="aarch64" ;;
aarch64 | arm64) host_arch=aarch64 ;;
xscale | arm | armv*l)
# Ignore Arm for now, as we need to consider the version and whether hard-float is supported.
# https://github.com/rust-lang/rustup/pull/593
@@ -515,19 +518,19 @@ case "$(uname -m)" in
# https://github.com/actions/runner/blob/v2.321.0/.github/workflows/build.yml#L21
# https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners
# So we can assume x86_64 unless it is AArch64 or Arm.
*) host_arch="x86_64" ;;
*) host_arch=x86_64 ;;
esac
info "host platform: ${host_arch}_${host_os}"
home="${HOME}"
if [[ "${host_os}" == "windows" ]]; then
if [[ "${home}" == "/home/"* ]]; then
if [[ -d "${home/\/home\//\/c\/Users\/}" ]]; then
if [[ -d "${home/\/home\///c/Users/}" ]]; then
# MSYS2 https://github.com/taiki-e/install-action/pull/518#issuecomment-2160736760
home="${home/\/home\//\/c\/Users\/}"
elif [[ -d "${home/\/home\//\/cygdrive\/c\/Users\/}" ]]; then
home="${home/\/home\///c/Users/}"
elif [[ -d "${home/\/home\///cygdrive/c/Users/}" ]]; then
# Cygwin https://github.com/taiki-e/install-action/issues/224#issuecomment-1720196288
home="${home/\/home\//\/cygdrive\/c\/Users\/}"
home="${home/\/home\///cygdrive/c/Users/}"
else
warn "\$HOME starting /home/ (${home}) on Windows bash is usually fake path, this may cause installation issue"
fi
@@ -540,37 +543,36 @@ cargo_bin="${CARGO_HOME:-"${home}/.cargo"}/bin"
# is used ($CARGO_HOME/bin is most likely not included in the PATH), fallback to
# $install_action_dir/bin.
if [[ "${host_os}" == "windows" ]]; then
if type -P cargo &>/dev/null; then
if type -P cargo >/dev/null; then
info "cargo is located at $(type -P cargo)"
cargo_bin=$(dirname "$(type -P cargo)")
cargo_bin=$(dirname -- "$(type -P cargo)")
else
cargo_bin="${install_action_dir}/bin"
fi
elif [[ ! -e "${cargo_bin}" ]] || [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo"* ]]; then
if type -P cargo &>/dev/null; then
if type -P cargo >/dev/null; then
info "cargo is located at $(type -P cargo)"
fi
# Moving files to /usr/local/bin requires sudo in some environments, so do not use it: https://github.com/taiki-e/install-action/issues/543
cargo_bin="${install_action_dir}/bin"
fi
jq_use_b=''
case "${host_os}" in
linux)
if ! type -P jq &>/dev/null || ! type -P curl &>/dev/null || ! type -P tar &>/dev/null; then
if ! type -P jq >/dev/null || ! type -P curl >/dev/null || ! type -P tar >/dev/null; then
case "${base_distro}" in
debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (jq, curl, and/or tar)"
printf '::group::Install packages required for installation (jq, curl, and/or tar)\n'
sys_packages=()
if ! type -P curl &>/dev/null; then
if ! type -P curl >/dev/null; then
sys_packages+=(ca-certificates curl)
fi
if ! type -P tar &>/dev/null; then
if ! type -P tar >/dev/null; then
sys_packages+=(tar)
fi
if [[ "${dnf:-}" == "yum" ]]; then
# On RHEL7-based distribution jq requires EPEL
if ! type -P jq &>/dev/null; then
if ! type -P jq >/dev/null; then
sys_packages+=(epel-release)
sys_install "${sys_packages[@]}"
sys_install jq --enablerepo=epel
@@ -578,7 +580,7 @@ case "${host_os}" in
sys_install "${sys_packages[@]}"
fi
else
if ! type -P jq &>/dev/null; then
if ! type -P jq >/dev/null; then
# https://github.com/taiki-e/install-action/issues/521
if [[ "${base_distro}" == "arch" ]]; then
sys_packages+=(glibc)
@@ -587,73 +589,64 @@ case "${host_os}" in
fi
sys_install "${sys_packages[@]}"
fi
echo "::endgroup::"
printf '::endgroup::\n'
;;
*) warn "install-action requires at least jq and curl on non-Debian/Fedora/SUSE/Arch/Alpine-based Linux" ;;
esac
fi
;;
macos)
if ! type -P jq &>/dev/null || ! type -P curl &>/dev/null; then
if ! type -P jq >/dev/null || ! type -P curl >/dev/null; then
warn "install-action requires at least jq and curl on macOS"
fi
;;
windows)
if ! type -P curl &>/dev/null; then
if ! type -P curl >/dev/null; then
warn "install-action requires at least curl on Windows"
fi
# https://github.com/jqlang/jq/issues/1854
jq_use_b=1
jq="${install_action_dir}/jq/bin/jq.exe"
if [[ ! -f "${jq}" ]]; then
jq_version=$(jq --version || echo "")
case "${jq_version}" in
jq-1.[7-9]* | jq-1.[1-9][0-9]*) jq='' ;;
*)
_tmp=$(jq <<<"{}" -r .a || echo "")
if [[ "${_tmp}" == "null" ]]; then
jq=''
jq_use_b=''
else
info "old jq (${jq_version}) has bug on Windows; downloading jq 1.7 (will not be added to PATH)"
mkdir -p "${install_action_dir}/jq/bin"
url='https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe'
checksum='7451fbbf37feffb9bf262bd97c54f0da558c63f0748e64152dd87b0a07b6d6ab'
(
cd "${install_action_dir}/jq/bin"
download_and_checksum "${url}" "${checksum}"
mv tmp jq.exe
)
echo
fi
;;
esac
if [[ -f "${install_action_dir}/jq/bin/jq.exe" ]]; then
jq() { "${install_action_dir}/jq/bin/jq.exe" -b "$@"; }
elif type -P jq >/dev/null; then
# https://github.com/jqlang/jq/issues/1854
_tmp=$(jq -r .a <<<'{}')
if [[ "${_tmp}" != "null" ]]; then
_tmp=$(jq -b -r .a 2>/dev/null <<<'{}' || true)
if [[ "${_tmp}" == "null" ]]; then
jq() { command jq -b "$@"; }
else
jq() { command jq "$@" | tr -d '\r'; }
fi
fi
else
printf '::group::Install packages required for installation (jq)\n'
mkdir -p -- "${install_action_dir}/jq/bin"
url='https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe'
checksum='7451fbbf37feffb9bf262bd97c54f0da558c63f0748e64152dd87b0a07b6d6ab'
(
cd -- "${install_action_dir}/jq/bin"
download_and_checksum "${url}" "${checksum}"
mv -- tmp jq.exe
)
printf '::endgroup::\n'
jq() { "${install_action_dir}/jq/bin/jq.exe" -b "$@"; }
fi
;;
*) bail "unsupported host OS '${host_os}'" ;;
esac
call_jq() {
# https://github.com/jqlang/jq/issues/1854
if [[ -n "${jq_use_b}" ]]; then
"${jq:-jq}" -b "$@"
else
"${jq:-jq}" "$@"
fi
}
unsupported_tools=()
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"
version=latest
fi
installed_bin=()
case "${tool}" in
@@ -666,32 +659,32 @@ for tool in "${tools[@]}"; do
include_dir="${install_action_dir}/include"
init_install_action_bin_dir
if [[ ! -e "${include_dir}" ]]; then
mkdir -p "${include_dir}"
mkdir -p -- "${include_dir}"
fi
if ! type -P unzip &>/dev/null; then
if ! type -P unzip >/dev/null; then
case "${base_distro}" in
debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (unzip)"
printf '::group::Install packages required for installation (unzip)\n'
sys_install unzip
echo "::endgroup::"
printf '::endgroup::\n'
;;
esac
fi
mkdir -p "${tmp_dir}"
mkdir -p -- "${tmp_dir}"
(
cd "${tmp_dir}"
cd -- "${tmp_dir}"
download_and_checksum "${url}" "${checksum}"
unzip -q tmp
mv "bin/protoc${exe}" "${bin_dir}/"
mkdir -p "${include_dir}/"
cp -r include/. "${include_dir}/"
mv -- "bin/protoc${exe}" "${bin_dir}/"
mkdir -p -- "${include_dir}/"
cp -r -- include/. "${include_dir}/"
if [[ -z "${PROTOC:-}" ]]; then
_bin_dir=$(canonicalize_windows_path "${bin_dir}")
info "setting PROTOC environment variable to '${_bin_dir}/protoc${exe}'"
echo "PROTOC=${_bin_dir}/protoc${exe}" >>"${GITHUB_ENV}"
printf '%s\n' "PROTOC=${_bin_dir}/protoc${exe}" >>"${GITHUB_ENV}"
fi
)
rm -rf "${tmp_dir}"
rm -rf -- "${tmp_dir}"
installed_bin=("${tool}${exe}")
;;
valgrind)
@@ -702,7 +695,7 @@ for tool in "${tools[@]}"; do
esac
case "${host_os}" in
linux) ;;
macos | windows) bail "${tool} for non-linux is not supported yet by this action" ;;
macos | windows) bail "${tool} for non-Linux is not supported yet by this action" ;;
*) bail "unsupported host OS '${host_os}' for ${tool}" ;;
esac
# libc6-dbg is needed to run Valgrind
@@ -718,13 +711,13 @@ for tool in "${tools[@]}"; do
*) warn "specifying the version of ${tool} is not supported by this action" ;;
esac
install_cargo_binstall
echo
printf '\n'
continue
;;
*)
# Handle aliases
case "${tool}" in
cargo-nextest | nextest) tool="cargo-nextest" ;;
cargo-nextest | nextest) tool=cargo-nextest ;;
esac
# Use cargo-binstall fallback if tool is not available.
@@ -757,7 +750,7 @@ for tool in "${tools[@]}"; do
shellcheck)
case "${host_os}" in
linux)
if type -P shellcheck &>/dev/null; then
if type -P shellcheck >/dev/null; then
apt_remove -y shellcheck
fi
;;
@@ -771,12 +764,12 @@ for tool in "${tools[@]}"; do
tool_bin_stems=()
for tool_bin in "${installed_bin[@]}"; do
tool_bin=$(basename "${tool_bin}")
tool_bin=$(basename -- "${tool_bin}")
tool_bin_stem="${tool_bin%.exe}"
installed_at=$(type -P "${tool_bin}" || echo "")
installed_at=$(type -P "${tool_bin}" || true)
if [[ -z "${installed_at}" ]]; then
tool_bin="${tool_bin_stem}"
installed_at=$(type -P "${tool_bin}" || echo "")
installed_at=$(type -P "${tool_bin}" || true)
fi
if [[ -n "${installed_at}" ]]; then
info "${tool_bin_stem} installed at ${installed_at}"
@@ -818,7 +811,7 @@ for tool in "${tools[@]}"; do
;;
esac
done
echo
printf '\n'
done
if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
@@ -840,6 +833,6 @@ if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
_bin_dir=$(canonicalize_windows_path "${home}/.cargo/bin")
# TODO: avoid this when already added
info "adding '${_bin_dir}' to PATH"
echo "${_bin_dir}" >>"${GITHUB_PATH}"
printf '%s\n' "${_bin_dir}" >>"${GITHUB_PATH}"
fi
fi

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": {

View File

@@ -3,10 +3,42 @@
"template": null,
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.6.11"
"version": "0.6.12"
},
"0.6": {
"version": "0.6.11"
"version": "0.6.12"
},
"0.6.12": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4697ED565D46",
"checksum": "619b7512735e294e9f758df6ed6d85a562d126460d71d3349d9f08e667a29225"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD46982CC23D64",
"checksum": "d88b967f24eee717a34126bd1104a8eeeb561894693d9a2e760b6cf1c0edfbc9"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD469835945C2B",
"checksum": "29527cf19d1bbc772dcbc9776ec09c28e6e5f75c36c0eeea60ab631d6f2b8c62"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4697EDCABBF6",
"checksum": "6cfb4707d0b90a8cf9f2c3b4d3e161d50333f4f4d180bf1e775786eec69c7820"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD469811E4DFFC",
"checksum": "cad9f0ced004adf49f217da98a28e0a2e8aa720ad082f1a64fa9b3b507405b78"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-aarch64-pc-windows-msvc.tar.gz",
"etag": "0x8DD4698242B5DF1",
"checksum": "aa3fca8305d2aa21246dbcb0a080574bc3b43efe2e71117545a688a15f9e24e7"
}
},
"0.6.11": {
"x86_64_linux_musl": {

View File

@@ -22,10 +22,36 @@
},
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/parse-dockerfile/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-dockerfile/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.1.0"
"version": "0.1.1"
},
"0.1": {
"version": "0.1.0"
"version": "0.1.1"
},
"0.1.1": {
"x86_64_linux_musl": {
"etag": "0x8DD46980448F328",
"checksum": "b72138691c67e48d77b1c69c726bf9815edc9554144fc6eb513c2df02d31ffc9"
},
"x86_64_macos": {
"etag": "0x8DD469864E107C5",
"checksum": "d0f2192e66a9ac52f1624f0ff0543f701c6c8e5a690f63f21c481b5b3e3748eb"
},
"x86_64_windows": {
"etag": "0x8DD46983232CEF8",
"checksum": "c2e8e5da8e377a13eb9e8692dd0ac6793700f43240f4cc49d00aa9831d3d561f"
},
"aarch64_linux_musl": {
"etag": "0x8DD469805997397",
"checksum": "29c0a71340eb1bcc8033ae1f3e6e77afe921f8c5c3d6b2919c50c1d5eaab22b6"
},
"aarch64_macos": {
"etag": "0x8DD46984CFFA486",
"checksum": "c91b6512ef18a51486065164cfd31d0acd5de1e47db94ef447b6d4f24e670ea6"
},
"aarch64_windows": {
"etag": "0x8DD46983C64A17B",
"checksum": "f664f395e639dd6d269c96a3443ca003c46e387701334be9bb527795e4f77234"
}
},
"0.1.0": {
"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,166 @@
},
"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.116"
"version": "0.3.122"
},
"0.3": {
"version": "0.3.116"
"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": {
"etag": "0x8DD488F61EDB29B",
"checksum": "f751266da808ec38b0426abce0e68387221f3dc323b96400113e040fff0bb130"
},
"x86_64_macos": {
"etag": "0x8DD4890279C0CCC",
"checksum": "2f1ea887591575c3c6e73f9697f030c54d2ba2c90cfc19e7989f16d77e2df010"
},
"x86_64_windows": {
"etag": "0x8DD489048364449",
"checksum": "bcdcb79e2015c1cb73634b8ea797b7e9124332630fda096f5a924c203adb351f"
},
"aarch64_linux_musl": {
"etag": "0x8DD488F7BD66E21",
"checksum": "b9ef712f8946d6522f0052bafd769a28e885ff7b20970aa1a8eea5085fecf80e"
},
"aarch64_macos": {
"etag": "0x8DD488FD9BD6C14",
"checksum": "7eaffdcfebb772b9bff42af2c53102d19f285307df14b061620cafc32f8ab167"
},
"aarch64_windows": {
"etag": "0x8DD489056222AB7",
"checksum": "87850153a0a917c36b6ecf404a952e9a88443872c313a79896131a28e0b56685"
}
},
"0.3.117": {
"x86_64_linux_musl": {
"etag": "0x8DD48765324E4A3",
"checksum": "5cc9089077c1e0f097d9687afacbba241f2ad5a816debf834a45e0f539d6d2ec"
},
"x86_64_macos": {
"etag": "0x8DD48772F752763",
"checksum": "162022c86d213f3ec4cf5aba07dfaae3cae84d0cc89baab02e0856f189e3d99a"
},
"x86_64_windows": {
"etag": "0x8DD487743DFFA65",
"checksum": "cf221437eaa5248685ed4e1b464300af5f132bbe91889a74986a919ed99acb64"
},
"aarch64_linux_musl": {
"etag": "0x8DD48765BCE51C3",
"checksum": "21e4007f9b180fda271ff7ea8f6bd34363b3890eff055fac5cc6b7c0db2db71e"
},
"aarch64_macos": {
"etag": "0x8DD4876A58DECD0",
"checksum": "8c0f638037005a7b8e231dec717846324b7e3f8dd7cb0cdc85feeb59746d5254"
},
"aarch64_windows": {
"etag": "0x8DD48770B3846CE",
"checksum": "7bd493f496c0b55b68600af36b4b9c2225f75db693665832b943526b8253e38f"
}
},
"0.3.116": {
"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=$(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=$(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=$(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=$(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=$(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

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

View File

@@ -11,11 +11,11 @@ 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};
@@ -193,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)
}
@@ -215,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()?
}
@@ -310,7 +310,7 @@ 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_reader().read_to_end(&mut buf)?;
eprintln!("download complete");
@@ -445,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());
@@ -844,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##*/}"

File diff suppressed because it is too large Load Diff