Skip to content

star keeps its data outside devlore/: extensions belong at ~/.local/share/devlore/star/extensions #918

Closed

Description

@David-Noble-at-work

star keeps its data outside devlore/, alone among the products. Its config and cache are already devlore-scoped:
~/.config/devlore/config.d/star.yaml, ~/.cache/devlore/star. Its data is not.

Path builder Result
devlore.DataPath(...) (cmd/internal/devlore/devlore.go:78) ~/.local/share/devlore/...
devlore.WritLayersDir(), devlore.WritReposDir() ~/.local/share/devlore/writ/{layers,repos}
cmd/star/extension/loader.go:240 xdg.DataPath("star", "extensions") → ~/.local/share/star/extensions

star is part of devlore, so its data belongs at ~/.local/share/devlore/star/extensions, built through
devlore.DataPath("star", "extensions") like writ's.

What moves with it

  • The loader's probe list (loader.go:237-240): the XDG path, and the system path /usr/local/share/star/extensions
    beside it.
  • self install: its target <prefix>/share/star/extensions (cmd/star/star/root.go:322) and
    findExtensionsDir's <exeDir>/../share/star/extensions (:350).
  • The release archive: make dist ships writ and lore and drops star #903 packs the extensions at share/star/extensions, and install.sh and install.ps1
    unpack that tree into the prefix.
  • The base layer in noblefactor-ops, which deploys com.noblefactor.ops.GitHub to the old path through writ.
    Until both move, star gh issues report stops resolving -- that is the report agent rule 3 requires.
  • Existing installs. Anyone with extensions at the old path keeps them there until they reinstall; the loader can
    probe the old location for a release or two, or the move can be clean with a note.

Order

After #917, which makes star's manifest honest. With that in place, an uninstall at the old path removes only star's
own files and leaves another installer's extensions alone, so the move cannot take writ's deployment with it.

Plan and design documents

Kind Document
Plan arrives with the branch
Design #917 — the manifest fix this waits for
Design #903 — where the archive layout was set

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area:CLICommand-line interfaceEpic:ReleaseDistributionRelease, distribution, and self-installbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions