Compare commits

...

40 Commits

Author SHA1 Message Date
Taiki Endo
a24dd0e0c4 Release 2.7.2 2023-04-29 02:38:07 +09:00
Taiki Endo
2a6756db3f Update cargo-llvm-cov@latest to 0.5.19 2023-04-29 02:35:39 +09:00
Taiki Endo
2cdc2cd967 Release 2.7.1 2023-04-28 23:59:08 +09:00
Taiki Endo
c2e6f35543 Update wasmtime@latest to 8.0.1 2023-04-28 23:58:38 +09:00
Taiki Endo
7c1e73b097 Release 2.7.0 2023-04-27 12:39:57 +09:00
Taiki Endo
dcb330b502 Update grcov@latest to 0.8.18 2023-04-27 12:38:25 +09:00
Taiki Endo
e7ff7c040d Update cargo-binstall@latest to 0.23.0 2023-04-27 12:38:25 +09:00
Taiki Endo
d0fd3c3f4f Update create-pull-request action to v5 2023-04-25 23:31:49 +09:00
Taiki Endo
0be2356e01 Release 2.6.19 2023-04-25 23:07:51 +09:00
Taiki Endo
d5604f6f65 Update cargo-llvm-cov@latest to 0.5.18 2023-04-25 23:06:50 +09:00
Taiki Endo
7522ae03ca Release 2.6.18 2023-04-22 00:52:34 +09:00
github-actions[bot]
4a5f6b4e01 Update cargo-llvm-cov@latest to 0.5.17 (#107)
Co-authored-by: Taiki Endo <te316e89@gmail.com>
2023-04-22 01:41:39 +10:00
Taiki Endo
6959113efc Release 2.6.17 2023-04-21 00:41:35 +09:00
Taiki Endo
86e5744719 Update wasmtime@latest to 8.0.0 2023-04-21 00:41:04 +09:00
Taiki Endo
c80c44ce16 Release 2.6.16 2023-04-19 04:35:30 +09:00
Taiki Endo
1354305f72 Update cargo-llvm-cov@latest to 0.5.16 2023-04-19 04:25:24 +09:00
Taiki Endo
8569da4c37 Release 2.6.15 2023-04-18 13:22:11 +09:00
github-actions[bot]
2d2c3d6d98 Update dprint@latest to 0.36.0 (#104) 2023-04-18 12:22:55 +10:00
Taiki Endo
3b28924ced Release 2.6.14 2023-04-16 15:36:15 +09:00
github-actions[bot]
85a28581e5 Update manifest (#103)
* Update `cargo-llvm-cov@latest` to 0.5.15

* Update `cargo-minimal-versions@latest` to 0.1.12

---------

Co-authored-by: Taiki Endo <te316e89@gmail.com>
2023-04-16 12:46:56 +10:00
Taiki Endo
f0b89cda51 Release 2.6.13 2023-04-13 13:19:48 +09:00
github-actions[bot]
9e5260f1db Update protoc@latest to 3.22.3 (#102)
Co-authored-by: Taiki Endo <te316e89@gmail.com>
2023-04-13 13:36:51 +10:00
Taiki Endo
a4cdfee82b Release 2.6.12 2023-04-13 04:45:02 +09:00
Taiki Endo
71bb81889c Update cargo-deny@latest to 0.13.9 2023-04-13 02:29:14 +09:00
Taiki Endo
4f363552df Update tools/tidy.sh 2023-04-13 00:04:55 +09:00
Taiki Endo
60c0a46993 Revert "Update release scripts (take 2)"
This reverts commit 3cd0f0ed94.
2023-04-11 13:01:15 +09:00
Taiki Endo
5129b57152 Release 2.6.11 2023-04-11 12:57:05 +09:00
Taiki Endo
3cd0f0ed94 Update release scripts (take 2) 2023-04-11 12:56:52 +09:00
Taiki Endo
1fe1e0ef01 Update dprint@latest to 0.35.4 2023-04-11 12:33:39 +09:00
Taiki Endo
7ef4fec011 Release 2.6.10 2023-04-07 13:34:39 +09:00
github-actions[bot]
a6cd5fac26 Update cargo-deny@latest to 0.13.8 (#99)
Co-authored-by: Taiki Endo <te316e89@gmail.com>
2023-04-07 13:08:04 +10:00
Taiki Endo
e0b88e5cc1 Release 2.6.9 2023-04-05 22:58:30 +09:00
Taiki Endo
2402df67ca Update tools/tidy.sh 2023-04-05 22:57:49 +09:00
Taiki Endo
4d6942468f Update cargo-llvm-cov@latest to 0.5.14 2023-04-05 22:56:47 +09:00
Taiki Endo
046c416559 Release 2.6.8 2023-04-05 13:28:24 +09:00
github-actions[bot]
88e9b610ea Update cargo-tarpaulin@latest to 0.25.2 (#97)
Co-authored-by: Taiki Endo <te316e89@gmail.com>
2023-04-05 13:22:48 +10:00
Taiki Endo
af69857b4d Release 2.6.7 2023-04-04 13:05:46 +09:00
Taiki Endo
e0569e0473 Update cspell dictionary 2023-04-04 13:05:24 +09:00
github-actions[bot]
5ba293a432 Update cargo-llvm-cov@latest to 0.5.13 (#96) 2023-04-04 13:49:06 +10:00
Taiki Endo
7282cc8708 Revert "Update release scripts"
This reverts commit 2336994aba.
2023-04-03 06:41:57 +09:00
19 changed files with 1407 additions and 403 deletions

View File

@@ -29,6 +29,7 @@ Zmiri
// Rust target triple // Rust target triple
aarch aarch
amdgpu
androideabi androideabi
armeb armeb
armebv armebv
@@ -66,6 +67,7 @@ openwrt
riscv riscv
softfloat softfloat
sparcv sparcv
spirv
thumbeb thumbeb
thumbebv thumbebv
thumbv thumbv
@@ -88,12 +90,14 @@ bools
builtins builtins
bytecount bytecount
canonicalize canonicalize
concat
consts consts
ctypes ctypes
dealloc dealloc
deque deque
docsrs docsrs
doctest doctest
doctests
hasher hasher
impls impls
inlateout inlateout
@@ -134,8 +138,11 @@ binutils
connrefused connrefused
cygwin cygwin
dpkg dpkg
elif
endianness endianness
esac
euxo euxo
gsub
msys msys
noninteractive noninteractive
noprofile noprofile
@@ -145,7 +152,9 @@ objdump
pipefail pipefail
powerset powerset
proto proto
ranlib
readelf readelf
shellcheckrc
SIGABRT SIGABRT
SIGILL SIGILL
SIGINT SIGINT

View File

@@ -1,5 +1,4 @@
binstall binstall
bytecodealliance
coreutils coreutils
distro distro
doas doas
@@ -7,21 +6,15 @@ dprint
enablerepo enablerepo
epel epel
grcov grcov
jfrimmel
koalaman
libc libc
linkcheck linkcheck
mdbook mdbook
microdnf microdnf
mvdan
nextest nextest
protobuf
protoc protoc
protocolbuffers
pwsh pwsh
quickinstall quickinstall
rockylinux rockylinux
rustwasm
shellcheck shellcheck
shfmt shfmt
udeps udeps

View File

@@ -50,9 +50,9 @@ jobs:
- os: ubuntu-20.04 - os: ubuntu-20.04
tool: cargo-hack@0.5.24,cargo-llvm-cov@0.5.3,cargo-minimal-versions@0.1.8,cargo-no-dev-deps@0.1.0,parse-changelog@0.5.2,cargo-udeps@0.1.35,cargo-valgrind@2.1.0,cargo-deny@0.13.5,cross@0.2.4,dprint@0.34.1,just@1.9.0,nextest@0.9.11,protoc@3.21.12,shellcheck@0.9.0,shfmt@3.6.0,wasm-pack@0.10.3,wasmtime@4.0.0,mdbook@0.4.25,mdbook-linkcheck@0.7.7,cargo-watch@8.1.1,grcov@0.8.13,watchexec-cli@1.20.5,cargo-tarpaulin@0.25.0,zola@0.16.1 tool: cargo-hack@0.5.24,cargo-llvm-cov@0.5.3,cargo-minimal-versions@0.1.8,cargo-no-dev-deps@0.1.0,parse-changelog@0.5.2,cargo-udeps@0.1.35,cargo-valgrind@2.1.0,cargo-deny@0.13.5,cross@0.2.4,dprint@0.34.1,just@1.9.0,nextest@0.9.11,protoc@3.21.12,shellcheck@0.9.0,shfmt@3.6.0,wasm-pack@0.10.3,wasmtime@4.0.0,mdbook@0.4.25,mdbook-linkcheck@0.7.7,cargo-watch@8.1.1,grcov@0.8.13,watchexec-cli@1.20.5,cargo-tarpaulin@0.25.0,zola@0.16.1
- os: ubuntu-20.04 - os: ubuntu-20.04
tool: cargo-hack@0.5,cargo-llvm-cov@0.5,cargo-minimal-versions@0.1,cargo-no-dev-deps@0.1,parse-changelog@0.5,cargo-udeps@0.1,cargo-valgrind@2.1,cargo-deny@0.13,cross@0.2,dprint@0.34,just@1.9,nextest@0.9,protoc@3.21,shellcheck@0.9,shfmt@3.5,wasm-pack@0.10,wasmtime@4.0,mdbook@0.4,mdbook-linkcheck@0.7,cargo-watch@8.1,grcov@0.8,watchexec-cli@1.20,cargo-tarpaulin@0.25,zola@0.16 tool: cargo-hack@0.5,cargo-llvm-cov@0.5,cargo-minimal-versions@0.1,cargo-no-dev-deps@0.1,parse-changelog@0.5,cargo-udeps@0.1,cargo-valgrind@2.1,cargo-deny@0.13,cross@0.2,dprint@0.34,just@1.9,nextest@0.9,protoc@3.21,shellcheck@0.9,shfmt@3.5,wasm-pack@0.10,wasmtime@6.0,mdbook@0.4,mdbook-linkcheck@0.7,cargo-watch@8.1,grcov@0.8,watchexec-cli@1.20,cargo-tarpaulin@0.25,zola@0.16
- os: ubuntu-20.04 - os: ubuntu-20.04
tool: cargo-valgrind@2,just@1,protoc@3,shfmt@3,wasmtime@4,cargo-watch@8,watchexec-cli@1 tool: cargo-valgrind@2,just@1,protoc@3,shfmt@3,wasmtime@7,cargo-watch@8,watchexec-cli@1
- os: macos-11 - os: macos-11
tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola tool: cargo-hack,cargo-llvm-cov,cargo-minimal-versions,cargo-no-dev-deps,parse-changelog,cargo-udeps,cargo-valgrind,cargo-deny,cross,dprint,just,nextest,protoc,shellcheck,shfmt,wasm-pack,wasmtime,mdbook,mdbook-linkcheck,cargo-watch,grcov,watchexec-cli,cargo-tarpaulin,zola
- os: windows-2019 - os: windows-2019
@@ -180,7 +180,7 @@ jobs:
- id: diff - id: diff
run: ci/manifest.sh run: ci/manifest.sh
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main') if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main')
- uses: taiki-e/create-pull-request@v4 - uses: peter-evans/create-pull-request@v5
with: with:
title: Update manifest title: Update manifest
body: | body: |

View File

@@ -29,4 +29,3 @@ jobs:
title: $version title: $version
branch: 'main|v[0-9]+' branch: 'main|v[0-9]+'
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- run: ci/publish.sh

View File

@@ -10,6 +10,74 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased] ## [Unreleased]
## [2.7.2] - 2023-04-28
- Update `cargo-llvm-cov@latest` to 0.5.19.
## [2.7.1] - 2023-04-28
- Update `wasmtime@latest` to 8.0.1.
## [2.7.0] - 2023-04-27
- Update `grcov@latest` to 0.8.18.
- Update `cargo-binstall@latest` to 0.23.0.
## [2.6.19] - 2023-04-25
- Update `cargo-llvm-cov@latest` to 0.5.18.
## [2.6.18] - 2023-04-21
- Update `cargo-llvm-cov@latest` to 0.5.17.
## [2.6.17] - 2023-04-20
- Update `wasmtime@latest` to 8.0.0.
## [2.6.16] - 2023-04-18
- Update `cargo-llvm-cov@latest` to 0.5.16.
## [2.6.15] - 2023-04-18
- Update `dprint@latest` to 0.36.0.
## [2.6.14] - 2023-04-16
- Update `cargo-minimal-versions@latest` to 0.1.12.
- Update `cargo-llvm-cov@latest` to 0.5.15.
## [2.6.13] - 2023-04-13
- Update `protoc@latest` to 3.22.3.
## [2.6.12] - 2023-04-12
- Update `cargo-deny@latest` to 0.13.9.
## [2.6.11] - 2023-04-11
- Update `dprint@latest` to 0.35.4.
## [2.6.10] - 2023-04-07
- Update `cargo-deny@latest` to 0.13.8.
## [2.6.9] - 2023-04-05
- Update `cargo-llvm-cov@latest` to 0.5.14.
## [2.6.8] - 2023-04-05
- Update `cargo-tarpaulin@latest` to 0.25.2.
## [2.6.7] - 2023-04-04
- Update `cargo-llvm-cov@latest` to 0.5.13.
## [2.6.6] - 2023-04-02 ## [2.6.6] - 2023-04-02
- Update `cargo-llvm-cov@latest` to 0.5.12. - Update `cargo-llvm-cov@latest` to 0.5.12.
@@ -703,7 +771,23 @@ Note: This release is considered a breaking change because installing on version
Initial release Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.6.6...HEAD [Unreleased]: https://github.com/taiki-e/install-action/compare/v2.7.2...HEAD
[2.7.2]: https://github.com/taiki-e/install-action/compare/v2.7.1...v2.7.2
[2.7.1]: https://github.com/taiki-e/install-action/compare/v2.7.0...v2.7.1
[2.7.0]: https://github.com/taiki-e/install-action/compare/v2.6.19...v2.7.0
[2.6.19]: https://github.com/taiki-e/install-action/compare/v2.6.18...v2.6.19
[2.6.18]: https://github.com/taiki-e/install-action/compare/v2.6.17...v2.6.18
[2.6.17]: https://github.com/taiki-e/install-action/compare/v2.6.16...v2.6.17
[2.6.16]: https://github.com/taiki-e/install-action/compare/v2.6.15...v2.6.16
[2.6.15]: https://github.com/taiki-e/install-action/compare/v2.6.14...v2.6.15
[2.6.14]: https://github.com/taiki-e/install-action/compare/v2.6.13...v2.6.14
[2.6.13]: https://github.com/taiki-e/install-action/compare/v2.6.12...v2.6.13
[2.6.12]: https://github.com/taiki-e/install-action/compare/v2.6.11...v2.6.12
[2.6.11]: https://github.com/taiki-e/install-action/compare/v2.6.10...v2.6.11
[2.6.10]: https://github.com/taiki-e/install-action/compare/v2.6.9...v2.6.10
[2.6.9]: https://github.com/taiki-e/install-action/compare/v2.6.8...v2.6.9
[2.6.8]: https://github.com/taiki-e/install-action/compare/v2.6.7...v2.6.8
[2.6.7]: https://github.com/taiki-e/install-action/compare/v2.6.6...v2.6.7
[2.6.6]: https://github.com/taiki-e/install-action/compare/v2.6.5...v2.6.6 [2.6.6]: https://github.com/taiki-e/install-action/compare/v2.6.5...v2.6.6
[2.6.5]: https://github.com/taiki-e/install-action/compare/v2.6.4...v2.6.5 [2.6.5]: https://github.com/taiki-e/install-action/compare/v2.6.4...v2.6.5
[2.6.4]: https://github.com/taiki-e/install-action/compare/v2.6.3...v2.6.4 [2.6.4]: https://github.com/taiki-e/install-action/compare/v2.6.3...v2.6.4

View File

@@ -3,15 +3,6 @@ set -euxo pipefail
IFS=$'\n\t' IFS=$'\n\t'
cd "$(dirname "$0")"/.. cd "$(dirname "$0")"/..
bail() {
echo >&2 "error: $*"
exit 1
}
if [[ -z "${CI:-}" ]]; then
bail "this script is intended to call from release workflow on CI"
fi
git config user.name "Taiki Endo" git config user.name "Taiki Endo"
git config user.email "te316e89@gmail.com" git config user.email "te316e89@gmail.com"

View File

@@ -1,74 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
# shellcheck disable=SC2154
trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}' ERR
bail() {
echo >&2 "error: $*"
exit 1
}
if [[ -z "${CI:-}" ]]; then
bail "this script is intended to call from release workflow on CI"
fi
ref="${GITHUB_REF:-}"
if [[ "${ref}" != "refs/tags/"* ]]; then
bail "tag ref should start with 'refs/tags/'"
fi
tag="${ref#refs/tags/}"
git config user.name "Taiki Endo"
git config user.email "te316e89@gmail.com"
version="${tag}"
version="${version#v}"
tools=()
for tool in tools/codegen/base/*.json; do
tools+=("$(basename "${tool%.*}")")
done
# Aliases
tools+=(nextest)
# Not manifest-base
tools+=(valgrind)
(
set -x
major_version_tag="v${version%%.*}"
git checkout -b "${major_version_tag}"
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}"
git push --delete origin refs/tags/"${major_version_tag}"
fi
git tag "${major_version_tag}"
git checkout main
git branch -d "${major_version_tag}"
)
for tool in "${tools[@]}"; do
(
set -x
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}"
git push origin -f refs/heads/"${tool}"
if git --no-pager tag | grep -Eq "^${tool}$"; then
git tag -d "${tool}"
git push --delete origin refs/tags/"${tool}"
fi
git tag "${tool}"
git checkout main
git branch -D "${tool}"
)
done
set -x
git push origin --tags

View File

@@ -20,26 +20,26 @@
} }
}, },
"latest": { "latest": {
"version": "0.22.0" "version": "0.23.0"
}, },
"0.22.0": { "0.23.0": {
"x86_64_linux_musl": { "x86_64_linux_musl": {
"checksum": "2238080e5e2c4eae5993de478341af6348e10fd9763a95a77e654e6f28268266" "checksum": "003ae60e6cb6a9e053e135c91ad8375dcb3049ec332d37792ba49f81ad094607"
}, },
"x86_64_macos": { "x86_64_macos": {
"checksum": "3e87999ab63edf3cdd71a3839bd85661c5dea5d763718668b8b3b35b1ac5dbe0" "checksum": "0567d4b21e1ad86402f0fa884390652c8d96891a0cd28773cbea0a8fe2607bcf"
}, },
"x86_64_windows": { "x86_64_windows": {
"checksum": "f656718d44ca4a09ff2231970edc7878a1aa33b6e15790a4884a758144008e27" "checksum": "6d1dd8065e81932f986bfaa3640e19d1780d1569c5b49d7ea3a0f2d4b0595129"
}, },
"aarch64_linux_musl": { "aarch64_linux_musl": {
"checksum": "280fc36a0f565d76636aa3aff570c97d1e6fbd6aa08ef315af2cb968054e1d9b" "checksum": "65ef5da7b5f8ae5e5ca566658d30e942b95413ebfbd8d247d1d220e08c8c5f5e"
}, },
"aarch64_macos": { "aarch64_macos": {
"checksum": "abb87cb2ef23b552c62dc463777debb31be4a817ef9366509abb245d346e4410" "checksum": "c4204d6da895b71cb944c446966c92e2273656053dc408d1157bc4c746f068ea"
}, },
"aarch64_windows": { "aarch64_windows": {
"checksum": "50108bd891a0b6a0044f71d11e09e886a3eec44f4163d44f79a3eed049a484c2" "checksum": "9a2d1655be2a718f34299131639704992518174c0f6f7cd70c2c7c815d1eda0e"
} }
} }
} }

View File

@@ -18,10 +18,38 @@
} }
}, },
"latest": { "latest": {
"version": "0.13.7" "version": "0.13.9"
}, },
"0.13": { "0.13": {
"version": "0.13.7" "version": "0.13.9"
},
"0.13.9": {
"x86_64_linux_musl": {
"checksum": "77f6b3feab12afc82638cd4c6197c983d249d1afa4180a6b9c933efbf8bff427"
},
"x86_64_macos": {
"checksum": "7b790f7e15dc6bb79dc0a737310f62fc7a4653749e40ec4fa7419ee627a014ed"
},
"x86_64_windows": {
"checksum": "6f6a69d1dbabf98a1d826dd2dbc0bbfd378336ec891b3e7fd8c570744ea6efa3"
},
"aarch64_macos": {
"checksum": "7d4cc49030262296c96076519deefc740e70fbc338ccd9179d4bc9d3be373512"
}
},
"0.13.8": {
"x86_64_linux_musl": {
"checksum": "95b2b7eacc1e93b918969e8d9f25dad49ce079511401308b548f5fceeafeb896"
},
"x86_64_macos": {
"checksum": "950f36ddbb08c0686305f97196b450a99efd3bbea3553746b4f1b9942a5ab2b7"
},
"x86_64_windows": {
"checksum": "5cae60df4ab5a9c949a59f56cf101562b7a962fb2750b5e6aeb47e0d8799e962"
},
"aarch64_macos": {
"checksum": "6eeedd852be234c5b27359e7ce6c7da665511afb5d643c7ce8db660e08ca7bc1"
}
}, },
"0.13.7": { "0.13.7": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -17,10 +17,129 @@
} }
}, },
"latest": { "latest": {
"version": "0.5.12" "version": "0.5.19"
}, },
"0.5": { "0.5": {
"version": "0.5.12" "version": "0.5.19"
},
"0.5.19": {
"x86_64_linux_musl": {
"checksum": "79129f4adf9b9dd239a7facd041630a6b29c123a3e0ccabfbce44c71d391fc17"
},
"x86_64_macos": {
"checksum": "ab5400be7319b519350e535a71e210197c2597d416beca2c839676f2a28804ae"
},
"x86_64_windows": {
"checksum": "88f7dc8155d9166f512e1ca2d3dc986a987c7bb145f43836dee0246eaea1db9e"
},
"aarch64_linux_musl": {
"checksum": "6e5f19e65646b2625bb820d00065081d62bd19f6d483054b1b43a152678f13a6"
},
"aarch64_macos": {
"checksum": "fb8aeeb7af828ab0b49462cee13d60f1d7c69d55226ec0fc11c3082004a08513"
}
},
"0.5.18": {
"x86_64_linux_musl": {
"checksum": "eb5db22d1c4e67913d983145fd8473edad8f84b60b08398b634b275ccf1ae324"
},
"x86_64_macos": {
"checksum": "05621b99740a9499ee5336cec4fff63ea69aa5a731e29574b71d7c54baa849f4"
},
"x86_64_windows": {
"checksum": "d0330a9c9a03c8fa49e755d6ae5a62c4a6faabaca9cecb343f4b3de8ed2b6e8e"
},
"aarch64_linux_musl": {
"checksum": "c63c77048047aa14f43bb5d266e5eceacc510c551fb17c8968b2f8887516bee5"
},
"aarch64_macos": {
"checksum": "d766e832e4b01808b0359a0241c14141be010ec2b0e79e19d5e05c0746969c8e"
}
},
"0.5.17": {
"x86_64_linux_musl": {
"checksum": "20b563871c1ac1a83ae5683dc97fa0a1bf15ca16407b3daf751dbf652ecbea95"
},
"x86_64_macos": {
"checksum": "1f089884ad5c367015971166b8f752717eb70980241ce0125da86f4044547939"
},
"x86_64_windows": {
"checksum": "94b7122c70a53072a6d4c51040cf0093207d40151a21a28b12040e8a21bd925f"
},
"aarch64_linux_musl": {
"checksum": "83ce55e7df193d86e491e5f911a63e4123e9fe182bfd89eed273d3753208190d"
},
"aarch64_macos": {
"checksum": "cb5d1f1c700a7e1069898714e82005417a07d5455ca93fc3278cd0e5340338e5"
}
},
"0.5.16": {
"x86_64_linux_musl": {
"checksum": "d7759f9d465907f4a8fa24f10bfa0817863f62c412ffaae7b8dadab370201f9b"
},
"x86_64_macos": {
"checksum": "67f720d403569e7fa69ed2ed74c90d06658dc713c0f1f60088f12af267db5c6b"
},
"x86_64_windows": {
"checksum": "d19af20d0e4688f2557024fe84c6eeaddf3e7abcb9fb45304a9d042dd155d1bd"
},
"aarch64_linux_musl": {
"checksum": "f1055016db604f346d351d16fdb3ae43d7ab7ebc31e4463b836daa990b17c78f"
},
"aarch64_macos": {
"checksum": "db2780cf7af86b50ae011f49c4a91f2da58115ff47835a96dca134de2bd60c7e"
}
},
"0.5.15": {
"x86_64_linux_musl": {
"checksum": "407b0ddf85e6a39dfe5379761fc1074c7e79f7b518c732072bda1e4fc854d0fb"
},
"x86_64_macos": {
"checksum": "71c6d3010f8d08ab45b23e3459a751d4f8afeaa96f1537815f3cc9f96c4cbef6"
},
"x86_64_windows": {
"checksum": "8de32cdcb14a4ca1fabe5dae76761bfa73890fa070e935a4628f0ca8ac050759"
},
"aarch64_linux_musl": {
"checksum": "93cae63fb000fbe327a0f5e8caf6507f9d6c9fdf6775c248968ad977411d8f51"
},
"aarch64_macos": {
"checksum": "6286e6e73bf505c67b23d47591f6f05e5f5feba809442a6a66d1b7ec3fc8a93b"
}
},
"0.5.14": {
"x86_64_linux_musl": {
"checksum": "688e56f78611f7866842f5b86e27672225b28c8a536c75d6c0a3fd67082474ea"
},
"x86_64_macos": {
"checksum": "8d4a93175d5ba0710a46ccab007444cea4c53406b4c0b6c6ae6916d1192ac333"
},
"x86_64_windows": {
"checksum": "5773b119db63bbbcb975ecd3e0c71ae548506d85312248d6d3e94758cf88bba6"
},
"aarch64_linux_musl": {
"checksum": "61b22ff22d95ca6af9c668c780fe2a23a519a44d1fab3de01adadfbb36cea54d"
},
"aarch64_macos": {
"checksum": "f98c5d4bc2f7b67328a82028bb78f0a67436ae81a4e2a7911fd4f18f572c434b"
}
},
"0.5.13": {
"x86_64_linux_musl": {
"checksum": "e57875cba95527149d15d7f9c66b9d624d8154040f19aedbca96e2c6b7687ffb"
},
"x86_64_macos": {
"checksum": "f694bcaf714f352b76182b0aeec9626ca5280ceca275f949caa762a561030350"
},
"x86_64_windows": {
"checksum": "642046071c3c221748a3a6a08b5c7d71d7644928d4d7707fa30b38da8357f074"
},
"aarch64_linux_musl": {
"checksum": "d9173b2aae99f29276cd7d84ffdea9eb29f8831acd3f9d9de1c2af4366d917df"
},
"aarch64_macos": {
"checksum": "b9bb4d03065c4d7e52ed4148d71d36a4c890dee37108addfa9ba19771e46fa1d"
}
}, },
"0.5.12": { "0.5.12": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -20,10 +20,30 @@
} }
}, },
"latest": { "latest": {
"version": "0.1.11" "version": "0.1.12"
}, },
"0.1": { "0.1": {
"version": "0.1.11" "version": "0.1.12"
},
"0.1.12": {
"x86_64_linux_musl": {
"checksum": "14d33bd273110fc3a4ebc96eab922442e2663f1c8d8da746d66a917fa2957297"
},
"x86_64_macos": {
"checksum": "d4a71d3e58f0d0a998f35a034120e831498a36601a02b940c7999030decb43be"
},
"x86_64_windows": {
"checksum": "ab17ab06b5f211611e88d17e4b28ff19076c5b9a6d351fd7f0d20a071f3a1d03"
},
"aarch64_linux_musl": {
"checksum": "f7aa0d7909f9b828446c9d5f2a0db0ff27df7c167f110609d665b4d70d8a1a8b"
},
"aarch64_macos": {
"checksum": "1f23174e8a4522799999bac4564d780b7d4893d9f5aa2472b71782e826e3acbd"
},
"aarch64_windows": {
"checksum": "62267707abf30cacd086bfa035de527d5227682288c9e2176e03de925bae9dd3"
}
}, },
"0.1.11": { "0.1.11": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -17,10 +17,27 @@
} }
}, },
"latest": { "latest": {
"version": "0.25.1" "version": "0.25.2"
}, },
"0.25": { "0.25": {
"version": "0.25.1" "version": "0.25.2"
},
"0.25.2": {
"x86_64_linux_musl": {
"checksum": "89f0f28baa818f445336da35c204206544b5e1160892ca0d5f50fe034abff771"
},
"x86_64_macos": {
"checksum": "fac48ad01a87435b35a0d04dbb5452929c72e3e28633ab0fb5740a50d113bf64"
},
"x86_64_windows": {
"checksum": "36cf0c7fcf1c1d589720e7409673535e46d734f9abf89ff179c964dbf24f56cc"
},
"aarch64_linux_musl": {
"checksum": "2600c6a6e8f6cdaf374fa492284ade31c4582f40f9c5ede1f726b743e144f9b6"
},
"aarch64_macos": {
"checksum": "3f615f38c18c32d10fdf85b73e5c5ee05c0308566d00d0b117c10175f659c504"
}
}, },
"0.25.1": { "0.25.1": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

41
manifests/dprint.json generated
View File

@@ -20,10 +20,47 @@
} }
}, },
"latest": { "latest": {
"version": "0.35.3" "version": "0.36.0"
},
"0.36": {
"version": "0.36.0"
},
"0.36.0": {
"x86_64_linux_musl": {
"checksum": "fd5dfb6f63389413984166c05754274d2ac9685f2a54e80619b016d7f527ea17"
},
"x86_64_macos": {
"checksum": "c55f6410fb879e2fad53ee9599172c40ee9446c5e69c04abc123b3d8346e63e2"
},
"x86_64_windows": {
"checksum": "beb17dc24c4e847334f7b4d06400e4de5d7931827f64ea43c1eb2c08f3cb9410"
},
"aarch64_linux_gnu": {
"checksum": "eda55e333246c6c22dcf624f1e8d38fa154ca460e705dd3f819449ba369fef5d"
},
"aarch64_macos": {
"checksum": "9220f02afcf6c016156695d9cdf9914e47bab8e8a29678d39f27387080940be7"
}
}, },
"0.35": { "0.35": {
"version": "0.35.3" "version": "0.35.4"
},
"0.35.4": {
"x86_64_linux_musl": {
"checksum": "a061268da99878970993d988b42de6324aea4cdce437fc1ca46ec51add4162dd"
},
"x86_64_macos": {
"checksum": "179234c542ffc1f26e2dffc62884809d1fd0e781b49f95b938410b1b6450c20c"
},
"x86_64_windows": {
"checksum": "50ac0366c5c20ace37fa2bef11f8826a5f68c1a28412b7751d89e38d7ce6c709"
},
"aarch64_linux_gnu": {
"checksum": "1a810a4c28934b6e281686ae53fe0e1eba973caec245df8004d4452ffc61d306"
},
"aarch64_macos": {
"checksum": "be2a5b698a0a4837a76a7626288a16e1c1f4153463f630845f9def43057f79e2"
}
}, },
"0.35.3": { "0.35.3": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

55
manifests/grcov.json generated
View File

@@ -17,10 +17,61 @@
} }
}, },
"latest": { "latest": {
"version": "0.8.13" "version": "0.8.18"
}, },
"0.8": { "0.8": {
"version": "0.8.13" "version": "0.8.18"
},
"0.8.18": {
"x86_64_linux_musl": {
"checksum": "43b1b44a79b2fec04a4057ccaf199a1b015e02200d44c8c1a4eff4f2b2edfa87"
},
"x86_64_macos": {
"checksum": "b5fccffcde800c1bbaec94229b80fc678ad10420d9769b25a447f1c7c5bec573"
},
"x86_64_windows": {
"checksum": "1ae5759da07ffef41e5b2f9930a70e312c5e4bf8a64fe3a67b05c095601ad879"
},
"aarch64_linux_musl": {
"checksum": "272a869894d321554b8959ea8d9f90277dee8fe79ebc6da5349d047fccf86b36"
},
"aarch64_macos": {
"checksum": "a4b21dc5cc6ecd0ae0cf8016787b1d1b3e59a37d81d685bde45025f98a9a0ca2"
}
},
"0.8.16": {
"x86_64_linux_musl": {
"checksum": "c414d6c72c693c103a99ac33eb759fe870c2ebc90486853ce2d72e94f0392853"
},
"x86_64_macos": {
"checksum": "9b6725d2087a0f3e6b65395c2ce5e189e4d54b26b9d28a6a01ad878df56bd29a"
},
"x86_64_windows": {
"checksum": "e4e77816f6ce8c6a09b03f7bf853fd788a084e868ae23cd1e297831b388ce84c"
},
"aarch64_linux_musl": {
"checksum": "4f219438e490665c117d49f23ddd41990bbb423e89e03b59c0e3356df2a47196"
},
"aarch64_macos": {
"checksum": "5323fafa4714753eefcbed052971914dcc58cd9f3a4dfc53e5756518acba47ff"
}
},
"0.8.15": {
"x86_64_linux_musl": {
"checksum": "b4e369090a105aa264c287c1ced52d7cc04ec964179bd8affe05bcb762e75ea4"
},
"x86_64_macos": {
"checksum": "5f4dded36e2a7258f938fa9e6fdde9c887bbde9ba226dca46701a1bcfca1ab83"
},
"x86_64_windows": {
"checksum": "35d9add293fe2a573023dfc1a7c6fe8005ab52dea3f96805f80696851a299e7f"
},
"aarch64_linux_musl": {
"checksum": "6dca525df8411f456833cfe244eb657c523960140b745fa046aa22909da5d462"
},
"aarch64_macos": {
"checksum": "0ef477a66f7f74ce5810327923a1c6b73d9924d5dfb6dc2ba8c927cd2ceb039d"
}
}, },
"0.8.13": { "0.8.13": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

28
manifests/protoc.json generated
View File

@@ -1,13 +1,35 @@
{ {
"template": null, "template": null,
"latest": { "latest": {
"version": "3.22.2" "version": "3.22.3"
}, },
"3": { "3": {
"version": "3.22.2" "version": "3.22.3"
}, },
"3.22": { "3.22": {
"version": "3.22.2" "version": "3.22.3"
},
"3.22.3": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.3/protoc-22.3-linux-x86_64.zip",
"checksum": "0f8070d762eb8a2f5a13a47713a553f989f9d9b556e7e3ebfa2bd6464e2ecaeb"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.3/protoc-22.3-osx-x86_64.zip",
"checksum": "d644a65064a97fa3ed033a4a2314ab35816abbd9aed052f9b1b3374d2deaaae4"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.3/protoc-22.3-win64.zip",
"checksum": "fa7fe21bf6e204a4e1eec3ffee1d53c84e216289bc4762e072258e5bca113a3c"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.3/protoc-22.3-linux-aarch_64.zip",
"checksum": "c6068d9d151c39723bc7db920759b55737a770b0c2ec544dd0197d4078d7a956"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.3/protoc-22.3-osx-aarch_64.zip",
"checksum": "79cc15d1b528061ea0a818b0abcf3be1e0bdcb063a0cc999af27974cccdc5cce"
}
}, },
"3.22.2": { "3.22.2": {
"x86_64_linux_gnu": { "x86_64_linux_gnu": {

1125
manifests/wasmtime.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,23 +4,23 @@
"platform": { "platform": {
"x86_64_linux_gnu": { "x86_64_linux_gnu": {
"asset_name": "${package}-v${version}-x86_64-linux.tar.xz", "asset_name": "${package}-v${version}-x86_64-linux.tar.xz",
"bin": "${package}-v${version}-x86_64-linux/${package}${exe}" "bin": "./${package}-v${version}-x86_64-linux/${package}${exe}"
}, },
"x86_64_macos": { "x86_64_macos": {
"asset_name": "${package}-v${version}-x86_64-macos.tar.xz", "asset_name": "${package}-v${version}-x86_64-macos.tar.xz",
"bin": "${package}-v${version}-x86_64-macos/${package}${exe}" "bin": "./${package}-v${version}-x86_64-macos/${package}${exe}"
}, },
"x86_64_windows": { "x86_64_windows": {
"asset_name": "${package}-v${version}-x86_64-windows.zip", "asset_name": "${package}-v${version}-x86_64-windows.zip",
"bin": "${package}-v${version}-x86_64-windows/${package}${exe}" "bin": "./${package}-v${version}-x86_64-windows/${package}${exe}"
}, },
"aarch64_linux_gnu": { "aarch64_linux_gnu": {
"asset_name": "${package}-v${version}-aarch64-linux.tar.xz", "asset_name": "${package}-v${version}-aarch64-linux.tar.xz",
"bin": "${package}-v${version}-aarch64-linux/${package}${exe}" "bin": "./${package}-v${version}-aarch64-linux/${package}${exe}"
}, },
"aarch64_macos": { "aarch64_macos": {
"asset_name": "${package}-v${version}-aarch64-macos.tar.xz", "asset_name": "${package}-v${version}-aarch64-macos.tar.xz",
"bin": "${package}-v${version}-aarch64-macos/${package}${exe}" "bin": "./${package}-v${version}-aarch64-macos/${package}${exe}"
} }
} }
} }

View File

@@ -14,14 +14,6 @@ trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
# Note: This script requires the following tools: # Note: This script requires the following tools:
# - parse-changelog <https://github.com/taiki-e/parse-changelog> # - parse-changelog <https://github.com/taiki-e/parse-changelog>
x() {
local cmd="$1"
shift
(
set -x
"${cmd}" "$@"
)
}
bail() { bail() {
echo >&2 "error: $*" echo >&2 "error: $*"
exit 1 exit 1
@@ -48,7 +40,6 @@ 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 fi
# Make sure that the release was created from an allowed branch.
if ! git branch | grep -q '\* main$'; then if ! git branch | grep -q '\* main$'; then
bail "current branch is not 'main'" bail "current branch is not 'main'"
fi fi
@@ -97,11 +88,57 @@ echo "======================================="
if [[ -n "${tags}" ]]; then if [[ -n "${tags}" ]]; then
# Create a release commit. # Create a release commit.
x git add "${changelog}" git add "${changelog}"
x git commit -m "Release ${version}" git commit -m "Release ${version}"
fi fi
x git tag "${tag}" tools=()
# TODO: the following still assumes admin permissions for tool in tools/codegen/base/*.json; do
x git push origin main tools+=("$(basename "${tool%.*}")")
x git push origin --tags done
# Aliases
tools+=(nextest)
# Not manifest-base
tools+=(valgrind)
(
set -x
git tag "${tag}"
git push origin main
git push origin --tags
major_version_tag="v${version%%.*}"
git checkout -b "${major_version_tag}"
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}"
git push --delete origin refs/tags/"${major_version_tag}"
fi
git tag "${major_version_tag}"
git checkout main
git branch -d "${major_version_tag}"
)
for tool in "${tools[@]}"; do
(
set -x
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}"
git push origin -f refs/heads/"${tool}"
if git --no-pager tag | grep -Eq "^${tool}$"; then
git tag -d "${tool}"
git push --delete origin refs/tags/"${tool}"
fi
git tag "${tool}"
git checkout main
git branch -D "${tool}"
)
done
set -x
git push origin --tags

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
# shellcheck disable=SC2046 # shellcheck disable=SC2046
set -euo pipefail set -euo pipefail
IFS=$'\n\t' IFS=$'\n\t'
@@ -33,6 +34,9 @@ check_diff() {
fi fi
fi fi
} }
info() {
echo >&2 "info: $*"
}
warn() { warn() {
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
echo "::warning::$*" echo "::warning::$*"
@@ -60,6 +64,7 @@ fi
# Rust (if exists) # Rust (if exists)
if [[ -n "$(git ls-files '*.rs')" ]]; then if [[ -n "$(git ls-files '*.rs')" ]]; then
info "checking Rust code style"
if type -P rustup &>/dev/null; then if type -P rustup &>/dev/null; then
# `cargo fmt` cannot recognize files not included in the current workspace and modules # `cargo fmt` cannot recognize files not included in the current workspace and modules
# defined inside macros, so run rustfmt directly. # defined inside macros, so run rustfmt directly.
@@ -83,10 +88,35 @@ if [[ -n "$(git ls-files '*.rs')" ]]; then
error "please replace \`.cast()\` with \`.cast::<type_name>()\`:" error "please replace \`.cast()\` with \`.cast::<type_name>()\`:"
echo "${cast_without_turbofish}" echo "${cast_without_turbofish}"
fi fi
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
fi fi
# C/C++ (if exists) # C/C++ (if exists)
if [[ -n "$(git ls-files '*.c')$(git ls-files '*.cpp')" ]]; then if [[ -n "$(git ls-files '*.c')$(git ls-files '*.cpp')" ]]; then
info "checking C/C++ code style"
if [[ ! -e .clang-format ]]; then if [[ ! -e .clang-format ]]; then
warn "could not fount .clang-format in the repository root" warn "could not fount .clang-format in the repository root"
fi fi
@@ -101,6 +131,7 @@ fi
# YAML/JavaScript/JSON (if exists) # YAML/JavaScript/JSON (if exists)
if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')" ]]; then if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')" ]]; then
info "checking YAML/JavaScript/JSON code style"
if type -P npm &>/dev/null; then if type -P npm &>/dev/null; then
echo "+ npx prettier -l -w \$(git ls-files '*.yml') \$(git ls-files '*.js') \$(git ls-files '*.json')" echo "+ npx prettier -l -w \$(git ls-files '*.yml') \$(git ls-files '*.js') \$(git ls-files '*.json')"
npx prettier -l -w $(git ls-files '*.yml') $(git ls-files '*.js') $(git ls-files '*.json') npx prettier -l -w $(git ls-files '*.yml') $(git ls-files '*.js') $(git ls-files '*.json')
@@ -110,6 +141,7 @@ if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')"
fi fi
# Check GitHub workflows. # Check GitHub workflows.
if [[ -d .github/workflows ]]; then if [[ -d .github/workflows ]]; then
info "checking GitHub workflows"
if type -P jq &>/dev/null && type -P yq &>/dev/null; then if type -P jq &>/dev/null && type -P yq &>/dev/null; then
for workflow in .github/workflows/*.yml; do for workflow in .github/workflows/*.yml; do
# The top-level permissions must be weak as they are referenced by all jobs. # The top-level permissions must be weak as they are referenced by all jobs.
@@ -145,6 +177,7 @@ if [[ -n "$(git ls-files '*.yaml')" ]]; then
fi fi
# Shell scripts # Shell scripts
info "checking Shell scripts"
if type -P shfmt &>/dev/null; then if type -P shfmt &>/dev/null; then
echo "+ shfmt -l -w \$(git ls-files '*.sh')" echo "+ shfmt -l -w \$(git ls-files '*.sh')"
shfmt -l -w $(git ls-files '*.sh') shfmt -l -w $(git ls-files '*.sh')
@@ -170,8 +203,11 @@ fi
# Spell check (if config exists) # Spell check (if config exists)
if [[ -f .cspell.json ]]; then if [[ -f .cspell.json ]]; then
info "spell checking"
if type -P npm &>/dev/null; then if type -P npm &>/dev/null; then
has_rust=''
if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then
has_rust='1'
dependencies='' dependencies=''
for manifest_path in $(git ls-files '*Cargo.toml'); do for manifest_path in $(git ls-files '*Cargo.toml'); do
if [[ "${manifest_path}" != "Cargo.toml" ]] && ! grep -Eq '\[workspace\]' "${manifest_path}"; then if [[ "${manifest_path}" != "Cargo.toml" ]] && ! grep -Eq '\[workspace\]' "${manifest_path}"; then
@@ -179,24 +215,27 @@ if [[ -f .cspell.json ]]; then
fi fi
metadata=$(cargo metadata --format-version=1 --all-features --no-deps --manifest-path "${manifest_path}") metadata=$(cargo metadata --format-version=1 --all-features --no-deps --manifest-path "${manifest_path}")
for id in $(jq <<<"${metadata}" '.workspace_members[]'); do for id in $(jq <<<"${metadata}" '.workspace_members[]'); do
dependencies+=$'\n' dependencies+="$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')"$'\n'
dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')
done done
done done
# shellcheck disable=SC2001 # shellcheck disable=SC2001
dependencies=$(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u) dependencies=$(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u)
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))')
echo "${config_new}" >.cspell.json
words=$(npx <<<"${dependencies}" cspell stdin --no-progress --no-summary --words-only --unique || true)
echo "${config_old}" >.cspell.json
fi 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))')
echo "${config_new}" >.cspell.json
if [[ -n "${has_rust}" ]]; then
dependencies_words=$(npx <<<"${dependencies}" cspell stdin --no-progress --no-summary --words-only --unique || true)
fi
all_words=$(npx cspell --no-progress --no-summary --words-only --unique $(git ls-files | (grep -v '\.github/\.cspell/project-dictionary\.txt' || true)) || true)
# TODO: handle SIGINT
echo "${config_old}" >.cspell.json
cat >.github/.cspell/rust-dependencies.txt <<EOF cat >.github/.cspell/rust-dependencies.txt <<EOF
// This file is @generated by $(basename "$0"). // This file is @generated by $(basename "$0").
// It is not intended for manual editing. // It is not intended for manual editing.
EOF EOF
if [[ -n "${words:-}" ]]; then if [[ -n "${dependencies_words:-}" ]]; then
echo $'\n'"${words}" >>.github/.cspell/rust-dependencies.txt echo $'\n'"${dependencies_words}" >>.github/.cspell/rust-dependencies.txt
fi fi
check_diff .github/.cspell/rust-dependencies.txt check_diff .github/.cspell/rust-dependencies.txt
if ! grep -Eq "^\.github/\.cspell/rust-dependencies.txt linguist-generated" .gitattributes; then if ! grep -Eq "^\.github/\.cspell/rust-dependencies.txt linguist-generated" .gitattributes; then
@@ -204,8 +243,11 @@ EOF
fi fi
echo "+ npx cspell --no-progress --no-summary \$(git ls-files)" echo "+ npx cspell --no-progress --no-summary \$(git ls-files)"
npx cspell --no-progress --no-summary $(git ls-files) if ! npx cspell --no-progress --no-summary $(git ls-files); then
error "spellcheck failed: please fix uses of above words or add to .github/.cspell/project-dictionary.txt if correct"
fi
# Make sure the project-specific dictionary does not contain duplicated words.
for dictionary in .github/.cspell/*.txt; do for dictionary in .github/.cspell/*.txt; do
if [[ "${dictionary}" == .github/.cspell/project-dictionary.txt ]]; then if [[ "${dictionary}" == .github/.cspell/project-dictionary.txt ]]; then
continue continue
@@ -218,6 +260,20 @@ EOF
echo "=======================================" echo "======================================="
fi fi
done done
# Make sure the project-specific dictionary does not contain unused words.
unused=''
for word in $(grep -v '//.*' .github/.cspell/project-dictionary.txt || true); do
if ! grep <<<"${all_words}" -Eq -i "^${word}$"; then
unused+="${word}"$'\n'
fi
done
if [[ -n "${unused}" ]]; then
error "unused words in dictionaries; please remove the following words from .github/.cspell/project-dictionary.txt"
echo "======================================="
echo -n "${unused}"
echo "======================================="
fi
else else
warn "'npm' is not installed" warn "'npm' is not installed"
fi fi