[WIP] Enhancement Proposal: Mirror Improvements #705
[WIP] Enhancement Proposal: Mirror Improvements #705xjrc wants to merge 5 commits intospack:developfrom
Conversation
Conflicts: lib/spack/spack/package.py
|
Don't forget to update the documentation before the PR is merged! |
|
@tgamblin: I've seen PR #558 and I don't believe that it covers the functionality that I'd like to implement here. In particular, #558 (and please @adamjstewart correct me if I'm wrong here) aims to make it easier to set up and specify licenses for licensed software while this PR aims to simplify the process of specifying and using archives for packages that aren't publicly available. I imagine, though, that the features delivered by these PRs can be used together to improve a number of packages (since many packages that are licensed are also mirror only). |
|
I installed something that wasn't publicly available without any of these enhancements:
The only glitch is that now Spack prints a lot of spurious "can't find" messages. But it basically works. |
|
@citibeth: That's the workflow that I've been using for all of my packages with private archives as well. The goal with this PR is to remove a lot of the cruft in this workflow (e.g. the "can't find" messages, the need for a |
|
@xjrc Is this PR still actively developed? |
|
@alalazo: No, I haven't worked on this PR in quite some time. I've only kept it open because I've considered getting back to it, but no luck thus far. |
|
Closed as abandoned. Feel free to reopen if you restart working on this. |
The changes in this pull request aim to improve support for mirrors to make it more straightforward to support installation strategies for proprietary/licensed packages (see #553 and this discussion) and to make it easier to test/develop infrastructure related to mirror/local package fetching.
For package developers, the following changes in this PR are the most relevant:
mirror_onlyflag to the packageversionfunction, which indicates that the given version of the given package can only be retrieved through local mirrors.mirror_onlydefault packages, which is useful when creating Spack installation scripts for primarily proprietary packages (e.g. the PGI compiler; see Add Licensed Software Support #558).mirror_onlyversions of packages if these packages cannot be found in Spack mirrors.While this pull request is still being actively developed, the following section will enumerate all of the work that still needs to be done:
mirror_onlyflag to theversionpackage function.mirror_onlypackages that cannot be found in local mirrors.mirror_onlyby default packages.FetchStrategysubclass.mirror_onlyflags from thePackage.[do_patch|do_stage|do_fetch]functions and change the test cases that use these flags to usemirror_onlypackage versions instead.