← Back to all sparks
R

RDKit

DEVOPS
Velocity2.5

Cheminformatics and machine learning toolkit for molecular data

Quarterly majors set the breaking changes; the patch train spends the rest of the year on stereochemistry

cheminformaticsstereochemistryquarterly-releasessubstructure-searchconformer-generationapi-breaking-changes
Current state
RDKit runs a strict quarterly cadence — a 2026_03 major followed by monthly patch releases through the quarter. The major carried the breaking changes: Dict keys moved to std::string_view, SMARTS AND-query merging, _CIPRank no longer set by default on molecules without chiral centers, altered hydride removal, and MolToSmarts no longer adding implicit hydrogens. Every patch since has been dominated by stereochemistry correctness and drawing options, with steady performance work on CIP labelling and synthon substructure search.
Where it's heading
Two threads run through the patch train. Stereochemistry is the persistent bug surface — atropisomers, E/Z retention through CDXML and fragment extraction, ring-bond consistency in the bounds matrix builder, aromaticity in polycyclic conjugated systems — which is what happens when a cheminformatics toolkit is the reference implementation everyone's edge cases land on. Separately, search and conformer generation keep getting faster: synthon substructure search doubled, CIP labelling stopped computing auxiliary descriptors unnecessarily, and ETKDG gained all-in-one coordinate refinement.
Prediction
Expect the 2026_03 line to keep receiving stereochemistry fixes until the next quarterly major, which is where any further backwards-incompatible API changes will be batched.

Recent moves

  1. 8d ago

    2026.03.5 fixes atropisomer, CDXML and aromaticity stereochemistry bugs

    A patch weighted heavily toward stereochemistry correctness: tautomer canonicalization failing on atropisomer bonds, CDXML reading dropping Z/E bonds, fragment extraction erroring after an E/Z double bond, and aromaticity perception in polycyclic conjugated systems. The few enhancements — ROMol name accessors, Data SGroups without a fieldname — are small by comparison.

    View source ↗
  2. 1mo ago

    2026.03.4 doubles synthon substructure search and refines ETKDG

    The most feature-carrying patch of the quarter: synthon substructure search gains 2x performance, ETKDG gets all-in-one coordinate refinement, 2D coordinate generation adds spiro flipping, and BFGSOpt picks up SVE. It also lands two C++-only breaking changes around Eigen includes and the EmbedParameters constructor.

    View source ↗
  3. 2mo ago

    2026.03.3 speeds up CIP labelling and adds tautomer zone blocking

    CIP labeller performance improves twice over — skipping unnecessary auxiliary descriptors and storing a bond vector — while new capability arrives at the edges: blocking atoms and bonds from participating in tautomer zones, MolToCDXMLBlock in FileParsers, checked atom and bond iterators, and expanded C# SWIG wrappers.

    View source ↗
  4. 3mo ago

    2026.03.2 speeds tautomer canonicalization and fixes UFF gradients

    Tautomer canonicalization gets faster with no API change, std::ranges support begins appearing, and drawing gains legend positioning. The notable fix is an incorrect UFF inversion term gradient for P, As, Sb and Bi centers — a force-field error that would quietly distort geometries rather than fail loudly.

    View source ↗
  5. 4mo ago

    2026.03.1 changes CIP ranking, hydride removal and SMARTS defaults

    The quarterly major, and the only release carrying real breaking changes: Dict moves to std::string_view keys, simple AND queries merge into atoms so [C&+] parses like [C+], _CIPRank is no longer set by default on achiral molecules, hydrides are no longer removed by default, and MolToSmarts stops adding implicit hydrogens to unqueried atoms.

    View source ↗
  6. 4mo ago

    2026.03.1b1 beta preview of the quarterly major

    The beta four days ahead of 2026.03.1, listing an identical set of backwards-incompatible changes. A subset of the final release with no independent content.

    View source ↗