Skip to content
Merged
Show file tree
Hide file tree
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
42 changes: 42 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
## 3.1.0 (April 24, 2026)

* NEW FEATURE: Add `latest-allowed` version resolution from `required_version` constraint in Terraform files, supporting `=`, `>=`, `>`, `<=`, and `~>` operators (Oliver Ford <dev@ojford.com>, Mike Peachey <mike.peachey@bjss.com>)
* NEW FEATURE: Add `TFENV_SKIP_REMOTE_CHECK` to skip checking remote versions before installing (David Forster <david.forster@capgemini.com>)
* NEW FEATURE: Add per-version file locking to prevent concurrent install races, fixing #422 (Mike Peachey <mike.peachey@bjss.com>)
* NEW FEATURE: Load bashlog conditionally based on shell interactivity via `TFENV_BASHLOG`, fixing #229 (Mike Peachey <mike.peachey@bjss.com>)
* NEW FEATURE: Improve custom remote compatibility for Artifactory and similar mirrors (Mike Peachey <mike.peachey@bjss.com>)
* NEW FEATURE: Add Dockerfile for containerised usage and end-to-end testing (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Filter pre-release versions from `latest` resolution; use `latest:` (with colon) or alphabetic regex to include pre-releases, fixing #375 and #204 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: CLI argument takes precedence over `TFENV_TERRAFORM_VERSION` for install, fixing #441 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Route tfenv log output to stderr in terraform shim context, fixing #374 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Do not assume brew is available for GNU grep detection, fixing #442 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Operator precedence bug and unbound variable in version-name resolution, fixing #406 and #431 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Double-quoted trap in tfenv-install vulnerable to word-splitting, fixing #455 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Unquoted curl options in curlw() causing failures with paths containing spaces, fixing #454 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Unquoted argument iteration in tfenv-exec causing word-splitting, fixing #453 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Stray closing paren in syslog tag default in bashlog, fixing #451 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Remove dead code and fix indentation in install script, fixing #452 and #460 (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Fix `realpath` not available on macOS (Oliver Ford <dev@ojford.com>)
* FIX: Fix use of `-chdir` with an absolute path, fixing #354 (Oliver Ford <dev@ojford.com>)
* FIX: Cope with different line endings in `.terraform-version` files (Adam Christie <fractos@gmail.com>)
* FIX: Fix Windows OS selection with underscore handling for Cygwin-like tools (Jack Blower <Jack@elvenspellmaker.co.uk>)
* FIX: Fix regex for darwin arm64 to amd64 workaround (Bryan Hiestand <bryanhiestand@users.noreply.github.com>)
* FIX: Fix macOS architecture selection for TFENV_ARCH (Deniz Genç <25902330+denizgenc@users.noreply.github.com>)
* FIX: Replace use of `rev` for Windows compatibility (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Fix latest-allowed version matching for partial versions (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Fix test runner to exit with correct status codes reflecting actual failures (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Fix test infrastructure bugs including undefined functions and missing quotes (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Revert premature optimisation that skipped release list checks (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Fix GitHub Actions matrix.os strategy (TAKANO Mitsuhiro <takano32@gmail.com>)
* FIX: Update README.md for zsh users (EC2 Default User <kuredev@users.noreply.github.com>)
* FIX: Add fish shell PATH example to README.md (sato-s <s.sato.desu@gmail.com>)
* FIX: Add zprofile example to README.md (Kasper Christensen <kasper@friischristensen.com>)
* FIX: Update terraform docs link in README.md (Bob Idle <102661087+bobidle@users.noreply.github.com>)
* FIX: Update CI badge in README.md (David Beitey <david@davidjb.com>)
* FIX: Correct TFENV_ARCH defaults in README.md (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Update Windows support status in documentation (Mike Peachey <mike.peachey@bjss.com>)
* FIX: Fix legacy `ENV` syntax in Dockerfile to use `=` format (Mike Peachey <mike.peachey@bjss.com>)
* TEST: Complete test coverage overhaul — 7 new test suites (commands, list-remote, pin, version-file, pre-release filtering, env vars, resolve-version), infrastructure improvements, and isolation enhancements (Mike Peachey <mike.peachey@bjss.com>)
* MAJOR THANKS: Oliver Ford for the `latest-allowed` feature and macOS fixes
* MAJOR THANKS: All community contributors for bug reports, fixes, and patience during the long gap between releases

## 3.0.0 (July 15, 2022)

* BREAKING CHANGE: Don't install ggrep on macs automatically; it's just not good practice. ggrep now a pre-requisite for Mac.
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ RUN wget -O /tmp/tfenv.tar.gz "https://github.com/tfutils/tfenv/archive/refs/tag
&& mv "/tmp/tfenv-${TFENV_VERSION}/LICENSE" /usr/local/share/licenses/tfenv \
&& rm -rf /tmp/tfenv* \
;
ENV TFENV_ROOT /usr/local/lib/tfenv
ENV TFENV_ROOT=/usr/local/lib/tfenv

ENV TFENV_CONFIG_DIR /var/tfenv
ENV TFENV_CONFIG_DIR=/var/tfenv
VOLUME /var/tfenv

# Default to latest; user-specifiable
ENV TFENV_TERRAFORM_VERSION latest
ENV TFENV_TERRAFORM_VERSION=latest
ENTRYPOINT ["/usr/local/bin/terraform"]
Loading