All notable changes to ush will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] and then be cut into a version section.SECURITY.md with a private-disclosure policy.CONTRIBUTING.md describing the local-CI flow and project layout..github/..editorconfig pins charset / EOL / indent.Shellcheck CI workflow lints install.sh and every scripts/*.sh.Benchmark CI job tracks parser and full .ush → sh compile-time
benchmarks against the main baseline (on gh-pages) and fails
PRs on >25% regression.Deny CI job runs cargo-deny for license/source/advisory
enforcement.match exhaustiveness during the effects
pass: missing variants on enums, missing arms on Bool and Unit,
and literal-only matches on String/Int/tuples/lists are now
rejected with a clear diagnostic instead of compiling to a
silently-fall-through shell branch.examples/*.ush is type-checked through
ush check, not just the two that had bespoke runners..dockerignore keeps the docker build context lean; the docker
image now runs as the non-root ush user (uid 1000).rust-version = "1.85" as the MSRV.clippy and test jobs across Ubuntu and macOS, adds
an MSRV gate, and runs cargo audit (also on a weekly schedule).sigaction(2) instead of signal(3), and
the SIGCONT pgid path rejects PIDs that do not fit pid_t.canonicalize()
fails; the codegen invariant for control-flow statements is now an
error rather than unreachable!().install.sh hardens its trust surface: umask 077, best-effort
set -o pipefail, no more clobber of the caller’s $TMPDIR, and
curl/wget flags pin HTTPS + TLS 1.2 with retries on remote
URLs (local file:// URLs in CI smoke-tests bypass these flags).panic = "abort". The Linux/macOS
release archives drop from ~5.6 MB to ~2.9 MB for ush and from
~2.7 MB to ~1.3 MB for ush_lsp.Maintenance release. See the GitHub release notes for the full diff.
For 0.6.0 and earlier, refer to the GitHub releases page.