conda-forge / rdkit-feedstock

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

Many development headers missing for the 2024.03.5 rdkit-dev package #167

Closed lohedges closed 1 month ago

lohedges commented 1 month ago

Solution to issue cannot be found in the documentation.

Issue

It appears that a large number of development headers are missing for the 2024.03.5 release of rdkit-dev. Here are the files for two Linux x86 environments that I've created locally. The first uses 2024.03.5, the second 2024.03.4.

2024.03.5:

ls -l .conda/envs/debug/include/rdkit
total 4
drwxr-sr-x 3 lester lester 4096 Jul 25 09:27 RDGeneral

2024.03.4:

ls -l .conda/envs/openbiosim/include/rdkit
total 96
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 Catalogs
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 ChemicalFeatures
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 CIPLabeler
drwxr-sr-x  3 lester lester  4096 Jul  9 14:23 DataManip
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 DataStructs
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 DistGeom
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 Features
drwxr-sr-x  4 lester lester  4096 Jul  9 14:23 ForceField
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 Geometry
drwxr-sr-x 42 lester lester  4096 Jul  9 14:23 GraphMol
drwxr-sr-x  5 lester lester  4096 Jul  9 14:23 Numerics
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 Query
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 RDBoost
drwxr-sr-x  3 lester lester  4096 Jul  9 14:23 RDGeneral
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 RDStreams
drwxr-sr-x  2 lester lester  4096 Jul  9 14:23 SimDivPickers
-rw-r--r--  2 lester lester 29440 Jul 26  2019 RingDecompos

I've not checked to see if the same is true for other platforms, but our CI also failed on macOS but not on Windows. The logs seem to say the same RDKit version was installed in all cases.

Is this an expected change? If so, what do I need to do to obtain the missing headers?

I've had a quick look around the documentation but didn't see anything obvious. In any case, I wouldn't expect such a dramatic change for a patch release.

Cheers.

Installed packages

N/A

Environment info

N/A
skearnes commented 1 month ago

Thanks @lohedges; the linux headers were moved out of rdkit into the new librdkit-dev in #158 (the now deprecated rdkit-dev also had them since it was mostly a copy of rdkit). I may have missed something in the migration; I'll take a look.

skearnes commented 1 month ago

Adding your env details as requested would be helpful---did you install librdkit-dev?

lohedges commented 1 month ago

Ah great, I'll try swapping librdkit-dev and rerunning the CI.

lohedges commented 1 month ago

Adding your env details as requested would be helpful---did you install librdkit-dev?

Our recipe doesn't currently use librdkit-dev since we weren't aware of the switch and the deprecation of rdkit-dev. I can confirm that I see all of the headers when installing the latest version of librdkit-dev locally, so will switch to that for our build.

Many thanks.

skearnes commented 1 month ago

Great, sorry for the confusion and thanks for the quick feedback!

lohedges commented 1 month ago

No problem. I still don't understand why the headers available via the old rdkit-dev changed so dramatically for a patch release. Thankfully this is just a build dependency so won't affect anything at runtime, where we only rely on a compatible version of rdkit itself.

skearnes commented 1 month ago

I'm not sure, but I might guess that if you tried to install rdkit and rdkit-dev at the same time, it only installed rdkit since rdkit-dev depended on an older version and you didn't get any of the dev headers at all?

lohedges commented 1 month ago

I only installed rdkit-dev when debugging via:

conda create -n debug -c conda-forge rdkit-dev

This pulls in:

  + rdkit                         2024.03.5  py312h7b4b7d0_1      conda-forge     
  + rdkit-dev                     2024.03.5  ha4b6fd6_0           conda-forge     

Then I end up with:

ls -l .conda/envs/debug/include/rdkit
total 4
drwxr-sr-x 3 lester lester 4096 Jul 25 13:48 RDGeneral

My other environment (and prevous CI runs) were created a few weeks ago, but has all the headers available:

conda list rdkit
# packages in environment at /home/lester/.conda/envs/openbiosim:
#
# Name                    Version                   Build  Channel
rdkit                     2024.03.4       py312h93d94ad_0    conda-forge
rdkit-dev                 2024.03.4            hcaeca22_0    conda-forge

I can see that installing creating an environment with the older 2023.03.4 rdkit-dev alone isn't enough, since this pulls in the newer 2023.03.5 rdkit as well, and I end up with no headers again for some reason.

jaimergp commented 1 month ago

Maybe we should alias rdkit-dev to something else like rdkit + librdkit-dev? For backwards compatibility.

skearnes commented 1 month ago

@jaimergp I'm open to that---can you point me to docs/examples of how to do this?

jaimergp commented 1 month ago

It's a matter of adding one more output that depends on those two with pin_subpackage().

skearnes commented 1 month ago

Reopening due to https://github.com/OpenBioSim/sire/issues/217#issuecomment-2250735678

skearnes commented 1 month ago

It's a matter of adding one more output that depends on those two with pin_subpackage().

Adding to #166

skearnes commented 1 month ago

Reopening due to OpenBioSim/sire#217 (comment)

Closing again; see https://github.com/OpenBioSim/sire/pull/221#issuecomment-2263130894. Reopen if needed.