conda-forge / rdkit-feedstock

A conda-smithy repository for rdkit.
BSD 3-Clause "New" or "Revised" License
8 stars 22 forks source link

add support for arm64 on MacOS #63

Closed greglandrum closed 3 years ago

greglandrum commented 3 years ago

I've done local rdkit builds on a Mac with the Apple M1 chip and everything works fine, so I think we can safely make arm64 versions of this recipe available.

From this blog post https://conda-forge.org/blog/posts/2020-10-29-macos-arm64/ it looks like maybe the only thing we need to do is add the rdkit packages to this list and then the rest will happen automatically? https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/master/recipe/migrations/osx_arm64.txt

jaimergp commented 3 years ago

Yep, done here: https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/1128

greglandrum commented 3 years ago

Thanks @jaimergp . That PR was merged, but no PR has come through here with the suggested changes. Do you know if there is something else we need to do in order to make that happen? Or should I just be patient? ;-)

jaimergp commented 3 years ago

I am afraid we just need to be patient :)

jaimergp commented 3 years ago

The PR is enqueued (under Awaiting parents). We are waiting on some our dependencies to be available (pycairo) first. Their PR is here: https://github.com/conda-forge/pycairo-feedstock/pull/22.

l0d0v1c commented 3 years ago

Is it available from conda channel?

jaimergp commented 3 years ago

We are still waiting for pycairo. If that's not available, we can't build RDKit...

greglandrum commented 3 years ago

@jaimergp, @mcs07 : I've been thinking about this a bit and have a question/suggestion.

The RDKit doesn't actually need pycairo. That dependency is there to support people who are still using the legacy (i.e. non MolDraw2D) drawing code and isn't strictly necessary even for them: if pycairo isn't installed the old drawing code will just fall back to something which produces uglier images.

An RDKit install without pycairo would be 100% functional: it would just produce less attractive renderings when the legacy drawing code is used to produce PNGs. I think that's a reasonable price to pay to allow people who want to use new code on new hardware.

The least "disruptive" suggestion would be to just remove the pycairo depenency on ARM64 Mac builds, but I think it would also be fine to remove it for all Mac builds.

I have not yet done the work to actually deprecate and remove the legacy drawing code, but that's planned for a future release. At this point though, the earliest we could completely remove it is the 2022.03 release.

jaimergp commented 3 years ago

Yes, we can skip dependencies conditionally. I'd say we go for the "least disruptive" option now. I don't know if the bot will auto-refresh the dependency graph when that happens, but we can always pin the Conda Forge team if that's not the case.

jaimergp commented 3 years ago

Oh, #72 just came in!