mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-27 17:40:28 +00:00
Compare commits
1 Commits
v2.6.18
...
release-gu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7379c13bb |
@@ -26,7 +26,7 @@
|
||||
],
|
||||
"ignoreRegExpList": [
|
||||
// Copyright notice
|
||||
"Copyright .*",
|
||||
"Copyright ((\\(c\\)|\\(C\\)|©) )?.*",
|
||||
// GHA actions/workflows
|
||||
"uses: .+@",
|
||||
// GHA context (repo name, owner name, etc.)
|
||||
@@ -35,8 +35,6 @@
|
||||
"( |\\[)@[\\w_-]+",
|
||||
// Git config username
|
||||
"git config user.name .*",
|
||||
// Username in todo comment
|
||||
"(TODO|FIXME)\\([\\w_., -]+\\)",
|
||||
// Cargo.toml authors
|
||||
"authors *= *\\[.*\\]",
|
||||
"\".* <[\\w_.+-]+@[\\w.-]+>\""
|
||||
|
||||
15
.github/.cspell/organization-dictionary.txt
vendored
15
.github/.cspell/organization-dictionary.txt
vendored
@@ -29,7 +29,6 @@ Zmiri
|
||||
|
||||
// Rust target triple
|
||||
aarch
|
||||
amdgpu
|
||||
androideabi
|
||||
armeb
|
||||
armebv
|
||||
@@ -62,12 +61,10 @@ musleabi
|
||||
musleabihf
|
||||
newlibeabihf
|
||||
nvptx
|
||||
ohos
|
||||
openwrt
|
||||
riscv
|
||||
softfloat
|
||||
sparcv
|
||||
spirv
|
||||
thumbeb
|
||||
thumbebv
|
||||
thumbv
|
||||
@@ -88,23 +85,19 @@ acqrel
|
||||
alloc
|
||||
bools
|
||||
builtins
|
||||
bytecount
|
||||
canonicalize
|
||||
concat
|
||||
consts
|
||||
ctypes
|
||||
dealloc
|
||||
deque
|
||||
docsrs
|
||||
doctest
|
||||
doctests
|
||||
hasher
|
||||
impls
|
||||
inlateout
|
||||
intrinsics
|
||||
lateout
|
||||
mclass
|
||||
memcpy
|
||||
msrv
|
||||
nand
|
||||
nomem
|
||||
@@ -117,7 +110,6 @@ rclass
|
||||
repr
|
||||
rfind
|
||||
rfold
|
||||
rposition
|
||||
rsplit
|
||||
rustlib
|
||||
seqcst
|
||||
@@ -132,17 +124,12 @@ unsized
|
||||
upcastable
|
||||
|
||||
// Other
|
||||
armel
|
||||
armhf
|
||||
binutils
|
||||
connrefused
|
||||
cygwin
|
||||
dpkg
|
||||
elif
|
||||
endianness
|
||||
esac
|
||||
euxo
|
||||
gsub
|
||||
msys
|
||||
noninteractive
|
||||
noprofile
|
||||
@@ -152,9 +139,7 @@ objdump
|
||||
pipefail
|
||||
powerset
|
||||
proto
|
||||
ranlib
|
||||
readelf
|
||||
shellcheckrc
|
||||
SIGABRT
|
||||
SIGILL
|
||||
SIGINT
|
||||
|
||||
7
.github/.cspell/project-dictionary.txt
vendored
7
.github/.cspell/project-dictionary.txt
vendored
@@ -1,4 +1,5 @@
|
||||
binstall
|
||||
bytecodealliance
|
||||
coreutils
|
||||
distro
|
||||
doas
|
||||
@@ -6,15 +7,21 @@ dprint
|
||||
enablerepo
|
||||
epel
|
||||
grcov
|
||||
jfrimmel
|
||||
koalaman
|
||||
libc
|
||||
linkcheck
|
||||
mdbook
|
||||
microdnf
|
||||
mvdan
|
||||
nextest
|
||||
protobuf
|
||||
protoc
|
||||
protocolbuffers
|
||||
pwsh
|
||||
quickinstall
|
||||
rockylinux
|
||||
rustwasm
|
||||
shellcheck
|
||||
shfmt
|
||||
udeps
|
||||
|
||||
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
@@ -29,3 +29,4 @@ jobs:
|
||||
title: $version
|
||||
branch: 'main|v[0-9]+'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: ci/publish.sh
|
||||
|
||||
69
CHANGELOG.md
69
CHANGELOG.md
@@ -10,60 +10,6 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [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
|
||||
|
||||
- Update `cargo-llvm-cov@latest` to 0.5.12.
|
||||
|
||||
## [2.6.5] - 2023-03-25
|
||||
|
||||
- Update `cargo-binstall@latest` to 0.22.0.
|
||||
@@ -753,20 +699,7 @@ Note: This release is considered a breaking change because installing on version
|
||||
|
||||
Initial release
|
||||
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.6.18...HEAD
|
||||
[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
|
||||
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.6.5...HEAD
|
||||
[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.3]: https://github.com/taiki-e/install-action/compare/v2.6.2...v2.6.3
|
||||
|
||||
@@ -17,3 +17,31 @@ See JSON files in `tools/codegen/base` directory for examples of the manifest.
|
||||
3\. Add tool name to test matrix in `.github/workflows/ci.yml`.
|
||||
|
||||
4\. Add tool name to table in "Supported tools" section in `README.md`.
|
||||
|
||||
## Release new version
|
||||
|
||||
Note: This is a guide for maintainers.
|
||||
|
||||
### Minor version vs patch version
|
||||
|
||||
Increase the patch version if only the following changes are included.
|
||||
|
||||
- Update the `@latest` version of the tool.
|
||||
|
||||
Rationale: Normally, tool versions are controlled by the `@<version>` syntax, which is explicitly separated from the versioning of the install-action itself.
|
||||
|
||||
Exception: If the major or minor version of the `cargo-binstall` is updated, the minor version should be increased because the behavior of the fallback may change slightly.
|
||||
|
||||
- Fix regressions or minor bugs.
|
||||
|
||||
Rationale: Semantic Versioning.
|
||||
|
||||
- Improve documentation or diagnostics.
|
||||
|
||||
Rationale: Semantic Versioning.
|
||||
|
||||
Increase the minor version otherwise.
|
||||
|
||||
### Release instructions
|
||||
|
||||
TODO: current release script assumes admin permissions
|
||||
|
||||
@@ -3,6 +3,15 @@ set -euxo pipefail
|
||||
IFS=$'\n\t'
|
||||
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.email "te316e89@gmail.com"
|
||||
|
||||
|
||||
74
ci/publish.sh
Executable file
74
ci/publish.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/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
|
||||
32
manifests/cargo-deny.json
generated
32
manifests/cargo-deny.json
generated
@@ -18,38 +18,10 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.13.9"
|
||||
"version": "0.13.7"
|
||||
},
|
||||
"0.13": {
|
||||
"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"
|
||||
}
|
||||
"version": "0.13.7"
|
||||
},
|
||||
"0.13.7": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
106
manifests/cargo-llvm-cov.json
generated
106
manifests/cargo-llvm-cov.json
generated
@@ -17,112 +17,10 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.5.17"
|
||||
"version": "0.5.11"
|
||||
},
|
||||
"0.5": {
|
||||
"version": "0.5.17"
|
||||
},
|
||||
"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": {
|
||||
"x86_64_linux_musl": {
|
||||
"checksum": "998b1d9e630295459743fe7051a7e3d04e82836456171493eb5983dde710b07e"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "77faedad91c300b51d2d40040a6c61903a555da319047983ec56c81598cbea9b"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "5d0d3df674a431272f75e77dd2c07fdbc5ee83ade11c0839bbd0fdae35480351"
|
||||
},
|
||||
"aarch64_linux_musl": {
|
||||
"checksum": "87c54166055d2d486620ceb27440442d34d71b364fdd6f6da57a210ae5f75e33"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "05c8f8e2210a3218b167dce33477785a0bc0c718fac7b15d2f4a428791234f03"
|
||||
}
|
||||
"version": "0.5.11"
|
||||
},
|
||||
"0.5.11": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
24
manifests/cargo-minimal-versions.json
generated
24
manifests/cargo-minimal-versions.json
generated
@@ -20,30 +20,10 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.1.12"
|
||||
"version": "0.1.11"
|
||||
},
|
||||
"0.1": {
|
||||
"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"
|
||||
}
|
||||
"version": "0.1.11"
|
||||
},
|
||||
"0.1.11": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
21
manifests/cargo-tarpaulin.json
generated
21
manifests/cargo-tarpaulin.json
generated
@@ -17,27 +17,10 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "0.25.2"
|
||||
"version": "0.25.1"
|
||||
},
|
||||
"0.25": {
|
||||
"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"
|
||||
}
|
||||
"version": "0.25.1"
|
||||
},
|
||||
"0.25.1": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
41
manifests/dprint.json
generated
41
manifests/dprint.json
generated
@@ -20,47 +20,10 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"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"
|
||||
}
|
||||
"version": "0.35.3"
|
||||
},
|
||||
"0.35": {
|
||||
"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"
|
||||
}
|
||||
"version": "0.35.3"
|
||||
},
|
||||
"0.35.3": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
28
manifests/protoc.json
generated
28
manifests/protoc.json
generated
@@ -1,35 +1,13 @@
|
||||
{
|
||||
"template": null,
|
||||
"latest": {
|
||||
"version": "3.22.3"
|
||||
"version": "3.22.2"
|
||||
},
|
||||
"3": {
|
||||
"version": "3.22.3"
|
||||
"version": "3.22.2"
|
||||
},
|
||||
"3.22": {
|
||||
"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"
|
||||
}
|
||||
"version": "3.22.2"
|
||||
},
|
||||
"3.22.2": {
|
||||
"x86_64_linux_gnu": {
|
||||
|
||||
25
manifests/wasmtime.json
generated
25
manifests/wasmtime.json
generated
@@ -22,30 +22,7 @@
|
||||
}
|
||||
},
|
||||
"latest": {
|
||||
"version": "8.0.0"
|
||||
},
|
||||
"8": {
|
||||
"version": "8.0.0"
|
||||
},
|
||||
"8.0": {
|
||||
"version": "8.0.0"
|
||||
},
|
||||
"8.0.0": {
|
||||
"x86_64_linux_gnu": {
|
||||
"checksum": "0ba34842bbac8896dbdd860173b2c554d93d63ecc490f725fe3331db913714ad"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"checksum": "7748306b9be4d37e76d6df7e2d8b9b84bdcc62d9f3a642d008184075e4f10018"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"checksum": "28171dc028abd209e3d46c6aa5d230f89f0213b756a6e276a98538bbe3d3b9a8"
|
||||
},
|
||||
"aarch64_linux_gnu": {
|
||||
"checksum": "d2025860565caa24d39003b3c65dc9391248caeb7d586b3885ec2cc11a158bab"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"checksum": "8d600ea89e0e7290763a17360daf2afec3a9fbfd774cd343a2b2f730fdcb34e3"
|
||||
}
|
||||
"version": "7.0.0"
|
||||
},
|
||||
"7": {
|
||||
"version": "7.0.0"
|
||||
|
||||
@@ -14,6 +14,14 @@ trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
|
||||
# Note: This script requires the following tools:
|
||||
# - parse-changelog <https://github.com/taiki-e/parse-changelog>
|
||||
|
||||
x() {
|
||||
local cmd="$1"
|
||||
shift
|
||||
(
|
||||
set -x
|
||||
"${cmd}" "$@"
|
||||
)
|
||||
}
|
||||
bail() {
|
||||
echo >&2 "error: $*"
|
||||
exit 1
|
||||
@@ -40,6 +48,7 @@ if gh release view "${tag}" &>/dev/null; then
|
||||
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'"
|
||||
fi
|
||||
@@ -88,57 +97,11 @@ echo "======================================="
|
||||
|
||||
if [[ -n "${tags}" ]]; then
|
||||
# Create a release commit.
|
||||
git add "${changelog}"
|
||||
git commit -m "Release ${version}"
|
||||
x git add "${changelog}"
|
||||
x git commit -m "Release ${version}"
|
||||
fi
|
||||
|
||||
tools=()
|
||||
for tool in tools/codegen/base/*.json; do
|
||||
tools+=("$(basename "${tool%.*}")")
|
||||
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
|
||||
x git tag "${tag}"
|
||||
# TODO: the following still assumes admin permissions
|
||||
x git push origin main
|
||||
x git push origin --tags
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
# shellcheck disable=SC2046
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
@@ -34,9 +33,6 @@ check_diff() {
|
||||
fi
|
||||
fi
|
||||
}
|
||||
info() {
|
||||
echo >&2 "info: $*"
|
||||
}
|
||||
warn() {
|
||||
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
|
||||
echo "::warning::$*"
|
||||
@@ -45,14 +41,6 @@ warn() {
|
||||
fi
|
||||
should_fail=1
|
||||
}
|
||||
error() {
|
||||
if [[ -n "${GITHUB_ACTIONS:-}" ]]; then
|
||||
echo "::error::$*"
|
||||
else
|
||||
echo >&2 "error: $*"
|
||||
fi
|
||||
should_fail=1
|
||||
}
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
cat <<EOF
|
||||
@@ -64,7 +52,6 @@ fi
|
||||
|
||||
# Rust (if exists)
|
||||
if [[ -n "$(git ls-files '*.rs')" ]]; then
|
||||
info "checking Rust code style"
|
||||
if type -P rustup &>/dev/null; then
|
||||
# `cargo fmt` cannot recognize files not included in the current workspace and modules
|
||||
# defined inside macros, so run rustfmt directly.
|
||||
@@ -83,40 +70,10 @@ if [[ -n "$(git ls-files '*.rs')" ]]; then
|
||||
else
|
||||
warn "'rustup' is not installed"
|
||||
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
|
||||
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
|
||||
|
||||
# C/C++ (if exists)
|
||||
if [[ -n "$(git ls-files '*.c')$(git ls-files '*.cpp')" ]]; then
|
||||
info "checking C/C++ code style"
|
||||
if [[ ! -e .clang-format ]]; then
|
||||
warn "could not fount .clang-format in the repository root"
|
||||
fi
|
||||
@@ -131,7 +88,6 @@ fi
|
||||
|
||||
# YAML/JavaScript/JSON (if exists)
|
||||
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
|
||||
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')
|
||||
@@ -141,15 +97,14 @@ if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')"
|
||||
fi
|
||||
# Check GitHub workflows.
|
||||
if [[ -d .github/workflows ]]; then
|
||||
info "checking GitHub workflows"
|
||||
if type -P jq &>/dev/null && type -P yq &>/dev/null; then
|
||||
for workflow in .github/workflows/*.yml; do
|
||||
# The top-level permissions must be weak as they are referenced by all jobs.
|
||||
permissions=$(yq '.permissions' "${workflow}" | jq -c)
|
||||
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" ;;
|
||||
null) warn "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
|
||||
*) warn "${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
|
||||
@@ -162,7 +117,7 @@ if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')"
|
||||
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"
|
||||
warn "${workflow}: please update 'needs' section in 'ci-success' job"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -172,12 +127,11 @@ if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')"
|
||||
fi
|
||||
fi
|
||||
if [[ -n "$(git ls-files '*.yaml')" ]]; then
|
||||
error "please use '.yml' instead of '.yaml' for consistency"
|
||||
warn "please use '.yml' instead of '.yaml' for consistency"
|
||||
git ls-files '*.yaml'
|
||||
fi
|
||||
|
||||
# Shell scripts
|
||||
info "checking Shell scripts"
|
||||
if type -P shfmt &>/dev/null; then
|
||||
echo "+ shfmt -l -w \$(git ls-files '*.sh')"
|
||||
shfmt -l -w $(git ls-files '*.sh')
|
||||
@@ -203,11 +157,8 @@ fi
|
||||
|
||||
# Spell check (if config exists)
|
||||
if [[ -f .cspell.json ]]; then
|
||||
info "spell checking"
|
||||
if type -P npm &>/dev/null; then
|
||||
has_rust=''
|
||||
if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then
|
||||
has_rust='1'
|
||||
dependencies=''
|
||||
for manifest_path in $(git ls-files '*Cargo.toml'); do
|
||||
if [[ "${manifest_path}" != "Cargo.toml" ]] && ! grep -Eq '\[workspace\]' "${manifest_path}"; then
|
||||
@@ -215,27 +166,24 @@ if [[ -f .cspell.json ]]; then
|
||||
fi
|
||||
metadata=$(cargo metadata --format-version=1 --all-features --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'
|
||||
dependencies+=$'\n'
|
||||
dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')
|
||||
done
|
||||
done
|
||||
# shellcheck disable=SC2001
|
||||
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
|
||||
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
|
||||
// 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
|
||||
if [[ -n "${words:-}" ]]; then
|
||||
echo $'\n'"${words}" >>.github/.cspell/rust-dependencies.txt
|
||||
fi
|
||||
check_diff .github/.cspell/rust-dependencies.txt
|
||||
if ! grep -Eq "^\.github/\.cspell/rust-dependencies.txt linguist-generated" .gitattributes; then
|
||||
@@ -243,37 +191,20 @@ EOF
|
||||
fi
|
||||
|
||||
echo "+ 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
|
||||
npx cspell --no-progress --no-summary $(git ls-files)
|
||||
|
||||
# Make sure the project-specific dictionary does not contain duplicated words.
|
||||
for dictionary in .github/.cspell/*.txt; do
|
||||
if [[ "${dictionary}" == .github/.cspell/project-dictionary.txt ]]; then
|
||||
continue
|
||||
fi
|
||||
dup=$(sed '/^$/d' .github/.cspell/project-dictionary.txt "${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 .github/.cspell/project-dictionary.txt"
|
||||
warn "duplicated words in dictionaries; please remove the following words from .github/.cspell/project-dictionary.txt"
|
||||
echo "======================================="
|
||||
echo "${dup}"
|
||||
echo "======================================="
|
||||
fi
|
||||
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
|
||||
warn "'npm' is not installed"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user