Compare commits

...

81 Commits

Author SHA1 Message Date
Taiki Endo
fe065954f6 Release 2.47.17 2025-01-19 14:09:43 +09:00
Taiki Endo
aaa64a3351 Update cargo-audit@latest to 0.21.1 2025-01-19 13:13:08 +09:00
Taiki Endo
f99317473f Release 2.47.16 2025-01-19 03:16:29 +09:00
Taiki Endo
3523902f5a Update cargo-make@latest to 0.37.24 2025-01-19 03:15:07 +09:00
Taiki Endo
e6e3706b36 Update readme 2025-01-17 16:45:12 +09:00
Taiki Endo
9469185794 Format shell scripts with indent_size = 2 to match scripts in CI config 2025-01-17 16:44:56 +09:00
Taiki Endo
1b8d452217 ci: Test ubuntu-22.04-arm and ubuntu-24.04-arm
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
2025-01-17 16:35:45 +09:00
Taiki Endo
d125c0a835 Release 2.47.15 2025-01-17 02:02:24 +09:00
Taiki Endo
319a0f2f5f Update cargo-tarpaulin@latest to 0.31.5 2025-01-17 01:46:51 +09:00
Taiki Endo
0fe4860065 Update cargo-llvm-cov@latest to 0.6.16 2025-01-17 01:46:51 +09:00
Taiki Endo
44e8874873 Update cargo-hack@latest to 0.6.34 2025-01-17 01:46:51 +09:00
Taiki Endo
5f3e9b7a2d ci: Disable buggy dependabot grouped update 2025-01-16 22:19:33 +09:00
Taiki Endo
55912949de Update cspell dictionary 2025-01-16 21:35:10 +09:00
Taiki Endo
e26ea2a159 Release 2.47.14 2025-01-16 10:43:59 +09:00
Taiki Endo
00b370abc3 Update cargo-nextest@latest to 0.9.88 2025-01-16 09:36:49 +09:00
Taiki Endo
6ae49f1b8b Release 2.47.13 2025-01-15 10:55:04 +09:00
Taiki Endo
2967b5da19 Update wasmtime@latest to 28.0.1 2025-01-15 09:36:31 +09:00
Taiki Endo
5a32d87288 Update release-plz@latest to 0.3.113 2025-01-15 09:36:31 +09:00
Taiki Endo
1f8124ee27 Update cargo-binstall@latest to 1.10.21 2025-01-14 00:15:51 +09:00
Taiki Endo
b58c61fa21 Apply clippy::unused_trait_names lint 2025-01-13 23:41:50 +09:00
Taiki Endo
333ea3e9a4 Release 2.47.12 2025-01-13 13:06:32 +09:00
Taiki Endo
172419740d Update wasm-bindgen@latest to 0.2.100 2025-01-13 09:37:37 +09:00
Taiki Endo
6d0e68ca2c Update rclone@latest to 1.69.0 2025-01-13 03:16:22 +09:00
Taiki Endo
b4c13e81de Update cargo-binstall@latest to 1.10.20 2025-01-11 18:13:11 +09:00
Taiki Endo
62b3405f01 ci: Tweak step name 2025-01-11 13:17:28 +09:00
Taiki Endo
c87777c316 Release 2.47.11 2025-01-11 12:53:30 +09:00
Taiki Endo
1fde53ce9d Update editorconfig-checker@latest to 3.1.2 2025-01-11 09:34:29 +09:00
Taiki Endo
0779861fb4 Release 2.47.10 2025-01-10 20:50:52 +09:00
Taiki Endo
975a95d384 Update cargo-udeps@latest to 0.1.54 2025-01-10 13:20:47 +09:00
Taiki Endo
da05975632 tools: Update scripts and markdownlint config 2025-01-10 01:41:02 +09:00
Taiki Endo
df5dec2a2f Release 2.47.9 2025-01-10 00:40:12 +09:00
Taiki Endo
4eafe80cf6 Update changelog 2025-01-10 00:39:40 +09:00
Taiki Endo
7d472ffc8d Update protoc@latest to 3.29.3 2025-01-10 00:38:47 +09:00
Taiki Endo
f82e1be4c6 codegen: Reflect editorconfig-checker 3.1.0 Windows asset_name change 2025-01-10 00:04:25 +09:00
Taiki Endo
a4d120e1c4 ci: Remove GitHub-hosted ubuntu-20.04 runner test
https://github.blog/changelog/2024-12-05-notice-of-upcoming-releases-and-breaking-changes-for-github-actions/
2025-01-08 01:00:26 +09:00
Taiki Endo
08d473f7b2 Release 2.47.8 2025-01-07 22:05:27 +09:00
Taiki Endo
94493127b2 Update sccache@latest to 0.9.1 2025-01-07 18:13:00 +09:00
Taiki Endo
50698ce116 Apply unnameable_types lint 2025-01-07 00:52:02 +09:00
Taiki Endo
ed51b980a0 Update cargo-binstall@latest to 1.10.19 2025-01-04 15:15:48 +09:00
Taiki Endo
a86da1a3cb Release 2.47.7 2025-01-04 00:18:50 +09:00
Taiki Endo
1668c0c558 Update typos@latest to 1.29.4 2025-01-04 00:13:36 +09:00
Taiki Endo
a779dafd49 Release 2.47.6 2025-01-03 12:22:08 +09:00
Taiki Endo
2a650b8687 Update typos@latest to 1.29.3 2025-01-03 06:13:25 +09:00
Taiki Endo
656b4969d3 Release 2.47.5 2025-01-03 01:17:30 +09:00
Taiki Endo
52b84660a3 Update typos@latest to 1.29.1 2025-01-03 01:00:37 +09:00
Taiki Endo
84ccb7b697 ci: Clean up scripts 2025-01-03 00:54:42 +09:00
Taiki Endo
63d5217a35 ci: Test windows-2025 2025-01-03 00:50:49 +09:00
Taiki Endo
cf1be1a00f Release 2.47.4 2025-01-03 00:39:03 +09:00
Taiki Endo
444e3608dd Update xh@latest to 0.23.1 2025-01-02 21:15:31 +09:00
Taiki Endo
716fb8f756 Release 2.47.3 2025-01-02 13:08:16 +09:00
Taiki Endo
870e4de1b5 Update knope@latest to 0.18.2 2025-01-02 12:56:50 +09:00
Taiki Endo
dbc32cd892 Release 2.47.2 2025-01-01 03:16:54 +09:00
Taiki Endo
82750cbcb9 Update typos@latest to 1.29.0 2025-01-01 03:15:13 +09:00
Taiki Endo
77b010ce78 Release 2.47.1 2024-12-31 21:16:18 +09:00
Taiki Endo
00beeed3bd Update cargo-tarpaulin@latest to 0.31.4 2024-12-31 21:15:34 +09:00
Taiki Endo
3ab44cd9ab Update cargo-binstall@latest to 1.10.18 2024-12-28 15:13:22 +09:00
Taiki Endo
8cec5c3000 codegen: Ignore clippy::literal_string_with_formatting_args lint
```
error: this looks like a formatting argument but it is not part of a formatting macro
   --> tools/codegen/src/main.rs:142:65
    |
142 | ...                   d.url = Some(template.url.replace("${version}", version));
    |                                                           ^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#literal_string_with_formatting_args
    = note: `-D clippy::literal-string-with-formatting-args` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::literal_string_with_formatting_args)]`

error: this looks like a formatting argument but it is not part of a formatting macro
   --> tools/codegen/src/main.rs:146:64
    |
146 | ...                   .map(|s| s.map(|s| s.replace("${version}", version)));
    |                                                      ^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#literal_string_with_formatting_args

error: this looks like a formatting argument but it is not part of a formatting macro
   --> tools/codegen/src/main.rs:567:73
    |
567 |             let template_url = d.url.take().unwrap().replace(version, "${version}");
    |                                                                         ^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#literal_string_with_formatting_args

error: this looks like a formatting argument but it is not part of a formatting macro
   --> tools/codegen/src/main.rs:568:84
    |
568 |             let template_bin = d.bin.take().map(|s| s.map(|s| s.replace(version, "${version}")));
    |                                                                                    ^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#literal_string_with_formatting_args

error: this looks like a formatting argument but it is not part of a formatting macro
   --> tools/codegen/src/main.rs:615:29
    |
615 |     let mut s = s.replace("${package}", package).replace("${tool}", package);
    |                             ^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#literal_string_with_formatting_args

error: this looks like a formatting argument but it is not part of a formatting macro
   --> tools/codegen/src/main.rs:625:25
    |
625 |         s = s.replace("${version}", version);
    |                         ^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#literal_string_with_formatting_args
```
2024-12-27 10:57:03 +09:00
Taiki Endo
acd2589197 Release 2.47.0 2024-12-27 10:45:41 +09:00
Taiki Endo
d1519fa40d Update changelog 2024-12-27 10:45:23 +09:00
Azzam S.A
31e0d9e30c Add trunk (#795) 2024-12-27 10:39:01 +09:00
Taiki Endo
194e80be83 Update cargo-lambda@latest to 1.6.2 2024-12-27 09:36:19 +09:00
Joonas Bergius
dc05cefd7e Add wash (#794)
Signed-off-by: Joonas Bergius <joonas@cosmonic.com>
2024-12-26 20:18:57 +09:00
Taiki Endo
8484225d97 Release 2.46.20 2024-12-22 13:54:40 +09:00
Taiki Endo
1aa2832643 Update dprint@latest to 0.48.0 2024-12-22 09:36:44 +09:00
Taiki Endo
e37f44cf37 Release 2.46.19 2024-12-22 06:16:17 +09:00
Taiki Endo
214cf6a4ad Update cargo-llvm-cov@latest to 0.6.15 2024-12-22 06:13:45 +09:00
Taiki Endo
c5172ad14d Update cargo-lambda@latest to 1.6.1 2024-12-22 06:13:45 +09:00
Taiki Endo
480814c6df Release 2.46.18 2024-12-21 13:01:04 +09:00
Taiki Endo
b195fca919 Update wasmtime@latest to 28.0.0 2024-12-21 03:15:25 +09:00
Taiki Endo
03381f5ca4 Release 2.46.17 2024-12-20 10:51:52 +09:00
Taiki Endo
409c15bd82 Update release-plz@latest to 0.3.112 2024-12-20 09:33:11 +09:00
Taiki Endo
9023ed54c0 Release 2.46.16 2024-12-19 20:19:58 +09:00
Taiki Endo
bd71b6d92e Update osv-scanner@latest to 1.9.2 2024-12-19 15:17:11 +09:00
Taiki Endo
2c3c8dfabf Release 2.46.15 2024-12-19 00:36:33 +09:00
Taiki Endo
2afdd9c08e Update protoc@latest to 3.29.2 2024-12-19 00:12:40 +09:00
Taiki Endo
b8f3ee3354 Release 2.46.14 2024-12-18 10:12:38 +09:00
Taiki Endo
e724e8f1be Update cargo-nextest@latest to 0.9.87 2024-12-18 09:35:24 +09:00
Taiki Endo
cbef870e2b Release 2.46.13 2024-12-17 22:05:40 +09:00
Taiki Endo
0a21328a6f Update espup@latest to 0.14.0 2024-12-17 21:17:38 +09:00
Taiki Endo
120c8997a0 Release 2.46.12 2024-12-17 09:48:08 +09:00
Taiki Endo
d20382abb9 Update typos@latest to 1.28.4 2024-12-17 09:36:27 +09:00
46 changed files with 3396 additions and 1433 deletions

View File

@@ -11,7 +11,7 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.{json,md,rb,yml,yaml}]
[*.{json,md,rb,sh,yml,yaml}]
indent_size = 2
[*.{js,yml,yaml}]

View File

@@ -24,6 +24,7 @@ protoc
pwsh
quickinstall
rclone
rootfs
sccache
syft
udeps
@@ -31,4 +32,3 @@ wasmtime
watchexec
xbuild
xscale
zigbuild

View File

@@ -7,10 +7,6 @@ updates:
commit-message:
prefix: ''
labels: []
groups:
cargo:
patterns:
- '*'
- package-ecosystem: github-actions
directory: /
schedule:
@@ -18,7 +14,3 @@ updates:
commit-message:
prefix: ''
labels: []
groups:
github-actions:
patterns:
- '*'

View File

@@ -25,7 +25,7 @@ env:
defaults:
run:
shell: bash
shell: bash --noprofile --norc -CeEuxo pipefail {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
@@ -46,9 +46,10 @@ jobs:
matrix:
include:
# NB: Sync list with https://github.com/taiki-e/checkout-action/blob/HEAD/.github/workflows/ci.yml
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: ubuntu-22.04-arm
- os: ubuntu-24.04
- os: ubuntu-24.04-arm
- os: ubuntu-22.04
tool: major.minor.patch
- os: ubuntu-22.04
@@ -68,6 +69,11 @@ jobs:
bash: msys64
- os: windows-2022
bash: cygwin
- os: windows-2025
- os: windows-2025
bash: msys64
- os: windows-2025
bash: cygwin
- os: windows-2022
tool: major.minor.patch
- os: windows-2022
@@ -79,7 +85,7 @@ jobs:
steps:
- uses: taiki-e/checkout-action@v1
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
- run: rm Cargo.toml
- run: rm -- Cargo.toml
- name: Generate tool list
id: tool-list
run: tools/ci/tool-list.sh "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.bash }}" >>"${GITHUB_OUTPUT}"
@@ -154,13 +160,13 @@ jobs:
- opensuse/tumbleweed:latest # glibc 2.39 (as of 2024-07-19)
- archlinux:latest # glibc 2.39 (as of 2024-07-19)
- alpine:latest # musl 1.2.5 (as of alpine 3.20)
# - openwrt/rootfs:x86-64-openwrt-24.10 # musl 1.2.5
runs-on: ubuntu-latest
timeout-minutes: 60
container: ${{ matrix.container }}
steps:
- name: Install requirements (old debian)
run: |
set -CeEuxo pipefail
# In Debian, the old repositories is removed from the main mirrors some time after EoL.
sed -i /etc/apt/sources.list -e 's/deb.debian.org/archive.debian.org/g' \
-e 's|security.debian.org|archive.debian.org/|g' \
@@ -168,7 +174,6 @@ jobs:
if: startsWith(matrix.container, 'debian:9')
- name: Install requirements (centos)
run: |
set -CeEuxo pipefail
# In CentOS, the old repositories is removed from the main mirrors just after EoL.
# https://github.com/rust-lang/rust/pull/126352
sed -i /etc/yum.repos.d/*.repo -e 's!^mirrorlist!#mirrorlist!' \
@@ -191,7 +196,7 @@ jobs:
if: startsWith(matrix.container, 'centos')
- uses: taiki-e/checkout-action@v1
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
- run: rm Cargo.toml
- run: rm -- Cargo.toml
- name: Generate tool list
id: tool-list
run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}"
@@ -204,6 +209,16 @@ jobs:
tool: ${{ steps.tool-list.outputs.tool }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test bash
run: just --version && shfmt --version
shell: bash
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown
if: (!startsWith(matrix.container, 'opensuse'))
- name: Test sh
run: just --version && shfmt --version
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
@@ -242,7 +257,7 @@ jobs:
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: Auto approve for auto-generated PR
- name: Approve auto-generated PR for auto-merge
run: gh pr review --approve "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -10,7 +10,7 @@ on:
defaults:
run:
shell: bash
shell: bash --noprofile --norc -CeEuxo pipefail {0}
jobs:
create-release:

View File

@@ -1,9 +1,10 @@
# https://github.com/DavidAnson/markdownlint#rules--aliases
# https://github.com/DavidAnson/markdownlint/blob/HEAD/doc/Rules.md
config:
line-length: false
no-duplicate-heading: false
no-inline-html: false
no-emphasis-as-heading: false
line-length: false # MD013
no-duplicate-heading: false # MD024
no-blanks-blockquote: false # MD028
no-inline-html: false # MD033
no-emphasis-as-heading: false # MD036
# https://github.com/DavidAnson/markdownlint-cli2#markdownlint-cli2jsonc
noBanner: true

View File

@@ -10,6 +10,138 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.47.17] - 2025-01-19
- Update `cargo-audit@latest` to 0.21.1.
## [2.47.16] - 2025-01-18
- Update `cargo-make@latest` to 0.37.24.
## [2.47.15] - 2025-01-16
- Update `cargo-tarpaulin@latest` to 0.31.5.
- Update `cargo-llvm-cov@latest` to 0.6.16.
- Update `cargo-hack@latest` to 0.6.34.
## [2.47.14] - 2025-01-16
- Update `cargo-nextest@latest` to 0.9.88.
## [2.47.13] - 2025-01-15
- Update `wasmtime@latest` to 28.0.1.
- Update `release-plz@latest` to 0.3.113.
- Update `cargo-binstall@latest` to 1.10.21.
## [2.47.12] - 2025-01-13
- Update `wasm-bindgen@latest` to 0.2.100.
- Update `rclone@latest` to 1.69.0.
- Update `cargo-binstall@latest` to 1.10.20.
## [2.47.11] - 2025-01-11
- Update `editorconfig-checker@latest` to 3.1.2.
## [2.47.10] - 2025-01-10
- Update `cargo-udeps@latest` to 0.1.54.
## [2.47.9] - 2025-01-09
- Update `editorconfig-checker@latest` to 3.1.1.
- Update `protoc@latest` to 3.29.3.
## [2.47.8] - 2025-01-07
- Update `sccache@latest` to 0.9.1.
- Update `cargo-binstall@latest` to 1.10.19.
## [2.47.7] - 2025-01-03
- Update `typos@latest` to 1.29.4.
## [2.47.6] - 2025-01-03
- Update `typos@latest` to 1.29.3.
## [2.47.5] - 2025-01-02
- Update `typos@latest` to 1.29.1.
## [2.47.4] - 2025-01-02
- Update `xh@latest` to 0.23.1.
## [2.47.3] - 2025-01-02
- Update `knope@latest` to 0.18.2.
## [2.47.2] - 2024-12-31
- Update `typos@latest` to 1.29.0.
## [2.47.1] - 2024-12-31
- Update `cargo-tarpaulin@latest` to 0.31.4.
- Update `cargo-binstall@latest` to 1.10.18.
## [2.47.0] - 2024-12-27
- Support `wash`. ([#794](https://github.com/taiki-e/install-action/pull/794), thanks @joonas)
- Support `trunk`. ([#795](https://github.com/taiki-e/install-action/pull/795), thanks @azzamsa)
- Update `cargo-lambda@latest` to 1.6.2.
## [2.46.20] - 2024-12-22
- Update `dprint@latest` to 0.48.0.
## [2.46.19] - 2024-12-21
- Update `cargo-llvm-cov@latest` to 0.6.15.
- Update `cargo-lambda@latest` to 1.6.1.
## [2.46.18] - 2024-12-21
- Update `wasmtime@latest` to 28.0.0.
## [2.46.17] - 2024-12-20
- Update `release-plz@latest` to 0.3.112.
## [2.46.16] - 2024-12-19
- Update `osv-scanner@latest` to 1.9.2.
## [2.46.15] - 2024-12-18
- Update `protoc@latest` to 3.29.2.
## [2.46.14] - 2024-12-18
- Update `cargo-nextest@latest` to 0.9.87.
## [2.46.13] - 2024-12-17
- Update `espup@latest` to 0.14.0.
## [2.46.12] - 2024-12-17
- Update `typos@latest` to 1.28.4.
## [2.46.11] - 2024-12-16
- Update `cargo-zigbuild@latest` to 0.19.7.
@@ -3218,7 +3350,34 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.46.11...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.47.17...HEAD
[2.47.17]: https://github.com/taiki-e/install-action/compare/v2.47.16...v2.47.17
[2.47.16]: https://github.com/taiki-e/install-action/compare/v2.47.15...v2.47.16
[2.47.15]: https://github.com/taiki-e/install-action/compare/v2.47.14...v2.47.15
[2.47.14]: https://github.com/taiki-e/install-action/compare/v2.47.13...v2.47.14
[2.47.13]: https://github.com/taiki-e/install-action/compare/v2.47.12...v2.47.13
[2.47.12]: https://github.com/taiki-e/install-action/compare/v2.47.11...v2.47.12
[2.47.11]: https://github.com/taiki-e/install-action/compare/v2.47.10...v2.47.11
[2.47.10]: https://github.com/taiki-e/install-action/compare/v2.47.9...v2.47.10
[2.47.9]: https://github.com/taiki-e/install-action/compare/v2.47.8...v2.47.9
[2.47.8]: https://github.com/taiki-e/install-action/compare/v2.47.7...v2.47.8
[2.47.7]: https://github.com/taiki-e/install-action/compare/v2.47.6...v2.47.7
[2.47.6]: https://github.com/taiki-e/install-action/compare/v2.47.5...v2.47.6
[2.47.5]: https://github.com/taiki-e/install-action/compare/v2.47.4...v2.47.5
[2.47.4]: https://github.com/taiki-e/install-action/compare/v2.47.3...v2.47.4
[2.47.3]: https://github.com/taiki-e/install-action/compare/v2.47.2...v2.47.3
[2.47.2]: https://github.com/taiki-e/install-action/compare/v2.47.1...v2.47.2
[2.47.1]: https://github.com/taiki-e/install-action/compare/v2.47.0...v2.47.1
[2.47.0]: https://github.com/taiki-e/install-action/compare/v2.46.20...v2.47.0
[2.46.20]: https://github.com/taiki-e/install-action/compare/v2.46.19...v2.46.20
[2.46.19]: https://github.com/taiki-e/install-action/compare/v2.46.18...v2.46.19
[2.46.18]: https://github.com/taiki-e/install-action/compare/v2.46.17...v2.46.18
[2.46.17]: https://github.com/taiki-e/install-action/compare/v2.46.16...v2.46.17
[2.46.16]: https://github.com/taiki-e/install-action/compare/v2.46.15...v2.46.16
[2.46.15]: https://github.com/taiki-e/install-action/compare/v2.46.14...v2.46.15
[2.46.14]: https://github.com/taiki-e/install-action/compare/v2.46.13...v2.46.14
[2.46.13]: https://github.com/taiki-e/install-action/compare/v2.46.12...v2.46.13
[2.46.12]: https://github.com/taiki-e/install-action/compare/v2.46.11...v2.46.12
[2.46.11]: https://github.com/taiki-e/install-action/compare/v2.46.10...v2.46.11
[2.46.10]: https://github.com/taiki-e/install-action/compare/v2.46.9...v2.46.10
[2.46.9]: https://github.com/taiki-e/install-action/compare/v2.46.8...v2.46.9

View File

@@ -13,6 +13,7 @@ rust_2018_idioms = "warn"
single_use_lifetimes = "warn"
unexpected_cfgs = { level = "warn", check-cfg = [
] }
unnameable_types = "warn"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "warn"
[workspace.lints.clippy]
@@ -25,6 +26,7 @@ inline_asm_x86_att_syntax = "warn"
trailing_empty_array = "warn"
transmute_undefined_repr = "warn"
undocumented_unsafe_blocks = "warn"
unused_trait_names = "warn"
# Suppress buggy or noisy clippy lints
bool_assert_comparison = { level = "allow", priority = 1 }
borrow_as_ptr = { level = "allow", priority = 1 } # https://github.com/rust-lang/rust-clippy/issues/8286

View File

@@ -22,8 +22,8 @@ GitHub Action for installing development tools (mainly from GitHub Releases).
| Name | Required | Description | Type | Default |
| -------- |:--------:| --------------------------------------- | ------- | ------- |
| tool | **true** | Tools to install (comma-separated list) | String | |
| checksum | false | Whether to enable checksums | Boolean | `true` |
| tool | **✓** | Tools to install (comma-separated list) | String | |
| checksum | | Whether to enable checksums | Boolean | `true` |
### Example workflow

View File

@@ -59,9 +59,11 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| [**shellcheck**](https://www.shellcheck.net) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/koalaman/shellcheck/releases) | Linux, macOS, Windows | [GPL-3.0](https://github.com/koalaman/shellcheck/blob/master/LICENSE) |
| [**shfmt**](https://github.com/mvdan/sh) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/mvdan/sh/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/mvdan/sh/blob/master/LICENSE) |
| [**syft**](https://github.com/anchore/syft) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/anchore/syft/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE) |
| [**trunk**](https://github.com/trunk-rs/trunk) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/trunk-rs/trunk/releases) | Linux, macOS, Windows | [MIT](https://github.com/trunk-rs/trunk/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/trunk-rs/trunk/blob/main/LICENSE-APACHE) |
| [**typos**](https://github.com/crate-ci/typos) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/crate-ci/typos/releases) | Linux, macOS, Windows | [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) |
| [**valgrind**](https://valgrind.org/) | `/snap/bin` | [snap](https://snapcraft.io/install/valgrind/ubuntu) | Linux | [GPL-2.0](https://sourceware.org/git/?p=valgrind.git;a=blob;f=COPYING;hb=HEAD) |
| [**wait-for-them**](https://github.com/shenek/wait-for-them) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/shenek/wait-for-them/releases) | Linux, macOS, Windows | [GPL-3.0](https://github.com/shenek/wait-for-them/blob/v0.4.0/Cargo.toml#L7) |
| [**wash**](https://github.com/wasmCloud/wasmCloud) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/wasmCloud/wasmCloud/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/wasmCloud/wasmCloud/blob/main/LICENSE) |
| [**wasm-bindgen**](https://github.com/rustwasm/wasm-bindgen) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-bindgen/releases) | Linux, macOS, Windows | [MIT](https://github.com/rustwasm/wasm-bindgen/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/rustwasm/wasm-bindgen/blob/main/LICENSE-APACHE) |
| [**wasm-pack**](https://github.com/rustwasm/wasm-pack) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/rustwasm/wasm-pack/releases) | Linux, macOS, Windows | [MIT](https://github.com/rustwasm/wasm-pack/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/rustwasm/wasm-pack/blob/master/LICENSE-APACHE) |
| [**wasmtime**](https://github.com/bytecodealliance/wasmtime) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/bytecodealliance/wasmtime/releases) | Linux, macOS, Windows | [Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/main/LICENSE) |

1405
main.sh

File diff suppressed because it is too large Load Diff

View File

@@ -20,10 +20,28 @@
},
"license_markdown": "[Apache-2.0](https://github.com/rustsec/rustsec/blob/HEAD/cargo-audit/LICENSE-APACHE) OR [MIT](https://github.com/rustsec/rustsec/blob/HEAD/cargo-audit/LICENSE-MIT)",
"latest": {
"version": "0.21.0"
"version": "0.21.1"
},
"0.21": {
"version": "0.21.0"
"version": "0.21.1"
},
"0.21.1": {
"x86_64_linux_musl": {
"etag": "0x8DD383807A86B60",
"checksum": "e1d057a43028cb2359adcb75029e345b5791fbd2a1a01a3b8f16521035662cf3"
},
"x86_64_macos": {
"etag": "0x8DD3837D203A3C3",
"checksum": "ca21223691975d97a2442623a4d90e933d349199a728fdabaf98124ff65ee53f"
},
"x86_64_windows": {
"etag": "0x8DD383870DE65E0",
"checksum": "cb90ebf6c76bdf7014fb0114b3bc897917ce0ea5ecaf16f7dc7009612941dace"
},
"aarch64_linux_gnu": {
"etag": "0x8DD383809DEED88",
"checksum": "bd9a9ceb4887f28c8ace1a35da39818cbdcf98b1088bcd47544bff3a07e856bf"
}
},
"0.21.0": {
"x86_64_linux_musl": {

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.17"
"version": "1.10.21"
},
"1.10.17": {
"1.10.21": {
"x86_64_linux_musl": {
"etag": "0x8DD1C1188E2154D",
"checksum": "d073d4e8901e176b0f625845f9a0bbd926a063017991d7cc0c863e6b884d2d59"
"etag": "0x8DD33DF3B7A2D85",
"checksum": "625fa622a761030e989c6f4ed950da7b1309d707970496480d890c551a3de184"
},
"x86_64_macos": {
"etag": "0x8DD1C1106A79811",
"checksum": "16d557e8ea929d3ff310e7a3958a2d3b8c7d88005709dc46aebe57e4675d4be7"
"etag": "0x8DD33DF2DD25A04",
"checksum": "c8ecb8506608d5f5392d6b21b018283c01de64e2c97bea01cd6541a5e52d64c6"
},
"x86_64_windows": {
"etag": "0x8DD1C1262D55EBB",
"checksum": "3866b6c93534147c2382b2360b6d84681b3ff7ef623919d9bd08e53817df8c50"
"etag": "0x8DD33E01EB03384",
"checksum": "baa90496dfee7ff099cba47f93a4130b9661b56c46fbe63518ce94a340b7b611"
},
"aarch64_linux_musl": {
"etag": "0x8DD1C111D1C3CE8",
"checksum": "7250d4973167bbb0633773af98351fda151e7077efd0b582c149916d409dec75"
"etag": "0x8DD33DEDFBD8200",
"checksum": "dfa4a1aee56e0f078db8559113a4da7fd1fcf8298484db0f7254d09d89d81163"
},
"aarch64_macos": {
"etag": "0x8DD1C115B3B3306",
"checksum": "81abb7de75ef130844bb58965bdb93969afadd0821cf5e1e1bd0517e48963199"
"etag": "0x8DD33DF5BDB3971",
"checksum": "2e51fb2911cdb9c9e7f8ef909c5c9b96373fa72c8c009b4698ca40f4110b9ca6"
},
"aarch64_windows": {
"etag": "0x8DD1C1232EE4057",
"checksum": "c5ae6543a4b97372a163444468720984e41a6cd3eecd82fdf75c65528ec3f806"
"etag": "0x8DD33DFE9223054",
"checksum": "bbded110d168b8406e34cd4155c061402a6ec7b2d66a1a2e78980f304f038d37"
}
}
}

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.33"
"version": "0.6.34"
},
"0.6": {
"version": "0.6.33"
"version": "0.6.34"
},
"0.6.34": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.34/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD364BF6437B65",
"checksum": "7b58e29544ae7b357deda5118a17053e4929f94f8d8595215d27cbbb415c47a5"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.34/cargo-hack-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD364C545B2CF1",
"checksum": "4fc72e4b3e1d7c7063efeddd4ebc196b4ee062e9b772dad24bebf8cb15749e21"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.34/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD364C4A143D6D",
"checksum": "6206ca07f99945f58765d1669fb2a995d96d809424ff7424257ce5f0fad23401"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.34/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DD364BFC48B3B7",
"checksum": "2b30401f9eb7664affdda7ce13b5d8421e2ea5ea74a854a71679ff68bf766761"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.34/cargo-hack-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD364C24072F24",
"checksum": "f2e88526e44b5934b5a0a2aa10fbf621ec44fe509c6ac6a82e1d49fa41d70943"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.34/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"etag": "0x8DD364C3F0E09C1",
"checksum": "9c9903aa9ae2caaf38c37a0375e18afc50da1c1ca69c3f89b4219b530ab59a0c"
}
},
"0.6.33": {
"x86_64_linux_musl": {

View File

@@ -20,13 +20,57 @@
},
"license_markdown": "[MIT](https://github.com/cargo-lambda/cargo-lambda/blob/main/LICENSE)",
"latest": {
"version": "1.6.0"
"version": "1.6.2"
},
"1": {
"version": "1.6.0"
"version": "1.6.2"
},
"1.6": {
"version": "1.6.0"
"version": "1.6.2"
},
"1.6.2": {
"x86_64_linux_musl": {
"etag": "0x8DD25F1C175B89A",
"checksum": "a2c8dc44b9d859b42e594860fe82499e069c721b0990b7baca9ce590fd2f03d4"
},
"x86_64_macos": {
"etag": "0x8DD25F1C21122E0",
"checksum": "0b28214cd6acf246185817ef2d1e741a68bdc2f8b1712eb5c2163393ed12b4b9"
},
"x86_64_windows": {
"etag": "0x8DD25F1C2C26D99",
"checksum": "9af75e22002171e2da3e47be7e6f0a35119c7cfa817a539c2cfd498f64127127"
},
"aarch64_linux_musl": {
"etag": "0x8DD25F1C358D458",
"checksum": "80152d6829d1c1a275ed8e554cc1a872b682c2cb10424922482846e06cd0aae8"
},
"aarch64_macos": {
"etag": "0x8DD25F1C3FB14BD",
"checksum": "e0e7696ba0f8fa6e3843d3a6a11e2fcd91b92fd4ef4916eca58617ec69a69859"
}
},
"1.6.1": {
"x86_64_linux_musl": {
"etag": "0x8DD21EB93AB5F82",
"checksum": "b1ae3785547b5b0b751bc5a122ba6f956d726155279880676b9c14cdf14dfbdc"
},
"x86_64_macos": {
"etag": "0x8DD21EB943F310A",
"checksum": "f1d5c34f47953d32f553210a883e68e4e9060408e257f9b3a9787bd80d4e4e7b"
},
"x86_64_windows": {
"etag": "0x8DD21EB94C92294",
"checksum": "7cd12c6d6c85905354b9dfd2b0b255ef7b34f4fec86697868fd33ab8764ba801"
},
"aarch64_linux_musl": {
"etag": "0x8DD21EB956B14F7",
"checksum": "3b5360f4d1c7af13c9302e1b2ab9095e5767411771e55b90edb35a82bce40406"
},
"aarch64_macos": {
"etag": "0x8DD21EB960851C4",
"checksum": "c5ef6af3282ff0ab43c0084087339fab99874cb9cea6f6faed114a1d71efbf6b"
}
},
"1.6.0": {
"x86_64_linux_musl": {

View File

@@ -19,10 +19,54 @@
},
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-llvm-cov/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-llvm-cov/blob/main/LICENSE-MIT)",
"latest": {
"version": "0.6.14"
"version": "0.6.16"
},
"0.6": {
"version": "0.6.14"
"version": "0.6.16"
},
"0.6.16": {
"x86_64_linux_musl": {
"etag": "0x8DD364B5D41374E",
"checksum": "2145d09b8263ba8bdf32f362919e0e2bb8170404bf6edd380b7b442f9017df58"
},
"x86_64_macos": {
"etag": "0x8DD364B96067E67",
"checksum": "337c619978c7595113353db5775cf953052aba85746f884085e31d2757a03e87"
},
"x86_64_windows": {
"etag": "0x8DD364BA6E069FE",
"checksum": "39f9ee12b9673f081bee6b250a186fbf438bb3f4b8897417d23ee74b199e02ce"
},
"aarch64_linux_musl": {
"etag": "0x8DD364B61561F48",
"checksum": "02a3a2d9c5de145319bd01f7ae63b6a76f0b57229887859a79b9fc0f57978b33"
},
"aarch64_macos": {
"etag": "0x8DD364B8C4E0B3B",
"checksum": "f1ab5f573d6c49d463f8117501462e2a6a0cead9124b68b4a2fbd8a3f5aad7ba"
}
},
"0.6.15": {
"x86_64_linux_musl": {
"etag": "0x8DD21F946A70F82",
"checksum": "9519ceac912cb552e1b965c099df264328bb6abf8ef401ff73561612aa873d1e"
},
"x86_64_macos": {
"etag": "0x8DD21F9858B7BF4",
"checksum": "fe2097463ed82b56272d0d1e59817bbad22033b4680db3a0c30ad13ecf637099"
},
"x86_64_windows": {
"etag": "0x8DD21F9989871CD",
"checksum": "d8b7dd1006c8095d8614fb39735345e64fbba69810658cd119396787e3551aef"
},
"aarch64_linux_musl": {
"etag": "0x8DD21F9425891DE",
"checksum": "92e5294605b8bd30499a7bbd97b455e2915d1f00cac15bd005f092f76efabda5"
},
"aarch64_macos": {
"etag": "0x8DD21F959B40704",
"checksum": "6fc0737a5227101474b23245fab822563e4f03520b211612be3bd47058b8808d"
}
},
"0.6.14": {
"x86_64_linux_musl": {

View File

@@ -20,10 +20,28 @@
},
"license_markdown": "[Apache-2.0](https://github.com/sagiegurari/cargo-make/blob/master/LICENSE)",
"latest": {
"version": "0.37.23"
"version": "0.37.24"
},
"0.37": {
"version": "0.37.23"
"version": "0.37.24"
},
"0.37.24": {
"x86_64_linux_musl": {
"etag": "0x8DD37D36A8C5F07",
"checksum": "ff76969f0caab39c56d168b94b2540fde34609aa6562d555081818ece387b005"
},
"x86_64_macos": {
"etag": "0x8DD37D2ECB9F67A",
"checksum": "afd10db16ce089e0208d4829d46351833d9eb61f3181452a38a2a089bafedc31"
},
"x86_64_windows": {
"etag": "0x8DD37D379E8369F",
"checksum": "f7c757c7e147023ac86d80b134e5a59e0ed8ff032e39be3464cc4aad1e5e0f33"
},
"aarch64_macos": {
"etag": "0x8DD37D2EB99C51D",
"checksum": "823fe51d2baa5679a5dfd33c703d0176374f8f023a2ee950f2e03dc4f31ee523"
}
},
"0.37.23": {
"x86_64_linux_musl": {

View File

@@ -19,10 +19,56 @@
},
"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.86"
"version": "0.9.88"
},
"0.9": {
"version": "0.9.86"
"version": "0.9.88"
},
"0.9.88": {
"previous_stable_version": "0.9.87",
"x86_64_linux_gnu": {
"etag": "0x8DD35B614AADEF1",
"checksum": "6fdb196e5643d50cad6daeefea5c978fff4904f5593eecba472f5ea3150e2aa0"
},
"x86_64_linux_musl": {
"etag": "0x8DD35B63691ECBA",
"checksum": "6fd7676908b4211f12f6298726544509fcb8c6b49a74bacb755d002260b3172c"
},
"x86_64_macos": {
"etag": "0x8DD35B6411A656E",
"checksum": "fe12274625473fe3c9895e28550364fb0afd1faea4e222c36a79b0c1ce1933ae"
},
"x86_64_windows": {
"etag": "0x8DD35B657950DD1",
"checksum": "ddc050a9c52db279bc2a532edf374633c27fb04a4cff679e574a6a19171d6d99"
},
"aarch64_linux_gnu": {
"etag": "0x8DD35B62BE93E0B",
"checksum": "040c1fd58f8853a2104f64c2cc1e7c66bfb48b72637ab1e72027375672d94b6c"
}
},
"0.9.87": {
"previous_stable_version": "0.9.86",
"x86_64_linux_gnu": {
"etag": "0x8DD1EE72E7CCED3",
"checksum": "bde8d231e435099b068e654c591224defe686c784b4920682ee12784b6bfcf9e"
},
"x86_64_linux_musl": {
"etag": "0x8DD1EE7819B82BE",
"checksum": "883cb9222e364d2527e1cbbb236d5c0bf58a2d1ff6da7d03de4ac7ca70f06aa3"
},
"x86_64_macos": {
"etag": "0x8DD1EE736789723",
"checksum": "e974faad8302c1adb756f5c09e485b10efcefa066b733ee2ebba5cb63f2a1c86"
},
"x86_64_windows": {
"etag": "0x8DD1EE7C13AE008",
"checksum": "dd3d45a588402969ebbaefbda88687119b86f59d92422d6238ce7f0077462c45"
},
"aarch64_linux_gnu": {
"etag": "0x8DD1EE743891D12",
"checksum": "5501ee805594be80446968d6608eccac88e8e94b65b04afb2a3f1db923a0c55c"
}
},
"0.9.86": {
"previous_stable_version": "0.9.85",

View File

@@ -19,10 +19,54 @@
},
"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.3"
"version": "0.31.5"
},
"0.31": {
"version": "0.31.3"
"version": "0.31.5"
},
"0.31.5": {
"x86_64_linux_musl": {
"etag": "0x8DD36405804CBF3",
"checksum": "a5f2fdf67023775444c95afe5f0c190885944ca91250d39ac03788924eaa486d"
},
"x86_64_macos": {
"etag": "0x8DD3640173A9B5F",
"checksum": "8376c76c9d16f35ea0358d3683a4cfc638286eabf7fe12acdb31c4efb4ebeb6b"
},
"x86_64_windows": {
"etag": "0x8DD3640D5D46201",
"checksum": "96d93282bcd9c8e52fbe1dab2dff023512f198b5f0cff375c2fbce12fd978c5e"
},
"aarch64_linux_musl": {
"etag": "0x8DD364052DB3E9D",
"checksum": "b371cd0b30c8b7ae86badb9d92965acd740baa3412e11975cfb2ed54dc1b8130"
},
"aarch64_macos": {
"etag": "0x8DD364041B7A438",
"checksum": "476cd4eafea7ebaa21eb560dcd708cf412090214df17a45703c6454a88727cf1"
}
},
"0.31.4": {
"x86_64_linux_musl": {
"etag": "0x8DD2989345D8F62",
"checksum": "94a47da7a7a1e659c3f72d09e97e27962107d5cc9cb6c10f6725e1ed2ae2c145"
},
"x86_64_macos": {
"etag": "0x8DD2988DAFD48B6",
"checksum": "ea4eb1a57b259e6c7062790072e679dab78dea5e053141d67f5741805ba315e4"
},
"x86_64_windows": {
"etag": "0x8DD29894A932EA9",
"checksum": "10f7e7fe8bf81b9272ef983ff5d84c7c51c1492caca851234efbe093f01e246c"
},
"aarch64_linux_musl": {
"etag": "0x8DD2988FF72D12E",
"checksum": "1a646b57c6060c96c04c753aefa8f5696b6e97aa3ae1fb32a7239929f1245bbf"
},
"aarch64_macos": {
"etag": "0x8DD2988CB3EFCE4",
"checksum": "5214123555d1ccd3f5a3c7911e0556cb8d0a1161b645948dfa0ecc7a07b43357"
}
},
"0.31.3": {
"x86_64_linux_musl": {

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.53"
"version": "0.1.54"
},
"0.1": {
"version": "0.1.53"
"version": "0.1.54"
},
"0.1.54": {
"x86_64_linux_musl": {
"etag": "0x8DD31143C857BA5",
"checksum": "866b51683487d8aa69a59e7b7728e3f6d302388eda40db8816943d14d30fbc42"
},
"x86_64_macos": {
"etag": "0x8DD31146F76A8A8",
"checksum": "9bf127b7f9bacc54eaf8f1a764d6458530c7df6bce782ec4b8cba034c6bfd36c"
},
"x86_64_windows": {
"etag": "0x8DD3114B71A7832",
"checksum": "c34dc47902d3b9dadf567808ecab19863ab0bd01c039c0cca5df938efd59eb79"
},
"aarch64_linux_musl": {
"etag": "0x8DD311439500EB5",
"checksum": "69a061b2f3111fefcc7bfe3d0cc927c54dcd2f5f6db0cfe15277bdb9bc17e925"
},
"aarch64_macos": {
"etag": "0x8DD311411580373",
"checksum": "36b225eaf938c4520578cfa77471bd05e9f4a09067ee4fee545ddf63e6dbfba4"
},
"aarch64_windows": {
"etag": "0x8DD3114D12BF7AC",
"checksum": "0257ad2d653751c94828ee27cec916f8297681954ea51907d10c7e2a4cdea155"
}
},
"0.1.53": {
"x86_64_linux_musl": {

27
manifests/dprint.json generated
View File

@@ -25,7 +25,32 @@
},
"license_markdown": "[MIT](https://github.com/dprint/dprint/blob/main/LICENSE)",
"latest": {
"version": "0.47.6"
"version": "0.48.0"
},
"0.48": {
"version": "0.48.0"
},
"0.48.0": {
"x86_64_linux_musl": {
"etag": "0x8DD22149AD1C4BE",
"checksum": "49e4b31f3a3606a4a796180104b6e2affbf701f1d7cca5a8917424ccac907442"
},
"x86_64_macos": {
"etag": "0x8DD22149AA8E6E9",
"checksum": "ffadf5fc645f3596f76c534cb2f10591c98513823134f085339b42e09ed919ab"
},
"x86_64_windows": {
"etag": "0x8DD22149A976E44",
"checksum": "772b4ff758196e1aa1df5b71e454ec8657a38ad5ae2000d03cb503a917ffc155"
},
"aarch64_linux_musl": {
"etag": "0x8DD22149AA73B02",
"checksum": "73179f4a53502e013700c97605cccebd0ff731696054a03d59ec9507947b8308"
},
"aarch64_macos": {
"etag": "0x8DD22149A9C71B2",
"checksum": "31efaf7d6fbdbb53188c457105e894d08b0c43eb02878abae778edaedd0a5c70"
}
},
"0.47": {
"version": "0.47.6"

View File

@@ -1,143 +1,283 @@
{
"rust_crate": null,
"template": {
"template": null,
"license_markdown": "[MIT](https://github.com/editorconfig-checker/editorconfig-checker/blob/main/LICENSE)",
"latest": {
"version": "3.1.2"
},
"3": {
"version": "3.1.2"
},
"3.1": {
"version": "3.1.2"
},
"3.1.2": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v${version}/ec-linux-amd64.tar.gz",
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.2/ec-linux-amd64.tar.gz",
"etag": "0x8DD31C3802BB3A5",
"checksum": "3fd4fc81e5077f89faddb71ff05a5d6e2983b8c3953d1b1b6663c7245300e653",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v${version}/ec-darwin-amd64.tar.gz",
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.2/ec-darwin-amd64.tar.gz",
"etag": "0x8DD31C37FF6AE95",
"checksum": "f9077b2bbf93db1e7019cc35a567aa80937cd5680cf8453ed00f3eb47e9feea4",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v${version}/ec-windows-amd64.exe.tar.gz",
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.2/ec-windows-amd64.zip",
"etag": "0x8DD31C380C87BA2",
"checksum": "58ced741383e4e8d68aeeda4c2a6c08deb52e45fbb3a5a976c52f161b62b8032",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v${version}/ec-linux-arm64.tar.gz",
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.2/ec-linux-arm64.tar.gz",
"etag": "0x8DD31C38037B40E",
"checksum": "1333275ced71f1814db1ae677681a1b8b9d412d7046675594f7cdb1f8c7c47d1",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v${version}/ec-darwin-arm64.tar.gz",
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.2/ec-darwin-arm64.tar.gz",
"etag": "0x8DD31C37FF9B85E",
"checksum": "ca7ad4492a3235d853662dec88485073a01a782e121e308336832a14b95a765d",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v${version}/ec-windows-arm64.exe.tar.gz",
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.2/ec-windows-arm64.zip",
"etag": "0x8DD31C3814F3C50",
"checksum": "af97bc69a6f6283818aa32788d8d6d884aafb1a30b939a7e9930a812dd30c75e",
"bin": "bin/ec-windows-arm64.exe"
}
},
"license_markdown": "[MIT](https://github.com/editorconfig-checker/editorconfig-checker/blob/main/LICENSE)",
"latest": {
"version": "3.0.3"
"3.1.1": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.1/ec-linux-amd64.tar.gz",
"etag": "0x8DD30098E5600DE",
"checksum": "d750eebd0b296e1f2aa8e900f4fcc2e248e9638bd1bf9e858203ee236a21de00",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.1/ec-darwin-amd64.tar.gz",
"etag": "0x8DD30098E51E6C5",
"checksum": "b414347a24fae1bdb88d7504dd5ffb69fcd9c7894eadc1a8c9124666388fd121",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.1/ec-windows-amd64.zip",
"etag": "0x8DD30098E9B475F",
"checksum": "a6a7340365f51ab37a665e79d2cfeca46d25065b95ee01061abeb7ef666bc9b8",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.1/ec-linux-arm64.tar.gz",
"etag": "0x8DD30098E7918D1",
"checksum": "f7cbdfd08704b8ab83f5b48ab6c8354d4aef01c408ab8c181c6d571bc1a4e24a",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.1/ec-darwin-arm64.tar.gz",
"etag": "0x8DD30098ED2BACB",
"checksum": "44115eaef1c0b5d9ca09bbd7c7e3afadfe2ff14b8c04251eceb055163623f93f",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.1/ec-windows-arm64.zip",
"etag": "0x8DD30098EE0B4BA",
"checksum": "c028558c17100d89ff9a8a4c2b2fb75ae1047aa9431601679d66f37d581ccfc5",
"bin": "bin/ec-windows-arm64.exe"
}
},
"3": {
"version": "3.0.3"
"3.1.0": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.0/ec-linux-amd64.tar.gz",
"etag": "0x8DD2FEB7A3F6836",
"checksum": "43158e9de5ff5c22b1e972440d830511621dbd2c3b8a57878896c7bd26032dde",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.0/ec-darwin-amd64.tar.gz",
"etag": "0x8DD2FEB7A06E4AA",
"checksum": "f75ca35ec49b839997b26f1ccfe5b87f912217fdbe2b80992c8fac159c18e36c",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.0/ec-windows-amd64.zip",
"etag": "0x8DD2FEB79ABBDF1",
"checksum": "98570ba73976e756e8312530fed2d6caa0a1510d9552530a0e18f127df1ed186",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.0/ec-linux-arm64.tar.gz",
"etag": "0x8DD2FEB796602D4",
"checksum": "3ac92a540367ccc24c07fd0cfcf00128d93f47c22efcd504bbbcbf5df5040686",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.0/ec-darwin-arm64.tar.gz",
"etag": "0x8DD2FEB79FF253A",
"checksum": "29cf6e46df2efad7878ed28ba251a329a2a51b0570cb49e0a97bfd252a32d28a",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.1.0/ec-windows-arm64.zip",
"etag": "0x8DD2FEB7A7B6A3D",
"checksum": "84b9f74cee3074e95aa361344c88f3b0d0628a72fcf86d413cc651f9c49415c8",
"bin": "bin/ec-windows-arm64.exe"
}
},
"3.0": {
"version": "3.0.3"
},
"3.0.3": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.3/ec-linux-amd64.tar.gz",
"etag": "0x8DC9B4F6F214767",
"checksum": "fc698b0bf5bca0d42e28dd59d72e25487a51f645ca242c5f74bae975369f16aa"
"checksum": "fc698b0bf5bca0d42e28dd59d72e25487a51f645ca242c5f74bae975369f16aa",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.3/ec-darwin-amd64.tar.gz",
"etag": "0x8DC9B4F53C6A5D4",
"checksum": "34bb2f4f34c4909b4ff415a5054ed47a6162f4e03857bdf2cfd7d166bbc91ce0"
"checksum": "34bb2f4f34c4909b4ff415a5054ed47a6162f4e03857bdf2cfd7d166bbc91ce0",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.3/ec-windows-amd64.exe.tar.gz",
"etag": "0x8DC9B4FAFC7A9F3",
"checksum": "97d7b0530a172e49310010408286176665bbeedf6b38058ac3f125409c3a3b82"
"checksum": "97d7b0530a172e49310010408286176665bbeedf6b38058ac3f125409c3a3b82",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.3/ec-linux-arm64.tar.gz",
"etag": "0x8DC9B4F74C548E5",
"checksum": "d5991ae92170af79ec2052840176bf155d00eaf6eb5a2c8ffbf46f6378c21776"
"checksum": "d5991ae92170af79ec2052840176bf155d00eaf6eb5a2c8ffbf46f6378c21776",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.3/ec-darwin-arm64.tar.gz",
"etag": "0x8DC9B4F56839C1F",
"checksum": "70b7f80dbfa89454dfa68f40c5d2f871bd8c311f01c822f78455b94536d87995"
"checksum": "70b7f80dbfa89454dfa68f40c5d2f871bd8c311f01c822f78455b94536d87995",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.3/ec-windows-arm64.exe.tar.gz",
"etag": "0x8DC9B4FB58861E0",
"checksum": "6561c4a34c9e7df7e3f5abfaed5bbe5e43317db222b637f4b3a6d8e298120384"
"checksum": "6561c4a34c9e7df7e3f5abfaed5bbe5e43317db222b637f4b3a6d8e298120384",
"bin": "bin/ec-windows-arm64.exe"
}
},
"3.0.2": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.2/ec-linux-amd64.tar.gz",
"etag": "0x8DC9A9036E834A7",
"checksum": "2f11b26b34d97f07120038bf517af029b99f90fe96b77369fd66a301ab7a557e"
"checksum": "2f11b26b34d97f07120038bf517af029b99f90fe96b77369fd66a301ab7a557e",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.2/ec-darwin-amd64.tar.gz",
"etag": "0x8DC9A901B300824",
"checksum": "8e935c86dc9c8b4156ae96292b7f490b73cb8c50a3ab3943792dcbe6b7474764"
"checksum": "8e935c86dc9c8b4156ae96292b7f490b73cb8c50a3ab3943792dcbe6b7474764",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.2/ec-windows-amd64.exe.tar.gz",
"etag": "0x8DC9A9078A4F62F",
"checksum": "74ecb356917a55ad4276b09ae2cd0fe28ab8878121c5173a35b5acadd50e7bf1"
"checksum": "74ecb356917a55ad4276b09ae2cd0fe28ab8878121c5173a35b5acadd50e7bf1",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.2/ec-linux-arm64.tar.gz",
"etag": "0x8DC9A903C7370B0",
"checksum": "8836eabc57daf4717b55ae2ce002469f8a14123c2129b7a9cf0597c98acfe928"
"checksum": "8836eabc57daf4717b55ae2ce002469f8a14123c2129b7a9cf0597c98acfe928",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.2/ec-darwin-arm64.tar.gz",
"etag": "0x8DC9A901E0A289A",
"checksum": "0eb627ea862b81c7645052a142fc0ff882fe491aad040a8be6a80f2d36a8635f"
"checksum": "0eb627ea862b81c7645052a142fc0ff882fe491aad040a8be6a80f2d36a8635f",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.2/ec-windows-arm64.exe.tar.gz",
"etag": "0x8DC9A907E6D6B4A",
"checksum": "3eb2ea381ad5c621f41a8c1bd2fc9312b5aabfa904078f4a4875302f4a8434ec"
"checksum": "3eb2ea381ad5c621f41a8c1bd2fc9312b5aabfa904078f4a4875302f4a8434ec",
"bin": "bin/ec-windows-arm64.exe"
}
},
"3.0.1": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.1/ec-linux-amd64.tar.gz",
"etag": "0x8DC54967F3BEFBA",
"checksum": "debda88bcf5048280101b743b3104732650c8b49a2a017ed815481c817cfe13f"
"checksum": "debda88bcf5048280101b743b3104732650c8b49a2a017ed815481c817cfe13f",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.1/ec-darwin-amd64.tar.gz",
"etag": "0x8DC549663BF24F5",
"checksum": "9e4b4e1340e905bfe0b993fe1343e95e0714eb8b715e35608018a8420866a60e"
"checksum": "9e4b4e1340e905bfe0b993fe1343e95e0714eb8b715e35608018a8420866a60e",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.1/ec-windows-amd64.exe.tar.gz",
"etag": "0x8DC5496CCD13EDB",
"checksum": "902556a8558108f910834f3e116f778e4a6710dbc74f79a065039ea52abe4d25"
"checksum": "902556a8558108f910834f3e116f778e4a6710dbc74f79a065039ea52abe4d25",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.1/ec-linux-arm64.tar.gz",
"etag": "0x8DC549684C470C1",
"checksum": "59de9965c7b2629112b158bedff3f132115bd53fd14e3b477cc3a5fc77233e6b"
"checksum": "59de9965c7b2629112b158bedff3f132115bd53fd14e3b477cc3a5fc77233e6b",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.1/ec-darwin-arm64.tar.gz",
"etag": "0x8DC54966905DDEE",
"checksum": "d7f0d4fbc05cee0afcb7debc130f2dd133fbd2a03ba80efa0d21fd19d774bf1b"
"checksum": "d7f0d4fbc05cee0afcb7debc130f2dd133fbd2a03ba80efa0d21fd19d774bf1b",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.1/ec-windows-arm64.exe.tar.gz",
"etag": "0x8DC5496CEA80BFE",
"checksum": "b845ef4cd75fe76233f5537111bf24f9aeb3fc69f0aa90a4ebf306ad8028aa08"
"checksum": "b845ef4cd75fe76233f5537111bf24f9aeb3fc69f0aa90a4ebf306ad8028aa08",
"bin": "bin/ec-windows-arm64.exe"
}
},
"3.0.0": {
"x86_64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.0/ec-linux-amd64.tar.gz",
"etag": "0x8DC3C3FCCBF9621",
"checksum": "8e2f3c5fa4891542535185a4859c5f92832bc11821eb03a081bc6bd87af5a829"
"checksum": "8e2f3c5fa4891542535185a4859c5f92832bc11821eb03a081bc6bd87af5a829",
"bin": "bin/ec-linux-amd64"
},
"x86_64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.0/ec-darwin-amd64.tar.gz",
"etag": "0x8DC3C3FC9D55B3A",
"checksum": "d331806227c1a1ed96ddd34eceac51bd1cef0121f78bdb09d509771f6e5aec79"
"checksum": "d331806227c1a1ed96ddd34eceac51bd1cef0121f78bdb09d509771f6e5aec79",
"bin": "bin/ec-darwin-amd64"
},
"x86_64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.0/ec-windows-amd64.exe.tar.gz",
"etag": "0x8DC3C3FD475C8CB",
"checksum": "ff171ef63361bbd783622ba778a83e6fe5d6615e8b9e9e9c2f2c177e89dba499"
"checksum": "ff171ef63361bbd783622ba778a83e6fe5d6615e8b9e9e9c2f2c177e89dba499",
"bin": "bin/ec-windows-amd64.exe"
},
"aarch64_linux_gnu": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.0/ec-linux-arm64.tar.gz",
"etag": "0x8DC3C3FD0E61D19",
"checksum": "edf1d12ba1e6ff70090f063e7937081b49ba6007cd02e45f8329bbf965ed609e"
"checksum": "edf1d12ba1e6ff70090f063e7937081b49ba6007cd02e45f8329bbf965ed609e",
"bin": "bin/ec-linux-arm64"
},
"aarch64_macos": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.0/ec-darwin-arm64.tar.gz",
"etag": "0x8DC3C3FC9B59AE9",
"checksum": "35324d5914d147cb51859e49c48909cef22ae448fca407b9d39f95dcc77be109"
"checksum": "35324d5914d147cb51859e49c48909cef22ae448fca407b9d39f95dcc77be109",
"bin": "bin/ec-darwin-arm64"
},
"aarch64_windows": {
"url": "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.0.0/ec-windows-arm64.exe.tar.gz",
"etag": "0x8DC3C3FD4E1CCA2",
"checksum": "40b382a225a345e28f575010b637a372eb004ba3f1544341df0fbc265d183ff6"
"checksum": "40b382a225a345e28f575010b637a372eb004ba3f1544341df0fbc265d183ff6",
"bin": "bin/ec-windows-arm64.exe"
}
}
}

27
manifests/espup.json generated
View File

@@ -19,7 +19,32 @@
},
"license_markdown": "[MIT](https://github.com/esp-rs/espup/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/esp-rs/espup/blob/main/LICENSE-APACHE)",
"latest": {
"version": "0.13.0"
"version": "0.14.0"
},
"0.14": {
"version": "0.14.0"
},
"0.14.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD1E7DCEF3783B",
"checksum": "08ba1534c8addce1578bbffcac15fd1a058a543a1375a496c585d1cd4000eab0"
},
"x86_64_macos": {
"etag": "0x8DD1E7D48286B87",
"checksum": "2f05bc508c1c5bc0c470c03dae95ae89130866195cdb06e2e7a5d39eceb3b5e2"
},
"x86_64_windows": {
"etag": "0x8DD1E7D8FDB538C",
"checksum": "182701122c97acdb92011d86f362728f9081b7a8b3d7720951f4e02eb25f0cab"
},
"aarch64_linux_gnu": {
"etag": "0x8DD1E7D5F8E8082",
"checksum": "17bc622a95c7ad5554c383c103e3383a3c7b3642db61b80d64e96041ec77056f"
},
"aarch64_macos": {
"etag": "0x8DD1E7D46258F70",
"checksum": "a46e84e83f56c6025cbc14847ba0b54100a5e407565143b49aaa7ec44c0d0b4e"
}
},
"0.13": {
"version": "0.13.0"

30
manifests/knope.json generated
View File

@@ -3,10 +3,36 @@
"template": null,
"license_markdown": "[MIT](https://github.com/knope-dev/knope/blob/main/LICENSE)",
"latest": {
"version": "0.18.1"
"version": "0.18.2"
},
"0.18": {
"version": "0.18.1"
"version": "0.18.2"
},
"0.18.2": {
"x86_64_linux_musl": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-x86_64-unknown-linux-musl.tgz",
"etag": "0x8DD2ACDFF5567F8",
"checksum": "c43e040643cc16f14a70444d79dcf4e9c4eaa896664f598005386637c2534e6f",
"bin": "knope-x86_64-unknown-linux-musl/knope"
},
"x86_64_macos": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-x86_64-apple-darwin.tgz",
"etag": "0x8DD2ACDFF51C290",
"checksum": "f9cc757233467e192a0904f2e9c2ef5aa1a7e715235b98520af33fd986d115f2",
"bin": "knope-x86_64-apple-darwin/knope"
},
"x86_64_windows": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-x86_64-pc-windows-msvc.tgz",
"etag": "0x8DD2ACDFF558EDB",
"checksum": "0e5775244e10a7e9de89be4f0f485e23bfa6c98ad008b85d54a1235b4e7bd123",
"bin": "knope-x86_64-pc-windows-msvc/knope.exe"
},
"aarch64_macos": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-aarch64-apple-darwin.tgz",
"etag": "0x8DD2ACDFF4E6AFA",
"checksum": "ff35f72455a498e9a407b483c1d6ddb962f6ae31b1989db6dfc09e88da270b3b",
"bin": "knope-aarch64-apple-darwin/knope"
}
},
"0.18.1": {
"x86_64_linux_musl": {

View File

@@ -3,13 +3,45 @@
"template": null,
"license_markdown": "[Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE)",
"latest": {
"version": "1.9.1"
"version": "1.9.2"
},
"1": {
"version": "1.9.1"
"version": "1.9.2"
},
"1.9": {
"version": "1.9.1"
"version": "1.9.2"
},
"1.9.2": {
"x86_64_linux_musl": {
"url": "https://github.com/google/osv-scanner/releases/download/v1.9.2/osv-scanner_linux_amd64",
"etag": "0x8DD1FE15D0D964C",
"checksum": "d6af4b67fa5de658598bd2d445efb99e90d1734b3146962418719c4350ecb74b"
},
"x86_64_macos": {
"url": "https://github.com/google/osv-scanner/releases/download/v1.9.2/osv-scanner_darwin_amd64",
"etag": "0x8DD1FE15D17EAE8",
"checksum": "487ab433b2c2a8c80b737c0bd428a80e6d2e211b4adf775a52a6964163fa3249"
},
"x86_64_windows": {
"url": "https://github.com/google/osv-scanner/releases/download/v1.9.2/osv-scanner_windows_amd64.exe",
"etag": "0x8DD1FE15D1B9049",
"checksum": "c041e84d6b58150a31e8cf49fb3eb9b1e87b305c77db6aa82959262e2b1e9c9d"
},
"aarch64_linux_musl": {
"url": "https://github.com/google/osv-scanner/releases/download/v1.9.2/osv-scanner_linux_arm64",
"etag": "0x8DD1FE15DDF3CAB",
"checksum": "9c6160afb26c79449a1f1b667323b989a57dda8fc19f22936c9ff920fd97ddfa"
},
"aarch64_macos": {
"url": "https://github.com/google/osv-scanner/releases/download/v1.9.2/osv-scanner_darwin_arm64",
"etag": "0x8DD1FE15DD6BAC1",
"checksum": "393f2c7089d9431bd26a3804d6e46d417b1c05abd5d49c41c7dfc174c520acf0"
},
"aarch64_windows": {
"url": "https://github.com/google/osv-scanner/releases/download/v1.9.2/osv-scanner_windows_arm64.exe",
"etag": "0x8DD1FE15D2AC175",
"checksum": "c8936d46115ea09877185643adb5faa406c8cb9a652b55beb7211e8943517e2a"
}
},
"1.9.1": {
"x86_64_linux_musl": {

60
manifests/protoc.json generated
View File

@@ -3,13 +3,67 @@
"template": null,
"license_markdown": "[BSD-3-Clause](https://github.com/protocolbuffers/protobuf/blob/HEAD/LICENSE)",
"latest": {
"version": "3.29.1"
"version": "3.29.3"
},
"3": {
"version": "3.29.1"
"version": "3.29.3"
},
"3.29": {
"version": "3.29.1"
"version": "3.29.3"
},
"3.29.3": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protoc-29.3-linux-x86_64.zip",
"etag": "0x8DD3027A46B7D11",
"checksum": "3e866620c5be27664f3d2fa2d656b5f3e09b5152b42f1bedbf427b333e90021a"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protoc-29.3-osx-x86_64.zip",
"etag": "0x8DD3027A4A7CD08",
"checksum": "9a788036d8f9854f7b03c305df4777cf0e54e5b081e25bf15252da87e0e90875"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protoc-29.3-win64.zip",
"etag": "0x8DD3027A4D31921",
"checksum": "57ea59e9f551ad8d71ffaa9b5cfbe0ca1f4e720972a1db7ec2d12ab44bff9383"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protoc-29.3-linux-aarch_64.zip",
"etag": "0x8DD3027A41A3612",
"checksum": "6427349140e01f06e049e707a58709a4f221ae73ab9a0425bc4a00c8d0e1ab32"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protoc-29.3-osx-aarch_64.zip",
"etag": "0x8DD3027A47D6A3C",
"checksum": "2b8a3403cd097f95f3ba656e14b76c732b6b26d7f183330b11e36ef2bc028765"
}
},
"3.29.2": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.2/protoc-29.2-linux-x86_64.zip",
"etag": "0x8DD1F737F223EEC",
"checksum": "52e9e7ece55c7e30e7e8bbd254b4b21b408a5309bca826763c7124b696a132e9"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.2/protoc-29.2-osx-x86_64.zip",
"etag": "0x8DD1F737F777910",
"checksum": "ba2bd983b5f06ec38d663b602884a597dea3990a43803d7e153ed8f7c54269e1"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.2/protoc-29.2-win64.zip",
"etag": "0x8DD1F737F7C7C6E",
"checksum": "59ea61efb24b9d8a214171e2ca3fec55c3f1517eff067656c875d8a1cd06ce4f"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.2/protoc-29.2-linux-aarch_64.zip",
"etag": "0x8DD1F737ED2083F",
"checksum": "29cf483e2fb21827e5fac4964e35eae472a238e28c762f02fb17dcd93ff8b89f"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v29.2/protoc-29.2-osx-aarch_64.zip",
"etag": "0x8DD1F737F340533",
"checksum": "0e153a38d6da19594c980e7f7cd3ea0ddd52c9da1068c03c0d8533369fbfeb20"
}
},
"3.29.1": {
"x86_64_linux_gnu": {

33
manifests/rclone.json generated
View File

@@ -28,10 +28,39 @@
},
"license_markdown": "[MIT](https://github.com/rclone/rclone/blob/master/COPYING)",
"latest": {
"version": "1.68.2"
"version": "1.69.0"
},
"1": {
"version": "1.68.2"
"version": "1.69.0"
},
"1.69": {
"version": "1.69.0"
},
"1.69.0": {
"x86_64_linux_musl": {
"etag": "0x8DD3324F9F9FD71",
"checksum": "813892bb54ebc5891664b85c9cfc0e05ee50d39e3d5bb1ddd6d53d0f93a64dc2"
},
"x86_64_macos": {
"etag": "0x8DD3325E8440A19",
"checksum": "88475be8666944d5161bd15605d483f1bb55d9a46220b9dcf317b26e01659009"
},
"x86_64_windows": {
"etag": "0x8DD3326252ADAAD",
"checksum": "73f55188dbd15056b9728cb646f4e9774534b148dec3eed9ccbbaa381b95ce78"
},
"aarch64_linux_musl": {
"etag": "0x8DD33251C72E345",
"checksum": "82e4c24ee0cdbdfb93356e66cf14875ae4063f9923d2678e7d686119e98d75fe"
},
"aarch64_macos": {
"etag": "0x8DD3325F16EC073",
"checksum": "d8d22aca8f4af4c24ea01668a452d02888bef45e3a01c663cbb7d78bd1e21db2"
},
"aarch64_windows": {
"etag": "0x8DD33262D4C7710",
"checksum": "83c3e46f1b4414848cf676f58aa3f14ee428ba22bd963ecb0b70dada717ebfdb"
}
},
"1.68": {
"version": "1.68.2"

View File

@@ -22,10 +22,62 @@
},
"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.111"
"version": "0.3.113"
},
"0.3": {
"version": "0.3.111"
"version": "0.3.113"
},
"0.3.113": {
"x86_64_linux_musl": {
"etag": "0x8DD34DE89D16C19",
"checksum": "581dc963e0aaf1791064429e9f746307ede0a8ea29d10041dd90c02bdbd13783"
},
"x86_64_macos": {
"etag": "0x8DD34DF8889BC58",
"checksum": "0811c988fda4552a31a8ab90776100e31bf8bb987f9337d05dc3dc92669848f4"
},
"x86_64_windows": {
"etag": "0x8DD34DF81C2F907",
"checksum": "68da2a1aba802069e5c59e42017f5e589f44e66d6105528893b294f1b296b916"
},
"aarch64_linux_musl": {
"etag": "0x8DD34DE988E8048",
"checksum": "01a1d2fa25811aa2e9e008fc9edf9ae3128b686c5e5f9a2c774fe7dc37346c27"
},
"aarch64_macos": {
"etag": "0x8DD34E03A6691B8",
"checksum": "f0f23f958541440f4f9669580ae04500feaaad2cdbfee3636a14729236d04e64"
},
"aarch64_windows": {
"etag": "0x8DD34DF694608E7",
"checksum": "8236943701c7f2ce2fa7c99f6f65392543fd6293fe7cb30878b17c171078ae48"
}
},
"0.3.112": {
"x86_64_linux_musl": {
"etag": "0x8DD2073AFE4F854",
"checksum": "10833d6861c416467cd6520fad0e47e2bad311dc72462cbf5fc5431967366664"
},
"x86_64_macos": {
"etag": "0x8DD2074CD13521B",
"checksum": "a8d506cf951abd555feb5d11b79301b125bd32bf93cb0db50fc74ba6a374de81"
},
"x86_64_windows": {
"etag": "0x8DD2074A986E975",
"checksum": "bced165ffa3e4d6ea2265c51b85c4e709c0fe34a5c76dd2a7c7faccaa7427898"
},
"aarch64_linux_musl": {
"etag": "0x8DD2073C21489B5",
"checksum": "948e7dc7f14093145bf3553b8e0388d1864c4a67f40cc26da9aca501653b86d2"
},
"aarch64_macos": {
"etag": "0x8DD2074CD6EC6A7",
"checksum": "000523cdab05c265f2d1f11499f16451130b9e6c217a59ad8d0a5e9ca57dd8ce"
},
"aarch64_windows": {
"etag": "0x8DD2074C27C0577",
"checksum": "065bc0feccf27717afb455728b98dfe9d222d19c2cf188f53a28e7f4b822af55"
}
},
"0.3.111": {
"x86_64_linux_musl": {

26
manifests/sccache.json generated
View File

@@ -24,10 +24,32 @@
},
"license_markdown": "[Apache-2.0](https://github.com/mozilla/sccache/blob/main/LICENSE)",
"latest": {
"version": "0.9.0"
"version": "0.9.1"
},
"0.9": {
"version": "0.9.0"
"version": "0.9.1"
},
"0.9.1": {
"x86_64_linux_musl": {
"etag": "0x8DD2EF9E3F7EE20",
"checksum": "911f611db54e48dc50c32232462a99848824be5ba0f6f52cc33903712cd78715"
},
"x86_64_macos": {
"etag": "0x8DD2EF9E2CF88D7",
"checksum": "14495d2db913d4d0e1ab4b44a3e1d2c3d44693a5a405deb5a1b5c05e8f34af37"
},
"x86_64_windows": {
"etag": "0x8DD2EF9E361AE78",
"checksum": "12578536fc5e3de6c385eb4b56d0537ebeb21b9a221242833624572b71910049"
},
"aarch64_linux_musl": {
"etag": "0x8DD2EF9E118A350",
"checksum": "a0f10f7daeeecb3439d6e903bc5dc4a4ccee67985b506d3daf742521efe45627"
},
"aarch64_macos": {
"etag": "0x8DD2EF9DFE5C27C",
"checksum": "a2725e27c12961301834fe4c56ab982af6e8eb86fd51b82179369f1682776800"
}
},
"0.9.0": {
"x86_64_linux_musl": {

341
manifests/trunk.json generated Normal file
View File

@@ -0,0 +1,341 @@
{
"rust_crate": "trunk",
"template": {
"x86_64_linux_musl": {
"url": "https://github.com/trunk-rs/trunk/releases/download/v${version}/trunk-x86_64-unknown-linux-musl.tar.gz"
},
"x86_64_macos": {
"url": "https://github.com/trunk-rs/trunk/releases/download/v${version}/trunk-x86_64-apple-darwin.tar.gz"
},
"x86_64_windows": {
"url": "https://github.com/trunk-rs/trunk/releases/download/v${version}/trunk-x86_64-pc-windows-msvc.zip"
},
"aarch64_linux_musl": {
"url": "https://github.com/trunk-rs/trunk/releases/download/v${version}/trunk-aarch64-unknown-linux-musl.tar.gz"
},
"aarch64_macos": {
"url": "https://github.com/trunk-rs/trunk/releases/download/v${version}/trunk-aarch64-apple-darwin.tar.gz"
}
},
"license_markdown": "[MIT](https://github.com/trunk-rs/trunk/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/trunk-rs/trunk/blob/main/LICENSE-APACHE)",
"latest": {
"version": "0.21.5"
},
"0.21": {
"version": "0.21.5"
},
"0.21.5": {
"x86_64_linux_musl": {
"etag": "0x8DD1DBE8219003F",
"checksum": "82be12cb94f43494ab17014c6f69c407005f2c583d7a4b369ecb990be6168a8d"
},
"x86_64_macos": {
"etag": "0x8DD1DBE81AB02E3",
"checksum": "79e99f629b4b11afb0cd96a981108fb4858c4e05cfbeb3f964cac6a1ab1f7161"
},
"x86_64_windows": {
"etag": "0x8DD1DBE81F2DE82",
"checksum": "23ea518d4b5d20b38a6c613ee4dde25d13024ab4b79f4b9b5d1844602a1d83e3"
},
"aarch64_linux_musl": {
"etag": "0x8DD1DBE81A36A4E",
"checksum": "c28a0bad76c8e994ae8767d3a6ef8d2eeb5af725e3167482645bedccc873f14b"
},
"aarch64_macos": {
"etag": "0x8DD1DBE8199D823",
"checksum": "59116878586aa97a2cd9d9645c56713d2ff8a6f23eaf49950d72a5890ecdfdb1"
}
},
"0.21.4": {
"x86_64_linux_musl": {
"etag": "0x8DCFF0DBEEF4177",
"checksum": "b15d3a8cad00078dc9ae5f41c18b5e9c99c5dbae9633f204915401631258d866"
},
"x86_64_macos": {
"etag": "0x8DCFF0DBE9A54FE",
"checksum": "ec29b9c078f074d5dfde2947124cf0a642a44839535aa3713ff980db48f3d362"
},
"x86_64_windows": {
"etag": "0x8DCFF0DBEA9D3F9",
"checksum": "64a4984f42207dcd193900a760ce2fafdccdfe4f8260d68f600fe5b0bb7ced53"
},
"aarch64_linux_musl": {
"etag": "0x8DCFF0DBE79F90B",
"checksum": "5b4c2bfd58a85d524b11e36fdbb644c6407104fec61d623714ed610cebde3cd9"
},
"aarch64_macos": {
"etag": "0x8DCFF0DBE55D0C8",
"checksum": "70ff3b2f3b429e36e44bd3f5e1b5ad15651701cc5a732d48c29fc6abce707d73"
}
},
"0.21.3": {
"x86_64_linux_musl": {
"etag": "0x8DCFE581576606C",
"checksum": "bac3237589053f200f6e03cf1d8bf584b84b80160155666a85a4a2d4bbff3b4b"
},
"x86_64_macos": {
"etag": "0x8DCFE5815159A3E",
"checksum": "35095beafaecaa75cae590f15d953bf8bd7dc29fe3bb9ff7b865bc84caa8d8a8"
},
"x86_64_windows": {
"etag": "0x8DCFE5815485828",
"checksum": "f991a39ca44070e3b00f57162823d0367117297c13ed53a90cbaa47d2f0f2d9a"
},
"aarch64_linux_musl": {
"etag": "0x8DCFE5814F710F7",
"checksum": "803abee0b256eab6a6f1818c6b5dd652c430082befde594b5caf04219a530477"
},
"aarch64_macos": {
"etag": "0x8DCFE5814F061B6",
"checksum": "f568f0ff0d1e3432a833cfc58a887cf2d580d74a45894350c0a8542b6e690eb5"
}
},
"0.21.2": {
"x86_64_linux_musl": {
"etag": "0x8DCF8C9AAEB7DE2",
"checksum": "609097139b61d0ad76b66e051d80443e43172a16961c8fa4765b5cddb1a655fe"
},
"x86_64_macos": {
"etag": "0x8DCF8C9AA87D51B",
"checksum": "5bf5e3f9c23e505cff82784d29a4a62a29f30794ae9009a0e7cfacc66193df23"
},
"x86_64_windows": {
"etag": "0x8DCF8C9AAB51ACF",
"checksum": "bafafa0bb9f90f2ff43e1c60697a91f0a7498819528e0288a2043f04af4331cf"
},
"aarch64_linux_musl": {
"etag": "0x8DCF8C9AA675258",
"checksum": "1d9c7f54d5170f32422e440ba024a433e4bf8c55f419e698f6dca1710925ae2f"
},
"aarch64_macos": {
"etag": "0x8DCF8C9AA58E3AB",
"checksum": "cb282db7d1b202d8af47ef1fd4d22d71134dcde53e4064f13d864d49e8103a16"
}
},
"0.21.1": {
"x86_64_linux_musl": {
"etag": "0x8DCED2F939F5E1C",
"checksum": "edd5385c12a54f3bb4ca1e7c4d2c6bf904bf2adb1d1318410ddf682624c8a4f9"
},
"x86_64_macos": {
"etag": "0x8DCED2F933836DE",
"checksum": "78e3252990dca184ab1e16e141d023c677c7bdbb163b295575e4cd7523811b3e"
},
"x86_64_windows": {
"etag": "0x8DCED2F9362998C",
"checksum": "cf9b90be77f16e6bbeaa89f0446647d4de7331337e5e3e29f0069602d13ba1fb"
},
"aarch64_linux_musl": {
"etag": "0x8DCED2F93330C8E",
"checksum": "e05410a7c086b262de523abb1888d2fcd2c880b2e2714a9071b6ced294a308d5"
},
"aarch64_macos": {
"etag": "0x8DCED2F9312B0B0",
"checksum": "ac9c012bb87b524f849136ddb20b09f94cfab11b0e1778287c24ad854cc6fc2e"
}
},
"0.21.0": {
"x86_64_linux_musl": {
"etag": "0x8DCEC48B6E12382",
"checksum": "04ac86c9a71eefd80fa4ef8c33ccccdc36b3c5f8c4ab75665446010dcd148b25"
},
"x86_64_macos": {
"etag": "0x8DCEC48B5E25E95",
"checksum": "b0ae6e9b71d1a390c83b0d8a599989c5403df09d113d4b90253a78414c745385"
},
"x86_64_windows": {
"etag": "0x8DCEC48B679AE65",
"checksum": "4f673d34924ce2cd02355e56bbbbd505087421b0a24ff10c3e87f539606363da"
},
"aarch64_linux_musl": {
"etag": "0x8DCEC48B5DDA8F5",
"checksum": "eb10452cbe0af4cc5ef8490520934843271722c3771f3b8e058b8e348c30a44b"
},
"aarch64_macos": {
"etag": "0x8DCEC48B5D09846",
"checksum": "a33037e5917f54baefc5bf7d731a7f46338b52545c9a79528a0a50cc94251feb"
}
},
"0.20": {
"version": "0.20.3"
},
"0.20.3": {
"x86_64_linux_musl": {
"etag": "0x8DCB6B2412CE328",
"checksum": "0cefe433137daf7b88070a6c914405eb3bccefefad72bbbc109eec060f198a74"
},
"x86_64_macos": {
"etag": "0x8DCB6B240D5AF7F",
"checksum": "e7ed181eccabc627fa8114ab5529066cf80ddcdb109a34a0385591db22f089ca"
},
"x86_64_windows": {
"etag": "0x8DCB6B240E1890F",
"checksum": "f2fd3ad175dd68f1ca560865b711954932ae759ff0b910a0ce579ea0b33fc5ca"
},
"aarch64_linux_musl": {
"etag": "0x8DCB6B2408D3859",
"checksum": "0967994e15fcb8346bf31bb869d4f2f1e49740f23dfc961ab95cb08ea3a6d43b"
},
"aarch64_macos": {
"etag": "0x8DCB6B24085C6A9",
"checksum": "89ec26089bea0d4f12ce5f6d8599be07fad87fbde8452114fab9438acf1bd296"
}
},
"0.20.2": {
"x86_64_linux_musl": {
"etag": "0x8DC855E03300DEF",
"checksum": "b779863590dd822fd2de6a3b61313182b254eb1f44c994c324a7894411b73827"
},
"x86_64_macos": {
"etag": "0x8DC855E02C4A57C",
"checksum": "e24f60a52d5573c5adfc59493891634f7f2825463b04160347a316cda44b496f"
},
"x86_64_windows": {
"etag": "0x8DC855E0302EF18",
"checksum": "f33eceee28bd04daaeb9b163d823e57e5b062bfd07a7d10f3be365f4161fe3a2"
},
"aarch64_linux_musl": {
"etag": "0x8DC855E02A83CBD",
"checksum": "2f7075b079123bee8d3410e01f33eea9a5a22d44ee7f4a605ba4ed6ff351165d"
},
"aarch64_macos": {
"etag": "0x8DC855E02A815DC",
"checksum": "cf2c05a45c528c7dac3102e9e6a696249800b9ba23e957f022f46a6b27d019be"
}
},
"0.20.1": {
"x86_64_linux_musl": {
"etag": "0x8DC70EC94AD3839",
"checksum": "a6788406679e360bb5c70acd01eca8f33f6d2193732b7582e0dc424d115c8abe"
},
"x86_64_macos": {
"etag": "0x8DC70EC945934F0",
"checksum": "838e69507df6c95667e95cf6b4ab0d38694e339e4fadad81ad5ad66359921db3"
},
"x86_64_windows": {
"etag": "0x8DC70EC947AA115",
"checksum": "d2b1b5128d4d4dd8054bae38e2107fecbda79b80faeadcc3fab2902494cc7a16"
},
"aarch64_linux_musl": {
"etag": "0x8DC70EC942AB81D",
"checksum": "8474e09dc470646301da0d141a665a1c003e503a732014f4dbaf1e19b56cb6c1"
},
"aarch64_macos": {
"etag": "0x8DC70EC9422F8B6",
"checksum": "fc43c889b5c4a68efa0ae91d03a91cf4ba58ce15025dc01397edf480e1808611"
}
},
"0.20.0": {
"x86_64_linux_musl": {
"etag": "0x8DC6B3F9C7FCB28",
"checksum": "129df78fea682f4797b2d41e98419da2befaf98957156ae8c9e11e957fec9526"
},
"x86_64_macos": {
"etag": "0x8DC6B3F9BE87B6B",
"checksum": "3b31275b94174d78566d8b7ad81404c68a30b45012b8d8c68973433d8b787976"
},
"x86_64_windows": {
"etag": "0x8DC6B3F9C43C913",
"checksum": "9add69fe877c0bb4453c7f8e383d84315d7af797e3d5befa133f865baead67ca"
},
"aarch64_linux_musl": {
"etag": "0x8DC6B3F9C10E483",
"checksum": "c8adc0f8e046b47eabfec4c3a3fdaa25a116babfd9b2fe4d9ed57c7397077028"
},
"aarch64_macos": {
"etag": "0x8DC6B3F9C01659A",
"checksum": "2d3d613d4016ab2280565d2f9e5f8446d271875f72b414b8fcd8840ecc6fbba2"
}
},
"0.19": {
"version": "0.19.3"
},
"0.19.3": {
"x86_64_linux_musl": {
"etag": "0x8DC65CFA57124B3",
"checksum": "432ecca5c492d429dc2732b3a4e9bb0c605c8279f16a24014ef8681d212e2d8a"
},
"x86_64_macos": {
"etag": "0x8DC65CFA4D2D7CD",
"checksum": "d146e59ca6c4f2dca250c59312cb26ea91f0c2bd408d32cc3745a302b2338aad"
},
"x86_64_windows": {
"etag": "0x8DC65CFA525A3A1",
"checksum": "1e576f76aafcd121b6cef3b81113a71b0ccabc863a6e0300e17042215c6db553"
},
"aarch64_linux_musl": {
"etag": "0x8DC65CFA4E5AE56",
"checksum": "68449445913a8862fe0c13135cb038fd412c1c4d203b7fb0aab3f1693b1de0c8"
},
"aarch64_macos": {
"etag": "0x8DC65CFA4DD2C69",
"checksum": "d4275df170626825d1aab69f406419dab1c799c45a32c5b4b886d90a60fb7bfc"
}
},
"0.19.2": {
"x86_64_linux_musl": {
"etag": "0x8DC5A40FFC16AAC",
"checksum": "0714e790caa14fb489aa111fa42fd8eb07cf0e26f041397bbb5b5d2c16e7cdf2"
},
"x86_64_macos": {
"etag": "0x8DC5A40FF7D346E",
"checksum": "62a94c142aeaca4fde6fb11057a1ddbc3f07bc2c877ed09176b970a5c3647a74"
},
"x86_64_windows": {
"etag": "0x8DC5A4102FB8E2F",
"checksum": "2350924635b93fd0400edbf31156bcdd041c9c0cfb52cdb1f6c4f40f8db20268"
},
"aarch64_linux_musl": {
"etag": "0x8DC5A4102B49BE7",
"checksum": "40a4187e964ceb55410bf14d68f4591e2d1447f6fb025287c3368bf796793f3c"
},
"aarch64_macos": {
"etag": "0x8DC5A40FF2CD6E1",
"checksum": "fa37092ef5b5b93ca8bcb52e149d46f50fa31aa3b368354a7e67948f8d4a77fc"
}
},
"0.19.1": {
"x86_64_linux_musl": {
"etag": "0x8DC4337CEEDBA75",
"checksum": "e353e304fe0a62a6821300185944cdd2fd89232b62580559650526a8a775b6d8"
},
"x86_64_macos": {
"etag": "0x8DC4337C4D9805C",
"checksum": "773358c67bd1bb5c8e6e5ff8800453d1a6fed0d9eb450f8bdef853c8c2b1a94c"
},
"x86_64_windows": {
"etag": "0x8DC4337D324372E",
"checksum": "f30e9ac1f15284df28b9ee01f1bc8b18cf8c74096fa466d343b2731e8bd7f190"
},
"aarch64_linux_musl": {
"etag": "0x8DC4337C483F83F",
"checksum": "fa07c494901a7785d262bc8a2bb73a393c312e3b0f1e29f713e333c8f7648d95"
},
"aarch64_macos": {
"etag": "0x8DC4337C43AE54E",
"checksum": "4fe86f71d3c08fa61796f44f332c9b75587e40b0078bd652f177c7d83e18fbcb"
}
},
"0.19.0": {
"x86_64_linux_musl": {
"etag": "0x8DC3F8F7A836CD3",
"checksum": "4a3aa453213fd429567ff25a1141ec156f20bd9081a64701fd1a6d5838adf308"
},
"x86_64_macos": {
"etag": "0x8DC3F8F7A04927E",
"checksum": "59e619e66e6f3ce9e39e2adc9b30e633e45ec595c64c9eb325f7aaca41f98583"
},
"x86_64_windows": {
"etag": "0x8DC3F8F7A3ACEB8",
"checksum": "5a0bbf88d52923c479d61061a423747f86042f78ae7f2bf45ea4396e1633a680"
},
"aarch64_linux_musl": {
"etag": "0x8DC3F8F79DACB5D",
"checksum": "02503bb30b42ddeb38d63bd978455ca1e7c91814234ed258ae894cf37214dc2c"
},
"aarch64_macos": {
"etag": "0x8DC3F8F79E7406C",
"checksum": "6b032cbafdd784a89f4a5ec80b8bdfb00f1264bdd113541d8d5352027d1e471f"
}
}
}

99
manifests/typos.json generated
View File

@@ -16,13 +16,106 @@
},
"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.28.3"
"version": "1.29.4"
},
"1": {
"version": "1.28.3"
"version": "1.29.4"
},
"1.29": {
"version": "1.29.4"
},
"1.29.4": {
"x86_64_linux_musl": {
"etag": "0x8DD2BFEF497C99A",
"checksum": "5eebaff491e2d503b225751e461bcba849efc19c6075f780b45887920a2e3506"
},
"x86_64_macos": {
"etag": "0x8DD2BFF38DE029E",
"checksum": "8f4b7d97ea6bf5ed1e9f4545cab39886373b07766a00edbef10de2f567d3762e"
},
"x86_64_windows": {
"etag": "0x8DD2BFF400FE29A",
"checksum": "bac4aef428259aca9c99286d99921dc09da6032afc6d54ba0334615991adbb26"
},
"aarch64_macos": {
"etag": "0x8DD2BFF45584668",
"checksum": "8701cd7ed32c61dda3fe5fbd5516d63d5daeecb377ac0d1cc149d9e88ff87975"
}
},
"1.29.3": {
"x86_64_linux_musl": {
"etag": "0x8DD2B6BB018B914",
"checksum": "bf8f18721055483eae9420c424ae28fe11b8881278ac060e65566f3b65cdcfa8"
},
"x86_64_macos": {
"etag": "0x8DD2B6C237CC2A5",
"checksum": "5e5f52a23c36e4ff06194f690c874a52a8a07d113f2b906ad29424614057c1a5"
},
"x86_64_windows": {
"etag": "0x8DD2B6C6C818914",
"checksum": "462bf6b62a49c65860ae57a11c332f8dbaeaddc0384c5f5f8225af31c83dbd5b"
},
"aarch64_macos": {
"etag": "0x8DD2B6BF6D405F3",
"checksum": "fb1ad842dcd06a79048ff6a6d3be64e79729a9a14b954638d709f759431d6df6"
}
},
"1.29.1": {
"x86_64_linux_musl": {
"etag": "0x8DD2B44978440AE",
"checksum": "f4d9630c51bdf9398ebcd70bee485302eb14b9e4ddf1f8101deab8d30621ffda"
},
"x86_64_macos": {
"etag": "0x8DD2B44B0A26BB5",
"checksum": "33002029990b5645fe9a541fa321a2bb053894b776f57435b6a75ad1854ad007"
},
"x86_64_windows": {
"etag": "0x8DD2B4504BFD839",
"checksum": "35829b5ce8c5194aa3bdc93ccfe86b70555dffa6074174c85c21f5569361ce11"
},
"aarch64_macos": {
"etag": "0x8DD2B44B4B50C21",
"checksum": "264ceb033679b7a5c8d5647f3b1c0f0c5cdb8fbf0454dd83bdb94f2fd0e03d5e"
}
},
"1.29.0": {
"x86_64_linux_musl": {
"etag": "0x8DD29B260A3C957",
"checksum": "d936bdd241fd7e5cf30802ad60d942169f6e2f4197444824ccb8bd7bdebb1245"
},
"x86_64_macos": {
"etag": "0x8DD29B249212B90",
"checksum": "7ad39f41dc23e1c3c8470ba3f8c0c1457928c668af6552b07f74a77b65585515"
},
"x86_64_windows": {
"etag": "0x8DD29B2A7AF8080",
"checksum": "1216d4e9c353132045f53e84977003f8c29af8f1131045df5b69daf39ef02b48"
},
"aarch64_macos": {
"etag": "0x8DD29B27BAFFF8A",
"checksum": "a5e204a4b2c2cd920772a5404a425ad15a39793d6359340790e8ebeb5eb62b9a"
}
},
"1.28": {
"version": "1.28.3"
"version": "1.28.4"
},
"1.28.4": {
"x86_64_linux_musl": {
"etag": "0x8DD1E17E4C2DB36",
"checksum": "57e6d32c718eac69f9323b05a7aa00b2d1d882d40b9a787171c1b7050c2918b8"
},
"x86_64_macos": {
"etag": "0x8DD1E1811620D34",
"checksum": "f8b196c7e0cbf3548377552a4c4bd2a13f18b58281faa7152ddf82f3c9db3a6a"
},
"x86_64_windows": {
"etag": "0x8DD1E1880BCAEB7",
"checksum": "b9bc8b8164f63fa385ff67cb4cf9e8f21aa269d9a1d5b4af8e723e0e909d1d6e"
},
"aarch64_macos": {
"etag": "0x8DD1E180EC6D14E",
"checksum": "5cdecbca6e2d4b7521ecdc71c7642346d2b9733d83a02e734e1fb78d2284c21d"
}
},
"1.28.3": {
"x86_64_linux_musl": {

509
manifests/wash.json generated Normal file
View File

@@ -0,0 +1,509 @@
{
"rust_crate": "wash-cli",
"template": {
"x86_64_linux_musl": {
"url": "https://github.com/wasmCloud/wasmCloud/releases/download/wash-cli-v${version}/wash-x86_64-unknown-linux-musl"
},
"x86_64_macos": {
"url": "https://github.com/wasmCloud/wasmCloud/releases/download/wash-cli-v${version}/wash-x86_64-apple-darwin"
},
"x86_64_windows": {
"url": "https://github.com/wasmCloud/wasmCloud/releases/download/wash-cli-v${version}/wash-x86_64-pc-windows-msvc.exe"
},
"aarch64_linux_musl": {
"url": "https://github.com/wasmCloud/wasmCloud/releases/download/wash-cli-v${version}/wash-aarch64-unknown-linux-musl"
},
"aarch64_macos": {
"url": "https://github.com/wasmCloud/wasmCloud/releases/download/wash-cli-v${version}/wash-aarch64-apple-darwin"
}
},
"license_markdown": "[Apache-2.0](https://github.com/wasmCloud/wasmCloud/blob/main/LICENSE)",
"latest": {
"version": "0.37.0"
},
"0.37": {
"version": "0.37.0"
},
"0.37.0": {
"x86_64_linux_musl": {
"etag": "0x8DD033D29D92460",
"checksum": "b175c00d02c3285a749f752e9ad92791a7fdf3077389c4f657e8b14e13c71e76"
},
"x86_64_macos": {
"etag": "0x8DD033D2A4A04FD",
"checksum": "557d2a7d20aa0094377015cdf47704a8339a2a2e1349505ba4a2e153618f8051"
},
"x86_64_windows": {
"etag": "0x8DD033D29F089B6",
"checksum": "3febcd7fc0d1534ba15ac69e41204c7a0c9ad68e13d1307dc28ea546b9d98de7"
},
"aarch64_linux_musl": {
"etag": "0x8DD033D29DDDA08",
"checksum": "3b5af7e518357b851190f39f9b0b41a42c8a365d60b43a629ff6918a1ab1091e"
},
"aarch64_macos": {
"etag": "0x8DD033D2A49697B",
"checksum": "a02b3ce5adfb989be007ff5779756b268b404990dcaa5ac9801f43693cc7c1ef"
}
},
"0.36": {
"version": "0.36.1"
},
"0.36.1": {
"x86_64_linux_musl": {
"etag": "0x8DCF3B6CF095567",
"checksum": "99b574034e25842f52b51fb8478cf73f0a2afeae1c26960ea6ce59c8dc80354a"
},
"x86_64_macos": {
"etag": "0x8DCF3B6CF320C72",
"checksum": "e07a3c7ce2d2ec2b16c105bd8e3540fdf14c4d705473b10769ea012e4c3f0ead"
},
"x86_64_windows": {
"etag": "0x8DCF3B6CEF3E9A9",
"checksum": "ac3a4190cfa280c14760b04326a214a607238069efd0736dc40508d947e3fe29"
},
"aarch64_linux_musl": {
"etag": "0x8DCF3B6CF16DACB",
"checksum": "a0e220cf69e985f4ce8db384a0ef94f93ac42490dbefcfc3035668bdb4e3e7ac"
},
"aarch64_macos": {
"etag": "0x8DCF3B6CF39305B",
"checksum": "fbf92aceca54adb8ec6d781196f782e6104b7bd03a40201c69fd9ce7c2074079"
}
},
"0.35": {
"version": "0.35.0"
},
"0.35.0": {
"x86_64_linux_musl": {
"etag": "0x8DCE8A3D9C2F471",
"checksum": "0a32b25d8aaa96d5a79b8a2073c88471359b07c10b80ea95946e8f12bceb7e44"
},
"x86_64_macos": {
"etag": "0x8DCE8A3D9BE8C96",
"checksum": "0590f5ff928aa7cd68b6b15716644aae28eab35f6904bc00915cdaa03a2b3126"
},
"x86_64_windows": {
"etag": "0x8DCE8A3D9AFA939",
"checksum": "11b1236f1635df42ca36a136f2c09dfc29b24ba75f92383ca7e51030eee622c6"
},
"aarch64_linux_musl": {
"etag": "0x8DCE8A3D9B39C68",
"checksum": "6efc7675d9d10fac026cb4e2b06508f6f5118d5b53b241bdfd29f3e691934d97"
},
"aarch64_macos": {
"etag": "0x8DCE8A3D9EBF914",
"checksum": "b2422cbd379b5b5d135c3be49f4879afb810d0871575bb2475ed242a72cc4179"
}
},
"0.34": {
"version": "0.34.1"
},
"0.34.1": {
"x86_64_linux_musl": {
"etag": "0x8DCE105EA9EE470",
"checksum": "b1b5df23b3c39609cd2e951b435ea29101237fecbea995a670b0e73dd202ce5a"
},
"x86_64_macos": {
"etag": "0x8DCE105EABDBB5D",
"checksum": "f1950cfc4a7b43439810c26d3cfb6843f85b5c2eb53fe4ce72c6ff230e5a9c5e"
},
"x86_64_windows": {
"etag": "0x8DCE105EAA91227",
"checksum": "f760237aaeabac8cff893ef0bbff6ccc88f1be917c91bd7d76b7f75431fc8d25"
},
"aarch64_linux_musl": {
"etag": "0x8DCE105EA8E7C2B",
"checksum": "f73e1150b66161b2a4fb4a3d59a2139295a3f010218b71341979cc572c59e6be"
},
"aarch64_macos": {
"etag": "0x8DCE105EAD28B84",
"checksum": "c7de37bab96cd41821c800595cd03cb0e18e06f04d1b3a4d0aa8a0ef08f368a0"
}
},
"0.34.0": {
"x86_64_linux_musl": {
"etag": "0x8DCD8F1D47C5986",
"checksum": "69e5ce3112fa19019160102aa404f490a9f1bd3bf626a03d1bceb619b890e134"
},
"x86_64_macos": {
"etag": "0x8DCD8F1D4AAFD2F",
"checksum": "de3ca7a60b990f008895b44ce54579a27b7dd764f6c114d10b133361b612d297"
},
"x86_64_windows": {
"etag": "0x8DCD8F1D429DB83",
"checksum": "c676dfd882bcc3bca96723311ac1e1e171120b8a567bf3a0ac66ec32c28b20c7"
},
"aarch64_linux_musl": {
"etag": "0x8DCD8F1D485770A",
"checksum": "945a2361a98b5908b8dd6428e737eb45043c8fe7c5246c07bf9fcc848bb3b8d8"
},
"aarch64_macos": {
"etag": "0x8DCD8F1D47D90AE",
"checksum": "c5dd9389bca9cbdf3fa06e7a7440ec1db20868a4f2b971cba3b593fea6f16f29"
}
},
"0.33": {
"version": "0.33.0"
},
"0.33.0": {
"x86_64_linux_musl": {
"etag": "0x8DCD824654BB3C3",
"checksum": "886ee8a3828b6319444f1e8cc8c736d730aa61dca69260f423c9c7740cc2fe1d"
},
"x86_64_macos": {
"etag": "0x8DCD82465504280",
"checksum": "7b42fc34a01728f13ca01d6e02029647abae451b875096aff65713ec4fe894bf"
},
"x86_64_windows": {
"etag": "0x8DCD8246545C6F8",
"checksum": "f5d71c3efe0f8c215304321b06ea98ac6389712d199ccf48898df1c9868c8f90"
},
"aarch64_linux_musl": {
"etag": "0x8DCD8246545EE0B",
"checksum": "6d79bf02867127b6ca608b5c210899fd1348d914b7b0ffde2d37fb670d561b17"
},
"aarch64_macos": {
"etag": "0x8DCD824656953A5",
"checksum": "f64569bf79f11a6909ee3fdbdf45fcce0a6fec1ba39360280bd95ad0a440a250"
}
},
"0.32": {
"version": "0.32.1"
},
"0.32.1": {
"x86_64_linux_musl": {
"etag": "0x8DCCDC320B435EE",
"checksum": "6c62fd5a0204fa28008144ccf028ca8f918f81e1b140860bdd77d5da408f6537"
},
"x86_64_macos": {
"etag": "0x8DCCDC320BE15E9",
"checksum": "7f8323e6e1af844f7e3467ceb8fedad1e2dd34c1f4cd07d0ae9c26a741f88b2a"
},
"x86_64_windows": {
"etag": "0x8DCCDC320A3CD9B",
"checksum": "3fe3badeb52d96ad002a20892d1cb83c9d1885713cf31249ef781a310f97568d"
},
"aarch64_linux_musl": {
"etag": "0x8DCCDC320933E63",
"checksum": "cde594f4bdfac03e795c8dbcf60f1dbc1c91527393542caaf952d6f920593e46"
},
"aarch64_macos": {
"etag": "0x8DCCDC320CD4719",
"checksum": "d91ad7599ea09baab952e95ae2857d21ca334b1fc4ffc7e8f46f1556a6be89a0"
}
},
"0.32.0": {
"x86_64_linux_musl": {
"etag": "0x8DCC861358AA0D6",
"checksum": "fb416526c5bc65fd145a509094852e8d9398c593847a3840683b36b44be16360"
},
"x86_64_macos": {
"etag": "0x8DCC8613594CE93",
"checksum": "ee0a0388ee5aebfe9918698d8f4673249f35ccad0500f81bdb940ca7a5590de2"
},
"x86_64_windows": {
"etag": "0x8DCC861359B0927",
"checksum": "6e24d2ead076bc181c1f461ff0b5f58d10ab9f6de03f3be04cb3448a46b23092"
},
"aarch64_linux_musl": {
"etag": "0x8DCC8613593E53D",
"checksum": "958e6816a402225e194787dae6c771dd02c3b36c81e6f990a3fff52ea79ff05c"
},
"aarch64_macos": {
"etag": "0x8DCC86135BDD365",
"checksum": "c6ba40a78994c8694b04ba077f2e56c3f59ff03040f42fd8d68b6f4315d0d21f"
}
},
"0.31": {
"version": "0.31.0"
},
"0.31.0": {
"x86_64_linux_musl": {
"etag": "0x8DCC39797602E53",
"checksum": "a4d56ef877b476080b7b896c2aedaa708011f8d0075193eeca3e1d4962f20287"
},
"x86_64_macos": {
"etag": "0x8DCC3979774FE7B",
"checksum": "30b6a449ed49b4a4bb9354bbef4029d4bc37693b524a3bfa719c82efab9d266f"
},
"x86_64_windows": {
"etag": "0x8DCC397975C6212",
"checksum": "776d2bc8b443f3cf8d075b96bf6565c32ffddd47575574b1555af0e2af93863c"
},
"aarch64_linux_musl": {
"etag": "0x8DCC397975DC019",
"checksum": "8cb57672e93016dfcd103aeb8254402ae16e0e737f5eee82db4f039d8baf4d01"
},
"aarch64_macos": {
"etag": "0x8DCC3979786C4D9",
"checksum": "b49e9be43bc288e7b86168f6b651a3df76a0ceb39d45d2063fd85b8ab6af0f60"
}
},
"0.30": {
"version": "0.30.0"
},
"0.30.0": {
"x86_64_linux_musl": {
"etag": "0x8DCB304EDF4D869",
"checksum": "6ee4acebc80255962eb86093aa546c41ad338d36d4695e59cffdbdcb22f70050"
},
"x86_64_macos": {
"etag": "0x8DCB304EE2E1E70",
"checksum": "976494afb3cb621079a4bf6d6983c310c884ecc89403c0792328e5452d80be47"
},
"x86_64_windows": {
"etag": "0x8DCB304EE30B3A1",
"checksum": "dde5ab13f881f21c4605b52b42668418e1dbb58f0883916ea6d77ef21f7ea467"
},
"aarch64_linux_musl": {
"etag": "0x8DCB304EE144AEA",
"checksum": "3152a5e5ad467ab74976ad4e737041cf2ad99f8833d3a711671a4b99f2f5522d"
},
"aarch64_macos": {
"etag": "0x8DCB304EE32AD36",
"checksum": "b83a849df173d08ecb37bf36f0af60d7f7436b6533ce11bd450c320d87243340"
}
},
"0.29": {
"version": "0.29.2"
},
"0.29.2": {
"x86_64_linux_musl": {
"etag": "0x8DC8ED32297A9B8",
"checksum": "6d8bdf2ef3f52b3a55c0bf1d9e864be4205091be1d514a2d6b0dc774b8124e46"
},
"x86_64_macos": {
"etag": "0x8DC8ED322B6F555",
"checksum": "0929eee442938423483eea85348098e023ad8c34c21d019421ac1e7624f560fa"
},
"x86_64_windows": {
"etag": "0x8DC8ED322CB02F4",
"checksum": "b8b9da218fc2039d648657a5b974bed02453f0ef50d60f00d986eea00b1b6bfb"
},
"aarch64_linux_musl": {
"etag": "0x8DC8ED32251A0CD",
"checksum": "63c677862c0c6a5e1eb6a8316be834758b86aa6b89bc04a11cfabf2080ace8c4"
},
"aarch64_macos": {
"etag": "0x8DC8ED322C5FFA0",
"checksum": "71973c881b3081fcda91d5391e1b70379eb643b12fde4f5ad68aadd68b5a2379"
}
},
"0.29.1": {
"x86_64_linux_musl": {
"etag": "0x8DC8BD89EC9D9EB",
"checksum": "a9429b4f3449c9e053aee8bcab1e8835b53a58653cfcd856f78e6b5f0bb762f0"
},
"x86_64_macos": {
"etag": "0x8DC8BD89EA1E575",
"checksum": "0dcd8d7ea1974acf56e2afc303e89b16dff5e4edc1855130657e1142e62f8eae"
},
"x86_64_windows": {
"etag": "0x8DC8BD89EB274AD",
"checksum": "5ccae9f66751d1d1987b96edb3c75d6f4eafaaac1b5e6e3a8a842b95adbde36c"
},
"aarch64_linux_musl": {
"etag": "0x8DC8BD89EAECF34",
"checksum": "b565e05fbed8d459ebc7b30e502f85bcea41d1e6478784dd595d692891a7479d"
},
"aarch64_macos": {
"etag": "0x8DC8BD89E94D4C9",
"checksum": "18a096f60c499a30412dfb091669f20d238b6c0663ae0f01950fb0c7117b73bc"
}
},
"0.28": {
"version": "0.28.1"
},
"0.28.1": {
"x86_64_linux_musl": {
"etag": "0x8DC710093AA89C4",
"checksum": "04f882aaaa24da4f94274934980a51630a20adf9d3fadf180003489c447ad4a1"
},
"x86_64_macos": {
"etag": "0x8DC710094C3E408",
"checksum": "ee5a8c75f78523b27a584f066e0272766aac4e402db9e0fa758b2333bfaa1589"
},
"x86_64_windows": {
"etag": "0x8DC710093B3F504",
"checksum": "cc6ffc09ac07bb734c8e23880556c603b8d51cfedecda92948dd6ac03ce92011"
},
"aarch64_linux_musl": {
"etag": "0x8DC7100937DB8E6",
"checksum": "4aaafb61f8f7a6ea20bed597400f6e1453c628e364e19199b63ddb25d08cfa0c"
},
"aarch64_macos": {
"etag": "0x8DC710093ED1427",
"checksum": "7c68f4a9725405dd63cf6bebd0f8bdb5eb8bbf87d1f7f8cde51c4f43a0275dd2"
}
},
"0.28.0": {
"x86_64_linux_musl": {
"etag": "0x8DC6F80F1B3592F",
"checksum": "936058031e8e5a35d3ad646eeab7e5d169f1843dd433e4de39d247234217ad9b"
},
"x86_64_macos": {
"etag": "0x8DC6F80F1B49051",
"checksum": "7467ae8aad98013fd294d6016f5f5a92077cfd4ff899ab73472032c903447a5c"
},
"x86_64_windows": {
"etag": "0x8DC6F80F1C01C0A",
"checksum": "4ea64d947de1e35e996d5e4bd4d0760f9ba51e213b1cdf888a82214abd0138f1"
},
"aarch64_linux_musl": {
"etag": "0x8DC6F80F1A11E31",
"checksum": "ed1ea77b55fe2d945ec1d832cbc6ecc0fcb8bdf81930ad8c0145c978ab9b10e3"
},
"aarch64_macos": {
"etag": "0x8DC6F80F1A11E31",
"checksum": "fecfad006ceb4902052279bbdc865ecb65d3e5b7ff7822f63ef3e5b54e423392"
}
},
"0.27": {
"version": "0.27.0"
},
"0.27.0": {
"x86_64_linux_musl": {
"etag": "0x8DC5F29C0648EA6",
"checksum": "63b13e6d27ddcca6e631c9c22c88fbc850b2918d00085f46d35bceb5d3a63de6"
},
"x86_64_macos": {
"etag": "0x8DC5F29C093F4CF",
"checksum": "6011e77561738042bf0cbc71cf2cd4235c2592182a2ddd0277eabca677c25780"
},
"x86_64_windows": {
"etag": "0x8DC5F29C06B64C3",
"checksum": "c4c851d16b47e3dbf58d78f398c3f3664f3bbf4fc73968a57cd9af2ce2810952"
},
"aarch64_linux_musl": {
"etag": "0x8DC5F29C04A4665",
"checksum": "72ce5bf6997fef3b66bffd2424cc4914ba77d04d9301fcaa0eca1ee4109be81b"
},
"aarch64_macos": {
"etag": "0x8DC5F29C0A939B1",
"checksum": "b239df01fb8cca95e575f949b9a6ed127b73a6204fc5305cb6a89a32cfc74bbc"
}
},
"0.26": {
"version": "0.26.0"
},
"0.26.0": {
"x86_64_linux_musl": {
"etag": "0x8DC2DA32DF7CB85",
"checksum": "837139744d5a90d673ed9bae6dffce39b9d4488641f9e917eec60fa8de1b0934"
},
"x86_64_macos": {
"etag": "0x8DC2DA32DE0662E",
"checksum": "597551f95e96cf19857385f9577dc3f70d52d2a5b75a3877aebdde190ceab597"
},
"x86_64_windows": {
"etag": "0x8DC2DA32DDFA3B8",
"checksum": "95f1ca372266ef4da38970daa4d318f4153bdb9f3a0fa69f617c098568276ac7"
},
"aarch64_linux_musl": {
"etag": "0x8DC2DA33066ABAC",
"checksum": "3695625a2b40d4fd1e43774eb360b00abddaedc269582ff86d6341a86acb3d85"
},
"aarch64_macos": {
"etag": "0x8DC2DA32DEB5663",
"checksum": "b4de83ed096ec76c7abc5c00f6b4c3bd1faa6b962d2a2233ec00bb4ebaa40673"
}
},
"0.25": {
"version": "0.25.0"
},
"0.25.0": {
"x86_64_linux_musl": {
"etag": "0x8DC089B4CC849BF",
"checksum": "0e352f807e245231dc166fa57b825e6651837c58df330ce044b95b3656c874b6"
},
"x86_64_macos": {
"etag": "0x8DC089B4C24D225",
"checksum": "1e521278d9cefd143e19b27464ed3215c0b058170924554b77e37b9229304f17"
},
"x86_64_windows": {
"etag": "0x8DC089B4B9320F2",
"checksum": "fcbd0f7a6b1969508ac76546cd04e3f06d48f6c191644d3b0c9ba964ec93cdb0"
},
"aarch64_linux_musl": {
"etag": "0x8DC089B4D7B405E",
"checksum": "0139bbefacbf0b87dbdae4f65ade2b2eea125a44a998c4d64c53338251acdfaf"
},
"aarch64_macos": {
"etag": "0x8DC089B4BD1B863",
"checksum": "20f457713e0f480623d0676c6670e473785488203739c455605600dbde097fc3"
}
},
"0.24": {
"version": "0.24.1"
},
"0.24.1": {
"x86_64_linux_musl": {
"etag": "0x8DBEBA3D3ED025F",
"checksum": "09815f1e17172f848d514ea7438f6f29ff45f3b2eac71fd8d1429948bafb264b"
},
"x86_64_macos": {
"etag": "0x8DBEBA3D36CF0D8",
"checksum": "fef1841c0549db192fd9a39267f3c4756393b0feb31e4b83cdd2ff7150f7f78d"
},
"x86_64_windows": {
"etag": "0x8DBEBA3D3547B48",
"checksum": "9281c6d3cfdd5ae67be7c6982fcf285cb14dde91765a8595278d3878819bf87a"
},
"aarch64_linux_musl": {
"etag": "0x8DBEBA3D3B2F9DF",
"checksum": "fc400976bd7f8cdde98bc3488af61be69c1b32d505c144cf4f5b130561185e47"
},
"aarch64_macos": {
"etag": "0x8DBEBA3D35BC624",
"checksum": "d2fee3c9a137ba119bc44ca18727ee0ca928a0a769968b64d0d7c4a48ece1ef9"
}
},
"0.24.0": {
"x86_64_linux_musl": {
"etag": "0x8DBEACDEC455735",
"checksum": "5cf0e6badefa17ec5fed5bce89d41631ca7423e111a2aa1b944da323a5516e6e"
},
"x86_64_macos": {
"etag": "0x8DBEACDEB557596",
"checksum": "0a98e15faf7078e9b2dc9014a8e6d94e94ce79f982826c5b4e443082e950d611"
},
"x86_64_windows": {
"etag": "0x8DBEACDEB10A3CA",
"checksum": "b7ed862cc9c0f488beeb66b22f7903913a4151bf8789aa1a54093108dc82cf6c"
},
"aarch64_linux_musl": {
"etag": "0x8DBEACDEB90DC28",
"checksum": "ad94f3a2bcf8ff3ea34a6f43b3aff5b5a09e4177de180e84f899486a84fe43b8"
},
"aarch64_macos": {
"etag": "0x8DBEACDEB8D36C2",
"checksum": "d5488e9e7c4e2741823732a59dfb38bf2eea81328e00fd63b813b5e546fa20c9"
}
},
"0.23": {
"version": "0.23.0"
},
"0.23.0": {
"x86_64_linux_musl": {
"etag": "0x8DBE4B8A088FDD9",
"checksum": "3ab9e4fe429b425a9fad08991ca7602a7a2c4cd507280196f79b1b398e54a6b7"
},
"x86_64_macos": {
"etag": "0x8DBE4B89404626A",
"checksum": "3adb9a837ade2658eb7604e15cb8cc9a6c797e39102fc342dd30083dfdd2a5c8"
},
"x86_64_windows": {
"etag": "0x8DBE4B8AED55B7D",
"checksum": "4a5cfaa9919489b0f0d72a338a6dd7fcf06f23b4771b0df218ea34c4420a03ed"
},
"aarch64_linux_musl": {
"etag": "0x8DBE4B8943A9EBA",
"checksum": "b21ba5f0697ca2ab53684b871e0809d1e3fa51241a1889c2f1b3e6bcd0fb2dd3"
},
"aarch64_macos": {
"etag": "0x8DBE4B8AE45A404",
"checksum": "8b6bb1caa51b9de3ddf338e482da0ecea3cb7327e042fe048dc8077df76e323e"
}
}
}

View File

@@ -44,10 +44,32 @@
},
"license_markdown": "[MIT](https://github.com/rustwasm/wasm-bindgen/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/rustwasm/wasm-bindgen/blob/main/LICENSE-APACHE)",
"latest": {
"version": "0.2.99"
"version": "0.2.100"
},
"0.2": {
"version": "0.2.99"
"version": "0.2.100"
},
"0.2.100": {
"x86_64_linux_musl": {
"etag": "0x8DD335FEBC3B912",
"checksum": "63d6a38deb65bd7023c02bdf382ab66b0d2c0241c8582fd3413b5a808b8aeb5b"
},
"x86_64_macos": {
"etag": "0x8DD335FEBCF929E",
"checksum": "72289c54f63d2a2723aacfb38e7b22044d6aebc849ddee40172cda0e74be4107"
},
"x86_64_windows": {
"etag": "0x8DD335FEBB4D5B6",
"checksum": "54a3fb947464388a468ade86d65ffa334d6d2c74b7982723b34ecf6ec8c213d8"
},
"aarch64_linux_gnu": {
"etag": "0x8DD335FEBC31D7D",
"checksum": "52552984965fbd125efc6be052b3cb8872fb3c69559e4ec7775cbff64ed440cf"
},
"aarch64_macos": {
"etag": "0x8DD335FEBB9B239",
"checksum": "69f25cb910de7e19777b3f93347f5e62a64c8f81709b41ba7242d00a9543573c"
}
},
"0.2.99": {
"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": "27.0.0"
"version": "28.0.1"
},
"28": {
"version": "28.0.1"
},
"28.0": {
"version": "28.0.1"
},
"28.0.1": {
"x86_64_linux_gnu": {
"etag": "0x8DD34F2BB0BD3D7",
"checksum": "f2500c046d92d68c5db66244e8685d0ba84a0fdce4780fb0f1e78e9666d9c920"
},
"x86_64_macos": {
"etag": "0x8DD34F2BBCD5FF0",
"checksum": "872c6d078f6ac1058be6f0f5219001b0e445aa00f96fc4c1242548701d9933b5"
},
"x86_64_windows": {
"etag": "0x8DD34F2BEBC9FE0",
"checksum": "b6564429cb6a0e930465204da11ae66e717508358e737d491eaa095b4a85792e"
},
"aarch64_linux_gnu": {
"etag": "0x8DD34F2B4A33B3D",
"checksum": "d18d05ad1482b8a0fa5040e2d4a9576a06c9b61890fac2d4a2e0824e3b308a7a"
},
"aarch64_macos": {
"etag": "0x8DD34F2B555486E",
"checksum": "0dc360747b46d0632e1d9d81299ed653ce5d31f43247780c6c20af2a3f4ad67c"
},
"aarch64_windows": {
"etag": "0x8DD34F2B635AB9D",
"checksum": "db3a8bbccb56a05a62fd3dfc4936ea396558f0a1ae6ffe4eee66e7b15a6230f2"
}
},
"28.0.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD211317831246",
"checksum": "677ce3ba138fff0ed6a03564ca7ac43a255d947973ac76e57a67a993d41246c8"
},
"x86_64_macos": {
"etag": "0x8DD2113188F83C5",
"checksum": "2a8973aec371c98dd598d5d11767f373d3d9fe520a8cded79e8c685d51384107"
},
"x86_64_windows": {
"etag": "0x8DD21131CCF91A6",
"checksum": "419c6ed54a7926a2594b64adfdd09042b00376691f8225b7187af5683146a878"
},
"aarch64_linux_gnu": {
"etag": "0x8DD21130D7038BA",
"checksum": "e869fea0b7011fe4f7bd226306891895ecdd226a01bfd0f2db56364b673b94b0"
},
"aarch64_macos": {
"etag": "0x8DD21130E705C04",
"checksum": "f0fbbd10c9eb71c02ff7d7160906686f26c6c23772e3000813628e02343795ef"
},
"aarch64_windows": {
"etag": "0x8DD21130FA03357",
"checksum": "64fe1aa27370bf54436ce48c5198310125e62c1719343226f77dfd0316ba0441"
}
},
"27": {
"version": "27.0.0"

26
manifests/xh.json generated
View File

@@ -24,10 +24,32 @@
},
"license_markdown": "[MIT](https://github.com/ducaale/xh/blob/master/LICENSE)",
"latest": {
"version": "0.23.0"
"version": "0.23.1"
},
"0.23": {
"version": "0.23.0"
"version": "0.23.1"
},
"0.23.1": {
"x86_64_linux_musl": {
"etag": "0x8DD2B233BDE1B21",
"checksum": "a29ed6afcabf2c575c24499397fa3a840047dffc4a68e4a1a886f22584712946"
},
"x86_64_macos": {
"etag": "0x8DD2B2368C2662C",
"checksum": "e9e0f97e16095d2afb7e9247e6d250c95673dc3305a05539aafc2506ab59ad0a"
},
"x86_64_windows": {
"etag": "0x8DD2B2378B25C5D",
"checksum": "ea2da950b69c1093c1c2f7293fa1bc75cd7ae5719ff23397ee985bf1995a8014"
},
"aarch64_linux_musl": {
"etag": "0x8DD2B2336F9AF21",
"checksum": "52654b727a7a9dd712afaa40f4b6d3127079b9d95c24ee7a96e477941e5ca751"
},
"aarch64_macos": {
"etag": "0x8DD2B230558D457",
"checksum": "849841ce3c05cd64405d6282298869185a806b4f008ab5c6809fb8700e985f01"
}
},
"0.23.0": {
"x86_64_linux_musl": {

View File

@@ -1,45 +1,48 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail
set -CeEuo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/../..
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/../..
bail() {
echo >&2 "error: $*"
exit 1
printf >&2 'error: %s\n' "$*"
exit 1
}
if [[ -z "${CI:-}" ]]; then
bail "this script is intended to call from release workflow on CI"
bail "this script is intended to call from release workflow on CI"
fi
git config user.name "Taiki Endo"
git config user.email "te316e89@gmail.com"
git config user.name 'Taiki Endo'
git config user.email 'te316e89@gmail.com'
set -x
has_update=''
for manifest in manifests/*.json; do
git add -N "${manifest}"
if ! git diff --exit-code -- "${manifest}"; then
name=$(basename "${manifest%.*}")
git stash
old_version=$(jq -r '.latest.version' "${manifest}")
git stash pop
new_version=$(jq -r '.latest.version' "${manifest}")
if [[ "${old_version}" != "${new_version}" ]]; then
# TODO: If there is a line about updating the same tool in the "Unreleased" section, replace it.
msg="Update \`${name}@latest\` to ${new_version}"
sed -i "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n- ${msg}./" CHANGELOG.md
git add "${manifest}" CHANGELOG.md
else
msg="Update ${name} manifest"
git add "${manifest}"
fi
git commit -m "${msg}"
has_update=1
git add -N "${manifest}"
if ! git diff --exit-code -- "${manifest}"; then
name="${manifest##*/}"
name="${name%.*}"
git stash
old_version=$(jq -r '.latest.version' "${manifest}")
git stash pop
new_version=$(jq -r '.latest.version' "${manifest}")
if [[ "${old_version}" != "${new_version}" ]]; then
# TODO: If there is a line about updating the same tool in the "Unreleased" section, replace it.
msg="Update \`${name}@latest\` to ${new_version}"
sed -Ei "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n- ${msg}./" CHANGELOG.md
git add "${manifest}" CHANGELOG.md
else
msg="Update ${name} manifest"
git add "${manifest}"
fi
git commit -m "${msg}"
has_update=1
fi
done
if [[ -n "${has_update:-}" ]] && [[ -n "${GITHUB_OUTPUT:-}" ]]; then
echo "success=false" >>"${GITHUB_OUTPUT}"
if [[ -n "${has_update}" ]] && [[ -n "${GITHUB_OUTPUT:-}" ]]; then
printf 'success=false\n' >>"${GITHUB_OUTPUT}"
fi

View File

@@ -1,176 +1,188 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail
set -CeEuo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/../..
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/../..
# They don't provide prebuilt binaries for musl or old glibc host.
# version `GLIBC_2.34' not found
glibc_pre_2_34_incompat=(
cargo-cyclonedx
cargo-spellcheck
wait-for-them
xbuild
cargo-cyclonedx
cargo-spellcheck
wait-for-them
xbuild
)
# version `GLIBC_2.31' not found
glibc_pre_2_31_incompat=(
"${glibc_pre_2_34_incompat[@]}"
cargo-sort
espup
zola
"${glibc_pre_2_34_incompat[@]}"
cargo-sort
espup
zola
)
# version `GLIBC_2.28' not found
glibc_pre_2_28_incompat=(
"${glibc_pre_2_31_incompat[@]}"
wasmtime
"${glibc_pre_2_31_incompat[@]}"
wasmtime
)
# version `GLIBC_2.27' not found
glibc_pre_2_27_incompat=(
"${glibc_pre_2_28_incompat[@]}"
cargo-watch
mdbook-linkcheck
protoc
valgrind
"${glibc_pre_2_28_incompat[@]}"
cargo-watch
mdbook-linkcheck
protoc
valgrind
)
# version `GLIBC_2.17' not found
glibc_pre_2_17_incompat=(
"${glibc_pre_2_27_incompat[@]}"
deepsource
"${glibc_pre_2_27_incompat[@]}"
deepsource
)
musl_incompat=(
"${glibc_pre_2_17_incompat[@]}"
"${glibc_pre_2_17_incompat[@]}"
)
win2019_gnu_incompat=(
cargo-spellcheck
cargo-spellcheck
)
incompat_tools=()
case "${1:-}" in
'') version=latest ;;
major.minor.patch | major.minor | major)
version="$1"
# Specifying the version of valgrind and cargo-binstall is not supported.
incompat_tools+=(valgrind cargo-binstall)
;;
*)
echo "tool=$1"
exit 1
;;
'') version=latest ;;
major.minor.patch | major.minor | major)
version="$1"
# Specifying the version of valgrind and cargo-binstall is not supported.
incompat_tools+=(valgrind cargo-binstall)
;;
*)
printf 'tool=%s\n', "$1"
exit 1
;;
esac
runner="${2:-}"
bash="${3:-}"
case "$(uname -s)" in
Linux)
host_os=linux
ldd_version=$(ldd --version 2>&1 || true)
if grep <<<"${ldd_version}" -q 'musl'; then
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)
Linux)
host_os=linux
ldd_version=$(ldd --version 2>&1 || true)
if grep -Fq musl <<<"${ldd_version}"; then
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)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.31"$'\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)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.27"$'\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)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.28"$'\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)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(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_28_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_31_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_34_incompat[@]}")
fi
higher_glibc_version=$(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_28_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_31_incompat[@]}")
fi
else
incompat_tools+=("${glibc_pre_2_34_incompat[@]}")
fi
if ! type -P snap &>/dev/null; then
incompat_tools+=(valgrind)
fi
fi
if ! type -P snap >/dev/null; then
incompat_tools+=(valgrind)
fi
;;
Darwin) host_os=macos ;;
MINGW* | MSYS* | CYGWIN* | Windows_NT)
host_os=windows
case "${bash}" in
msys64 | cygwin)
if [[ "${runner}" == "windows-2019" ]]; then
incompat_tools+=("${win2019_gnu_incompat[@]}")
fi
;;
Darwin) host_os=macos ;;
MINGW* | MSYS* | CYGWIN* | Windows_NT)
host_os=windows
case "${bash}" in
msys64 | cygwin)
if [[ "${runner}" == "windows-2019" ]]; then
incompat_tools+=("${win2019_gnu_incompat[@]}")
fi
;;
esac
;;
*) bail "unrecognized OS type '$(uname -s)'" ;;
esac
;;
*) bail "unrecognized OS type '$(uname -s)'" ;;
esac
# See main.sh
case "$(uname -m)" in
aarch64 | arm64) host_arch=aarch64 ;;
xscale | arm | armv*l) bail "32-bit Arm runner is not supported yet by this action; if you need support for this platform, please submit an issue at <https://github.com/taiki-e/install-action>" ;;
*) host_arch=x86_64 ;;
esac
tools=()
for manifest in tools/codegen/base/*.json; do
tool_name=$(basename "${manifest%.*}")
# cross -V requires rustc
if [[ "${tool_name}" == "cross" ]] && ! type -P rustc &>/dev/null; then
tool_name="${manifest##*/}"
tool_name="${tool_name%.*}"
# cross -V requires rustc
if [[ "${tool_name}" == "cross" ]] && ! type -P rustc >/dev/null; then
continue
fi
case "${host_os}" in
linux*)
if [[ "${host_arch}" != "x86_64" ]] && [[ "$(jq -r ".platform.${host_arch}_${host_os}_gnu" "${manifest}")" == "null" ]] && [[ "$(jq -r ".platform.${host_arch}_${host_os}_musl" "${manifest}")" == "null" ]]; then
continue
fi
;;
*)
if [[ "$(jq -r ".platform.x86_64_${host_os}" "${manifest}")" == "null" ]] && [[ "$(jq -r ".platform.${host_arch}_${host_os}" "${manifest}")" == "null" ]]; then
continue
fi
;;
esac
for incompat in ${incompat_tools[@]+"${incompat_tools[@]}"}; do
if [[ "${incompat}" == "${tool_name}" ]]; then
tool_name=''
break
fi
case "${host_os}" in
linux*) ;;
*)
if [[ "$(jq -r ".platform.x86_64_${host_os}" "${manifest}")" == "null" ]]; then
continue
fi
;;
esac
for incompat in ${incompat_tools[@]+"${incompat_tools[@]}"}; do
if [[ "${incompat}" == "${tool_name}" ]]; then
tool_name=''
break
fi
done
if [[ -n "${tool_name}" ]]; then
if [[ "${version}" != "latest" ]]; then
latest_version=$(jq -r ".latest.version" "manifests/${tool_name}.json")
case "${version}" in
major.minor.patch) tool_name+="@${latest_version}" ;;
major.minor) tool_name+="@${latest_version%.*}" ;;
major) tool_name+="@${latest_version%%.*}" ;;
*) exit 1 ;;
esac
fi
if [[ "${tool_name}" != *"@0" ]] && [[ "${tool_name}" != *"@0.0" ]]; then
tools+=("${tool_name}")
fi
done
if [[ -n "${tool_name}" ]]; then
if [[ "${version}" != "latest" ]]; then
latest_version=$(jq -r '.latest.version' "manifests/${tool_name}.json")
case "${version}" in
major.minor.patch) tool_name+="@${latest_version}" ;;
major.minor) tool_name+="@${latest_version%.*}" ;;
major) tool_name+="@${latest_version%%.*}" ;;
*) exit 1 ;;
esac
fi
if [[ "${tool_name}" != *"@0" ]] && [[ "${tool_name}" != *"@0.0" ]]; then
tools+=("${tool_name}")
fi
fi
done
if [[ "${version}" != "latest" ]]; then
tools_tmp=()
for tool in "${tools[@]}"; do
tools_tmp+=("${tool}")
done
tools=("${tools_tmp[@]}")
tools_tmp=()
for tool in "${tools[@]}"; do
tools_tmp+=("${tool}")
done
tools=("${tools_tmp[@]}")
fi
# Not manifest-based
case "${host_os}" in
linux*)
# Installing snap to container is difficult...
# Specifying the version of valgrind is not supported.
if type -P snap &>/dev/null && [[ "${version}" == "latest" ]]; then
tools+=(valgrind)
fi
;;
linux*)
# Installing snap to container is difficult...
# Specifying the version of valgrind is not supported.
if type -P snap >/dev/null && [[ "${version}" == "latest" ]]; then
tools+=(valgrind)
fi
;;
esac
# cargo-watch/watchexec-cli is supported by cargo-binstall (through quickinstall)
case "${version}" in
latest) tools+=(cargo-watch watchexec-cli) ;;
major.minor.patch) tools+=(cargo-watch@8.5.2 watchexec-cli@2.1.2) ;;
major.minor) tools+=(cargo-watch@8.5 watchexec-cli@2.1) ;;
major) tools+=(cargo-watch@8 watchexec-cli@2) ;;
*) exit 1 ;;
latest) tools+=(cargo-watch watchexec-cli) ;;
major.minor.patch) tools+=(cargo-watch@8.5.2 watchexec-cli@2.1.2) ;;
major.minor) tools+=(cargo-watch@8.5 watchexec-cli@2.1) ;;
major) tools+=(cargo-watch@8 watchexec-cli@2) ;;
*) exit 1 ;;
esac
# sort and dedup
@@ -181,5 +193,5 @@ IFS=$'\n\t'
# TODO: inject random space before/after of tool name for testing https://github.com/taiki-e/install-action/issues/115.
IFS=','
echo "tool=${tools[*]}"
printf 'tool=%s\n' "${tools[*]}"
IFS=$'\n\t'

View File

@@ -20,11 +20,11 @@
"bin": "bin/ec-darwin-arm64"
},
"x86_64_windows": {
"asset_name": "ec-windows-amd64${exe}.tar.gz",
"asset_name": ["ec-windows-amd64.zip", "ec-windows-amd64${exe}.tar.gz"],
"bin": "bin/ec-windows-amd64${exe}"
},
"aarch64_windows": {
"asset_name": "ec-windows-arm64${exe}.tar.gz",
"asset_name": ["ec-windows-arm64.zip", "ec-windows-arm64${exe}.tar.gz"],
"bin": "bin/ec-windows-arm64${exe}"
}
}

View File

@@ -0,0 +1,16 @@
{
"repository": "https://github.com/trunk-rs/trunk",
"tag_prefix": "v",
"rust_crate": "${package}",
"asset_name": "${package}-${rust_target}.tar.gz",
"version_range": ">= 0.19.0",
"platform": {
"x86_64_linux_musl": {},
"x86_64_macos": {},
"x86_64_windows": {
"asset_name": "${package}-${rust_target}.zip"
},
"aarch64_linux_musl": {},
"aarch64_macos": {}
}
}

View File

@@ -0,0 +1,13 @@
{
"repository": "https://github.com/wasmCloud/wasmCloud",
"tag_prefix": "wash-cli-v",
"rust_crate": "${package}-cli",
"asset_name": "${package}-${rust_target}${exe}",
"platform": {
"x86_64_linux_musl": {},
"x86_64_macos": {},
"x86_64_windows": {},
"aarch64_linux_musl": {},
"aarch64_macos": {}
}
}

View File

@@ -5,7 +5,7 @@ use std::{
collections::{BTreeMap, BTreeSet},
env,
ffi::OsStr,
io::Read,
io::Read as _,
path::Path,
sync::{LazyLock, RwLock},
time::Duration,
@@ -17,7 +17,7 @@ use install_action_internal_codegen::{
workspace_root, BaseManifest, HostPlatform, Manifest, ManifestDownloadInfo, ManifestRef,
ManifestTemplate, ManifestTemplateDownloadInfo, Manifests, Signing, SigningKind, Version,
};
use sha2::{Digest, Sha256};
use sha2::{Digest as _, Sha256};
use spdx::expression::{ExprNode, ExpressionReq, Operator};
fn main() -> Result<()> {
@@ -137,6 +137,7 @@ fn main() -> Result<()> {
};
let version = &*k.0.to_string();
if let Some(template) = &manifests.template {
#[allow(clippy::literal_string_with_formatting_args)]
for (platform, d) in &mut manifest.download_info {
let template = &template.download_info[platform];
d.url = Some(template.url.replace("${version}", version));
@@ -563,6 +564,7 @@ fn main() -> Result<()> {
};
let version = &*version.0.to_string();
let t = template.as_mut().unwrap();
#[allow(clippy::literal_string_with_formatting_args)]
for (platform, d) in &mut manifest.download_info {
let template_url = d.url.take().unwrap().replace(version, "${version}");
let template_bin = d.bin.take().map(|s| s.map(|s| s.replace(version, "${version}")));
@@ -600,6 +602,7 @@ fn write_manifests(manifest_path: &Path, manifests: &Manifests) -> Result<()> {
Ok(())
}
#[allow(clippy::literal_string_with_formatting_args)]
fn replace_vars(
s: &str,
package: &str,

View File

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT
use std::{env, fmt, io::Write, path::PathBuf};
use std::{env, fmt, io::Write as _, path::PathBuf};
use anyhow::Result;
use fs_err as fs;

View File

@@ -1,8 +1,9 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail
set -CeEuo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/..
# Update manifests
#
@@ -10,11 +11,12 @@ cd "$(dirname "$0")"/..
# ./tools/manifest.sh [PACKAGE [VERSION_REQ]]
if [[ $# -gt 0 ]]; then
cargo run --manifest-path tools/codegen/Cargo.toml --release -- "$@"
exit 0
cargo run --manifest-path tools/codegen/Cargo.toml --release -- "$@"
exit 0
fi
for manifest in tools/codegen/base/*.json; do
package=$(basename "${manifest%.*}")
cargo run --manifest-path tools/codegen/Cargo.toml --release -- "${package}" latest
package="${manifest##*/}"
package="${package%.*}"
cargo run --manifest-path tools/codegen/Cargo.toml --release -- "${package}" latest
done

View File

@@ -1,11 +1,9 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail
set -CeEuo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
# shellcheck disable=SC2154
trap 's=$?; echo >&2 "$0: error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}' ERR
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/..
# Publish a new release.
#
@@ -16,18 +14,18 @@ trap 's=$?; echo >&2 "$0: error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
# - parse-changelog <https://github.com/taiki-e/parse-changelog>
retry() {
for i in {1..10}; do
if "$@"; then
return 0
else
sleep "${i}"
fi
done
"$@"
for i in {1..10}; do
if "$@"; then
return 0
else
sleep "${i}"
fi
done
"$@"
}
bail() {
echo >&2 "error: $*"
exit 1
printf >&2 'error: %s\n' "$*"
exit 1
}
version="${1:?}"
@@ -36,10 +34,15 @@ tag_prefix="v"
tag="${tag_prefix}${version}"
changelog="CHANGELOG.md"
if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$ ]]; then
bail "invalid version format '${version}'"
bail "invalid version format '${version}'"
fi
if [[ $# -gt 1 ]]; then
bail "invalid argument '$2'"
bail "invalid argument '$2'"
fi
if { sed --help 2>&1 || true; } | grep -Eq -e '-i extension'; then
in_place=(-i '')
else
in_place=(-i)
fi
# Make sure there is no uncommitted change.
@@ -48,72 +51,67 @@ git diff --exit-code --staged
# Make sure the same release has not been created in the past.
if gh release view "${tag}" &>/dev/null; then
bail "tag '${tag}' has already been created and pushed"
bail "tag '${tag}' has already been created and pushed"
fi
# Make sure that the release was created from an allowed branch.
if ! git branch | grep -q '\* main$'; then
bail "current branch is not 'main'"
if ! git branch | grep -Eq '\* main$'; then
bail "current branch is not 'main'"
fi
if ! git remote -v | grep -F origin | grep -Eq 'github\.com[:/]taiki-e/'; then
bail "cannot publish a new release from fork repository"
fi
release_date=$(date -u '+%Y-%m-%d')
tags=$(git --no-pager tag | (grep -E "^${tag_prefix}[0-9]+" || true))
tags=$(git --no-pager tag | { grep -E "^${tag_prefix}[0-9]+" || true; })
if [[ -n "${tags}" ]]; then
# Make sure the same release does not exist in changelog.
if grep -Eq "^## \\[${version//./\\.}\\]" "${changelog}"; then
bail "release ${version} already exist in ${changelog}"
fi
if grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "link to ${version} already exist in ${changelog}"
fi
# Update changelog.
remote_url=$(grep -E '^\[Unreleased\]: https://' "${changelog}" | sed 's/^\[Unreleased\]: //; s/\.\.\.HEAD$//')
prev_tag="${remote_url#*/compare/}"
remote_url="${remote_url%/compare/*}"
sed -i "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n## [${version}] - ${release_date}/" "${changelog}"
sed -i "s#^\[Unreleased\]: https://.*#[Unreleased]: ${remote_url}/compare/${tag}...HEAD\\n[${version}]: ${remote_url}/compare/${prev_tag}...${tag}#" "${changelog}"
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" "${changelog}"; then
bail "failed to update ${changelog}"
fi
if ! grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "failed to update ${changelog}"
fi
# Make sure the same release does not exist in changelog.
if grep -Eq "^## \\[${version//./\\.}\\]" "${changelog}"; then
bail "release ${version} already exist in ${changelog}"
fi
if grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "link to ${version} already exist in ${changelog}"
fi
# Update changelog.
remote_url=$(grep -E '^\[Unreleased\]: https://' "${changelog}" | sed -E 's/^\[Unreleased\]: //; s/\.\.\.HEAD$//')
prev_tag="${remote_url#*/compare/}"
remote_url="${remote_url%/compare/*}"
sed -E "${in_place[@]}" \
-e "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n## [${version}] - ${release_date}/" \
-e "s#^\[Unreleased\]: https://.*#[Unreleased]: ${remote_url}/compare/${tag}...HEAD\\n[${version}]: ${remote_url}/compare/${prev_tag}...${tag}#" "${changelog}"
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" "${changelog}"; then
bail "failed to update ${changelog}"
fi
if ! grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "failed to update ${changelog}"
fi
else
# Make sure the release exists in changelog.
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" "${changelog}"; then
bail "release ${version} does not exist in ${changelog} or has wrong release date"
fi
if ! grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "link to ${version} does not exist in ${changelog}"
fi
# Make sure the release exists in changelog.
if ! grep -Eq "^## \\[${version//./\\.}\\] - ${release_date}$" "${changelog}"; then
bail "release ${version} does not exist in ${changelog} or has wrong release date"
fi
if ! grep -Eq "^\\[${version//./\\.}\\]: " "${changelog}"; then
bail "link to ${version} does not exist in ${changelog}"
fi
fi
# Make sure that a valid release note for this version exists.
# https://github.com/taiki-e/parse-changelog
changes=$(parse-changelog "${changelog}" "${version}")
if [[ -z "${changes}" ]]; then
bail "changelog for ${version} has no body"
bail "changelog for ${version} has no body"
fi
echo "============== CHANGELOG =============="
echo "${changes}"
echo "======================================="
tools=()
for tool in tools/codegen/base/*.json; do
tools+=("$(basename "${tool%.*}")")
done
# Alias
tools+=(nextest)
# Not manifest-based
tools+=(valgrind)
printf '============== CHANGELOG ==============\n'
printf '%s\n' "${changes}"
printf '=======================================\n'
if [[ -n "${tags}" ]]; then
# Create a release commit.
(
set -x
git add "${changelog}"
git commit -m "Release ${version}"
)
# Create a release commit.
(
set -x
git add "${changelog}"
git commit -m "Release ${version}"
)
fi
set -x
@@ -126,27 +124,37 @@ major_version_tag="v${version%%.*}"
git checkout -b "${major_version_tag}"
retry git push origin refs/heads/"${major_version_tag}"
if git --no-pager tag | grep -Eq "^${major_version_tag}$"; then
git tag -d "${major_version_tag}"
retry git push --delete origin refs/tags/"${major_version_tag}"
git tag -d "${major_version_tag}"
retry git push --delete origin refs/tags/"${major_version_tag}"
fi
git tag "${major_version_tag}"
retry git push origin --tags
git checkout main
git branch -d "${major_version_tag}"
for tool in "${tools[@]}"; do
git checkout -b "${tool}"
sed -i -e "s/required: true/required: false/g" action.yml
sed -i -e "s/# default: #publish:tool/default: ${tool}/g" action.yml
git add action.yml
git commit -m "${tool}"
retry git push origin -f refs/heads/"${tool}"
if git --no-pager tag | grep -Eq "^${tool}$"; then
git tag -d "${tool}"
retry git push --delete origin refs/tags/"${tool}"
fi
git tag "${tool}"
retry git push origin --tags
git checkout main
git branch -D "${tool}"
tools=()
for tool in tools/codegen/base/*.json; do
tool="${tool##*/}"
tools+=("${tool%.*}")
done
# Alias
tools+=(nextest)
# Not manifest-based
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
git add action.yml
git commit -m "${tool}"
retry git push origin -f refs/heads/"${tool}"
if git --no-pager tag | grep -Eq "^${tool}$"; then
git tag -d "${tool}"
retry git push --delete origin refs/tags/"${tool}"
fi
git tag "${tool}"
retry git push origin --tags
git checkout main
git branch -D "${tool}"
done

View File

@@ -25,455 +25,464 @@ trap 's=$?; echo >&2 "$0: error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
# skipped if the corresponding files do not exist.
check_diff() {
if [[ -n "${CI:-}" ]]; then
if ! git --no-pager diff --exit-code "$@"; then
should_fail=1
fi
else
if ! git --no-pager diff --exit-code "$@" &>/dev/null; then
should_fail=1
fi
if [[ -n "${CI:-}" ]]; then
if ! git --no-pager diff --exit-code "$@"; then
should_fail=1
fi
else
if ! git --no-pager diff --exit-code "$@" &>/dev/null; then
should_fail=1
fi
fi
}
check_config() {
if [[ ! -e "$1" ]]; then
error "could not found $1 in the repository root"
fi
if [[ ! -e "$1" ]]; then
error "could not found $1 in the repository root"
fi
}
check_install() {
for tool in "$@"; do
if ! type -P "${tool}" &>/dev/null; then
if [[ "${tool}" == "python3" ]]; then
if type -P python &>/dev/null; then
continue
fi
fi
error "'${tool}' is required to run this check"
return 1
for tool in "$@"; do
if ! type -P "${tool}" &>/dev/null; then
if [[ "${tool}" == "python3" ]]; then
if type -P python &>/dev/null; then
continue
fi
done
fi
error "'${tool}' is required to run this check"
return 1
fi
done
}
info() {
echo >&2 "info: $*"
echo >&2 "info: $*"
}
error() {
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
echo "::error::$*"
else
echo >&2 "error: $*"
fi
should_fail=1
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
echo "::error::$*"
else
echo >&2 "error: $*"
fi
should_fail=1
}
venv() {
local bin="$1"
shift
"${venv_bin}/${bin}${exe}" "$@"
local bin="$1"
shift
"${venv_bin}/${bin}${exe}" "$@"
}
venv_install_yq() {
local py_suffix=''
if type -P python3 &>/dev/null; then
py_suffix='3'
fi
exe=''
venv_bin='.venv/bin'
case "$(uname -s)" in
MINGW* | MSYS* | CYGWIN* | Windows_NT)
exe='.exe'
venv_bin='.venv/Scripts'
;;
esac
if [[ ! -d .venv ]]; then
"python${py_suffix}" -m venv .venv
fi
if [[ ! -e "${venv_bin}/yq${exe}" ]]; then
info "installing yq to ./.venv using pip"
venv "pip${py_suffix}" install yq
fi
local py_suffix=''
if type -P python3 &>/dev/null; then
py_suffix='3'
fi
exe=''
venv_bin='.venv/bin'
case "$(uname -s)" in
MINGW* | MSYS* | CYGWIN* | Windows_NT)
exe='.exe'
venv_bin='.venv/Scripts'
;;
esac
if [[ ! -d .venv ]]; then
"python${py_suffix}" -m venv .venv
fi
if [[ ! -e "${venv_bin}/yq${exe}" ]]; then
info "installing yq to ./.venv using pip"
venv "pip${py_suffix}" install yq
fi
}
if [[ $# -gt 0 ]]; then
cat <<EOF
cat <<EOF
USAGE:
$0
EOF
exit 1
exit 1
fi
# Rust (if exists)
if [[ -n "$(git ls-files '*.rs')" ]]; then
info "checking Rust code style"
check_install cargo jq python3
check_config .rustfmt.toml
if check_install rustup; then
# `cargo fmt` cannot recognize files not included in the current workspace and modules
# defined inside macros, so run rustfmt directly.
# We need to use nightly rustfmt because we use the unstable formatting options of rustfmt.
rustc_version=$(rustc -vV | grep '^release:' | cut -d' ' -f2)
if [[ "${rustc_version}" == *"nightly"* ]] || [[ "${rustc_version}" == *"dev"* ]]; then
rustup component add rustfmt &>/dev/null
info "running \`rustfmt \$(git ls-files '*.rs')\`"
rustfmt $(git ls-files '*.rs')
else
rustup component add rustfmt --toolchain nightly &>/dev/null
info "running \`rustfmt +nightly \$(git ls-files '*.rs')\`"
rustfmt +nightly $(git ls-files '*.rs')
fi
check_diff $(git ls-files '*.rs')
info "checking Rust code style"
check_install cargo jq python3
check_config .rustfmt.toml
if check_install rustup; then
# `cargo fmt` cannot recognize files not included in the current workspace and modules
# defined inside macros, so run rustfmt directly.
# We need to use nightly rustfmt because we use the unstable formatting options of rustfmt.
rustc_version=$(rustc -vV | grep '^release:' | cut -d' ' -f2)
if [[ "${rustc_version}" == *"nightly"* ]] || [[ "${rustc_version}" == *"dev"* ]]; then
rustup component add rustfmt &>/dev/null
info "running \`rustfmt \$(git ls-files '*.rs')\`"
rustfmt $(git ls-files '*.rs')
else
rustup component add rustfmt --toolchain nightly &>/dev/null
info "running \`rustfmt +nightly \$(git ls-files '*.rs')\`"
rustfmt +nightly $(git ls-files '*.rs')
fi
cast_without_turbofish=$(grep -n -E '\.cast\(\)' $(git ls-files '*.rs') || true)
if [[ -n "${cast_without_turbofish}" ]]; then
error "please replace \`.cast()\` with \`.cast::<type_name>()\`:"
echo "${cast_without_turbofish}"
check_diff $(git ls-files '*.rs')
fi
cast_without_turbofish=$(grep -n -E '\.cast\(\)' $(git ls-files '*.rs') || true)
if [[ -n "${cast_without_turbofish}" ]]; then
error "please replace \`.cast()\` with \`.cast::<type_name>()\`:"
echo "${cast_without_turbofish}"
fi
# Sync readme and crate-level doc.
first='1'
for readme in $(git ls-files '*README.md'); do
if ! grep -q '^<!-- tidy:crate-doc:start -->' "${readme}"; then
continue
fi
# Sync readme and crate-level doc.
first='1'
for readme in $(git ls-files '*README.md'); do
if ! grep -q '^<!-- tidy:crate-doc:start -->' "${readme}"; then
continue
fi
lib="$(dirname "${readme}")/src/lib.rs"
if [[ -n "${first}" ]]; then
first=''
info "checking readme and crate-level doc are synchronized"
fi
if ! grep -q '^<!-- tidy:crate-doc:end -->' "${readme}"; then
bail "missing '<!-- tidy:crate-doc:end -->' comment in ${readme}"
fi
if ! grep -q '^<!-- tidy:crate-doc:start -->' "${lib}"; then
bail "missing '<!-- tidy:crate-doc:start -->' comment in ${lib}"
fi
if ! grep -q '^<!-- tidy:crate-doc:end -->' "${lib}"; then
bail "missing '<!-- tidy:crate-doc:end -->' comment in ${lib}"
fi
new=$(tr <"${readme}" '\n' '\a' | grep -o '<!-- tidy:crate-doc:start -->.*<!-- tidy:crate-doc:end -->' | sed 's/\&/\\\&/g; s/\\/\\\\/g')
new=$(tr <"${lib}" '\n' '\a' | awk -v new="${new}" 'gsub("<!-- tidy:crate-doc:start -->.*<!-- tidy:crate-doc:end -->",new)' | tr '\a' '\n')
echo "${new}" >"${lib}"
check_diff "${lib}"
done
# Make sure that public Rust crates don't contain executables and binaries.
executables=''
binaries=''
metadata=$(cargo metadata --format-version=1 --no-deps)
has_public_crate=''
venv_install_yq
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
pkg=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})")
publish=$(jq <<<"${pkg}" -r '.publish')
manifest_path=$(jq <<<"${pkg}" -r '.manifest_path')
if [[ "$(venv tomlq -c '.lints' "${manifest_path}")" == "null" ]]; then
error "no [lints] table in ${manifest_path} please add '[lints]' with 'workspace = true'"
fi
lib="$(dirname "${readme}")/src/lib.rs"
if [[ -n "${first}" ]]; then
first=''
info "checking readme and crate-level doc are synchronized"
fi
if ! grep -q '^<!-- tidy:crate-doc:end -->' "${readme}"; then
bail "missing '<!-- tidy:crate-doc:end -->' comment in ${readme}"
fi
if ! grep -q '^<!-- tidy:crate-doc:start -->' "${lib}"; then
bail "missing '<!-- tidy:crate-doc:start -->' comment in ${lib}"
fi
if ! grep -q '^<!-- tidy:crate-doc:end -->' "${lib}"; then
bail "missing '<!-- tidy:crate-doc:end -->' comment in ${lib}"
fi
new=$(tr <"${readme}" '\n' '\a' | grep -o '<!-- tidy:crate-doc:start -->.*<!-- tidy:crate-doc:end -->' | sed 's/\&/\\\&/g; s/\\/\\\\/g')
new=$(tr <"${lib}" '\n' '\a' | awk -v new="${new}" 'gsub("<!-- tidy:crate-doc:start -->.*<!-- tidy:crate-doc:end -->",new)' | tr '\a' '\n')
echo "${new}" >"${lib}"
check_diff "${lib}"
done
# Make sure that public Rust crates don't contain executables and binaries.
executables=''
binaries=''
metadata=$(cargo metadata --format-version=1 --no-deps)
has_public_crate=''
has_root_crate=''
venv_install_yq
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
pkg=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})")
publish=$(jq <<<"${pkg}" -r '.publish')
manifest_path=$(jq <<<"${pkg}" -r '.manifest_path')
if [[ "$(venv tomlq -c '.lints' "${manifest_path}")" == "null" ]]; then
error "no [lints] table in ${manifest_path} please add '[lints]' with 'workspace = true'"
fi
# Publishing is unrestricted if null, and forbidden if an empty array.
if [[ "${publish}" == "[]" ]]; then
continue
fi
has_public_crate='1'
done
if [[ -n "${has_public_crate}" ]]; then
info "checking public crates don't contain executables and binaries"
if [[ -f Cargo.toml ]]; then
root_manifest=$(cargo locate-project --message-format=plain --manifest-path Cargo.toml)
root_pkg=$(jq <<<"${metadata}" ".packages[] | select(.manifest_path == \"${root_manifest}\")")
if [[ -n "${root_pkg}" ]]; then
publish=$(jq <<<"${root_pkg}" -r '.publish')
# Publishing is unrestricted if null, and forbidden if an empty array.
if [[ "${publish}" == "[]" ]]; then
continue
fi
has_public_crate='1'
done
if [[ -n "${has_public_crate}" ]]; then
info "checking public crates don't contain executables and binaries"
if [[ -f Cargo.toml ]]; then
root_manifest=$(cargo locate-project --message-format=plain --manifest-path Cargo.toml)
root_pkg=$(jq <<<"${metadata}" ".packages[] | select(.manifest_path == \"${root_manifest}\")")
if [[ -n "${root_pkg}" ]]; then
publish=$(jq <<<"${root_pkg}" -r '.publish')
# Publishing is unrestricted if null, and forbidden if an empty array.
if [[ "${publish}" != "[]" ]]; then
exclude=$(venv tomlq -r '.package.exclude[]' Cargo.toml)
if ! grep <<<"${exclude}" -Eq '^/\.\*$'; then
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/.*\""
fi
if [[ -e tools ]] && ! grep <<<"${exclude}" -Eq '^/tools$'; then
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/tools\" if it exists"
fi
if [[ -e target-specs ]] && ! grep <<<"${exclude}" -Eq '^/target-specs$'; then
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/target-specs\" if it exists"
fi
fi
fi
fi
for p in $(git ls-files); do
# Skip directories.
if [[ -d "${p}" ]]; then
continue
fi
# Top-level hidden files/directories and tools/* are excluded from crates.io (ensured by the above check).
# TODO: fully respect exclude field in Cargo.toml.
case "${p}" in
.* | tools/* | target-specs/*) continue ;;
esac
if [[ -x "${p}" ]]; then
executables+="${p}"$'\n'
fi
# Use diff instead of file because file treats an empty file as a binary
# https://unix.stackexchange.com/questions/275516/is-there-a-convenient-way-to-classify-files-as-binary-or-text#answer-402870
if (diff .gitattributes "${p}" || true) | grep -q '^Binary file'; then
binaries+="${p}"$'\n'
fi
done
if [[ -n "${executables}" ]]; then
error "file-permissions-check failed: executables are only allowed to be present in directories that are excluded from crates.io"
echo "======================================="
echo -n "${executables}"
echo "======================================="
fi
if [[ -n "${binaries}" ]]; then
error "file-permissions-check failed: binaries are only allowed to be present in directories that are excluded from crates.io"
echo "======================================="
echo -n "${binaries}"
echo "======================================="
if [[ "${publish}" != "[]" ]]; then
has_root_crate=1
exclude=$(venv tomlq -r '.package.exclude[]' Cargo.toml)
if ! grep <<<"${exclude}" -Eq '^/\.\*$'; then
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/.*\""
fi
if [[ -e tools ]] && ! grep <<<"${exclude}" -Eq '^/tools$'; then
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/tools\" if it exists"
fi
if [[ -e target-specs ]] && ! grep <<<"${exclude}" -Eq '^/target-specs$'; then
error "top-level Cargo.toml of non-virtual workspace should have 'exclude' field with \"/target-specs\" if it exists"
fi
fi
fi
fi
for p in $(git ls-files); do
# Skip directories.
if [[ -d "${p}" ]]; then
continue
fi
# Top-level hidden files/directories and tools/* are excluded from crates.io (ensured by the above check).
# TODO: fully respect exclude field in Cargo.toml.
case "${p}" in
.* | tools/* | target-specs/*) continue ;;
*/*) ;;
*)
# If there is no crate at root, executables at the repository root directory if always okay.
if [[ -z "${has_root_crate}" ]]; then
continue
fi
;;
esac
if [[ -x "${p}" ]]; then
executables+="${p}"$'\n'
fi
# Use diff instead of file because file treats an empty file as a binary
# https://unix.stackexchange.com/questions/275516/is-there-a-convenient-way-to-classify-files-as-binary-or-text#answer-402870
if (diff .gitattributes "${p}" || true) | grep -q '^Binary file'; then
binaries+="${p}"$'\n'
fi
done
if [[ -n "${executables}" ]]; then
error "file-permissions-check failed: executables are only allowed to be present in directories that are excluded from crates.io"
echo "======================================="
echo -n "${executables}"
echo "======================================="
fi
if [[ -n "${binaries}" ]]; then
error "file-permissions-check failed: binaries are only allowed to be present in directories that are excluded from crates.io"
echo "======================================="
echo -n "${binaries}"
echo "======================================="
fi
fi
elif [[ -e .rustfmt.toml ]]; then
error ".rustfmt.toml is unused"
error ".rustfmt.toml is unused"
fi
# C/C++ (if exists)
if [[ -n "$(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')" ]]; then
info "checking C/C++ code style"
check_config .clang-format
if check_install clang-format; then
info "running \`clang-format -i \$(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')\`"
clang-format -i $(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')
check_diff $(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')
fi
info "checking C/C++ code style"
check_config .clang-format
if check_install clang-format; then
info "running \`clang-format -i \$(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')\`"
clang-format -i $(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')
check_diff $(git ls-files '*.c' '*.h' '*.cpp' '*.hpp')
fi
elif [[ -e .clang-format ]]; then
error ".clang-format is unused"
error ".clang-format is unused"
fi
# YAML/JavaScript/JSON (if exists)
if [[ -n "$(git ls-files '*.yml' '*.yaml' '*.js' '*.json')" ]]; then
info "checking YAML/JavaScript/JSON code style"
check_config .editorconfig
if check_install npm; then
info "running \`npx -y prettier -l -w \$(git ls-files '*.yml' '*.yaml' '*.js' '*.json')\`"
npx -y prettier -l -w $(git ls-files '*.yml' '*.yaml' '*.js' '*.json')
check_diff $(git ls-files '*.yml' '*.yaml' '*.js' '*.json')
fi
# Check GitHub workflows.
if [[ -d .github/workflows ]]; then
info "checking GitHub workflows"
if check_install jq python3; then
venv_install_yq
for workflow in .github/workflows/*.yml; do
# The top-level permissions must be weak as they are referenced by all jobs.
permissions=$(venv yq -c '.permissions' "${workflow}")
case "${permissions}" in
'{"contents":"read"}' | '{"contents":"none"}') ;;
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
esac
# Make sure the 'needs' section is not out of date.
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
# shellcheck disable=SC2207
jobs_actual=($(venv yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
unset 'jobs_actual[${#jobs_actual[@]}-1]'
# shellcheck disable=SC2207
jobs_expected=($(venv yq -r '.jobs."ci-success".needs[]' "${workflow}"))
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
printf -v jobs '%s, ' "${jobs_actual[@]}"
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
check_diff "${workflow}"
error "${workflow}: please update 'needs' section in 'ci-success' job"
fi
fi
done
info "checking YAML/JavaScript/JSON code style"
check_config .editorconfig
if check_install npm; then
info "running \`npx -y prettier -l -w \$(git ls-files '*.yml' '*.yaml' '*.js' '*.json')\`"
npx -y prettier -l -w $(git ls-files '*.yml' '*.yaml' '*.js' '*.json')
check_diff $(git ls-files '*.yml' '*.yaml' '*.js' '*.json')
fi
# Check GitHub workflows.
if [[ -d .github/workflows ]]; then
info "checking GitHub workflows"
if check_install jq python3; then
venv_install_yq
for workflow in .github/workflows/*.yml; do
# The top-level permissions must be weak as they are referenced by all jobs.
permissions=$(venv yq -c '.permissions' "${workflow}")
case "${permissions}" in
'{"contents":"read"}' | '{"contents":"none"}') ;;
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
esac
# Make sure the 'needs' section is not out of date.
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
# shellcheck disable=SC2207
jobs_actual=($(venv yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
unset 'jobs_actual[${#jobs_actual[@]}-1]'
# shellcheck disable=SC2207
jobs_expected=($(venv yq -r '.jobs."ci-success".needs[]' "${workflow}"))
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
printf -v jobs '%s, ' "${jobs_actual[@]}"
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
check_diff "${workflow}"
error "${workflow}: please update 'needs' section in 'ci-success' job"
fi
fi
done
fi
fi
fi
if [[ -n "$(git ls-files '*.yaml' | (grep -v .markdownlint-cli2.yaml || true))" ]]; then
error "please use '.yml' instead of '.yaml' for consistency"
git ls-files '*.yaml' | (grep -v .markdownlint-cli2.yaml || true)
error "please use '.yml' instead of '.yaml' for consistency"
git ls-files '*.yaml' | (grep -v .markdownlint-cli2.yaml || true)
fi
# TOML (if exists)
if [[ -n "$(git ls-files '*.toml' | (grep -v .taplo.toml || true))" ]]; then
info "checking TOML style"
check_config .taplo.toml
if check_install npm; then
info "running \`npx -y @taplo/cli fmt \$(git ls-files '*.toml')\`"
RUST_LOG=warn npx -y @taplo/cli fmt $(git ls-files '*.toml')
check_diff $(git ls-files '*.toml')
fi
info "checking TOML style"
check_config .taplo.toml
if check_install npm; then
info "running \`npx -y @taplo/cli fmt \$(git ls-files '*.toml')\`"
RUST_LOG=warn npx -y @taplo/cli fmt $(git ls-files '*.toml')
check_diff $(git ls-files '*.toml')
fi
elif [[ -e .taplo.toml ]]; then
error ".taplo.toml is unused"
error ".taplo.toml is unused"
fi
# Markdown (if exists)
if [[ -n "$(git ls-files '*.md')" ]]; then
info "checking Markdown style"
check_config .markdownlint-cli2.yaml
if check_install npm; then
info "running \`npx -y markdownlint-cli2 \$(git ls-files '*.md')\`"
npx -y markdownlint-cli2 $(git ls-files '*.md')
fi
info "checking Markdown style"
check_config .markdownlint-cli2.yaml
if check_install npm; then
info "running \`npx -y markdownlint-cli2 \$(git ls-files '*.md')\`"
npx -y markdownlint-cli2 $(git ls-files '*.md')
fi
elif [[ -e .markdownlint-cli2.yaml ]]; then
error ".markdownlint-cli2.yaml is unused"
error ".markdownlint-cli2.yaml is unused"
fi
if [[ -n "$(git ls-files '*.markdown')" ]]; then
error "please use '.md' instead of '.markdown' for consistency"
git ls-files '*.markdown'
error "please use '.md' instead of '.markdown' for consistency"
git ls-files '*.markdown'
fi
# Shell scripts
info "checking Shell scripts"
if check_install shfmt; then
check_config .editorconfig
info "running \`shfmt -l -w \$(git ls-files '*.sh')\`"
shfmt -l -w $(git ls-files '*.sh')
check_diff $(git ls-files '*.sh')
check_config .editorconfig
info "running \`shfmt -l -w \$(git ls-files '*.sh')\`"
shfmt -l -w $(git ls-files '*.sh')
check_diff $(git ls-files '*.sh')
fi
if check_install shellcheck; then
check_config .shellcheckrc
info "running \`shellcheck \$(git ls-files '*.sh')\`"
if ! shellcheck $(git ls-files '*.sh'); then
should_fail=1
fi
if [[ -n "$(git ls-files '*Dockerfile')" ]]; then
# SC2154 doesn't seem to work on dockerfile.
info "running \`shellcheck -e SC2148,SC2154,SC2250 \$(git ls-files '*Dockerfile')\`"
if ! shellcheck -e SC2148,SC2154,SC2250 $(git ls-files '*Dockerfile'); then
should_fail=1
fi
check_config .shellcheckrc
info "running \`shellcheck \$(git ls-files '*.sh')\`"
if ! shellcheck $(git ls-files '*.sh'); then
should_fail=1
fi
if [[ -n "$(git ls-files '*Dockerfile')" ]]; then
# SC2154 doesn't seem to work on dockerfile.
info "running \`shellcheck -e SC2148,SC2154,SC2250 \$(git ls-files '*Dockerfile')\`"
if ! shellcheck -e SC2148,SC2154,SC2250 $(git ls-files '*Dockerfile'); then
should_fail=1
fi
fi
fi
# License check
# TODO: This check is still experimental and does not track all files that should be tracked.
if [[ -f tools/.tidy-check-license-headers ]]; then
info "checking license headers (experimental)"
failed_files=''
for p in $(eval $(<tools/.tidy-check-license-headers)); do
case "$(basename "${p}")" in
*.stderr | *.expanded.rs) continue ;; # generated files
*.sh | *.py | *.rb | *Dockerfile) prefix=("# ") ;;
*.rs | *.c | *.h | *.cpp | *.hpp | *.s | *.S | *.js) prefix=("// " "/* ") ;;
*.ld | *.x) prefix=("/* ") ;;
# TODO: More file types?
*) continue ;;
esac
# TODO: The exact line number is not actually important; it is important
# that it be part of the top-level comments of the file.
line="1"
if IFS= LC_ALL=C read -rn3 -d '' shebang <"${p}" && [[ "${shebang}" == '#!/' ]]; then
line="2"
elif [[ "${p}" == *"Dockerfile" ]] && IFS= LC_ALL=C read -rn9 -d '' syntax <"${p}" && [[ "${syntax}" == '# syntax=' ]]; then
line="2"
fi
header_found=''
for pre in "${prefix[@]}"; do
# TODO: check that the license is valid as SPDX and is allowed in this project.
if [[ "$(grep -E -n "${pre}SPDX-License-Identifier: " "${p}")" == "${line}:${pre}SPDX-License-Identifier: "* ]]; then
header_found='1'
break
fi
done
if [[ -z "${header_found}" ]]; then
failed_files+="${p}:${line}"$'\n'
fi
done
if [[ -n "${failed_files}" ]]; then
error "license-check failed: please add SPDX-License-Identifier to the following files"
echo "======================================="
echo -n "${failed_files}"
echo "======================================="
info "checking license headers (experimental)"
failed_files=''
for p in $(eval $(<tools/.tidy-check-license-headers)); do
case "$(basename "${p}")" in
*.stderr | *.expanded.rs) continue ;; # generated files
*.sh | *.py | *.rb | *Dockerfile) prefix=("# ") ;;
*.rs | *.c | *.h | *.cpp | *.hpp | *.s | *.S | *.js) prefix=("// " "/* ") ;;
*.ld | *.x) prefix=("/* ") ;;
# TODO: More file types?
*) continue ;;
esac
# TODO: The exact line number is not actually important; it is important
# that it be part of the top-level comments of the file.
line="1"
if IFS= LC_ALL=C read -rn3 -d '' shebang <"${p}" && [[ "${shebang}" == '#!/' ]]; then
line="2"
elif [[ "${p}" == *"Dockerfile" ]] && IFS= LC_ALL=C read -rn9 -d '' syntax <"${p}" && [[ "${syntax}" == '# syntax=' ]]; then
line="2"
fi
header_found=''
for pre in "${prefix[@]}"; do
# TODO: check that the license is valid as SPDX and is allowed in this project.
if [[ "$(grep -E -n "${pre}SPDX-License-Identifier: " "${p}")" == "${line}:${pre}SPDX-License-Identifier: "* ]]; then
header_found='1'
break
fi
done
if [[ -z "${header_found}" ]]; then
failed_files+="${p}:${line}"$'\n'
fi
done
if [[ -n "${failed_files}" ]]; then
error "license-check failed: please add SPDX-License-Identifier to the following files"
echo "======================================="
echo -n "${failed_files}"
echo "======================================="
fi
fi
# Spell check (if config exists)
if [[ -f .cspell.json ]]; then
info "spell checking"
project_dictionary=.github/.cspell/project-dictionary.txt
if check_install npm jq python3; then
has_rust=''
if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then
venv_install_yq
has_rust='1'
dependencies=''
for manifest_path in $(git ls-files '*Cargo.toml'); do
if [[ "${manifest_path}" != "Cargo.toml" ]] && [[ "$(venv tomlq -c '.workspace' "${manifest_path}")" == "null" ]]; then
continue
fi
metadata=$(cargo metadata --format-version=1 --no-deps --manifest-path "${manifest_path}")
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
dependencies+="$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')"$'\n'
done
done
# shellcheck disable=SC2001
dependencies=$(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u)
info "spell checking"
project_dictionary=.github/.cspell/project-dictionary.txt
if check_install npm jq python3; then
has_rust=''
if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then
venv_install_yq
has_rust='1'
dependencies=''
for manifest_path in $(git ls-files '*Cargo.toml'); do
if [[ "${manifest_path}" != "Cargo.toml" ]] && [[ "$(venv tomlq -c '.workspace' "${manifest_path}")" == "null" ]]; then
continue
fi
config_old=$(<.cspell.json)
config_new=$(grep <<<"${config_old}" -v '^ *//' | jq 'del(.dictionaries[] | select(index("organization-dictionary") | not))' | jq 'del(.dictionaryDefinitions[] | select(.name == "organization-dictionary" | not))')
trap -- 'echo "${config_old}" >.cspell.json; echo >&2 "$0: trapped SIGINT"; exit 1' SIGINT
echo "${config_new}" >.cspell.json
if [[ -n "${has_rust}" ]]; then
dependencies_words=$(npx <<<"${dependencies}" -y cspell stdin --no-progress --no-summary --words-only --unique || true)
fi
all_words=$(npx -y cspell --no-progress --no-summary --words-only --unique $(git ls-files | (grep -v "${project_dictionary//\./\\.}" || true)) || true)
echo "${config_old}" >.cspell.json
trap - SIGINT
cat >.github/.cspell/rust-dependencies.txt <<EOF
metadata=$(cargo metadata --format-version=1 --no-deps --manifest-path "${manifest_path}")
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
dependencies+="$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')"$'\n'
done
done
# shellcheck disable=SC2001
dependencies=$(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u)
fi
config_old=$(<.cspell.json)
config_new=$(grep <<<"${config_old}" -v '^ *//' | jq 'del(.dictionaries[] | select(index("organization-dictionary") | not))' | jq 'del(.dictionaryDefinitions[] | select(.name == "organization-dictionary" | not))')
trap -- 'echo "${config_old}" >.cspell.json; echo >&2 "$0: trapped SIGINT"; exit 1' SIGINT
echo "${config_new}" >.cspell.json
if [[ -n "${has_rust}" ]]; then
dependencies_words=$(npx <<<"${dependencies}" -y cspell stdin --no-progress --no-summary --words-only --unique || true)
fi
all_words=$(npx -y cspell --no-progress --no-summary --words-only --unique $(git ls-files | (grep -v "${project_dictionary//\./\\.}" || true)) || true)
echo "${config_old}" >.cspell.json
trap - SIGINT
cat >.github/.cspell/rust-dependencies.txt <<EOF
// This file is @generated by $(basename "$0").
// It is not intended for manual editing.
EOF
if [[ -n "${dependencies_words:-}" ]]; then
echo $'\n'"${dependencies_words}" >>.github/.cspell/rust-dependencies.txt
fi
if [[ -z "${REMOVE_UNUSED_WORDS:-}" ]]; then
check_diff .github/.cspell/rust-dependencies.txt
fi
if ! grep -Fq '.github/.cspell/rust-dependencies.txt linguist-generated' .gitattributes; then
error "you may want to mark .github/.cspell/rust-dependencies.txt linguist-generated"
fi
info "running \`npx -y cspell --no-progress --no-summary \$(git ls-files)\`"
if ! npx -y cspell --no-progress --no-summary $(git ls-files); then
error "spellcheck failed: please fix uses of above words or add to ${project_dictionary} if correct"
fi
# Make sure the project-specific dictionary does not contain duplicated words.
for dictionary in .github/.cspell/*.txt; do
if [[ "${dictionary}" == "${project_dictionary}" ]]; then
continue
fi
dup=$(sed '/^$/d' "${project_dictionary}" "${dictionary}" | LC_ALL=C sort -f | uniq -d -i | (grep -v '//.*' || true))
if [[ -n "${dup}" ]]; then
error "duplicated words in dictionaries; please remove the following words from ${project_dictionary}"
echo "======================================="
echo "${dup}"
echo "======================================="
fi
done
# Make sure the project-specific dictionary does not contain unused words.
if [[ -n "${REMOVE_UNUSED_WORDS:-}" ]]; then
grep_args=()
for word in $(grep -Ev '^//.*' "${project_dictionary}" || true); do
if ! grep -Eqi "^${word}$" <<<"${all_words}"; then
grep_args+=(-e "^${word}$")
fi
done
if [[ ${#grep_args[@]} -gt 0 ]]; then
info "removing unused words from ${project_dictionary}"
res=$(grep -Ev "${grep_args[@]}" "${project_dictionary}")
printf '%s\n' "${res}" >|"${project_dictionary}"
fi
else
unused=''
for word in $(grep -Ev '^//.*' "${project_dictionary}" || true); do
if ! grep -Eqi "^${word}$" <<<"${all_words}"; then
unused+="${word}"$'\n'
fi
done
if [[ -n "${unused}" ]]; then
error "unused words in dictionaries; please remove the following words from ${project_dictionary} or run ${0##*/} with REMOVE_UNUSED_WORDS=1"
printf '=======================================\n'
printf '%s' "${unused}"
printf '=======================================\n'
fi
fi
if [[ -n "${dependencies_words:-}" ]]; then
echo $'\n'"${dependencies_words}" >>.github/.cspell/rust-dependencies.txt
fi
if [[ -z "${REMOVE_UNUSED_WORDS:-}" ]]; then
check_diff .github/.cspell/rust-dependencies.txt
fi
if ! grep -Fq '.github/.cspell/rust-dependencies.txt linguist-generated' .gitattributes; then
error "you may want to mark .github/.cspell/rust-dependencies.txt linguist-generated"
fi
info "running \`npx -y cspell --no-progress --no-summary \$(git ls-files)\`"
if ! npx -y cspell --no-progress --no-summary $(git ls-files); then
error "spellcheck failed: please fix uses of above words or add to ${project_dictionary} if correct"
fi
# Make sure the project-specific dictionary does not contain duplicated words.
for dictionary in .github/.cspell/*.txt; do
if [[ "${dictionary}" == "${project_dictionary}" ]]; then
continue
fi
dup=$(sed '/^$/d' "${project_dictionary}" "${dictionary}" | LC_ALL=C sort -f | uniq -d -i | (grep -v '//.*' || true))
if [[ -n "${dup}" ]]; then
error "duplicated words in dictionaries; please remove the following words from ${project_dictionary}"
echo "======================================="
echo "${dup}"
echo "======================================="
fi
done
# Make sure the project-specific dictionary does not contain unused words.
if [[ -n "${REMOVE_UNUSED_WORDS:-}" ]]; then
grep_args=()
for word in $(grep -Ev '^//.*' "${project_dictionary}" || true); do
if ! grep -Eqi "^${word}$" <<<"${all_words}"; then
grep_args+=(-e "^${word}$")
fi
done
if [[ ${#grep_args[@]} -gt 0 ]]; then
info "removing unused words from ${project_dictionary}"
res=$(grep -Ev "${grep_args[@]}" "${project_dictionary}")
printf '%s\n' "${res}" >|"${project_dictionary}"
fi
else
unused=''
for word in $(grep -Ev '^//.*' "${project_dictionary}" || true); do
if ! grep -Eqi "^${word}$" <<<"${all_words}"; then
unused+="${word}"$'\n'
fi
done
if [[ -n "${unused}" ]]; then
error "unused words in dictionaries; please remove the following words from ${project_dictionary} or run ${0##*/} with REMOVE_UNUSED_WORDS=1"
printf '=======================================\n'
printf '%s' "${unused}"
printf '=======================================\n'
fi
fi
fi
fi
if [[ -n "${should_fail:-}" ]]; then
exit 1
exit 1
fi

View File

@@ -1,8 +1,9 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail
set -CeEuo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/..
# Update markdown
#