Skip to content

spack concretize reorganizes spack.yaml #12313

@adamjstewart

Description

@adamjstewart

The way Spack Environments were explained to me was that if you maintained a project on GitHub, you could add a spack.yaml file to your repo that lists its dependencies. Then you could clone the project, cd into the directory, and run spack install or spack concretize; spack install to install all of its dependencies. However, spack concretize appears to modify spack.yaml, a file which is likely to be under version control. No other Spack command that I know of reorganizes your configuration files, and spack concretize certainly shouldn't either.

Steps to reproduce the issue

$ cat spack.yaml
spack:
  specs:
  - 'gdal+python'
  - 'python@3:+sqlite3'
  - 'py-earthengine-api'
  - 'py-flake8'
  - 'py-matplotlib'
  - 'py-numpy'
  - 'py-pandas'
  - '[email protected]:'
  - 'py-scikit-learn'
  - '[email protected]:'
  - 'py-tables'
  - '[email protected]:'
  - 'py-torchvision'
$ spack concretize
...
$ cat spack.yaml
spack:
  specs:
  - gdal+python
  - python@3:+sqlite3
  - py-earthengine-api
  - py-flake8
  - py-matplotlib
  - py-numpy
  - py-pandas
  - '[email protected]:'
  - py-scikit-learn
  - '[email protected]:'
  - py-tables
  - '[email protected]:'
  - py-torchvision
  config: {}
  mirrors: {}
  modules:
    enable: []
  packages: {}
  repos: []
  upstreams: {}
  definitions: []
  view:
    default:
      root: /Users/Adam/Documents/UIUC/Research/Crops/crop_classification/.spack-env/view
      projections: {}

Removing quotes on specs containing : is one thing, but adding a root that is computer-specific makes it possible to maintain this file under version control.

@tgamblin @citibeth

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions