Skip to content

Add a spack update command that updates a user's local Spack git repo #9134

@goxberry

Description

@goxberry

spack update: like brew update, but for spack

A command that behaves like Linuxbrew/Homebrew's brew update. That is, it:

  • fetches develop from origin
  • merges fetched develop where appropriate
  • possibly stashes existing changes on current branch, checks out develop, pulls develop (i.e., git-fetch and git-merge), checks out the old current branch, and re-applies stashed changes
  • does not install or build anything
  • does not do anything more than fetch/merge/stash/unstash operations on the local git repo copy of someone's spack installation

Rationale

Right now, to update spack, I need to

pushd ${SPACK_ROOT}
git checkout develop && git fetch origin && git merge --ff-only origin/develop && \ 
git checkout $MY_OLD_BRANCH # or use git-pull, or simiilar
popd

whereas to do something vaguely equivalent in Homebrew is brew update. Consequently, it's way easier to stay up-to-date with homebrew-core/master than it is to stay up-to-date with spack.

Description

See above for longer description. Succinctly, I'd like a spack-update command that behaves like brew-update does for Homebrew/Linuxbrew.

Alternatives

  • Do nothing. Fine by me, but the number of commands required slows me down in comparison to running a single command to update my copy of spack's github repo.
  • Have spack update do more stuff, like actually upgrade packages, potentially even in-place, or install new packages; I think adding more functionality to the general idea of "implement a single command that just keeps the spack repo up-to-date and nothing else" starts into feature creep.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions