Open h-vetinari opened 5 months ago
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.
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.
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).
There's quite a large number of packages depending on
rdkit
; even moreso given thatrdkit
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