Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ source:
sha256: c57ce44873abcfcfd1d61d7d261e416d352186958e7b5d299cf244efa6757816

build:
number: 2
number: 3
script_env:
- F2C_EXTERNAL_ARITH_HEADER={{ RECIPE_DIR }}/arith_arm64.h # [arm64]

Expand Down Expand Up @@ -52,6 +52,7 @@ requirements:
- gmp
- texttable >=1.6.2
- python
- igraph >=0.10,<0.11
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

igraph has a run_exports that knows about its compatibility:
https://github.com/conda-forge/igraph-feedstock/blob/main/recipe/meta.yaml#L18-L19
So we should move this to the host section and this will mean igraph is automatically also included as a run dependency with the appropriate constraint.

Copy link

@szhorvat szhorvat Sep 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another note here: python-igraph 0.10.x/0.11.x will NOT work with arbitrary igraph versions. If simply saying igraph >=0.10,<0.11 makes it possible for people to end up with an older igraph and a newer python-igraph, that WILL mess things up.

The options are:

  • Specify a single compatible version of igraph (not a range!) for each specific version of python-igraph
  • Stick to static linking for the igraph 0.10.x series (I suggest this)
  • Take the risk of people ending up with broken configurations that may crash or produce invalid results.

This will be a little bit cleaner starting with igraph 1.x in that each python-igraph version should be compatible with an entire minor version range of igraph. However, in practice, there is likely not going to be more than one minor version in each series, unless we find a critical bug that needs immediate fixing. So in practice not much changes: each python-igraph version will be compatible with one igraph version.

Still, the intention is to be more rigorous about compatibility with the 1.x series, so I'd recommend using dynamic linking only for the 1.x series.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@szhorvat, the run_exports from igraph itself will prevent this. My suggested approach would be that we restrict which version of igraph is allowed at build time and the version at runtime will be restricted to be newer than or equal to that version, and less that the next minor version (because of the x.x in the run_exports). If that is not correct, we should fix the run_exports in igraph itself.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specify a single compatible version of igraph (not a range!) for each specific version of python-igraph

We could do this but it would require ignoring the run_exports from igraph, which currently allow newer patch versions of igraph at runtime than were used a build time.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@szhorvat, I believe I have added this in 1bd16f8. I used the version associated with the submodule that is used to vendor igraph in python-igraph 0.11.9.


test:
source_files:
Expand Down