Check the Terraform version from .terraform-version

Open
#68 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@Utkarsh3725 is already working on this.

Since Nov 13, 2026.

  • #74 by @Utkarsh3725 — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
25/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Stale
Tech stack
python, terraform
Domain
cli, devops

Research direction

Start in src/devready/checks/runtimes.py, where the RUNTIMES table and the _first_version pin extractor live, then check open pull request #74 before writing anything. Also look at the explain.py entries, docs/checks.md and the existing unit tests for the other runtime pins. Done means .terraform-version with 1.7.5 gives one warn when Terraform 1.5 is installed, latest gives no pin result, and pytest, ruff check and ruff format --check all pass.

Written by the indexing model from the issue text.

Description

enhancement good first issue help wanted

Problem: Terraform repos pin the CLI with .terraform-version (tfenv/tenv) or .tool-versions (terraform 1.7.5). A wrong Terraform version can rewrite state in a newer format, so it is worth catching early. DevReady does not check it.

Do:

  • Add a terraform row to RUNTIMES in src/devready/checks/runtimes.py (exe terraform, args version, .tool-versions name terraform).
  • Pin file: .terraform-version with _first_version. Values such as latest or min-required must give no result (the extractor returns None). Id project.terraform.pin, miss = warn.
  • Add the explain.py entry, a docs/checks.md row, a CHANGELOG line, the README check list mention and unit tests (plain version, latest, missing terraform, too old).

Done when:

  • .terraform-version = 1.7.5 with Terraform 1.5 installed gives one warn.
  • .terraform-version = latest gives no pin result.

Out of scope: required_version inside *.tf files (needs a file glob; can be a follow-up issue).

Done when: see the list above, plus pytest, ruff check and ruff format --check pass.

Notes:

  • Read-only: never execute project files, never echo file contents; only a validated version or spec reaches the report.
  • No network, no new runtime dependencies (Python >= 3.10 stdlib only).
  • Comment below to claim it and I will assign you.
Dominant language
Python
Stars
2
Forks
3
Avg merge
10h 51m
Merged PRs (30d)
40

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Evalogical-Inc/devReady

All issues in Evalogical-Inc/devReady

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.