software-mansion / software-mansion/starkup

It should be possible to update local `.tool_versions` via starkup as well

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

Nobody has claimed this yet.

Dominant language
Shell
Stars
35
Forks
6
Avg merge
6h
Merged PRs (30d)
1

Description

Currently, when running starkup, we only update the global (home dir) .tool_versions

https://github.com/software-mansion/starkup/blob/01a19e2f0bd0640b2a137bfe0426ce83840e9826/starkup.sh#L524-L524

However, since starkup is intended not only as one-time installer, but also an updater for all tools, it seems it would be reasonable to also allow using it ot update project's .tool_versions:

Name                  Version            Source                                    Installed
cairo-coverage        0.6.0              /Users/user/.tool-versions                true
cairo-profiler        0.16.0             /Users/user/.tool-versions                true
scarb                 nightly-2025-06-07 /Users/user/repos/starkup/.tool-versions  true
starknet-devnet       0.7.2              /Users/user/.tool-versions                true
starknet-foundry      0.59.0             /Users/user/.tool-versions                true

This can be done in various ways, for example:

  1. --local flag: in this case we run asdf set without --home
  2. Automatic detection of non-home .tool-versions -> if present, updates both global tools, and the tools listed in local .tool_versions (and only them) automatically

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Read starkup.sh around line 524 and inspect how the global .tool_versions file is updated. Trace the existing argument parsing and update flow, then compare the proposed --local and automatic-detection behaviors. Done means the chosen behavior updates the intended local tools while preserving the existing global update behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.