Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions content/blog/2026-03-09-v160-release.md
Original file line number Diff line number Diff line change
@@ -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.