Read the Java pin from .sdkmanrc

Open
#70 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.

  • #75 by @Utkarsh3725 — open

Assessment

Difficulty
3/5
Estimated time
Half a day
Newbie friendliness
74/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
java, python
Domain
cli, tooling

Research direction

Start with the java row of RUNTIMES and the existing pins in src/devready/checks/runtimes.py, then read explain.py, docs/checks.md and the CHANGELOG format. Add a _sdkman("java") extractor that reads only the java= line of .sdkmanrc and returns the leading version digits, placed after .java-version. Done when the unit tests cover java=21.0.2-tem, comments, a missing java line and an old version, and pytest, ruff check and ruff format --check pass.

Written by the indexing model from the issue text.

Description

enhancement good first issue help wanted

Problem: Java teams using SDKMAN pin the JDK in .sdkmanrc:

java=21.0.2-tem

DevReady already checks Java (.java-version, pom.xml, build.gradle) but ignores .sdkmanrc.

Do:

  • Add a pin to the java row of RUNTIMES in src/devready/checks/runtimes.py: ("project.java.sdkman", ".sdkmanrc", _sdkman("java"), Status.WARN).
  • _sdkman(name) returns an extractor that reads only the java= line (ignore comments and other candidates) and returns the leading \d+(\.\d+){0,2}, dropping the vendor suffix (-tem, -graal).
  • Put it after .java-version in the list (the first pin found wins).
  • Add the explain.py entry, a docs/checks.md row, a CHANGELOG line and unit tests (java=21.0.2-tem, comments, no java line, too old).

Done when:

  • .sdkmanrc with java=21.0.2-tem and Java 17 installed gives one warn showing 21.0.2.
  • .sdkmanrc with only gradle=8.7 gives no Java pin result.

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.