Changelog
All notable changes to this project will be documented in this file.
[1.3.3] - 2026-04-22
Added
LightGBM Integration: Added LightGBM algorithm support to the model screener functionality
Classifier AutoML: Completed classifier AutoML capabilities for expanded model screening
Pradhan et al. 2026: Added reproducible workflow and datasets for the Inverse Design paper by Pradhan et al. 2026
Changed
RDKit Fingerprints: Upgraded the RDKFP implementation to utilize RDKit’s modern
rdFingerprintGeneratorset of fingerprint generatorsDescriptor Calculation Logic: AutoML’s RDKit descriptor calculation now relies on
RDKDesc()wrapper class in FOSS descriptor moduleFOSS Descriptors/Tests: Modified FOSS descriptors functionality logic and expanded related tests
Documentation Setup: Transitioned the repository’s Markdown changelog into
docs/changelog.rstto support unified ReadTheDocs rendering, and updated the main index accordinglyTutorial Notebooks: Updated feature representation documentation and notebooks corresponding to new RDKFP code outputs
Progress Tracking via tqdm: Implemented a progress bar for RDKit descriptor calculations and genetic algorithm using tqdm
Fixed/Miscellaneous
Modernized Packaging: Added
pyproject.tomlfor standard PEP 517/518 builds, eliminating setup.py and –use-pep517 flag during installPandas 3.0 Compatibility: Fixed some incompatibilities with pandas 3.0 found in CI/CD testing; in theory this should make ChemML compatible with pandas 3.0, but further testing is needed
TensorFlow 2.x Compatibility: Patched backwards compatibility errors in Neural Fingerprint graph convolutional layers
Python 3.8 Support: Ensured dependencies, test module configurations, and setups maintain Python 3.8 backwards compatibility
Documentation: Updated documentation index page to keep up-to-date with README.md
Commits Included:
5eb23ef - updating feature rep docs with new RDKFP code
6e3fe21 - patching TF2.x error in neural fingerprints
c5dc859 - updating RTD page, moving changelog to docs
e725bed - Updating RDKFP to use modern rdFingerprintGenerator
8e6d60c - Adding LightGBM to modelscreener
2ae5a02 - Using foss_descriptors’s RDKit descriptor function
28ee6bd - adding progress bar for rdkit descriptor calculation
85bc354 - completing classifier AutoML
0c4782f - Confirming pip install fix (closed pyproject.toml dev)
a526f01 - fixing pandas 3.0 issues on CI/CD
6bf11de - Modifying foss descriptors and tests
8ca2e1f - adding pyproject.toml and 3.8 backwards compatibility
35fe0cf - patched CI/CD to fix nitinmad issue
6205026 - Updated the GeneticAlgorithm to be abel view as progress bar using tqdm
368d2ec - Added tqdm
fcca36b - Add reproducible workflow and datasets for Pradhan et al. 2026 Inverse Design paper
[1.3.2] - 2025-12-05
Added
MLP Model Enhancement: Added
get_params()method to the MLP class for scikit-learn compatibility with model screening toolsGitHub Actions Workflow: Created comprehensive CI/CD pipeline (
test.yml) for cross-platform testing on Ubuntu, macOS, and Windows with native coverage reportingMixed Precision Workaround: Added mixed precision policy initialization in LorentzLorenz to prevent
ml_dtypes.float4_e2m1fncompatibility errors with TensorFlow 2.19+Keras 3 Compatibility: Updated Adam optimizer imports and instantiations to use Keras 3 standard (removed deprecated
.legacymodule anddecayparameter)Dictionary-based Metrics: Implemented Keras 3-compliant multi-output model metrics using output name mapping to prevent duplicate metric naming errors
GitHub Native Coverage Reporting: Added artifact uploads for coverage XML reports from each test run on different platforms
GitHub Actions Badge: Added workflow status badge to README for visibility into test status
Changed
Loss Specification: Updated LorentzLorenz model compilation to use list of losses for each output instead of single loss string, matching Keras 3 requirements
Metrics Configuration: Changed from list-based metrics to dictionary-based metrics for multi-output models to ensure unique metric names in Keras 3
AutoML Multi-core Support: Enhanced
model_screener.pywith improved multi-core processing capabilitiesModel Screener: Updated
test_hyp()compatibility for better parameter tracking and reportingCI/CD Infrastructure: Migrated from Travis CI to GitHub Actions with improved coverage reporting
Version Tracking: Updated README to reference GitHub releases instead of PyPI for latest version
Version Number: Bumped to 1.3.2 to reflect Keras 3 compatibility and infrastructure improvements
Removed
Travis CI Configuration: Removed outdated
.travis.ymlfile (superseded by GitHub Actions)Codecov Integration: Removed external Codecov service dependency in favor of GitHub-native coverage artifact uploads
PyPI Badge: Replaced with GitHub releases badge as repo is ahead of PyPI
Fixed
Keras 3/TensorFlow 2.19 Compatibility: Fixed “Found two metrics with the same name” error by implementing proper output naming and dictionary-based metrics
Adam Optimizer: Removed incompatible
decayparameter for Keras 3 Adam optimizer initializationMixed Precision Issues: Resolved
ml_dtypes.float4_e2m1fnAttributeError by setting global mixed precision policy to float32PyTorch Installation: Added OS-specific PyTorch installation in GitHub Actions workflow
OpenBabel Import: Fixed openbabel import failures in GitHub Actions by adding openbabel-wheel pip installation alongside conda installation
Technical Details
Commits Included:
b83abd9 - patch to published models - Added
get_params()method to MLP class - Fixed LorentzLorenz model metrics for Keras 3 compatibility - Updated notebook documentationdba73a6 - backwards compatibility fixes - Updated Adam optimizer imports (removed
.legacy) - Fixed mixed precision initialization in LorentzLorenz - Updated test imports for consistency5739610 - AutoML multi-core update - Enhanced
model_screener.pywith improved parallelization - Updatedspace.pyfor better genetic algorithm integration - Modified MLP to support model screening viaget_params()- Updated test cases for AutoML screening8bbe071 - Updated readme and setup for local install - Updated README installation instructions - Modified setup.py for Python 3.12 compatibility
d167ce8 - code CI/CD updated to GitHub Actions - Migrated from Travis CI to GitHub Actions workflow - Added
.github/workflows/test.ymlfor cross-platform testing - Configured conda-forge dependencies with Mambaforge - Added OS-specific PyTorch installation for CI environments400b260 - CI/CD patches - Added pytest and coverage configuration - Skipped test_Dragon in CI due to software availability - Configured matplotlib backend for CI environments - Added coverage XML artifact uploads
29e3715 - macOS CI/CD patch for tkinter - Added tk to conda-forge dependencies for macOS compatibility - Enhanced matplotlib configuration for non-GUI backend - Added MPLBACKEND environment variable for CI
5571532 - removing extra import to avoid CI/CD issues - Removed unused
from turtle import backimport from explain.py - Fixed ModuleNotFoundError for _tkinter on macOS CI
Dependencies Updated
TensorFlow/Keras: Now compatible with Keras 3 and TensorFlow 2.19+
PyTorch: Added proper CPU-only installation for CI environments
System Libraries: Added openbabel-wheel for proper pip installation alongside conda openbabel
Testing
All tests pass on Ubuntu, macOS, and Windows with Python 3.12
Cross-platform CI validation implemented via GitHub Actions
Coverage reporting integrated with Codecov
Migration Guide for Users
If you’re upgrading from the previous version, note these breaking changes:
Adam Optimizer Parameters: The
decayparameter is no longer supported in Adam. Uselearning_ratescheduling instead.Keras 3 Models: Multi-output models now require dictionary-based metrics configuration:
metrics_dict = { 'output_name': ['metric1', 'metric2'], ... } model.compile(metrics=metrics_dict)
Mixed Precision: Mixed precision is now disabled by default to ensure compatibility. Enable it explicitly if needed.
—
For more information on each change, see the individual commit messages or the pull request discussions.