Files
termscp/just/changelog.just
T
Christian Visintin afbc74113f
Deploy docs to GitHub Pages / deploy (push) Has been cancelled
Site / build-site (push) Has been cancelled
Install.sh / build (macos-latest) (push) Has been cancelled
Install.sh / build (ubuntu-latest) (push) Has been cancelled
CI / toolchain (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / install-scripts (push) Has been cancelled
CI / crates-ubuntu-latest (push) Has been cancelled
CI / crates-windows-latest (push) Has been cancelled
CI / doc (push) Has been cancelled
CI / deny (push) Has been cancelled
CI / crates-macos-latest (push) Has been cancelled
ci: migrate project automation to Just (#442)
* ci: migrate project automation to Just

Centralize build, test, release, dependency, hook, and website commands in Just recipes. Pin workflow tooling, use the repository toolchain, and run the complete validation set in CI.

* ci: codex being codex

* docs: update CLAUDE.md for just task runner migration

Reflect the switch to just recipes for build/test/clippy/fmt, note
dprint replacing raw rustfmt, and add a cross-platform code requirement.

* fix: resolve clippy warnings breaking CI on ubuntu and windows

Use clone() instead of implicit to_string() on already-owned String
values, gate the windows-only unused make_file_at import behind
cfg(posix), and fix unused mut / manual assign-op in the windows-only
localhost test.

* fix: fmt
2026-08-28 19:29:58 +02:00

45 lines
1.6 KiB
Plaintext

set positional-arguments
# Print the unreleased changelog section to stdout (preview only), e.g. `just changelog_preview 8.1.0`
[group('changelog')]
changelog_preview version:
git-cliff --config cliff.toml --unreleased --tag "v$1" --strip all
# Add a new entry to CHANGELOG.md from the unreleased conventional commits, e.g. `just changelog 8.1.0`
[group('changelog')]
changelog version:
#!/usr/bin/env bash
set -euo pipefail
version="$1"
if [[ ! "$version" =~ ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$ ]]; then
echo "invalid release version: $version (expected MAJOR.MINOR.PATCH)" >&2
exit 2
fi
tag="v$version"
section="$(git-cliff --config cliff.toml --unreleased --tag "$tag" --strip all)"
if [ -z "$section" ]; then
echo "No unreleased conventional commits found; nothing to add." >&2
exit 0
fi
anchor="$(printf '%s' "$version" | tr -d '.')"
secfile="$(mktemp)"
tmp="$(mktemp)"
printf '%s\n' "$section" > "$secfile"
# Insert a TOC entry before the first existing version entry and the rendered
# section before the first existing version heading, keeping the title + TOC.
awk -v secfile="$secfile" -v ver="$version" -v anc="$anchor" '
!toc_done && /^[[:space:]]*- \[[0-9]/ {
print " - [" ver "](#" anc ")"
toc_done = 1
}
!body_done && /^## [0-9]/ {
while ((getline line < secfile) > 0) print line
print ""
body_done = 1
}
{ print }
' CHANGELOG.md > "$tmp"
rm -f "$secfile"
mv "$tmp" CHANGELOG.md
echo "CHANGELOG.md updated for $tag"