Skip to content

update should account for repo-local shiv tool declarations #108

Description

@brownie-ricon

Problem

Inside a repo that declares a shiv-backed tool in mise.toml, e.g.

[tools]
"shiv:modules" = "latest"

running:

shiv update modules

updates shiv's registry-managed install, not necessarily the shiv:modules install that the current repo will resolve through mise.

That is surprising from an operator/agent perspective: when I'm standing in a codebase and updating a dependency named in that codebase's mise.toml, I expect the update to affect the tool version that repo will actually use. Otherwise shiv update modules can report success while mise x shiv:modules@latest -- modules ... or repo task execution still sees stale behavior.

Desired behavior

When shiv update <name> is run inside a repo with a matching shiv:<name> tool declaration, shiv should either:

  1. update/refresh the repo-scoped mise install that declaration resolves to; or
  2. clearly warn that it is updating the global shiv registry install instead, and print the repo-scoped command to run.

Context

This came up after KnickKnackLabs/modules#22 / modules v0.9.2: updating the shiv-managed modules install and updating the repo-local mise shiv:modules install are distinct paths. The current behavior makes it easy to get a false sense of freshness.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions