-
Notifications
You must be signed in to change notification settings - Fork 9
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
Uberenv as submodule #31
Comments
@white238 @kennyweiss @cyrush, any thought about this? |
I don't see how changing uberenv to a submodule makes it easier to upgrade. They are both essentially locked into a SHA. The only difference is a copy vs a "cd uberenvSubmodule; git checkout develop; git pull". The nice thing about having it directly in the repo is I can put the script (and only the script) exactly where I want it in the repo. |
Locked into a SHA? Copying uberenv in a project implies losing the history, and any information about what version of Uberenv we are using and how to merge in new changes. I agree that the submodule will apply only to the script (and possibly to some shared spack configurations, like compilers for machines) which limits the interest of the process. OK, I’ll try to come back better prepared for this battle :) |
By locking into a SHA, I meant locking into a point in history. Yes i lose git history one way but as a user of uberenv I don't really care about the history that much. If i do care I can go look at the uberenv repo. Also if i remember correctly uberenv requires the spack_configs and packages directories to at the same level as the script. This could obviously be solved with a simple change in uberenv. |
Yes, that’s part of the changes that would need to be done. I’m going back and forth with this submodule thing. Clearly, some projects don’t like adding another project, in source, and I understand them. "Uberenv is just a script" and for a long while it hasn’t be changing much. But during the last year, it has changed, and I have it in at least 6 projects. |
@adrienbernede you can use uberenv a a submodule in any project you like, but its a per project decision. We discussed this for axom, we didn't see a strong benefit, as we would also have to change the directory structure and how it was called if it was a submodule. |
@cyrush, in fact, uberenv cannot be used as a submodule as-is, percisely because it requires changes in the directory structure. For example, the fact that the Spack configuration is in the same directory as the uberenv script prevents from versioning the former in the parent project. |
Thanks @adrienbernede. As @cyrush mentioned, we discussed this at a recent axom meeting due to similar concerns and opted not to make the change. My take is that, if there is a project that wants to use uberenv as a submodule and there are relatively simple changes that can be made to uberenv's structure to support that, we should make those changes. But we should do so in a way that minimizes changes to existing users (e.g. add some knobs that default to the current setting). |
@adrienbernede wrote:
This sounds like a good plan to me. |
A while back @becker33 added a feature at my request i never got around to trying out: spack config --scope site add spack.yaml This should remove any scope/config patching we do. |
I'll say that as a user of For the purpose of debugging, you may want to suggest in your documentation that users run If users can get the commit hash of the most relevant upstream version of |
It would be nice when this is done, uberenv could allow multiple packages directory. Something like:
Then they would just be copied into Spack in order. |
@white238 That does not seem straightforward. |
Oops, I realize I was mixing up "package directory" and "spack config directory" :) |
Uberenv now usable as submodule. |
Uberenv is being used in more and more projects, especially for CI purpose.
However, the fact that is has to be added in-source is a brake to broader adoption and ease of use.
Adapting uberenv to be usable as a submodule will probably:
Still, I think this should be done. If we do it in a separate branch at first, we may have trouble migrating to Spack environments afterward (duplicate the amount of work).
So I’m considering completing my work on environments first, even if some changes in Spack will likely imply adapting uberenv later on, hopefully drastically reducing its scope.
Input welcome
The text was updated successfully, but these errors were encountered: