Fix hydrogen@develop build#8262
Conversation
|
So, the keyword develop should be in the range of @0.99: |
|
It isn't: (trimmed paths, they're all correct) All of the Fixing the flake8 now. |
|
That should've fixed the flake8.
|
|
| def cmake_args(self): | ||
| spec = self.spec | ||
|
|
||
| if '@:0.87.7' in spec and '%intel@:17.0.2' in spec: |
There was a problem hiding this comment.
No, it's correct. The problem is hydrogen shouldn't actually have releases not covered by it: those are all still elemental...
|
|
|
It's the What is the correct way to specify multiple possibilities in EDIT: or is there one? I read through the packaging guide and there aren't any examples of this happening. |
Can you try: This looks for versions up to and including 0.84 and versions 0.99 and above. |
that should work, i used those in other places, i.e. |
|
That did it. I grepped for then I'll fix lbann in this pr since it's still related to hydrogen, but I don't know enough about the others. |
|
@mcneish1 |
I would expect True, False, True, False based on how they're being used in the packages I quoted. |
|
Yeah, I think they're all wrong. Good catch. |
f47a57c to
9ef4441
Compare
|
This is pending a few edits to |
|
I would like to see the range and conflicts statement go back into the hydrogen package so that it properly excludes earlier builds from the LLNL/elemental repo from using the hydrogen spack package for versions that are out of range. |
|
I'm convinced that's the wrong direction to specify the dependencies. If lbann needs a current version of hydrogen, it seems more correct to put the (We should also delete LLNL/Elemental archived releases before 0.99 as they are no different from elemental/Elemental's) |
|
I am not worried about LBANN using the wrong version of hydrogen, I am worried that someone will try to use the older versions of the LLNL/Elemental.git repo, add the version numbers to a local spack recipe, and not realize that they should be using the Elemental spack package. |
|
Things tested with
Things to test:
Fixing flake8 now (I'll learn eventually...) |
|
Fixed flake8; updated 1st post TODOs |
* Prohibit installation of hydrogen previous to 0.99
|
@bvanessen
|
| ) | ||
|
|
||
| @when('@:0.84' or '@0.99:') | ||
| @when('@:0.98.0') |
There was a problem hiding this comment.
This guard should be '@0.84:0.98'
| raise UnsupportedCompilerError( | ||
| "Elemental {0} has a known bug with compiler: {1} {2}".format( | ||
| spec.version, spec.compiler.name, spec.compiler.version)) | ||
| @when('@0.99:') |
There was a problem hiding this comment.
We need to get the guard here to be '@:0.84,0.99:' so that local builds can also work.
There was a problem hiding this comment.
See my comment in the main thread, this really doesn't seem like the right solution.
Any idea what's going on with int64_blas?
There was a problem hiding this comment.
No, not sure what is going on with int64_blas
There was a problem hiding this comment.
Also, I am fine with merging this PR without figuring out the int64_blas problem yet, and that is something that we can work on in the future.
|
@davydden or @adamjstewart (or someone else?) Is there a way to handle I read through a little of how the
To me, this indicates that even if I were to say Questions
|
IMO you should simply avoid using
AFAIK it's not possible right now.
see above, IMO you should simply not use it. |
|
So something like @Local or @ exists below the lowest numeric range and is extremely useful for people that actively develop packages that are built with spack. It is a key part of the spack setup usage. As for where it exists in the range and with respect to the numeric versions, I think that it is fine to have develop and master be special and any other text string handled differently. I also don't think that we are going make a mass PR to change how all of spack uses @Local, but we can get @tgamblin @becker33 or @scheibelp to chime in on that. At this point, I would really like to get this PR merged so that it is easier for others of the LBANN team to use the updated Hydrogen version. If the spack dev team wants to rethink all of the version numbering they can do that in a separate PR. Lets please put this one to bed, even if it is not perfect. |
can you elaborate why? I am actively developing packages built with Spack and personally have no use for this. |
|
When we work on developing LBANN I have frequently used spack to setup all of the dependencies for LBANN using spack setup. This allows me to work in my git repo, and the spack setup command gives me a cmake environment that has all of the correct paths to the spack installed dependencies. Quite frankly, I don't know how more people don't use the spack setup command it is great when it works. |
that all I agree and I also build all dependencies via Spack for complicated packages. I am just saying that I don't see where together with for the already built |
|
When you use spack setup, it can install the package into the spack ecosystem, so it requires a version string that is not develop, master, or a legal version number. It can be any string other than those and local is a common one. |
hm, so if a package has @tgamblin ping. |
|
Perhaps, I only quickly skimmed the PR. |
adamjstewart
left a comment
There was a problem hiding this comment.
One last request that should fix your @when problem.
| def cmake_args(self): | ||
| spec = self.spec | ||
| raise InstallError("Hydrogen did not exist before v0.99." + | ||
| "Did you mean to use Elemental instead?") |
There was a problem hiding this comment.
Can we replace this with a conflicts statement? Something like:
conflicts('@0:0.98', msg='Hydrogen did not exist before v0.99. ' +
'Did you mean to use Elemental instead?')The lower bound of 0 allows your @local to work. The string was also missing a space after the period.
The benefit of conflicts over wrapping this in cmake_args is:
- It makes more logical sense. This has nothing to do with
cmake. - It fails at concretization time, not installation time. This means that it fails immediately, not after it finishes installing all of the dependencies.
This also allows you to drop the @when below.
There was a problem hiding this comment.
Didn't know you could specify conflicts like that
bvanessen
left a comment
There was a problem hiding this comment.
Looks good, please merge.
|
Okay, I think that addresses all @bvanessen / @adamjstewart 's comments.
Still not sure what's going on with int64_blas, but it appears to work in hydrogen still |
(Use theelementalpackage for older or non-fork versions of elemental)hydrogen versiondevelopshould have been getting all of the cmake args, however becausedevelopis not in'@:0.84' or '@0.99:', this wasn't working.Fixes hydrogen build on systems without cuda.EDIT:
TODO:
whenconflictswith elementalelementalonly mean elemental/Elemental andhydrogenonly mean LLNL/Elementalelementallook into the int64_blasThis is going to be a different PRarpath issue - no idea what the problem is