Terratest v1.0.1 - Maintenance Phase and Deprecations
Terratest v1.0.1 was published on June 27, 2026, and it marks the start of the v1 maintenance phase for the Gruntwork test library. The main user visible change is a set of deprecation annotations that point users away from helper packages planned for removal in v2, while keeping this release safe for current v1 users. It is not marked as a prerelease.
The full release notes and downloads are on the GitHub release page.
v1 maintenance is now explicit
Terratest v1.0.1 makes the v1 branch policy concrete. The release notes say v1 gets security fixes only, delivered on the v1 branch, until twelve months after v2.0.0 reaches general availability.
The practical point is simple. Teams pinned to v1 module paths do not need to move immediately, because v2 uses new /v2 module paths. That keeps normal Go module behavior intact and avoids runtime change in this release.
Release notes also call this commit the permanent v1 head, with the long lived v1 branch cut from it. For maintainers, this is the moment to stop treating v1 as the place for new helper behavior and start planning any v2 import changes.
Deprecations now have replacement guidance
Most of the release is about preparing users for v2 without breaking v1. The deprecated packages now carry // Deprecated: doc comments, and the notes say each comment names the concrete replacement.
That matters in editors and in generated docs. A call into modules/collections can point at the Go standard library slices package. modules/environment points users to os.Getenv at the call site. modules/git and modules/version-checker point toward shelling out with os/exec where that work belongs.
For Slack users, modules/slack now points directly at github.com/slack-go/slack. That is a small but useful cleanup: Terratest no longer needs to be the wrapper in the middle for code that can call the client directly.
Helm, Kubernetes, Packer, and AWS get targeted fixes
This is not only metadata work. Helm tests can now use install --generate-name by omitting an empty release name. That matches a real Helm path and removes an awkward edge case for tests that let Helm choose the name.
On Kubernetes, PodNotAvailable errors now surface container status. That gives test failures more useful context when a pod is not ready. Instead of only knowing that availability failed, operators can see the state that caused it.
Packer also gets a practical fix: directory templates now run packer init. AWS coverage expands with ECR Public repository support. Those are narrow changes, but they are the kind that remove glue code from test suites.
Dependency and CI work stays mostly internal
The changed list includes a Slack client bump from 0.15.0 to 0.23.1, Kubernetes dependencies moving to v0.36.2, and a Terragrunt pin bump to 1.0.5. There are also repeated golangci-lint config updates and lint fixes.
Most users will not feel those changes directly unless they maintain Terratest itself or debug transitive dependency pressure. The release also adds binary publishing on tag push and stale bot automation for inactive issues and pull requests. That is project maintenance, not a new testing feature.
Upgrade notes
The release notes call v1.0.1 safe to upgrade to from recent v1.x versions. Nothing is removed, and runtime behavior is not changed by the deprecation annotations.
The work to schedule is source cleanup. If a codebase imports modules/collections, modules/environment, modules/git, modules/version-checker, or modules/slack, expect those imports to disappear in v2. The release includes docs/v2-import-map.md for the import path map, so use that file when planning a v2 move instead of guessing.
Where to get it
- Release page: GitHub release page
- Repository: Terratest repository
- Tag:
v1.0.1