fix --plan: exact switch commands for nvm, pyenv, mise and asdf
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 72/100
Research direction
Start in src/devready/managers.py, where the ordered MANAGERS table and the fnm-only exact-command lookup live, and check how the pin parser marks a version as fully validated. Add one row each for nvm, pyenv, mise and asdf, then add per-manager unit tests covering present and absent cases. Done when a .nvmrc pin of 20 with nvm on PATH yields nvm install 20 && nvm use 20, no manager on PATH leaves output unchanged, and range pins such as >=20 <21 never produce a manager command, with pytest and ruff passing.
Written by the indexing model from the issue text.
Description
Problem: When the installed version does not satisfy a pin, DevReady suggests an exact switch command only when the pin is a plain version and fnm is on PATH (see src/devready/managers.py). Users of nvm, pyenv, mise or asdf still get the generic "switch versions with your version manager" prose.
Do:
- Extend the ordered
MANAGERStable inmanagers.pywith one row per supported manager, keeping the existing lookup rules (PATH only, never executed, first match wins):- nvm:
nvm install 20 && nvm use 20 - pyenv:
pyenv install -s 3.12 && pyenv local 3.12 - mise:
mise use node@20/mise use [email protected] - asdf:
asdf install nodejs 20 && asdf local nodejs 20
- nvm:
- Only build a command from a version the pin parser fully validated (plain
X,X.Y,X.Y.Z); ranges keep the generic suggestion. - Keep the suggestion on one line and inside the existing text wrapping; JSON/SARIF suggestions follow automatically.
- Add unit tests per manager (present/absent), a CHANGELOG line, and update
docs/architecture.mdor the managers comment if the table shape changes.
Done when:
- With
nvmon PATH and.nvmrc=20, the suggestion isnvm install 20 && nvm use 20. - With no manager on PATH, output is unchanged from today.
- A range pin such as
>=20 <21never produces a manager command. pytest,ruff checkandruff format --checkpass.
Notes:
- Managers stay lookup-only;
fix --plannever runs them. - Use each manager's documented non-interactive flags (for example pyenv's
-s).
- Dominant language
- Python
- Stars
- 2
- Forks
- 3
- Avg merge
- 10h 51m
- Merged PRs (30d)
- 40
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Evalogical-Inc/devReady
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Evalogical-Inc/devReady#71 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Evalogical-Inc/devReady#66 ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 45/100
Evalogical-Inc/devReady#72 ·
Maintainers usually reply within 1 day
-
Read the Java pin from .sdkmanrcPossibly taken @Utkarsh3725 claimed this today. Openenhancement good first issue help wanted
Difficulty 3/5 Half a day Newbie friendliness 74/100
Evalogical-Inc/devReady#70 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 3/5 1-2 days Newbie friendliness 72/100
Evalogical-Inc/devReady#69 ·
Maintainers usually reply within 1 day
All issues in Evalogical-Inc/devReady
Similar issues
-
Email validation accepts a trailing newlinePossibly taken @marcello-pichini claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dbt-labs/spark-utils#51 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
bug frontend
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
vendrabuck/HERD#1419 ·
Maintainers usually reply within 1 day