adding libparallelproj to conda-forge-pinning-feedstock
gschramm opened this issue · 14 comments
Comment:
libparallelproj
which is part of the conda-forge package parallelproj contains C/CUDA libs consumed / linked by other projects - e.g. STIR (also on conda-forge).
Recently, the maintainer of STIR and the STIR conda-forge feedstock reported this issue occurring at the loading stage of libparallelproj
caused by different versions used for building and when installing.
Because of that, I assume libparallelproj
is a candidate to be added to conda-forge-pinning?
Or should the pinning be done manually in the STIR recipe?
Or do I need to define a run_export
in the parallelproj recipe?
I am using semantic versioning for libparallelproj
, so in principle STIR built with libparallelproj
v1.7.1 should run with v1.7.3 - so I am also a bit lost on why there is a problem in the loading stage
You should be:
- Define a
run_exports
inlibparallelproj
- Add a migration to this repository and add the same version to the
conda_build_config.yaml
- Add a repodata patch for the old STIR builds so that they depend on the correct
libparallelproj
.
@xhochy : thanks a lot for the feedback!
I am struggling to understand how the run_exports
work / what they mean (after reading the.
Right now, we already have run_exports
in the recipe of libparallelproj
- see here, but I guess
they are not correct.
What we need is that respects semantic versioning meaning that an application build with libparallelproj vX.Y
should run with all libparallelproj X.>=Y
versions (and choosing the correct cpu vs cuda build)
What we need is that respects semantic versioning meaning that an application build with libparallelproj vX.Y should run with all libparallelproj X.>=Y versions (and choosing the correct cpu vs cuda build)
Yes, this means you are missing a max_pin='x.x'
in the pin_subpackage
call.
Could you also explain what:
"Add a migration to this repository and add the same version to the conda_build_config.yaml"
means and does?
For a migration, you can see the following PR as an example: https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/5824/files It will take care that all repositories that depend on a package are rebuilt in topological order with the package pinned to the same versions.
Many thanks again! So if I understand correctly, I will submit a PR containing
__migrator:
build_number: 1
commit_message: Rebuild for libparallelproj 1.8.0
kind: version
migration_number: 1
migrator_ts: "time stamp"
libparallelproj:
- 1.8.0
and the time stamp is the time stamp of the submission?
Yes, in the example migration file there is a bit more documentation.
ok. thanks. last question, since libparallelproj is build from the parallelproj feedstock, I guess it should be:
__migrator:
build_number: 1
commit_message: Rebuild for parallelproj 1.8.0
kind: version
migration_number: 1
migrator_ts: "time stamp"
lparallelproj:
- 1.8.0
libparallelproj
replaced by parallelproj
No, this needs to be the package that should be pinned, not the feedstock.