-
-
Notifications
You must be signed in to change notification settings - Fork 39
boost consolidation/harmonization #137
Comments
Doesn't the migrator need to do something with py-boost too? Maybe be replace boost? |
I presume it could, but we could also solve the py-boost renaming separately. |
I would prefer |
Recording what was discussed in the core-call (please correct me if anyone feels differently):
|
I think libboost-dev for the headers would be most linux like? |
Ahhhhhhh. You are right. Ignore me! |
No worries. It's good to explore the space a bit. Personally I like to have some variation of "-headers" in the name, so that it becomes very clear in the Run-exports are a topic that's really hard to penetrate for newcomers, but at least I think it's more likely they'll understand that something that's only headers is only needed at compilation time. If we don't mind longer names, we could even do |
I updated the summary in the OP to reflect |
fwiw, |
FWIW, Debian and Fedora both seem to stuff the "headers only" components in their corresponding However, I don't think that pattern works for conda packaging because that would make the I'm not 100% sold on the |
I actually thought about reusing
So to my mind, |
I'd prefer to use the boost feedstock for consolidation and archive this one. That will enhance discoverability in the future. |
The boost feedstock would then be headers only while all the libs that need to be built will have their own packages? IOW, the I wonder if a project that needs the latest |
All the 3 packages mentioned in the OP can be built in a single feedstock. technically speaking it doesn't matter if it's this one or the other, but "boost" is a better feedstock name than "boost-cpp" (especially if there's no more package of that name; though we have this situation elsewhere as well...)
In general everything that depends on the binaries would need a corresponding migration to move to a new (resp. the newest) version, but any feedstock can use
In conda-forge, we generally prefer shared libs (and migrating where necessary), so I doubt this is ideal here. |
Over in the land of opentelemetry, the header-only install has an I haven't heard much more responses here. Should we do an informal poll (multi-vote possible)?
Perhaps |
Implementation PR is ready for a first round of reviews: conda-forge/boost-feedstock#164 Once we're converging towards agreement there, I'll try writing the piggyback migrator. |
Something is still not clear to me regarding runtime vs devel dependencies. For instance, with the current implementation,
why At runtime, a python extension only requires the With the new implementation, I wish installing a python extension that depends on |
Because previously there was no way to only depend on the headers (or anything but the full shebang).
conda-forge/boost-feedstock#164 does this - thanks for confirming that the link check did its job correctly (causing me to switch
This would be easily possible as follows, but isn't yet implemented in conda-forge/boost-feedstock#164, mainly because a) I didn't think about it and b) I'm not sure (yet) that there's definitely no scenario where this could break. --- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -186,11 +186,11 @@ outputs:
host:
- python
- numpy
- - {{ pin_subpackage("libboost-headers", exact=True) }}
+ - libboost-headers >={{ version }}
run:
- python
- {{ pin_compatible('numpy') }}
- - {{ pin_subpackage("libboost-headers", exact=True) }}
+ - libboost-headers >={{ version }}
run_constrained:
# make sure we don't co-install with old version of old package name
- boost ={{ version }} |
I'd prefer exact pins for now with the idea that we can relax them later if it is working. |
Closed by conda-forge/boost-feedstock#164 |
There's a bunch of discussions that touch upon changing our distribution of boost in some way. All of these come with quite some effort, but I believe we could solve them with essentially one PR plus a special migrator.
Open discussions I'm aware of:
Rough idea:
boost-cpp
-->libboost
, and add a run-exportlibboost-headers
discussion & a (basically unanimous) voteboost
from https://github.com/conda-forge/boost-feedstock (which already depends on boost-cpp)Rename it toRename it topy-boost
to match with Anaconda?libboost-python
, at least in conda-forge - I also think this name would be much clearer to communicate that it's for boost's python bindings, rather thanboost
itself.boost-cpp
only in host, turn intolibboost-headers
. If also in run, remove it there but uselibboost
in host.In short:
currently
currently
proposal
boost-cpp
libboost
libboost
libboost-headers
boost
py-boost
libboost-python
Am I overlooking something? Any thoughts/comments?
@conda-forge/boost-cpp @conda-forge/boost @conda-forge/core
Footnotes
where the following was said: "
-cpp
was a trend that I started withboost-cpp
. That was a mistake. I'm in favour of changing it [...]" ↩The text was updated successfully, but these errors were encountered: