When chaining against chained envs, get upstreams+envrepo's #1396
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR makes the env chaining logic in
spack stack create env --upstream
more robust, specifically by recursively checking to see whether the upstream environments are themselves chained environments and adding those to the new environment's list of upstreams. It also automatically populates an envrepo/ repo directory from those found in the upstream environments.I've tried to support a couple users now in chaining against, e.g., upp-addon-env, and it quickly gets complicated/manual labor-intensive, so these changes should make it much easier for developers to deploy their own test environments.
Testing
Tested on personal machine & Gaea C5. Includes unit testing.
Applications affected
GSI, UWM, UPP, and anything else that uses addon envs.
Systems affected
all
Dependencies
none
Issue(s) addressed
none
Checklist