conda-forge / cramjam-feedstock

A conda-smithy repository for cramjam.
BSD 3-Clause "New" or "Revised" License
0 stars 6 forks source link

Update to 2.5.0, add python3.10, and fix cross-compiling #20

Closed erykoff closed 2 years ago

erykoff commented 2 years ago

Checklist

conda-forge-linter commented 2 years 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.

milesgranger commented 2 years ago

Thanks @erykoff !! :pray:

For me, I'm good with almost anything which gets this up on conda in the easiest and maintainable way possible.

Strong preference for anything which uses existing wheels, without any dependencies, already on PyPi. These include Python 3.10 for basically every distribution and think it was one of the first to have PyPy 3.8 support. :wink:

That said, I'm ironically not the best person to review this PR.

martindurant commented 2 years ago

Unfortunately, there are very few of us that are qualified to have an opinion with this stuff! It looks like the build is not succeeding on linux_aarch and ppc.

erykoff commented 2 years ago

So the bad news is that I have no idea how to get the aarch64 and ppc64le jobs working; in the meantime I'm going to revert back to native... The worse news is that my changes to meta.yaml didn't appear to fix the osx-arm64 cross builds. At least my local test didn't work, which was a bit convoluted because I'm using an emulated x86 env on my M1 mac and then trying to do a cross-build to arm64. I think that using existing wheels as-is is considered a "last resort" on conda-forge, but I also have no idea how to get maturin to do cross compiling...

erykoff commented 2 years ago

And I'm also wondering where the osx-arm64 py310 wheels are on pypi.

erykoff commented 2 years ago

Apparently the pinned version of libmimalloc-sys 0.1.23 doesn't support aarch64 or ppc64le; if this was updated upstream in the Cargo files then I think that would make those builds work.

isuruf commented 2 years ago

@conda-forge-admin, rerender

erykoff commented 2 years ago

Okay, the rust compiler misconfigure that @isuruf noticed is the reason that the arm64 cross compile wasn't working. Locally I was able to successfully cross compile. So this PR should fix #17 at least.

erykoff commented 2 years ago

Oh dear lord, the cross-builds with python 3.10 think that the python version is 3.1 and then failing. Any idea where this check is happening and failing?

martindurant commented 2 years ago

From conda people: "3.10 needs to be a string in the yaml file"

erykoff commented 2 years ago

it's actually a bug in conda-build. Working on it...

erykoff commented 2 years ago

Okay, this really is good to go.

To summarize: the version has been updated to 2.5.0, which properly supports cross compilation and python3.10; the python3.10 builds have been added to the matrix; and the proper PYO3_CROSS env vars have been set and the correct rust compiler is selected so that cross compilation works correctly, fixing #17 .

erykoff commented 2 years ago

I am definitely going to be looking out for erroneous string comparisons in github actions from here on out ...

Anyway, feel free to merge whenever. This will then allow fastparquet to be migrated to py310 (as well as fixing the osx-arm64 conda forge installation!).

martindurant commented 2 years ago

This will then allow fastparquet to be migrated to py310

Only with my self-made thrift :). https://github.com/dask/fastparquet/pull/633

erykoff commented 2 years ago

Ha! Well, this is necessary if not sufficient ...