You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We ran into the issue with the Pybind submodule, but it is not specific to it. Let's add the same info to config() for all submodules.
The Pybind version now lives in three places: python/CMakeLists.txt, spack/package.py and the commit-id of the submodule. Is there anything that can be done about this?
One thing per PR, we are actively trying to get away from PRs with multiple concerns. This one is also it more involved as it adds a static assertion on the version (something we usually would not be doing). Also, it's not clear all submodules even have such a version tag. One would hope so, but...
It also lives in the C++ static assertion. Maybe we can centralise, but I am not sure it's worth the effort. So, the way would be to have CMake parse out the tag from the submodule eg v2.10.0 turn that in to a C++ define PB11=0x020A00 test that against the version in the header. And so on. However, we'd like to handle version ranges for upward compatibility. Also, this does only work when the submodule is there (which it is not unless the user builds with BUNDLED_LIBS). We could make CMake fetch submodules though and invite doom onto our house.
Adding a flag for all submodules is one thing imho.
I see that FetchContent let's you specify a tag (i.e. commit hash) to clone, which actually not bad? Cmake 3.24 gives us FETCHCONTENT_TRY_FIND_PACKAGE_MODE, which would make switching between sytem provided libs and Arbor provided libs simpler. The biggest con is that we can't (easily) create a self-contained tarball anymore.
So, why is this blocking acceptance? Is the proposed change missing something wrt to the problem it solves? Adding more fields will not solve the pybind11 any better.
You can, if you make a target 'MakeTarBall' to be executed by make and configured via CMake.
In my view, it's not that much extra to keep __config__ consistent by showing the same info for all submodules. But, since you ask so nicely, I'll stop whining about that now. One tiny request: shall we drop the Pybind11 upper limit (3.0.0)? It's not present in spack/package.py either, introducing a potential surprise factor. Also, someone told me that setting these ranges overly narrow is making live difficult for those configuring sets of packages.
The upper limit is to ensure we do not cross a major version. If they follow semver (fingers crossed) that would mean
they will not break API. (<1.0.0 rules are different 😉)
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.
For now justreport the version we included.