conda-forge / r-igraph-feedstock

A conda-smithy repository for r-igraph.
BSD 3-Clause "New" or "Revised" License
2 stars 10 forks source link

[bot-automerge] r-igraph v2.0.1.1 #56

Closed regro-cf-autotick-bot closed 6 months ago

regro-cf-autotick-bot commented 7 months ago

It is very likely that the current package version for this feedstock is out of date.

Checklist before merging this PR:

Information about this PR:

  1. Feel free to push to the bot's branch to update this PR if needed.
  2. The bot will almost always only open one PR per version.
  3. The bot will stop issuing PRs if more than 3 version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR.
  4. If you want these PRs to be merged automatically, make an issue with code>@conda-forge-admin,</codeplease add bot automerge in the title and merge the resulting PR. This command will add our bot automerge feature to your feedstock.
  5. If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

Dependency Analysis

Please note that this analysis is highly experimental. The aim here is to make maintenance easier by inspecting the package's dependencies. Importantly this analysis does not support optional dependencies, please double check those before making changes. If you do not want hinting of this kind ever please add bot: inspection: false to your conda-forge.yml. If you encounter issues with this feature please ping the bot team conda-forge/bot.

Analysis by source code inspection shows no discrepancy with the stated requirements in the meta.yaml.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/cf-scripts/actions/runs/7766520579, please use this URL for debugging.

conda-forge-webservices[bot] commented 7 months ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

github-actions[bot] commented 7 months ago

Hi! This is the friendly conda-forge automerge bot!

I considered the following status checks when analyzing this PR:

Thus the PR was not passing and not merged.

szhorvat commented 7 months ago

This requires the following dependencies to build: libxml2, glpk, gmp.

mfansler commented 7 months ago

This requires the following dependencies to build: libxml2, glpk, gmp.

Yes, and the recipe has built with those for quite a while. But the issue here is with some libxml2 includes, namely, the C compiler isn't finding libxml/globals.h despite having a -I"$PREFIX/include/libxml2" flag (see log). I've checked the libxml2 artifacts for linux-64 and osx-64 confirming they have include/libxml2/libxml/globals.h. To add to the confusion, the osx-arm64 passes because it picks the includes up from the BUILD_PREFIX rather than PREFIX.

I'm not understanding the issue - may need to debug locally.

mfansler commented 7 months ago

The win-64 failure looks like a C++ standard issue. Might need a gnu++14 set.

szhorvat commented 7 months ago

The win-64 failure looks like a C++ standard issue. Might need a gnu++14 set.

It's not a standards level issue. That construct is not standard to begin with, but a GCC extension. The problem is that R/igraph hard-codes this construct without checking whether the compiler supports it. conda-forge uses an extremely outdated GCC (version 5.4, almost 8 years old) on Windows. Can you use a newer GCC?

@Antonov548 @krlmlr, you can change this line:

#define IGRAPH_DEPRECATED_ENUMVAL __attribute__ ((deprecated))

to simply

#define IGRAPH_DEPRECATED_ENUMVAL /* empty */

for better compatibility

The only effect will be that there won't be warnings about using some deprecated enum values.

szhorvat commented 7 months ago

But the issue here is with some libxml2 includes, namely, the C compiler isn't finding libxml/globals.h despite having a -I"$PREFIX/include/libxml2"

I'm now noticing that it's the same issue as https://github.com/igraph/rigraph/issues/1181 (bad quoting).

mfansler commented 7 months ago

The win-64 failure looks like a C++ standard issue. Might need a gnu++14 set.

It's not a standards level issue. That construct is not standard to begin with, but a GCC extension. The problem is that R/igraph hard-codes this construct without checking whether the compiler supports it. conda-forge uses an extremely outdated GCC (version 5.4, almost 8 years old) on Windows. Can you use a newer GCC?

@Antonov548 @krlmlr, you can change this line:

#define IGRAPH_DEPRECATED_ENUMVAL __attribute__ ((deprecated))

to simply

#define IGRAPH_DEPRECATED_ENUMVAL /* empty */

for better compatibility

The only effect will be that there won't be warnings about using some deprecated enum values.

Great - thanks for that insight! Yes, the GCC for the MinGW builds is quite old and that infrastructure hasn't been actively maintained - so no, using newer GCC isn't a plausible option. Mostly we simply drop Windows support when we hit this. Alternatively, there has been demonstrated success with use clang on Windows, though this is non-trivial.

For now, if the suggested patch would circumvent this, we could temporarily patch here until it gets incorporated upstream.

github-actions[bot] commented 7 months ago

Hi! This is the friendly conda-forge automerge bot!

It appears that not all commits to this PR were made by the bot. Thus this PR is not being automatically merged. Please add the automerge label again (or ask a maintainer to do so) if you'd like to enable automerge again!

mfansler commented 7 months ago

But the issue here is with some libxml2 includes, namely, the C compiler isn't finding libxml/globals.h despite having a -I"$PREFIX/include/libxml2"

I'm now noticing that it's the same issue as igraph/rigraph#1181 (bad quoting).

Ah, yes. I didn't catch at first that it was coming out as:

-I"$PREFIX/include/libxml2 -I$PREFIX/include"

That explains it!

szhorvat commented 7 months ago

@mfansler Version 2.0.2 is out now and fixes this issue. However, vctrs is now a dependency. Can you please have a look at #57 and let us know if there are any other issues that block conda-forge?