-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Spack's "--config-scope" #51
Comments
relevant: I am pretty sure user scopes are going away in spack If you have a packages.yaml config (even in ~/.spack config) why can't you hand that dir to uberenv using the existing logic? |
@cyrush because in his case, the package.yaml is not portable but specific to his machine. |
I'm hoping to have a sharable |
Can environments help with this? or possibly handle this on the uberenv side where you combine two packages.yaml? We run into a similiar thing with devtools on axom/serac where the it would be helpful if you could have a base file that you append to in some manner. |
as @white238 mentioned --- I think exploring composing Using a combo of an upstream and user config seems like a pretty fragile road to travel. |
There is a solution now: check in per-host host spack configs -- like (esteban's machine) and revision control those. |
My initial thought was to use So I created a Spack instance and registered my external CMake install in it. However, when I try to effectively install something with it, Spack fails to find it... This incoherence looks like a bug. |
The more duct tape involved, the less chance there is for a robust success :-( |
Well, not easy to design something both robust and flexible when the context is "a developer machine". |
Anyways, |
Like @cyrush said, being able to compose |
@estebanpauli, That's why merging the |
At first glance, merging |
I hadn't thought about the user case of making later calls to spack. That would present a serious complication. |
Maybe we could simply allow not to remove the user scope of Spack. E.g. an |
Since we are patching Spack, we could as well patch it to point the user config to |
OK, maybe add this to Uberenv: |
I was wondering if were could leverage Spack's environment files ability to include files, variables, and the "when" logic to solve this. For a completely untested and contrived example:
|
@white238 -- if folks can pave the way, that sounds awesome |
Currently, uberenv copies the spack configuration files for the appropriate platform from the user's source repo. This works well, so long as the needed tools are in standard locations. When this is not the case, users can use the
--upstream
option to chain spack installations (https://spack.readthedocs.io/en/latest/chain.html). This allows the user to specify extra packages that have been built by an external version of spack. However, there is no way to add extra packages that are in custom locations on a user's machine. For example, on my mac, the pre-installed cmake and doxygen are older than what I need. Rather than having spack build these, I downloaded them and put in /Users//Applications/. It would be nice if I can tell spack about these while still using a project-specificscripts/spack/configs/darwin/
.Proposal: add a
--config-scope
option to leverage spack's equivalent feature (https://spack.readthedocs.io/en/latest/configuration.html#custom-scopes) just like--upstream
is currently supported.With the above, a user could easily have a separate configuration with tools that were installed manually rather than through spack.
As an additional option, uberenv could also support
--use-user-config
to use the configuration found at~/.spack
. This would be equivalent to--config-scope ~/.spack/<platform>
. This would be convenient for users who user their user-specific configuration files to just keep track of custom tools that are not affected by the compiler (e.g. perl, python, cmake, doxygen, flex, bison, etc).The text was updated successfully, but these errors were encountered: