Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rdkit to global pinning #5719

Open
h-vetinari opened this issue Apr 7, 2024 · 3 comments
Open

Add rdkit to global pinning #5719

h-vetinari opened this issue Apr 7, 2024 · 3 comments

Comments

@h-vetinari
Copy link
Member

There's quite a large number of packages depending on rdkit; even moreso given that rdkit contains a whole bunch of libraries:

list of libraries
lib/libRDKitAbbreviations.so
lib/libRDKitAbbreviations.so.1
lib/libRDKitAbbreviations.so.1.2024.03.1
lib/libRDKitAlignment.so
lib/libRDKitAlignment.so.1
lib/libRDKitAlignment.so.1.2024.03.1
lib/libRDKitAvalonLib.so
lib/libRDKitAvalonLib.so.1
lib/libRDKitAvalonLib.so.1.2024.03.1
lib/libRDKitCIPLabeler.so
lib/libRDKitCIPLabeler.so.1
lib/libRDKitCIPLabeler.so.1.2024.03.1
lib/libRDKitCatalogs.so
lib/libRDKitCatalogs.so.1
lib/libRDKitCatalogs.so.1.2024.03.1
lib/libRDKitChemReactions.so
lib/libRDKitChemReactions.so.1
lib/libRDKitChemReactions.so.1.2024.03.1
lib/libRDKitChemTransforms.so
lib/libRDKitChemTransforms.so.1
lib/libRDKitChemTransforms.so.1.2024.03.1
lib/libRDKitChemicalFeatures.so
lib/libRDKitChemicalFeatures.so.1
lib/libRDKitChemicalFeatures.so.1.2024.03.1
lib/libRDKitDataStructs.so
lib/libRDKitDataStructs.so.1
lib/libRDKitDataStructs.so.1.2024.03.1
lib/libRDKitDepictor.so
lib/libRDKitDepictor.so.1
lib/libRDKitDepictor.so.1.2024.03.1
lib/libRDKitDeprotect.so
lib/libRDKitDeprotect.so.1
lib/libRDKitDeprotect.so.1.2024.03.1
lib/libRDKitDescriptors.so
lib/libRDKitDescriptors.so.1
lib/libRDKitDescriptors.so.1.2024.03.1
lib/libRDKitDetermineBonds.so
lib/libRDKitDetermineBonds.so.1
lib/libRDKitDetermineBonds.so.1.2024.03.1
lib/libRDKitDistGeomHelpers.so
lib/libRDKitDistGeomHelpers.so.1
lib/libRDKitDistGeomHelpers.so.1.2024.03.1
lib/libRDKitDistGeometry.so
lib/libRDKitDistGeometry.so.1
lib/libRDKitDistGeometry.so.1.2024.03.1
lib/libRDKitEHTLib.so
lib/libRDKitEHTLib.so.1
lib/libRDKitEHTLib.so.1.2024.03.1
lib/libRDKitEigenSolvers.so
lib/libRDKitEigenSolvers.so.1
lib/libRDKitEigenSolvers.so.1.2024.03.1
lib/libRDKitFMCS.so
lib/libRDKitFMCS.so.1
lib/libRDKitFMCS.so.1.2024.03.1
lib/libRDKitFileParsers.so
lib/libRDKitFileParsers.so.1
lib/libRDKitFileParsers.so.1.2024.03.1
lib/libRDKitFilterCatalog.so
lib/libRDKitFilterCatalog.so.1
lib/libRDKitFilterCatalog.so.1.2024.03.1
lib/libRDKitFingerprints.so
lib/libRDKitFingerprints.so.1
lib/libRDKitFingerprints.so.1.2024.03.1
lib/libRDKitForceField.so
lib/libRDKitForceField.so.1
lib/libRDKitForceField.so.1.2024.03.1
lib/libRDKitForceFieldHelpers.so
lib/libRDKitForceFieldHelpers.so.1
lib/libRDKitForceFieldHelpers.so.1.2024.03.1
lib/libRDKitFragCatalog.so
lib/libRDKitFragCatalog.so.1
lib/libRDKitFragCatalog.so.1.2024.03.1
lib/libRDKitFreeSASALib.so
lib/libRDKitFreeSASALib.so.1
lib/libRDKitFreeSASALib.so.1.2024.03.1
lib/libRDKitGeneralizedSubstruct.so
lib/libRDKitGeneralizedSubstruct.so.1
lib/libRDKitGeneralizedSubstruct.so.1.2024.03.1
lib/libRDKitGenericGroups.so
lib/libRDKitGenericGroups.so.1
lib/libRDKitGenericGroups.so.1.2024.03.1
lib/libRDKitGraphMol.so
lib/libRDKitGraphMol.so.1
lib/libRDKitGraphMol.so.1.2024.03.1
lib/libRDKitInchi.so
lib/libRDKitInchi.so.1
lib/libRDKitInchi.so.1.2024.03.1
lib/libRDKitInfoTheory.so
lib/libRDKitInfoTheory.so.1
lib/libRDKitInfoTheory.so.1.2024.03.1
lib/libRDKitMMPA.so
lib/libRDKitMMPA.so.1
lib/libRDKitMMPA.so.1.2024.03.1
lib/libRDKitMarvinParser.so
lib/libRDKitMarvinParser.so.1
lib/libRDKitMarvinParser.so.1.2024.03.1
lib/libRDKitMolAlign.so
lib/libRDKitMolAlign.so.1
lib/libRDKitMolAlign.so.1.2024.03.1
lib/libRDKitMolCatalog.so
lib/libRDKitMolCatalog.so.1
lib/libRDKitMolCatalog.so.1.2024.03.1
lib/libRDKitMolChemicalFeatures.so
lib/libRDKitMolChemicalFeatures.so.1
lib/libRDKitMolChemicalFeatures.so.1.2024.03.1
lib/libRDKitMolDraw2D.so
lib/libRDKitMolDraw2D.so.1
lib/libRDKitMolDraw2D.so.1.2024.03.1
lib/libRDKitMolEnumerator.so
lib/libRDKitMolEnumerator.so.1
lib/libRDKitMolEnumerator.so.1.2024.03.1
lib/libRDKitMolHash.so
lib/libRDKitMolHash.so.1
lib/libRDKitMolHash.so.1.2024.03.1
lib/libRDKitMolInterchange.so
lib/libRDKitMolInterchange.so.1
lib/libRDKitMolInterchange.so.1.2024.03.1
lib/libRDKitMolStandardize.so
lib/libRDKitMolStandardize.so.1
lib/libRDKitMolStandardize.so.1.2024.03.1
lib/libRDKitMolTransforms.so
lib/libRDKitMolTransforms.so.1
lib/libRDKitMolTransforms.so.1.2024.03.1
lib/libRDKitO3AAlign.so
lib/libRDKitO3AAlign.so.1
lib/libRDKitO3AAlign.so.1.2024.03.1
lib/libRDKitOptimizer.so
lib/libRDKitOptimizer.so.1
lib/libRDKitOptimizer.so.1.2024.03.1
lib/libRDKitPartialCharges.so
lib/libRDKitPartialCharges.so.1
lib/libRDKitPartialCharges.so.1.2024.03.1
lib/libRDKitRDBoost.so
lib/libRDKitRDBoost.so.1
lib/libRDKitRDBoost.so.1.2024.03.1
lib/libRDKitRDGeneral.so
lib/libRDKitRDGeneral.so.1
lib/libRDKitRDGeneral.so.1.2024.03.1
lib/libRDKitRDGeometryLib.so
lib/libRDKitRDGeometryLib.so.1
lib/libRDKitRDGeometryLib.so.1.2024.03.1
lib/libRDKitRDInchiLib.so
lib/libRDKitRDInchiLib.so.1
lib/libRDKitRDInchiLib.so.1.2024.03.1
lib/libRDKitRDStreams.so
lib/libRDKitRDStreams.so.1
lib/libRDKitRDStreams.so.1.2024.03.1
lib/libRDKitRGroupDecomposition.so
lib/libRDKitRGroupDecomposition.so.1
lib/libRDKitRGroupDecomposition.so.1.2024.03.1
lib/libRDKitRascalMCES.so
lib/libRDKitRascalMCES.so.1
lib/libRDKitRascalMCES.so.1.2024.03.1
lib/libRDKitReducedGraphs.so
lib/libRDKitReducedGraphs.so.1
lib/libRDKitReducedGraphs.so.1.2024.03.1
lib/libRDKitRingDecomposerLib.so
lib/libRDKitRingDecomposerLib.so.1
lib/libRDKitRingDecomposerLib.so.1.2024.03.1
lib/libRDKitSLNParse.so
lib/libRDKitSLNParse.so.1
lib/libRDKitSLNParse.so.1.2024.03.1
lib/libRDKitScaffoldNetwork.so
lib/libRDKitScaffoldNetwork.so.1
lib/libRDKitScaffoldNetwork.so.1.2024.03.1
lib/libRDKitShapeHelpers.so
lib/libRDKitShapeHelpers.so.1
lib/libRDKitShapeHelpers.so.1.2024.03.1
lib/libRDKitSimDivPickers.so
lib/libRDKitSimDivPickers.so.1
lib/libRDKitSimDivPickers.so.1.2024.03.1
lib/libRDKitSmilesParse.so
lib/libRDKitSmilesParse.so.1
lib/libRDKitSmilesParse.so.1.2024.03.1
lib/libRDKitSubgraphs.so
lib/libRDKitSubgraphs.so.1
lib/libRDKitSubgraphs.so.1.2024.03.1
lib/libRDKitSubstructLibrary.so
lib/libRDKitSubstructLibrary.so.1
lib/libRDKitSubstructLibrary.so.1.2024.03.1
lib/libRDKitSubstructMatch.so
lib/libRDKitSubstructMatch.so.1
lib/libRDKitSubstructMatch.so.1.2024.03.1
lib/libRDKitTautomerQuery.so
lib/libRDKitTautomerQuery.so.1
lib/libRDKitTautomerQuery.so.1.2024.03.1
lib/libRDKitTrajectory.so
lib/libRDKitTrajectory.so.1
lib/libRDKitTrajectory.so.1.2024.03.1
lib/libRDKitavalon_clib.so
lib/libRDKitavalon_clib.so.1
lib/libRDKitavalon_clib.so.1.2024.03.1
lib/libRDKitcoordgen.so
lib/libRDKitcoordgen.so.1
lib/libRDKitcoordgen.so.1.2024.03.1
lib/libRDKitfreesasa_clib.so
lib/libRDKitfreesasa_clib.so.1
lib/libRDKitfreesasa_clib.so.1.2024.03.1
lib/libRDKitga.so
lib/libRDKitga.so.1
lib/libRDKitga.so.1.2024.03.1
lib/libRDKithc.so
lib/libRDKithc.so.1
lib/libRDKithc.so.1.2024.03.1
lib/libRDKitmaeparser.so
lib/libRDKitmaeparser.so.1
lib/libRDKitmaeparser.so.1.2024.03.1
lib/libyaehmop_eht.a

From the .so.1 + CalVer I'm not actually sure whether we'd even need to rebuild for every major version (==year); this can be circumvented with a sover-style package if necessary. For now though, I'd at least want to capture this correctly, as not having this pinned is forcing the solver into some weird contortions in some places.

CC @conda-forge/rdkit @conda-forge/core

@jaimergp
Copy link
Member

jaimergp commented May 15, 2024

cc @greglandrum for awareness.

Their ABI version is 1 for 14 years... That's either impressive or not up-to-date :P From a quick look at the RDKit issue tracker I think the SOVER is indeed stable, but I'd rather hear from Greg directly.

@greglandrum
Copy link

Yeah, that hasn't ever changed since we do not attempt to track ABI versions or maintain ABI compatibility. The assumption is that you'll probably need to recompile code that depends on the libraries when the version of the underlying library changes

We do try and avoid actually breaking code, and if this happens it will only be in one of the twice-yearly major releases, but now that we're adding new features in minor releaes, it is possible that a minor release can contain new functions/overloads and/or that new arguments (with default values so that existing code does not break) may be added to existing functions.

@h-vetinari
Copy link
Member Author

It's OK not to have a real ABI, but once packages start depending on rdkit, we need to express the (lack) of ABI compatibility, and then recompile dependent packages whenever necessary. For that purpose the pinning & bot infrastructure does almost all of the work, but rdkit needs to be added here for this to work (though it also needs a run-export, as noted here).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants