Compare commits

..

47 Commits

Author SHA1 Message Date
Taiki Endo
5a1bd41a1f cargo-semver-checks 2026-05-09 20:38:00 +00:00
Taiki Endo
e3134ec54b Release 2.77.3 2026-05-09 20:37:59 +00:00
Taiki Endo
c4a3bf768d ci,tools: Update config and script 2026-05-10 04:37:10 +09:00
Taiki Endo
b50ba4b1ee Update typos@latest to 1.46.1 2026-05-09 18:37:59 +00:00
Taiki Endo
e54e98247f Update rclone@latest to 1.74.1 2026-05-09 18:37:59 +00:00
Taiki Endo
7252c0e784 Update biome manifest 2026-05-09 18:37:59 +00:00
Taiki Endo
096fa7ad26 Update tombi@latest to 0.11.0 2026-05-09 12:37:34 +00:00
Taiki Endo
7fa2b9ecf0 Update mise@latest to 2026.5.3 2026-05-09 12:37:34 +00:00
Taiki Endo
5d079eed66 Update cargo-llvm-cov manifest 2026-05-09 12:37:34 +00:00
Taiki Endo
b2aca6d2fd Update cargo-deny manifest 2026-05-09 12:37:34 +00:00
Taiki Endo
19f93630a3 Update osv-scanner@latest to 2.3.8 2026-05-09 07:04:31 +00:00
Taiki Endo
9f78db9bb1 Update uv manifest 2026-05-09 01:06:08 +00:00
Taiki Endo
35b127d2c2 Update rclone manifest 2026-05-08 18:50:30 +00:00
Taiki Endo
460a9dc53d Update typos manifest 2026-05-08 15:51:18 +00:00
Taiki Endo
e570c92d21 Update mise@latest to 2026.5.2 2026-05-08 15:51:18 +00:00
Taiki Endo
3fa6878dc4 Release 2.77.2 2026-05-08 12:52:25 +00:00
Taiki Endo
ba61d93b17 Update tombi manifest 2026-05-08 12:49:47 +00:00
Taiki Endo
7d5328933b Update osv-scanner manifest 2026-05-08 12:49:47 +00:00
Taiki Endo
d8e028b811 Update mise manifest 2026-05-08 12:49:47 +00:00
Taiki Endo
e5a3fb2f1d Update martin@latest to 1.9.0 2026-05-08 12:49:47 +00:00
Taiki Endo
a6b6526971 Update wasm-bindgen@latest to 0.2.121 2026-05-08 01:03:22 +00:00
Taiki Endo
8a488abe01 Update tombi@latest to 0.10.6 2026-05-08 01:03:22 +00:00
Taiki Endo
38285670d4 Update uv@latest to 0.11.11 2026-05-07 21:38:26 +00:00
Taiki Endo
a5b83ca21f Update mise manifest 2026-05-07 16:00:50 +00:00
Taiki Endo
ad848ff7bb Update tombi@latest to 0.10.5 2026-05-07 10:06:12 +00:00
Taiki Endo
bdad2998db Update wasm-bindgen manifest 2026-05-07 01:04:39 +00:00
Taiki Endo
00a629cdbb Update tombi manifest 2026-05-07 01:04:39 +00:00
Taiki Endo
c2838c6a47 Update uv manifest 2026-05-06 21:42:34 +00:00
Taiki Endo
4ffe9c21e7 Update prek@latest to 0.3.13 2026-05-06 21:42:34 +00:00
Taiki Endo
470df677ec Update mise@latest to 2026.5.1 2026-05-06 21:42:34 +00:00
Taiki Endo
7a552150b1 Update tombi manifest 2026-05-06 10:05:35 +00:00
Taiki Endo
0472ba9f4c Update prek@latest to 0.3.12 2026-05-06 10:05:35 +00:00
Taiki Endo
4b56394baf Update tombi@latest to 0.10.4 2026-05-06 07:16:08 +00:00
Taiki Endo
0c935a690f Update uv manifest 2026-05-05 21:39:54 +00:00
Taiki Endo
53f4d007fe Update mise manifest 2026-05-05 21:39:54 +00:00
Taiki Endo
4c05641ce4 Update prek manifest 2026-05-05 18:51:54 +00:00
Taiki Endo
8278f6dee2 Add fallback input option to input option list in readme 2026-05-06 02:11:13 +09:00
Taiki Endo
a1c338d97e Add documentation about release process 2026-05-06 01:48:05 +09:00
Taiki Endo
02cc445cca Update changelog/comment 2026-05-06 00:15:52 +09:00
Taiki Endo
cca35edeb1 Release 2.77.1 2026-05-05 15:10:04 +00:00
Taiki Endo
e60138699e ci: Fix release workflow 2026-05-06 00:06:18 +09:00
Taiki Endo
651945350f Update tombi@latest to 0.10.3 2026-05-05 14:05:31 +00:00
Taiki Endo
bfbdc59475 Update prek manifest 2026-05-05 14:05:31 +00:00
Taiki Endo
9f306516af Update martin@latest to 1.8.2 2026-05-05 14:05:31 +00:00
Taiki Endo
d1eee517af codegen: Ignore uv 0.11.9
```
verifying https://github.com/astral-sh/uv/releases/download/0.11.9/uv-x86_64-unknown-linux-musl.tar.gz with gh attestation verify

Error: HTTP 404: Not Found (https://api.github.com/repos/astral-sh/uv/attestations/sha256:ac3e5051edbf30613b0f90d1c18d4807fea6b246f37490799fee0c1284a658b2?per_page=30&predicate_type=https://slsa.dev/provenance/v1)
```

https://github.com/astral-sh/uv/issues/19278
2026-05-05 22:47:55 +09:00
Taiki Endo
a4ad60dd6a ci: Use taiki-e/github-actions/.github/workflows/action-release.yml 2026-05-05 22:36:13 +09:00
Taiki Endo
39b209ec4a ci: Update config 2026-05-05 10:56:05 +09:00
28 changed files with 928 additions and 478 deletions

View File

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

View File

@@ -34,7 +34,6 @@ rdme
rootfs
sccache
SHASUMS
shortstat
sigstore
startswith
syft
@@ -43,7 +42,6 @@ udeps
USERPROFILE
wasmtime
watchexec
worktree
xbuild
xscale
xwin

View File

@@ -32,20 +32,20 @@ concurrency:
jobs:
miri:
uses: taiki-e/github-actions/.github/workflows/miri.yml@75415970465917c31d702710acd9c9248b9af314 # main
uses: taiki-e/github-actions/.github/workflows/miri.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
with:
# NB: sync with test job's --exclude option
args: --exclude install-action-internal-codegen
msrv:
uses: taiki-e/github-actions/.github/workflows/msrv.yml@75415970465917c31d702710acd9c9248b9af314 # main
uses: taiki-e/github-actions/.github/workflows/msrv.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
test-manifest-schema:
uses: taiki-e/github-actions/.github/workflows/test.yml@75415970465917c31d702710acd9c9248b9af314 # main
uses: taiki-e/github-actions/.github/workflows/test.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
with:
# NB: sync with miri job's --exclude option
test-args: --exclude install-action-internal-codegen
no-std: false
tidy:
uses: taiki-e/github-actions/.github/workflows/tidy.yml@75415970465917c31d702710acd9c9248b9af314 # main
uses: taiki-e/github-actions/.github/workflows/tidy.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
permissions:
contents: write # for creating branch for pr
pull-requests: write # unused (used in `codegen-automerge: true` case)
@@ -117,8 +117,6 @@ jobs:
- uses: ./
with:
tool: ${{ steps.tool-list.outputs.tool }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Test all shells listed in https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
- name: Test bash
run: just --version && shfmt --version && protoc --version && rustc --version && cargo --version && rustup --version
@@ -159,7 +157,7 @@ jobs:
- run: env
- uses: ./
with:
# NB: Update alias list in release.yml, case for aliases in main.sh,
# NB: Update alias list in tools/ci/release-post-commit.sh, case for aliases in main.sh,
# and match for alias for tools/codegen/src/tools-markdown.rs.
tool: |
nextest
@@ -167,8 +165,6 @@ jobs:
typos-cli
wasm-bindgen-cli
wasmtime-cli
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test bash
run: cargo-nextest nextest --version && taplo --version
shell: bash
@@ -261,7 +257,8 @@ jobs:
- name: Install requirements (old debian)
run: |
# In Debian, the old repositories is removed from the main mirrors some time after EoL.
codename=$(grep -E '^VERSION_CODENAME=' /etc/os-release | cut -d= -f2)
# shellcheck source=/dev/null
codename=$(. /etc/os-release; printf '%s\n' "${VERSION_CODENAME}")
sed -i /etc/apt/sources.list -e 's/deb.debian.org/archive.debian.org/g' \
-e 's|security.debian.org|archive.debian.org/|g' \
-e "/${codename}-updates/d"
@@ -319,8 +316,6 @@ jobs:
- uses: ./
with:
tool: ${{ steps.tool-list.outputs.tool }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test bash
run: just --version && shfmt --version
shell: bash

View File

@@ -13,26 +13,13 @@ on:
- cron: '0 0,3,6,9,12,15,18,21 * * *'
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_NET_RETRY: 10
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10
defaults:
run:
shell: bash --noprofile --norc -CeEuxo pipefail {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
manifest:
uses: taiki-e/github-actions/.github/workflows/gen.yml@a6df8c9ea0038c730f138f0f849d692cf387ea4e # main
uses: taiki-e/github-actions/.github/workflows/gen.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
permissions:
contents: write # for creating branch for pr
pull-requests: write # for gh pr review --approve
@@ -44,6 +31,5 @@ jobs:
title: Update manifest
branch: update-manifest
automerge: true
install-rust: true
install-cosign: true
install-parse-changelog: true

View File

@@ -1,7 +1,5 @@
name: Release
# Adapted from https://github.com/taiki-e/github-actions/blob/HEAD/.github/workflows/action-release.yml.
permissions: {}
on:
@@ -23,417 +21,26 @@ on:
- minor
- major
defaults:
run:
shell: bash --noprofile --norc -CeEuo pipefail {0}
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false
jobs:
prepare:
if: github.repository_owner == 'taiki-e' && inputs.target == 'install-action'
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
- uses: taiki-e/install-action@58e862542551f667fa44c8a2a4a1d64ad477c96a # v2.75.17
with:
tool: parse-changelog
fallback: none
- id: check
run: |
IFS=$'\n\t'
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
retry() {
for i in {1..10}; do
if "$@"; then
return 0
else
sleep "${i}"
fi
done
"$@"
}
bail() {
printf '::error::%s\n' "$*"
exit 1
}
if { sed --help 2>&1 || true; } | grep -Eq -e '-i extension'; then
in_place=(-i '')
else
in_place=(-i)
fi
# shellcheck disable=SC2153
version="${VERSION}"
printf 'version(input): %s\n' "${version}"
# shellcheck disable=SC2153
tag_prefix="${TAG_PREFIX}"
printf 'tag_prefix: %s\n' "${tag_prefix}"
# shellcheck disable=SC2153
changelog="${CHANGELOG}"
printf 'changelog: %s\n' "${changelog}"
# Get the current date.
release_date=$(date -u '+%Y-%m-%d')
printf 'release-date: %s\n' "${release_date}"
printf 'release-date=%s\n' "${release_date}" >>"${GITHUB_OUTPUT}"
# Get the current revision.
rev=$(git rev-parse HEAD)
printf 'rev: %s\n' "${rev}"
printf 'rev=%s\n' "${rev}" >>"${GITHUB_OUTPUT}"
prev_version=$(parse-changelog --title-no-link "${changelog}" | cut -d' ' -f1)
# Determine the new version number and tag name.
case "${version}" in
major | minor | patch)
if [[ ! "${prev_version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
bail "pre-release/build-metadata"
fi
major="${prev_version%%.*}"
minor_patch="${prev_version#*.}"
minor="${minor_patch%%.*}"
patch="${minor_patch#*.}"
case "${version}" in
major) version="$((major+1)).0.0" ;;
minor) version="${major}.$((minor+1)).0" ;;
patch) version="${major}.${minor}.$((patch+1))" ;;
esac
;;
*) version="${version#v}" ;;
esac
if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$ ]]; then
bail "invalid version format '${version}'"
fi
printf 'version: %s\n' "${version}"
printf 'version=%s\n' "${version}" >>"${GITHUB_OUTPUT}"
tag="${tag_prefix}${version}"
printf 'tag: %s\n' "${tag}"
printf 'tag=%s\n' "${tag}" >>"${GITHUB_OUTPUT}"
# 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"
fi
# Make sure that the release was created from an allowed branch.
if ! git branch | grep -Eq '\* '"${BRANCH}"'$'; then
bail "current branch is not '${BRANCH}'"
fi
changed_paths=()
retry git fetch origin --tags &>/dev/null
tags=$(git --no-pager tag | { grep -E "^${tag_prefix}[0-9]+" || true; })
if [[ -n "${tags}" ]]; then
printf 'has-tags=true\n' >>"${GITHUB_OUTPUT}"
# 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.
changed_paths+=("${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
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"
fi
printf '============== CHANGELOG ==============\n'
printf '%s\n' "${changes}"
printf '=======================================\n'
if [[ -n "${tags}" ]]; then
git -c color.ui=always diff "${changed_paths[@]}"
git add "${changed_paths[@]}"
fi
# Make sure that there is no unintended change.
git add -N .
git -c color.ui=always diff --exit-code
(
set -x
git show HEAD --shortstat
)
env:
VERSION: ${{ inputs.version }}
TAG_PREFIX: v
CHANGELOG: CHANGELOG.md
BRANCH: main
outputs:
has-tags: ${{ steps.check.outputs.has-tags }}
release-date: ${{ steps.check.outputs.release-date }}
rev: ${{ steps.check.outputs.rev }}
tag: ${{ steps.check.outputs.tag }}
version: ${{ steps.check.outputs.version }}
release:
if: github.repository_owner == 'taiki-e' && inputs.target == 'install-action'
needs: prepare
runs-on: ubuntu-24.04
timeout-minutes: 60
environment:
name: release
deployment: false
uses: taiki-e/github-actions/.github/workflows/action-release.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
permissions:
contents: write # for taiki-e/create-gh-release-action
steps:
- uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2
- uses: taiki-e/install-action@58e862542551f667fa44c8a2a4a1d64ad477c96a # v2.75.17
with:
tool: parse-changelog
fallback: none
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: push-token
with:
client-id: ${{ secrets.PUSH_TOKEN_APP_CLIENT_ID }}
private-key: ${{ secrets.PUSH_TOKEN_APP_PRIVATE_KEY }}
- name: Create and push release commit and tag
id: push
run: |
IFS=$'\n\t'
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
retry() {
for i in {1..10}; do
if "$@"; then
return 0
else
sleep "${i}"
fi
done
"$@"
}
bail() {
printf '::error::%s\n' "$*"
exit 1
}
if { sed --help 2>&1 || true; } | grep -Eq -e '-i extension'; then
in_place=(-i '')
else
in_place=(-i)
fi
git config user.name 'Taiki Endo'
git config user.email 'te316e89@gmail.com'
# shellcheck disable=SC2153
version="${VERSION}"
# shellcheck disable=SC2153
tag="${TAG}"
# shellcheck disable=SC2153
changelog="${CHANGELOG}"
# shellcheck disable=SC2153
release_date="${RELEASE_DATE}"
# Make sure the current revision is same as prepare step.
# --unshallow is necessary to successfully push the
# "releases/${major_version_tag}" branch in the subsequent step.
retry git fetch origin --unshallow &>/dev/null
rev=$(git rev-parse HEAD)
if [[ "${rev}" != "${PREPARE_REV}" ]]; then
bail "revision difference between prepare step"
fi
# 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"
fi
# Make sure that the release was created from an allowed branch.
if ! git branch | grep -Eq '\* '"${BRANCH}"'$'; then
bail "current branch is not '${BRANCH}'"
fi
changed_paths=()
if [[ "${HAS_TAGS}" == "true" ]]; then
# Update changelog.
changed_paths+=("${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
fi
changes=$(parse-changelog "${changelog}" "${version}")
printf '============== CHANGELOG ==============\n'
printf '%s\n' "${changes}"
printf '=======================================\n'
if [[ "${HAS_TAGS}" == "true" ]]; then
# Create a release commit.
(
set -x
git add "${changed_paths[@]}"
git commit -m "Release ${version}"
)
fi
major_version_tag="v${version%%.*}"
(
set -x
git tag "${tag}"
git branch "releases/${major_version_tag}"
git tag -f "${major_version_tag}"
)
refs=("refs/heads/${BRANCH}" "refs/tags/${tag}" "refs/heads/releases/${major_version_tag}" "+refs/tags/${major_version_tag}")
tools=()
for tool in tools/codegen/base/*.json; do
tool="${tool##*/}"
tools+=("${tool%.*}")
done
# Aliases.
# NB: Update case for aliases in main.sh, tool input option in test-alias job
# in .github/workflows/ci.yml, and match for alias for tools/codegen/src/tools-markdown.rs.
tools+=(
nextest
taplo-cli
typos-cli
wasm-bindgen-cli
wasmtime-cli
)
# Non-manifest-based tools.
tools+=(valgrind)
branches=()
for tool in "${tools[@]}"; do
(
set -x
git checkout -b "releases/${tool}"
sed -E "${in_place[@]}" action.yml \
-e "s/required: true/required: false/g" \
-e "s/# default: #publish:tool/default: ${tool}/g"
git add action.yml
git commit -m "${tool}"
git tag -f "${tool}"
git checkout refs/tags/"${tag}"
)
refs+=("+refs/heads/releases/${tool}" "+refs/tags/${tool}")
branches+=("releases/${tool}")
done
prev_credential_helper=$(git config get --local credential.helper || true)
if [[ -n "${prev_credential_helper}" ]]; then
printf 'credential helper is already set (%s)\n' "${prev_credential_helper}"
else
protocol="${GITHUB_SERVER_URL%%://*}"
hostname="${GITHUB_SERVER_URL#*://}"
(
set -x
git config --local credential.helper cache
)
git credential approve <<EOF
protocol=${protocol}
host=${hostname}
username=${GITHUB_ACTOR}
password=${PUSH_TOKEN}
EOF
# Remove credential helper config on exit.
trap -- '(set -x; git credential-cache exit; git config --local --unset credential.helper || true)' EXIT
fi
(
set -x
retry git push origin --atomic "${refs[@]}"
git branch -d "releases/${major_version_tag}"
git branch -D "${branches[@]}"
schema_workspace=/tmp/workspace
rm -rf -- "${schema_workspace}"
# Checkout manifest-schema branch
schema_version="$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | select(.name == "install-action-manifest-schema") | .version')"
if [[ "${schema_version}" == "0."* ]]; then
schema_version="0.$(cut -d. -f2 <<<"${schema_version}")"
else
schema_version="$(cut -d. -f1 <<<"${schema_version}")"
fi
schema_branch="manifest-schema-${schema_version}"
git worktree add --force "${schema_workspace}"
(
cd -- "${schema_workspace}"
if git fetch origin "${schema_branch}"; then
git checkout "origin/${schema_branch}" -B "${schema_branch}"
elif ! git checkout "${schema_branch}"; then
# New branch with no history. Credit: https://stackoverflow.com/a/13969482
git checkout --orphan "${schema_branch}"
git rm -rf -- . || true
git commit -m 'Initial commit' --allow-empty
fi
)
# Copy over schema
cp -- ./manifests/* "${schema_workspace}"
(
cd -- "${schema_workspace}"
# Stage changes
git add .
# Detect changes, then commit and push if changes exist
if [[ "$(git status --porcelain=v1 | LC_ALL=C wc -l)" != "0" ]]; then
git commit -m 'Update manifest schema'
retry git push origin HEAD
fi
)
rm -rf -- "${schema_workspace}"
git worktree prune
# TODO: get branch in schema_workspace dir instead
git branch -D "${schema_branch}" "${schema_workspace##*/}"
)
env:
VERSION: ${{ needs.prepare.outputs.version }}
RELEASE_DATE: ${{ needs.prepare.outputs.release-date }}
HAS_TAGS: ${{ needs.prepare.outputs.has-tags }}
TAG: ${{ needs.prepare.outputs.tag }}
CHANGELOG: CHANGELOG.md
BRANCH: main
PREPARE_REV: ${{ needs.prepare.outputs.rev }}
# Note that if we use secrets.GITHUB_TOKEN, the pushed commit/tag cannot trigger other workflows.
PUSH_TOKEN: ${{ steps.push-token.outputs.token }}
- uses: taiki-e/create-gh-release-action@eba8ea96c86cca8a37f1b56e94b4d13301fba651 # v1.11.0
with:
changelog: CHANGELOG.md
title: $version
branch: main
ref: refs/tags/${{ needs.prepare.outputs.tag }}
secrets:
PUSH_TOKEN_APP_CLIENT_ID: ${{ secrets.PUSH_TOKEN_APP_CLIENT_ID }}
PUSH_TOKEN_APP_PRIVATE_KEY: ${{ secrets.PUSH_TOKEN_APP_PRIVATE_KEY }}
with:
version: ${{ inputs.version }}
post-commit-script: tools/ci/release-post-commit.sh
release-manifest-schema:
if: github.repository_owner == 'taiki-e' && inputs.target == 'install-action-manifest-schema'
uses: taiki-e/github-actions/.github/workflows/rust-release.yml@75415970465917c31d702710acd9c9248b9af314 # main
uses: taiki-e/github-actions/.github/workflows/rust-release.yml@931686d4e4cf88b13e790040727ccde2dba8ec62 # main
permissions:
contents: write # for taiki-e/create-gh-release-action
id-token: write # for rust-lang/crates-io-auth-action
@@ -444,7 +51,7 @@ jobs:
with:
version: ${{ inputs.version }}
tag-prefix: install-action-manifest-schema-
crates: tools/manifest-schema
package: install-action-manifest-schema
changelog: tools/manifest-schema/CHANGELOG.md
title: $prefix $version
prefix: install-action-manifest-schema

View File

@@ -10,6 +10,40 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.77.3] - 2026-05-09
- Update `typos@latest` to 1.46.1.
- Update `rclone@latest` to 1.74.1.
- Update `tombi@latest` to 0.11.0.
- Update `osv-scanner@latest` to 2.3.8.
- Update `mise@latest` to 2026.5.3.
## [2.77.2] - 2026-05-08
- Update `martin@latest` to 1.9.0.
- Update `wasm-bindgen@latest` to 0.2.121.
- Update `uv@latest` to 0.11.11.
- Update `mise@latest` to 2026.5.1.
- Update `prek@latest` to 0.3.13.
- Update `tombi@latest` to 0.10.6.
## [2.77.1] - 2026-05-05
- Support `taiki-e/install-action@rust` tag.
- Update `tombi@latest` to 0.10.3.
- Update `martin@latest` to 1.8.2.
## [2.77.0] - 2026-05-05
- Support `rust`. ([#1779](https://github.com/taiki-e/install-action/pull/1779))
@@ -6460,7 +6494,10 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.77.0...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.77.3...HEAD
[2.77.3]: https://github.com/taiki-e/install-action/compare/v2.77.2...v2.77.3
[2.77.2]: https://github.com/taiki-e/install-action/compare/v2.77.1...v2.77.2
[2.77.1]: https://github.com/taiki-e/install-action/compare/v2.77.0...v2.77.1
[2.77.0]: https://github.com/taiki-e/install-action/compare/v2.76.0...v2.77.0
[2.76.0]: https://github.com/taiki-e/install-action/compare/v2.75.30...v2.76.0
[2.75.30]: https://github.com/taiki-e/install-action/compare/v2.75.29...v2.75.30

View File

@@ -36,3 +36,29 @@ to the platform object.
If CI fails only for containers using older versions of glibc or musl, you may need to add the tool
name to one of the `*_incompat` arrays in `tools/ci/tool-list.sh`.
## Release new version
Releases are performed by running the [release workflow](https://github.com/taiki-e/install-action/actions/workflows/release.yml) via workflow dispatch. The owner and collaborators can start the release workflow, but the owners [approval](https://docs.github.com/en/actions/reference/workflows-and-actions/deployments-and-environments#required-reviewers) is required before the actual release.
### 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 may 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.
Usually increase the minor version otherwise.
Adding support for a new tool may conflict with existing fallbacks, so it is necessary to increase the minor version.

View File

@@ -24,6 +24,7 @@ GitHub Action for installing development tools (mainly from GitHub Releases).
| ---- | :------: | ----------- | ---- | ------- |
| tool | **✓** | Tools to install (whitespace or comma separated list) | String | |
| checksum | | Whether to enable checksums (strongly discouraged to disable) | Boolean | `true` |
| fallback | | Whether to use fallback (none, cargo-binstall, or cargo-install) | String | `cargo-binstall` |
### Example workflow

View File

@@ -4,14 +4,14 @@ description: GitHub Action for installing development tools
inputs:
tool:
description: Tools to install (whitespace or comma separated list)
required: true
# default: #publish:tool
required: false
default: cargo-semver-checks
checksum:
description: Whether to enable checksums (strongly discouraged to disable)
required: false
default: 'true'
fallback:
description: Whether to use fallback (none, cargo-binstall, cargo-install)
description: Whether to use fallback (none, cargo-binstall, or cargo-install)
required: false
default: 'cargo-binstall'

View File

@@ -774,6 +774,7 @@ for tool in "${tools[@]}"; do
esac
fi
installed_bin=()
# NB: Update tools/ci/release-post-commit.sh when adding non-manifest-based tools.
case "${tool}" in
rust)
if [[ "${version}" == 'latest' ]]; then
@@ -957,7 +958,7 @@ for tool in "${tools[@]}"; do
;;
*)
# Handle aliases.
# NB: Update alias list in .github/workflows/release.yml, tool input option in test-alias in .github/workflows/ci.yml,
# NB: Update alias list in tools/ci/release-post-commit.sh, tool input option in test-alias in .github/workflows/ci.yml,
# and match for alias for tools/codegen/src/tools-markdown.rs.
# TODO(codegen): auto-detect cases where crate name and tool name are different.
case "${tool}" in

38
manifests/biome.json generated
View File

@@ -10,6 +10,44 @@
"2.4": {
"version": "2.4.14"
},
"2.4.15": {
"x86_64_linux_musl": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.15/biome-linux-x64-musl",
"etag": "0x8DEADEDC0FCFEE0",
"hash": "60b19c9c7e611e1b18268b3d9baf9ec903f6ca184c3a8e81845f68fd3b621f49",
"bin": "biome"
},
"x86_64_macos": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.15/biome-darwin-x64",
"etag": "0x8DEADEDC08631B9",
"hash": "fab8a39dc54a38f820b2952f7f80e7e8993483b7501a4f19d1cbf4361128a07d",
"bin": "biome"
},
"x86_64_windows": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.15/biome-win32-x64.exe",
"etag": "0x8DEADEDC0D8D6B7",
"hash": "a77a61537dfc6f923b5b1fc912bc2e0ed46a83c3303ca973695d7f4f8351c71e",
"bin": "biome.exe"
},
"aarch64_linux_musl": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.15/biome-linux-arm64-musl",
"etag": "0x8DEADEDC081C9DE",
"hash": "9dfd5ab51e493864777fc77447d8416cc19d70d644d900048e703aad95afe9d2",
"bin": "biome"
},
"aarch64_macos": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.15/biome-darwin-arm64",
"etag": "0x8DEADEDC063B561",
"hash": "b2c65601b3b0fcd0606c4152f20e3774aadf0b73ba791b8dbcff7e6f1a4fa17a",
"bin": "biome"
},
"aarch64_windows": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.15/biome-win32-arm64.exe",
"etag": "0x8DEADEDC0A3AAA6",
"hash": "52f859229094fb75198f3649036b38b4f6aae48b4040c5dec8d1f29a905c69f6",
"bin": "biome.exe"
}
},
"2.4.14": {
"x86_64_linux_musl": {
"url": "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.14/biome-linux-x64-musl",

View File

@@ -28,6 +28,28 @@
"0.19": {
"version": "0.19.4"
},
"0.19.5": {
"x86_64_linux_musl": {
"etag": "0x8DEADC4AFCE086D",
"hash": "5ea64ae09959b5fe1072d898f95caaa89b374678ba6728d5e9ed1366745479b0"
},
"x86_64_macos": {
"etag": "0x8DEADC4A43426A1",
"hash": "36102b6ab83a546036ada57526227317a7827e1788ce39ac6df1c9102b86fa10"
},
"x86_64_windows": {
"etag": "0x8DEADC4E4CE23BB",
"hash": "390159ef49444b9b0b98ce36b35bc068180103d078b73f0d3d67872eff375e3e"
},
"aarch64_linux_musl": {
"etag": "0x8DEADC4AB47CBC0",
"hash": "f23d2b4e343a54af3d925b557294c8c9d00dacb7bb98663f995a4427efebe1db"
},
"aarch64_macos": {
"etag": "0x8DEADC4A1166B57",
"hash": "0cf28e019edb3708ba9755b8c822864ee6d6175d6fc167956972e78ea9ff0be3"
}
},
"0.19.4": {
"x86_64_linux_musl": {
"etag": "0x8DE9AED0DA16A3C",

View File

@@ -35,6 +35,44 @@
"0.8": {
"version": "0.8.5"
},
"0.8.6": {
"x86_64_linux_musl": {
"etag": "0x8DEAD9DFC629D58",
"hash": "15db93baf9410ed9dd01b89b9cc1d98cdc86bb381bc3ca77ba256f6cc6bf8852"
},
"x86_64_macos": {
"etag": "0x8DEAD9DEFD2B9FE",
"hash": "5f92be8cff2016e5435b876a29e15f726a803701b4fab5fc7d295b94cd954afa"
},
"x86_64_windows": {
"etag": "0x8DEAD9E249616EC",
"hash": "9e254799deddb5b8c99d0bb1785674891e06eb432c63deb2ae113ccd67f06e4d"
},
"aarch64_linux_musl": {
"etag": "0x8DEAD9DFB03ACB9",
"hash": "b3ad4cceb5a4cc2450c30f16a9fe86d0e673c311e3b807590b38b25b8a2eaf77"
},
"aarch64_macos": {
"etag": "0x8DEAD9DF69D79EF",
"hash": "ef9e27aa59bfbe2c3006b8ad3dc8c64aee7b704a6c9236c3bcf711ec47c6c42d"
},
"aarch64_windows": {
"etag": "0x8DEAD9E22BC8D0D",
"hash": "2379527cd030cb0b99841fefc0a249e19bb614681a01e46c9759afba6f0b4ff2"
},
"powerpc64le_linux_musl": {
"etag": "0x8DEAD9DFE216AD4",
"hash": "5db10c4fcd4452dd544f0efc546c5d52d83e7d1c079d3a458aca414a70c44d88"
},
"riscv64_linux_musl": {
"etag": "0x8DEAD9DF80B4E05",
"hash": "ed2a13d217eb9c26d1c197460826b17a94ac234d87345b73d3096ac5caa1531f"
},
"s390x_linux_gnu": {
"etag": "0x8DEAD9E0CABCE5C",
"hash": "4a4fbf602624866c511f35cdf443bf8c631efd1de31694aea592e6b69fca1b8f"
}
},
"0.8.5": {
"x86_64_linux_musl": {
"etag": "0x8DE8663A51E8D6F",

45
manifests/martin.json generated
View File

@@ -31,13 +31,52 @@
}
},
"latest": {
"version": "1.8.0"
"version": "1.9.0"
},
"1": {
"version": "1.8.0"
"version": "1.9.0"
},
"1.9": {
"version": "1.9.0"
},
"1.9.0": {
"x86_64_linux_musl": {
"etag": "0x8DEACFBBCCAA91B",
"hash": "e3a7f9eee6336b5f3a6020430d2ff53d457295d0bb9e0f5c41a5d81ea962dc1f"
},
"x86_64_macos": {
"etag": "0x8DEACFBBBD98FB9",
"hash": "7dcaed930819d28acca8311222c1e978aacadeebd6915d6cf86821a3057616f5"
},
"aarch64_linux_musl": {
"etag": "0x8DEACFBBBC0A581",
"hash": "a4505f5d862e97f5e8587268859860841b69aa99355963c67cc4d181ffec4fba"
},
"aarch64_macos": {
"etag": "0x8DEACFBBC01844E",
"hash": "d51a66b157175a955a6332350885f127eee82fff94e7d1a2c1173b0b17878ec7"
}
},
"1.8": {
"version": "1.8.0"
"version": "1.8.2"
},
"1.8.2": {
"x86_64_linux_musl": {
"etag": "0x8DEAA75F9C0717B",
"hash": "b7ce4906219974f33c0c80994fde6afe503cd8fc6e4c37fd75caf77f320d98cc"
},
"x86_64_macos": {
"etag": "0x8DEAA75F8954F43",
"hash": "6be5743e73b43bc7ef34d17b94e7fdce5f3eafa26120a67ce317b55d557ba481"
},
"aarch64_linux_musl": {
"etag": "0x8DEAA75F885D044",
"hash": "d994a862ae5ded571da994f3e525c04e4afb8ee355e3c91135fb0ff78f8d1294"
},
"aarch64_macos": {
"etag": "0x8DEAA75F8A93635",
"hash": "11a05523e1e59c8322bae7bb49442eaa22bb355905222f96e723b9ca42dd4316"
}
},
"1.8.0": {
"x86_64_linux_musl": {

110
manifests/mise.json generated
View File

@@ -27,13 +27,117 @@
}
},
"latest": {
"version": "2026.5.0"
"version": "2026.5.3"
},
"2026": {
"version": "2026.5.0"
"version": "2026.5.3"
},
"2026.5": {
"version": "2026.5.0"
"version": "2026.5.3"
},
"2026.5.4": {
"x86_64_linux_musl": {
"etag": "0x8DEADBA8BC5AE8D",
"hash": "96aaa896d9d3c02a7f72ff92f85b879afb7e9dcf92d81f72d873aa4d330b2615"
},
"x86_64_macos": {
"etag": "0x8DEADBA8E5CF79B",
"hash": "301b5f875b9ac34d5535126aec6400c2c2b540761f137cec874fcb73d577e116"
},
"x86_64_windows": {
"etag": "0x8DEADBA8FDB59F9",
"hash": "3c66193570f51ca33198e31d6f685ebd9d094aa28b46619be18f8c3825df015e"
},
"aarch64_linux_musl": {
"etag": "0x8DEADBA877F3EE8",
"hash": "3c2ec2ee50066c731d4c4492409ed234a2275f9836df02807637c1ea72c96ce9"
},
"aarch64_macos": {
"etag": "0x8DEADBA8D9F37F9",
"hash": "740210925b3dd87de72b0e6dc428176716a9870c16831f762916567dbb9252f4"
},
"aarch64_windows": {
"etag": "0x8DEADBA8F6B150C",
"hash": "c9c9ff3708df345b9c32cc449f230865136e2d854d4896d15c951c209313d4ee"
}
},
"2026.5.3": {
"x86_64_linux_musl": {
"etag": "0x8DEACF30926DA73",
"hash": "dd30b798647d29593ad6ea72882e8c6293ee6f3b10f1d7a12ed08e725631ef8e"
},
"x86_64_macos": {
"etag": "0x8DEACF30BAD955A",
"hash": "184d925d4325d85b932b2d60bda148851364fd93ce8734e8061041822eed3fd5"
},
"x86_64_windows": {
"etag": "0x8DEACF30D12994C",
"hash": "7ac7edbbe47399b9c8c8a151b31d94056b5059a4251820372e96f469f97d1d23"
},
"aarch64_linux_musl": {
"etag": "0x8DEACF3054F9DD6",
"hash": "9d756fbbcc50d78cb5772e4d260d8018f9a6f9bff226f17c8fb70a0d899572de"
},
"aarch64_macos": {
"etag": "0x8DEACF30AE815D4",
"hash": "22a65d3906a68ac415263ba6c4b9fe23c5c35e5dfd67c8440790a1023c032c51"
},
"aarch64_windows": {
"etag": "0x8DEACF30CE96D98",
"hash": "9da9f55f7f32488a40f46c7c66c4e7eed995b9370f7f09cf0bf61cf2c3f3a13e"
}
},
"2026.5.2": {
"x86_64_linux_musl": {
"etag": "0x8DEAC3BF99830AB",
"hash": "6663a7af02a23dbff5ea421c8bab86fca72c3969db3adf880b8a149131c5d2b1"
},
"x86_64_macos": {
"etag": "0x8DEAC3BFC39F4F7",
"hash": "a38b4b7fe61a3ab600ed1e638e8f9f741c690115642e07193d5490571fcb74cb"
},
"x86_64_windows": {
"etag": "0x8DEAC3BFD7E279E",
"hash": "72638be34cbf2751d352def7bc77235ec05e736c2c8ddde81e2f93d1a93eb2c9"
},
"aarch64_linux_musl": {
"etag": "0x8DEAC3BF60A7DBC",
"hash": "9e38d879e684e95c7412fba4e50721fb8874d2884430ebf39e9b17641a2defc8"
},
"aarch64_macos": {
"etag": "0x8DEAC3BFB3C3FF7",
"hash": "01e821f5a60efad8296a249604234e5dd4db46b4b417831a8bf0d92f34b5d56c"
},
"aarch64_windows": {
"etag": "0x8DEAC3BFD0CAB9F",
"hash": "58ccfa0d4aa603c5bf3955f3887dfcc76c452a13b946d83c0aee009a3fbf56c7"
}
},
"2026.5.1": {
"x86_64_linux_musl": {
"etag": "0x8DEAAEAFD6A3D30",
"hash": "5cb9f8cc7b071c5c5931fafd79bd523a81cbffe6bb23d56daea7b0be86d0a086"
},
"x86_64_macos": {
"etag": "0x8DEAAEAFFDCC12D",
"hash": "ed6c715d359bf2313fe793bc44269e38df24246c91a453fffbd0b9d94642af8f"
},
"x86_64_windows": {
"etag": "0x8DEAAEB01618438",
"hash": "a82d52bdf35e29e93c264f5dff2bebcc50030101f98dc0902ea039a043b003a5"
},
"aarch64_linux_musl": {
"etag": "0x8DEAAEAF98AF700",
"hash": "375c6a365bf7a42b3645fd3816fbd11c94c1d04af9df49910fbe11929878a365"
},
"aarch64_macos": {
"etag": "0x8DEAAEAFF27F87B",
"hash": "0eeb03e5f64f2c8fa2b0bcdb3a57fae11057d84d1f24381eb34b90663c68ffa3"
},
"aarch64_windows": {
"etag": "0x8DEAAEB00E9591F",
"hash": "d5b6c29be4711ede84b2f08b54b626e6c36ba7b1610b8193d81dcf3a3c0728a4"
}
},
"2026.5.0": {
"x86_64_linux_musl": {

View File

@@ -2,13 +2,45 @@
"rust_crate": null,
"template": null,
"latest": {
"version": "2.3.6"
"version": "2.3.8"
},
"2": {
"version": "2.3.6"
"version": "2.3.8"
},
"2.3": {
"version": "2.3.6"
"version": "2.3.8"
},
"2.3.8": {
"x86_64_linux_musl": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_linux_amd64",
"etag": "0x8DEACC126BEB6F5",
"hash": "bc98e15319ed0d515e3f9235287ba53cdc5535d576d24fd573978ecfe9ab92dc"
},
"x86_64_macos": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_darwin_amd64",
"etag": "0x8DEACC126942D4E",
"hash": "b8a80a9f14ca4c0cd0fc2d351b28f740da9e6a5b18385ac9f9d083360b5b504e"
},
"x86_64_windows": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_windows_amd64.exe",
"etag": "0x8DEACC128882583",
"hash": "cb04e79dd9698a7bc821bbfdddec916a416d1409fda79c927c509d37d00c9716"
},
"aarch64_linux_musl": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_linux_arm64",
"etag": "0x8DEACC126B3EDAA",
"hash": "8158b18edd2d03b1a30d905ca91b032bc62262167be8f206c27114f08823e27c"
},
"aarch64_macos": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_darwin_arm64",
"etag": "0x8DEACC12887FE9C",
"hash": "a8cd6507b06239f463a7642430cfd2d154882f150f6e30cdc0653e28dfc34216"
},
"aarch64_windows": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.8/osv-scanner_windows_arm64.exe",
"etag": "0x8DEACC126A2C2E6",
"hash": "285d1fbcf2c69ab5ee38ae3a850ab46e83f32ef1cd5f3c4c9eb161cc493f6d52"
}
},
"2.3.6": {
"x86_64_linux_musl": {

72
manifests/prek.json generated
View File

@@ -39,10 +39,78 @@
}
},
"latest": {
"version": "0.3.11"
"version": "0.3.13"
},
"0.3": {
"version": "0.3.11"
"version": "0.3.13"
},
"0.3.13": {
"x86_64_linux_musl": {
"etag": "0x8DEAAD16585793A",
"hash": "e10cb36c9181044cda34522899457458e3551396dbc4dcf60e1ac1a8d7a71670"
},
"x86_64_macos": {
"etag": "0x8DEAAD164CE6904",
"hash": "2bbfdf15cfe6e954b98cb27094828f5c55a8bec0a02cf55041f783c71e3b8955"
},
"x86_64_windows": {
"etag": "0x8DEAAD165069ED8",
"hash": "ca32a6451cfdd22a27d99313b3a2f91eb0ce6d191eb8e35e2467f1551252ebbb"
},
"aarch64_linux_musl": {
"etag": "0x8DEAAD16312F4C4",
"hash": "af3122f5ddd69644b7cf4d3e3263305e7e2d12e03be2cb56e8888493ff4d9e72"
},
"aarch64_macos": {
"etag": "0x8DEAAD162CCEBC5",
"hash": "0b3b3dd0fbab7b95217280248196bde741b47b8de7bf60de50b4a12a9cc17b1f"
},
"aarch64_windows": {
"etag": "0x8DEAAD162A434DC",
"hash": "892cb69e81c5c77c8af23dd930d4bcf578b8f62765ee00e3ba8fb76d2035eb34"
},
"riscv64_linux_gnu": {
"etag": "0x8DEAAD1647231E0",
"hash": "8cc1fa33a4cc1fe97312d22558140842324bcc03cde679c01d49bd5d0e16a153"
},
"s390x_linux_gnu": {
"etag": "0x8DEAAD164AE81D1",
"hash": "dd447503753d9269894cf9cbc651c493aa0530525bee12f415555d3772860a06"
}
},
"0.3.12": {
"x86_64_linux_musl": {
"etag": "0x8DEAA7D00F52541",
"hash": "6e4874a2d83451df4946e81f161dc8c6bdc675064cca1f2e1e8b0921dc862ae8"
},
"x86_64_macos": {
"etag": "0x8DEAA7D008188C4",
"hash": "ed4aa96e2c71a29d30d5e8e8b173155cda9f6aea9822e4773ccff70da5a8287a"
},
"x86_64_windows": {
"etag": "0x8DEAA7D00B66709",
"hash": "b75cdae3279806c7a046b18c45c601fe3ec1a380f11911bc39c5273100e18fce"
},
"aarch64_linux_musl": {
"etag": "0x8DEAA7CFF326611",
"hash": "2d7bc8ce9bb8521a2b9f67ad23d556fbf208a8cf5d141f09c3dbae919df756aa"
},
"aarch64_macos": {
"etag": "0x8DEAA7CFEEC3638",
"hash": "8e31a0e21c2d70e0583500f728e2c1aaba45c397a2ef2c4ea43afb7cd64f5d04"
},
"aarch64_windows": {
"etag": "0x8DEAA7CFEF85D7F",
"hash": "6f69d45aa32571e9c34104564dd06a32b7aeec9802831a00a5074fa1a89d5ba9"
},
"riscv64_linux_gnu": {
"etag": "0x8DEAA7D0042F174",
"hash": "c4b23c1b7381f251499bba7e5d01c356a39b313f8fe0a5bf53a0e1f4f7d8d91a"
},
"s390x_linux_gnu": {
"etag": "0x8DEAA7D006A2383",
"hash": "5b6073abfcfd85c692c6e0f71185f24af911b55d6303a4dfa65fb0c6951d3ede"
}
},
"0.3.11": {
"x86_64_linux_musl": {

32
manifests/rclone.json generated
View File

@@ -27,13 +27,39 @@
}
},
"latest": {
"version": "1.74.0"
"version": "1.74.1"
},
"1": {
"version": "1.74.0"
"version": "1.74.1"
},
"1.74": {
"version": "1.74.0"
"version": "1.74.1"
},
"1.74.1": {
"x86_64_linux_musl": {
"etag": "0x8DEAD1B458A41BC",
"hash": "67df3059a6233b6e32e604bcd637654bb294ff86291b65ede77123e94818d911"
},
"x86_64_macos": {
"etag": "0x8DEAD1C25E09770",
"hash": "4f10d7845422d8568e187a0f6813f124bca9b657ac7becd8bdf8508fa968a336"
},
"x86_64_windows": {
"etag": "0x8DEAD1C6237A9FA",
"hash": "51326acc0d9cf60234aa5787d8da66a621430aa373542a6b35bad8a4a26ca43e"
},
"aarch64_linux_musl": {
"etag": "0x8DEAD1B5EE81512",
"hash": "c816ed0e568de4dd1bba1a4d0cd47523d3dd54337dd5fde73f1b068857ecf877"
},
"aarch64_macos": {
"etag": "0x8DEAD1C2F373459",
"hash": "98c04f5f678fe87d435d6f4b1fe204103c5906b151357e631ba0111410691213"
},
"aarch64_windows": {
"etag": "0x8DEAD1C6A934E14",
"hash": "317d2080debf0d941b12efb3a327d06e5cc1815c1dc4d79cb3665811b29ed12f"
}
},
"1.74.0": {
"x86_64_linux_musl": {

187
manifests/tombi.json generated
View File

@@ -2,10 +2,193 @@
"rust_crate": null,
"template": null,
"latest": {
"version": "0.10.2"
"version": "0.11.0"
},
"0.11": {
"version": "0.11.0"
},
"0.11.1": {
"x86_64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.1/tombi-cli-0.11.1-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DEADA939853E26",
"hash": "827a8de6959b37b28e9a4d2dc3bfdb28e647d6de690d81a9a6751afabaa73763",
"bin": "tombi-cli-0.11.1-x86_64-unknown-linux-musl/tombi"
},
"x86_64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.1/tombi-cli-0.11.1-x86_64-apple-darwin.tar.gz",
"etag": "0x8DEADA9397FECFB",
"hash": "c9245de0d601154d01e0cd6d57f0b92465b1fa03f95221faca13a929b1e4648e",
"bin": "tombi-cli-0.11.1-x86_64-apple-darwin/tombi"
},
"x86_64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.1/tombi-cli-0.11.1-x86_64-pc-windows-msvc.zip",
"etag": "0x8DEADA9398013E0",
"hash": "ad90d99ed4a525b820afeb414946e9bfe20770913d1975da04f57a350729e7d4"
},
"aarch64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.1/tombi-cli-0.11.1-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DEADA93A1E12DD",
"hash": "f08c006ac16e8cf100c41e66276b22d29ea1a051f0d8a36b5a07dbfa36ce41fd",
"bin": "tombi-cli-0.11.1-aarch64-unknown-linux-musl/tombi"
},
"aarch64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.1/tombi-cli-0.11.1-aarch64-apple-darwin.tar.gz",
"etag": "0x8DEADA9399668E8",
"hash": "e8624e4fce53073c0ae85b759eb0b901c95d9ae28c025586e4c629ac9ea2cf67",
"bin": "tombi-cli-0.11.1-aarch64-apple-darwin/tombi"
},
"aarch64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.1/tombi-cli-0.11.1-aarch64-pc-windows-msvc.zip",
"etag": "0x8DEADA9398B9F9F",
"hash": "b9d8f1614b33691ff0ff7258c57c83f193f758dd378081a5ffb6c8bcb1910e4d"
}
},
"0.11.0": {
"x86_64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.0/tombi-cli-0.11.0-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DEACE666546096",
"hash": "f56f17e1d762e0cd7e127823daf2778f25b68fdecfc7d7d628a6a0d10ef13a3e",
"bin": "tombi-cli-0.11.0-x86_64-unknown-linux-musl/tombi"
},
"x86_64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.0/tombi-cli-0.11.0-x86_64-apple-darwin.tar.gz",
"etag": "0x8DEACE666DE0443",
"hash": "0e73dddbd8f92324f0aa6b3bf3878913c4021d9c6385ba60875cdbbcda8f109a",
"bin": "tombi-cli-0.11.0-x86_64-apple-darwin/tombi"
},
"x86_64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.0/tombi-cli-0.11.0-x86_64-pc-windows-msvc.zip",
"etag": "0x8DEACE6664DFF29",
"hash": "3f702350d274d63ae5bba0f8e62098e901c3013a5a2ad25a2d6a61fa01251ad9"
},
"aarch64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.0/tombi-cli-0.11.0-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DEACE666444616",
"hash": "aaf54d4615008e154d9136c19c3619b37f8818d74a4ba224a3b4fa21a2c7705d",
"bin": "tombi-cli-0.11.0-aarch64-unknown-linux-musl/tombi"
},
"aarch64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.0/tombi-cli-0.11.0-aarch64-apple-darwin.tar.gz",
"etag": "0x8DEACE6664A0BFD",
"hash": "87e8869b53b80d76153de661da717d963fc44803a34e21ff2eade7708f242933",
"bin": "tombi-cli-0.11.0-aarch64-apple-darwin/tombi"
},
"aarch64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.11.0/tombi-cli-0.11.0-aarch64-pc-windows-msvc.zip",
"etag": "0x8DEACE666EF0824",
"hash": "6a7677475fc23d91145fac74e2b4c3d547488f7752e8fa4fd21c14adaedecfe9"
}
},
"0.10": {
"version": "0.10.2"
"version": "0.10.6"
},
"0.10.6": {
"x86_64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.6/tombi-cli-0.10.6-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DEABD216B74CCB",
"hash": "d91f156278f510c5f159ac3ed3a4c85cf0144e779fffc898756074797fd657fa",
"bin": "tombi-cli-0.10.6-x86_64-unknown-linux-musl/tombi"
},
"x86_64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.6/tombi-cli-0.10.6-x86_64-apple-darwin.tar.gz",
"etag": "0x8DEABD21602AAC2",
"hash": "624e8c4e0a60e788079c05eff4c31bb1819bac2e02c24b182de52c2f63b6cd25",
"bin": "tombi-cli-0.10.6-x86_64-apple-darwin/tombi"
},
"x86_64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.6/tombi-cli-0.10.6-x86_64-pc-windows-msvc.zip",
"etag": "0x8DEABD21611197B",
"hash": "06860acc2bc3aef026585dc51dce330469505b5d0c1933621dd6c6a6abc2072b"
},
"aarch64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.6/tombi-cli-0.10.6-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DEABD2162306B9",
"hash": "cef1452a2750080e50967e1d0e57d6387e41c20b61b820fb5397407a7b60aa92",
"bin": "tombi-cli-0.10.6-aarch64-unknown-linux-musl/tombi"
},
"aarch64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.6/tombi-cli-0.10.6-aarch64-apple-darwin.tar.gz",
"etag": "0x8DEABD216B615AF",
"hash": "b40f5011d27113dff1777e61717bfbe179b0e7cf339c0c8ef18475318a434e2e",
"bin": "tombi-cli-0.10.6-aarch64-apple-darwin/tombi"
},
"aarch64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.6/tombi-cli-0.10.6-aarch64-pc-windows-msvc.zip",
"etag": "0x8DEABD21622DFC4",
"hash": "bc18938f699c85220d908a8de27b8a717aa6e15ba00b2b1cff3528c743799234"
}
},
"0.10.5": {
"x86_64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.5/tombi-cli-0.10.5-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DEAB4590C91292",
"hash": "a60b4b3fdb9988cf63aeaeeef62251ff35f6dee6e2ea3fa11b1c12988fe57d64",
"bin": "tombi-cli-0.10.5-x86_64-unknown-linux-musl/tombi"
},
"x86_64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.5/tombi-cli-0.10.5-x86_64-apple-darwin.tar.gz",
"etag": "0x8DEAB4590D0AB1A",
"hash": "536e593c0522212d4ec1b9be97ab202389300a4b1c7bbbba78b640f228c950be",
"bin": "tombi-cli-0.10.5-x86_64-apple-darwin/tombi"
},
"x86_64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.5/tombi-cli-0.10.5-x86_64-pc-windows-msvc.zip",
"etag": "0x8DEAB4590DB26A1",
"hash": "54d2401bf2e8921f2af826299b016feeb1511c2f4516b83eccbc505ad25c236f"
},
"aarch64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.5/tombi-cli-0.10.5-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DEAB4590C01BF4",
"hash": "c952dffaec3441f32abfdde545999296cd3de98d2e71c947693f36686e879941",
"bin": "tombi-cli-0.10.5-aarch64-unknown-linux-musl/tombi"
},
"aarch64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.5/tombi-cli-0.10.5-aarch64-apple-darwin.tar.gz",
"etag": "0x8DEAB45913EF659",
"hash": "7fed036c0f85ae60f4f5810ac2554676645dff85e40cee941f98c24228730db7",
"bin": "tombi-cli-0.10.5-aarch64-apple-darwin/tombi"
},
"aarch64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.5/tombi-cli-0.10.5-aarch64-pc-windows-msvc.zip",
"etag": "0x8DEAB45915E4205",
"hash": "ca387a677ff18577461f85743cd23405260980ed1c97d75e62877813d9a9340e"
}
},
"0.10.4": {
"x86_64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.4/tombi-cli-0.10.4-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DEAA621E82D459",
"hash": "2988df7c5ac115dc20ebd42f45ba039df0b8cda110b444f419bec814db2c880a",
"bin": "tombi-cli-0.10.4-x86_64-unknown-linux-musl/tombi"
},
"x86_64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.4/tombi-cli-0.10.4-x86_64-apple-darwin.tar.gz",
"etag": "0x8DEAA621E732E8B",
"hash": "f3ba04e491d0e2dbf42ecf6fc5d0e0c54d2b71cc74c8a4f59d34717a57544d15",
"bin": "tombi-cli-0.10.4-x86_64-apple-darwin/tombi"
},
"x86_64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.4/tombi-cli-0.10.4-x86_64-pc-windows-msvc.zip",
"etag": "0x8DEAA621EFE096F",
"hash": "150c3b9f0ddb3a16faec88980df034889f618d671bdeecec4a49e45f507a4a7d"
},
"aarch64_linux_musl": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.4/tombi-cli-0.10.4-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DEAA621E95363E",
"hash": "0aac20f61dc0ead3eab386ecaf176ad19b8734e02a2efc031bbaeefc3ace7661",
"bin": "tombi-cli-0.10.4-aarch64-unknown-linux-musl/tombi"
},
"aarch64_macos": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.4/tombi-cli-0.10.4-aarch64-apple-darwin.tar.gz",
"etag": "0x8DEAA621EE6566A",
"hash": "efff1d4fd57364c1b6f0ab7045006ed58d6fdf79925022213d44f4e0993a37a1",
"bin": "tombi-cli-0.10.4-aarch64-apple-darwin/tombi"
},
"aarch64_windows": {
"url": "https://github.com/tombi-toml/tombi/releases/download/v0.10.4/tombi-cli-0.10.4-aarch64-pc-windows-msvc.zip",
"etag": "0x8DEAA621E83490D",
"hash": "2a035a8a3b51dcc5cbff9c84391734499acf7d70279ecf317fc717d22e003647"
}
},
"0.10.3": {
"x86_64_linux_musl": {

28
manifests/typos.json generated
View File

@@ -21,13 +21,35 @@
}
},
"latest": {
"version": "1.46.0"
"version": "1.46.1"
},
"1": {
"version": "1.46.0"
"version": "1.46.1"
},
"1.46": {
"version": "1.46.0"
"version": "1.46.1"
},
"1.46.1": {
"x86_64_linux_musl": {
"etag": "0x8DEAD0A44E0E9A4",
"hash": "c574fa505596922ba2e7b1027a0a5b2df528f399b86b6915d85748186a65ca44"
},
"x86_64_macos": {
"etag": "0x8DEAD0A2BE512D2",
"hash": "bc585c22f2c4f5963ad782df1d4764a91476d3079477a08833ff87dfa416bb72"
},
"x86_64_windows": {
"etag": "0x8DEAD0A88A2D8F4",
"hash": "a7b042fc79bf7b73b00ece054ec3109858e001136c2642f28004544b571d37a2"
},
"aarch64_linux_musl": {
"etag": "0x8DEAD0A3E45E3B0",
"hash": "70a8e5a2c6272e25438ed8a9f10c40c9becf79f2800183fd34603a0840162eac"
},
"aarch64_macos": {
"etag": "0x8DEAD0A7F8A3770",
"hash": "bb5e07df5c938f41b95903ca8943d9230eb5a4cfbc8a2ff1f3a029d5370926a8"
}
},
"1.46.0": {
"x86_64_linux_musl": {

118
manifests/uv.json generated
View File

@@ -68,10 +68,124 @@
}
},
"latest": {
"version": "0.11.8"
"version": "0.11.11"
},
"0.11": {
"version": "0.11.8"
"version": "0.11.11"
},
"0.11.12": {
"x86_64_linux_musl": {
"etag": "0x8DEAD528B9020D3",
"hash": "591a7557f5ba7e51565f338dd4c50cebc12820ec2ebb8403a4304685f8d53ab9"
},
"x86_64_macos": {
"etag": "0x8DEAD528B0CB7B0",
"hash": "32fb217e6181384bf6534b31adcc66cd552eff98643c4bb35832be8552486912"
},
"x86_64_windows": {
"etag": "0x8DEAD528B4B2817",
"hash": "e46956a6b088a0382101c797eef945c1b03826e629e968d434cf838d42d85b6b"
},
"aarch64_linux_musl": {
"etag": "0x8DEAD5288CE4ED4",
"hash": "b70e87f15f12d750d218042c4ed36e41de0757eab249d332ee2e242e4174b5d5"
},
"aarch64_macos": {
"etag": "0x8DEAD528805515D",
"hash": "bb7c6ef869ec00cd1452f4884acf23d00b153c356ba9197ae99a1bc1ceadb7f3"
},
"aarch64_windows": {
"etag": "0x8DEAD52883FA7B4",
"hash": "393de1abc2f663cb9dd24405c7a7b31119e2a734609a233d9b89415821f39bf9"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DEAD528A58159E",
"hash": "36619f91357b240648caed6557fe893922c7986319c070f4feb225e8f3180b49"
},
"riscv64_linux_gnu": {
"etag": "0x8DEAD528A83AF88",
"hash": "9bdcac006731a2094ad002d93c4fe84a259484e4d35566e29fcb76962961cef9"
},
"s390x_linux_gnu": {
"etag": "0x8DEAD528ADCDCD9",
"hash": "c9ae09f73066fb9c48beaec2ab4ad2407ce94354c5224e2982196577d6bf4581"
}
},
"0.11.11": {
"x86_64_linux_musl": {
"etag": "0x8DEABAB3A32BEEE",
"hash": "80521f18ba83109acd17e0730bd8ff898c3426aa62252c627d63418b353e788a"
},
"x86_64_macos": {
"etag": "0x8DEABAB39981750",
"hash": "57a1a8085b4088fbcbd5080c0c30723ba6d0692c89cd071c08a4209e8da602d1"
},
"x86_64_windows": {
"etag": "0x8DEABAB39A6115C",
"hash": "2f75a0db2c3530b6b3c24434dc38137f61ff1f4e5f2d7b4ddc5bcd142cf58b65"
},
"aarch64_linux_musl": {
"etag": "0x8DEABAB36BDA901",
"hash": "0fc9a49b3900f77ffaccf3ff69a70ddbc1d479e70ac5d8fd6416a7577b03c5a1"
},
"aarch64_macos": {
"etag": "0x8DEABAB36053AA7",
"hash": "3a185bf8f46a7b7c8b910d111825907b1638d0ae503cb3c333ae205772354046"
},
"aarch64_windows": {
"etag": "0x8DEABAB366D2476",
"hash": "3d8f05de7ed9de885299565f78832a13e443be51de86260f25edb7cfd0fa05f6"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DEABAB38C2092C",
"hash": "5348415c8606e5efac5cb293d83d2ae71e43a2dcabf677c6a4cac965c1982c74"
},
"riscv64_linux_gnu": {
"etag": "0x8DEABAB38D70036",
"hash": "0eadf068918b960e7bf62eda83613c08d99f0d002b8d475d3383993191554d04"
},
"s390x_linux_gnu": {
"etag": "0x8DEABAB39185391",
"hash": "f19c950a93b1f5af4108267743f3de61346250b35c60cc552fb4187b534af770"
}
},
"0.11.10": {
"x86_64_linux_musl": {
"etag": "0x8DEAAE44DCF49FB",
"hash": "e3e78e7698d72c133c5ce851a6d60ee83afdc4c0edced382af9fd1f8e11d0105"
},
"x86_64_macos": {
"etag": "0x8DEAAE44CEF82BE",
"hash": "8fd091211089973f528e147166e3af683ab4ecebd4312a55d0d17d87adbde67a"
},
"x86_64_windows": {
"etag": "0x8DEAAE44D040512",
"hash": "7a0c424c7bc55a74751f13592235953ebbe182fa00355f7ae3fb7ab734a51638"
},
"aarch64_linux_musl": {
"etag": "0x8DEAAE44A345FEE",
"hash": "14c21bef6b54d268c6583d851095a543e6cb03a8e4bdca9a44ab91532b14cbc2"
},
"aarch64_macos": {
"etag": "0x8DEAAE4496FA369",
"hash": "e93d6af7dfff7071edd16342ba9eeccfc28d8a7deaa5707efeecf63a63a74453"
},
"aarch64_windows": {
"etag": "0x8DEAAE449BDB9A2",
"hash": "3d5878cfc55106083ada1e41cccdde477413701eb9d34767e8ad973bb0863de6"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DEAAE44C0F6DBE",
"hash": "dfe5b338e2ebc1e5a2850a17bce35edb8e47550c221d9245c007eaf3003cb6ed"
},
"riscv64_linux_gnu": {
"etag": "0x8DEAAE44C34CD09",
"hash": "0c8776a0814bf7e32e025d13c733c3a800171a16fba77d1c21e6f10be6a28d8b"
},
"s390x_linux_gnu": {
"etag": "0x8DEAAE44CE003C6",
"hash": "66dfdc5a216a9fbd7c2541a66f753544dddbcbb2f7a597c9bbc91d10af534c7d"
}
},
"0.11.8": {
"x86_64_linux_musl": {

View File

@@ -43,10 +43,32 @@
}
},
"latest": {
"version": "0.2.120"
"version": "0.2.121"
},
"0.2": {
"version": "0.2.120"
"version": "0.2.121"
},
"0.2.121": {
"x86_64_linux_musl": {
"etag": "0x8DEABD2CE026990",
"hash": "3039f38f65fe237b640cf06a140c919ca8d717ec5012146d145d3f27bb4d6b28"
},
"x86_64_macos": {
"etag": "0x8DEABD2CE0D80A6",
"hash": "199ca4184dc35b57432e820cb9385b5be65b28a152f569f711e6e8a3e56323c8"
},
"x86_64_windows": {
"etag": "0x8DEABD2CDD6CF9C",
"hash": "643af23c391340a1069b22a34806c0a0969389ad8fe088160c08d7c53d1b79c4"
},
"aarch64_linux_gnu": {
"etag": "0x8DEABD2CE013270",
"hash": "e314cffdca0b10ed8768f9225316490512386d449cd95c2f7b16e55abe930161"
},
"aarch64_macos": {
"etag": "0x8DEABD2CDEE5BDA",
"hash": "4b36a8a9283808af6d23a0d2d549a299e40045ab8b2279c139cdff6319b6f0c3"
}
},
"0.2.120": {
"x86_64_linux_musl": {

86
tools/ci/release-post-commit.sh Executable file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -CeEuo pipefail
IFS=$'\n\t'
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/../..
tools=()
for tool in tools/codegen/base/*.json; do
tool="${tool##*/}"
tools+=("${tool%.*}")
done
# Aliases.
# NB: Update case for aliases in main.sh, tool input option in test-alias job
# in .github/workflows/ci.yml, and match for alias for tools/codegen/src/tools-markdown.rs.
tools+=(
nextest
taplo-cli
typos-cli
wasm-bindgen-cli
wasmtime-cli
)
# Non-manifest-based tools.
tools+=(
rust
valgrind
)
for tool in "${tools[@]}"; do
(
set -x
git checkout -b "releases/${tool}"
sed -Ei action.yml \
-e "s/required: true/required: false/g" \
-e "s/# default: #publish:tool/default: ${tool}/g"
git add action.yml
git commit -m "${tool}"
git tag -f "${tool}"
git checkout main
)
refs+=",+refs/heads/releases/${tool},+refs/tags/${tool}"
done
set -x
# Copy manifests to tmp dir.
manifests=/tmp/manifests
rm -rf -- "${manifests}"
mkdir -p -- "${manifests}"
cp -- ./manifests/* "${manifests}"
# Checkout manifest-schema branch
schema_version="$(grep -Eo "^version = \".*\" #publish:version" tools/manifest-schema/Cargo.toml)"
schema_version="$(cut -d\" -f2 <<<"${schema_version}")"
if [[ "${schema_version}" == '0.'* ]]; then
schema_version="0.$(cut -d. -f2 <<<"${schema_version}")"
else
schema_version="$(cut -d. -f1 <<<"${schema_version}")"
fi
schema_branch="manifest-schema-${schema_version}"
refs+=",refs/heads/${schema_branch}"
if git fetch origin "${schema_branch}"; then
git checkout "origin/${schema_branch}" -B "${schema_branch}"
elif ! git checkout "${schema_branch}"; then
# New branch with no history. Credit: https://stackoverflow.com/a/13969482
git checkout --orphan "${schema_branch}"
git rm -rf -- . || true
git commit -m 'Initial commit' --allow-empty
fi
# Copy over schema
cp -- "${manifests}"/* ./
# Stage changes
git add .
# Detect changes, then commit and push if changes exist
if [[ "$(git status --porcelain=v1 | LC_ALL=C wc -l)" != "0" ]]; then
git commit -m 'Update manifest schema'
fi
git checkout main
printf 'additional-refs: %s\n' "${refs}"
if [[ -n "${GITHUB_OUTPUT:-}" ]]; then
printf 'additional-refs=%s\n' "${refs}" >>"${GITHUB_OUTPUT}"
fi

View File

@@ -4,6 +4,7 @@
"tag_prefix": "",
"rust_crate": "${package}",
"version_range": ">= 0.8.16",
"ignore": ["0.11.9"],
"signing": {
"version_range": ">= 0.9.13",
"kind": {

View File

@@ -31,9 +31,13 @@ pub struct BaseManifest {
/// Path to binaries in archive. Default to `${tool}${exe}`.
pub bin: Option<StringOrArray>,
pub signing: Option<Signing>,
pub version_range: Option<String>,
/// Include to manifest, but exclude from candidate for latest and omitted versions.
#[serde(default)]
pub broken: Vec<semver::Version>,
pub version_range: Option<String>,
/// Exclude from manifest.
#[serde(default)]
pub ignore: Vec<semver::Version>,
/// Use glibc build if host_env is gnu.
#[serde(default)]
pub prefer_linux_gnu: bool,

View File

@@ -96,7 +96,11 @@ fn main() {
semver_version = format!("{default_major_version}.{version}").parse();
}
}
Some((Reverse(semver_version.ok()?), (version, release)))
let semver_version = semver_version.ok()?;
if base_info.ignore.contains(&semver_version) {
return None;
}
Some((Reverse(semver_version), (version, release)))
})
.collect();

View File

@@ -17,7 +17,7 @@ targets=(
powerpc64le-unknown-linux-gnu
powerpc64le-unknown-linux-musl
riscv64gc-unknown-linux-gnu
# riscv64gc-unknown-linux-musl # tier 2 without host tools
# riscv64gc-unknown-linux-musl # tier 2 without host tools: TODO: https://github.com/rust-lang/rust/issues/156191
s390x-unknown-linux-gnu
# s390x-unknown-linux-musl # tier 3
x86_64-apple-darwin

View File

@@ -37,10 +37,10 @@ image='ghcr.io/taiki-e/tidy'
if [[ -n "${TIDY_DEV:-}" ]]; then
image+=':latest'
else
image+='@sha256:4d7ec52a86bd3c0a2d96627b0ec3aa534afc02c2d56fc9a898df64e29aa03312'
image+='@sha256:1d3a5d57c486cbac02ef3d8ee29bb0768ebd1fbffef61a61d282215464e2551d'
fi
user="$(id -u):$(id -g)"
workdir=$(pwd)
workdir="${PWD}"
tmp=$(mktemp -d)
trap -- 'rm -rf -- "${tmp:?}"' EXIT
mkdir -p -- "${tmp}"/{pwsh-cache,pwsh-local,zizmor-cache,dummy-dir,tmp}
@@ -111,7 +111,9 @@ while IFS= read -r path; do
done < <(git status --porcelain --ignored | grep -E '^!!' | cut -d' ' -f2)
docker_run() {
"${docker}" "${common_args[@]}" "$@"
local script="$1"
shift
"${docker}" "${common_args[@]}" "$@" "${image}" /checks/"${script}"
code2="$?"
if [[ ${code} -eq 0 ]] && [[ ${code2} -ne 0 ]]; then
code="${code2}"
@@ -119,29 +121,23 @@ docker_run() {
}
set +e
docker_run \
docker_run offline.sh \
--mount "type=bind,source=${workdir},target=${workdir}" --workdir "${workdir}" \
--mount "type=bind,source=${workdir}/.git,target=${workdir}/.git,readonly" \
--mount "type=bind,source=${tmp}/tmp,target=/tmp/tidy" \
--mount "type=bind,source=${tmp}/pwsh-cache,target=/.cache/powershell" \
--mount "type=bind,source=${tmp}/pwsh-local,target=/.local/share/powershell" \
--network=none \
"${image}" \
/checks/offline.sh
--network=none
# Some good audits requires access to GitHub API.
docker_run \
docker_run zizmor.sh \
--mount "type=bind,source=${workdir},target=${workdir},readonly" --workdir "${workdir}" \
--mount "type=bind,source=${tmp}/zizmor-cache,target=/.cache/zizmor" \
--env GH_TOKEN --env GITHUB_TOKEN --env ZIZMOR_GITHUB_TOKEN \
"${image}" \
/checks/zizmor.sh
--env GH_TOKEN --env GITHUB_TOKEN --env ZIZMOR_GITHUB_TOKEN
# We use remote dictionary.
docker_run \
docker_run cspell.sh \
--mount "type=bind,source=${workdir},target=${workdir},readonly" --workdir "${workdir}" \
--mount "type=bind,source=${workdir}/.github/.cspell/project-dictionary.txt,target=${workdir}/.github/.cspell/project-dictionary.txt" \
--mount "type=bind,source=${workdir}/.github/.cspell/rust-dependencies.txt,target=${workdir}/.github/.cspell/rust-dependencies.txt" \
--mount "type=bind,source=${tmp}/tmp,target=/tmp/tidy" \
"${image}" \
/checks/cspell.sh
--mount "type=bind,source=${tmp}/tmp,target=/tmp/tidy"
exit "${code}"