diff --git a/content/blog/2026-03-09-v160-release.md b/content/blog/2026-03-09-v160-release.md new file mode 100644 index 0000000..83e5ca7 --- /dev/null +++ b/content/blog/2026-03-09-v160-release.md @@ -0,0 +1,57 @@ +--- +title: "v1.6.0 Release" +date: 2026-03-09 +description: "Rust, Terragrunt, make fix, pre-push hooks, make release, tool version manifests, and git-cliff -- the biggest dev-toolchain release yet." +--- + +v1.6.0 is the largest dev-toolchain release since launch. It adds the eighth language ecosystem, a companion infrastructure tool, three new Makefile targets, and several workflow improvements. This post summarizes everything that shipped. + +## Language and Tool Additions + +**Rust** is the eighth language ecosystem. The container ships clippy, rustfmt, cargo-audit, cargo-deny, and cargo test. The full toolchain is COPY'd from the official `rust:1-slim-bookworm` image, and security tools are installed via cargo-binstall. See the [Rust support announcement](/blog/2026-03-04-rust-support/) for details. + +**Terragrunt** ships as a companion tool to Terraform. Projects that use `terragrunt.hcl` files get automatic format checking with zero additional configuration. See the [Terragrunt announcement](/blog/2026-03-05-terragrunt-support/) for how detection and gating work. + +## New Makefile Targets + +**`make fix`** runs formatters and auto-fixable linter rules in-place across all eight language ecosystems. The intended workflow: run `make fix` to auto-remediate, then `make check` to verify. See the [`make fix` announcement](/blog/2026-03-03-make-fix-and-mirror-automation/) for the full story. + +**`make release VERSION=x.y.z`** automates the release process. It validates the version format, ensures the working tree is clean, creates a signed git tag, and pushes it to trigger the build pipeline. The tag push fires the existing GitHub Actions workflow that builds, signs, and publishes the container image. + +```console +$ make release VERSION=1.6.0 +Validating version format... +Creating tag v1.6.0... +Pushing tag to origin... +Tag v1.6.0 pushed — build pipeline triggered. +``` + +**Pre-push hooks** run `make check` before every `git push`, catching issues before they reach CI. The hook is installed via `make install-hooks` and executes the full validation suite inside the container. If any check fails, the push is rejected with clear output about what needs fixing. + +## Workflow Improvements + +**Tool version manifests** are now attached to every GitHub release. The `report-tool-versions.sh` script runs inside the published container image and produces a JSON manifest listing every tool and its exact version across all eight language ecosystems. The [container versions page](/docs/container/versions/) is automatically updated from these release assets. + +**git-cliff** ships in the container for automated changelog generation. Projects that use conventional commits can generate changelogs with `git-cliff --output CHANGELOG.md` inside the container. + +**Conventional commit scopes** were expanded in v1.1.0 of the [pre-commit hook](https://github.com/devrail-dev/pre-commit-conventional-commits). The valid scope set grew from 8 to 15, adding `ruby`, `go`, `javascript`, `rust`, `security`, `changelog`, and `release`. All DevRail repositories were bumped to v1.1.0. + +## Upgrade + +Pull the latest image: + +```console +docker pull ghcr.io/devrail-dev/dev-toolchain:v1 +``` + +Or pin to the exact version: + +```console +docker pull ghcr.io/devrail-dev/dev-toolchain:1.6.0 +``` + +Projects using the DevRail template Makefile with `:v1` already get the latest release on next `make check`. To pin an exact version, set `DEVRAIL_TAG` in your Makefile. + +## Full Changelog + +See the [CHANGELOG](https://github.com/devrail-dev/dev-toolchain/blob/main/CHANGELOG.md) for the complete list of additions, changes, and fixes in v1.6.0.