Release Notes¶
MELITE 0.2.2 adds SVC feature scaling while preserving the top-level public
API and existing CLI behavior.
0.2.2 Highlights¶
- SVC is trained as a
StandardScaler->SVCsklearnPipeline. - Scaling is applied only to SVC; Random Forest and XGBoost remain unscaled.
- Exported SVC models preserve the same
StandardScaler->SVCpipeline. - Legacy export compatibility is preserved for older unprefixed SVC
parameter dictionaries such as
{"C": 1, "kernel": "linear"}.
Validation Targets¶
Before release, validate:
mkdocs build --strict
python -m pytest tests/ -v --basetemp=.review_pytest_tmp -o cache_dir=.review_pytest_cache
python -m build --no-isolation
python -m twine check dist/*
python scripts/smoke_install_wheel.py
melite --help
melite run --help
melite export --help
melite --version
Full Changelog¶
The complete release history is maintained in the repository changelog:
Changelog¶
All notable changes to MELITE will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[v0.2.2] - 2026-05-28¶
Changed¶
- SVC is now trained as a
StandardScaler->SVCsklearnPipeline. - Scaling is applied only to SVC;
RandomForestClassifierandXGBClassifierremain unscaled direct estimators. - The full SVC search grid now includes a linear kernel with
svc__Cvalues[0.01, 0.1, 1, 10]. - Exported SVC models now preserve the same
StandardScaler->SVCpipeline used during benchmarking.
Compatibility¶
- Legacy export compatibility is preserved for older SVC parameter
dictionaries that use unprefixed keys such as
Candkernelinstead of pipeline keys such assvc__Candsvc__kernel.
[v0.2.1] - 2026-05-27¶
Changed¶
[models].active/ACTIVE_MODELSnow controls which model families are trained during benchmarking.melite exportnow uses strict dataset loading for registry-based datasets and no longer falls back toarr.files[0]when an.npzfile lacksX.- Added an installed-wheel smoke test that builds the wheel, installs it
outside the repository checkout, runs a toy
[datasets.toy]smoke benchmark, exports row 0 non-interactively, and verifies generated artifacts.
Compatibility¶
- The top-level public API remains unchanged:
Config,load_datasets,plot_cv_distributions,predict, and__version__. - Legacy
reduction_type+levelexport rows remain supported, but individual legacy.npzfiles must now contain an explicitXarray.
[v0.2.0] - 2026-05-26¶
Added¶
- Added canonical
[datasets.<dataset_id>]TOML registry entries for user-defined numeric tabular datasets. - Added strict generalized dataset loading through
load_datasets(config). - Added dataset-aware benchmark result rows with
dataset,family,method,variant,level, anddescriptionfields. - Added dataset-aware final export naming, such as
Model_SVC_morgan_r2_2048.pklandSVC_morgan_r2_2048.png.
Changed¶
melite runnow consumescfg.DATASETSas the canonical execution path.- PCA and UMAP inputs are treated as ordinary dataset registry entries.
- Legacy
[benchmark].reduction_typesandlevelsare normalized into dataset entries when[datasets]is absent. melite exportprefers the newdatasetcolumn and falls back to legacyreduction_type+levelrows for older CSV files.
Fixed¶
- Registered datasets now fail clearly on missing files, missing
X, non-2D or non-numericX, X/y length mismatch, and embedded-y mismatch.
[0.1.11] - 2026-05-26¶
Changed¶
- Prepared documentation and package metadata for the first PyPI publication as
melite. - Updated release metadata to use final version
0.1.11instead of development or previous release references. - Clarified that MELITE is tabular at the modeling level: learning algorithms
consume numeric
Xandyarrays that may come from PCA, UMAP, fingerprints, descriptors, clinical variables, experimental measurements, industrial features, or manually selected numeric features. - Clarified that the current dataset orchestration still reflects MELITE's PCA/UMAP origin and uses concepts such as reduction type and level.
- Documented generalized
[datasets.*]definitions as a future direction, not current behavior.
Notes¶
- No functional behavior changes were made to training, model selection, cross-validation, export, prediction, dataset loading, or CLI commands.
[0.1.10] - 2026-05-25¶
Changed¶
- Renamed the project identity from MOSAIC to MELITE.
- Renamed the Python import package from
mosaictomelite. - Renamed the CLI command from
mosaictomelite. - Renamed the PyPI distribution target from
mosaic-tabulartomelite. - Updated repository, documentation, CI, and publishing metadata for
NanoBiostructuresRG/melite. - Updated public API imports to remain the same symbols under
melite. - Updated result report headers to use MELITE branding and current CLI commands.
Fixed¶
- Replaced the duplicated SVC RBF
C = 0.02grid value withC = 0.2.
Validation¶
python -m pytest tests/ -v --basetemp=.review_pytest_tmp -o cache_dir=.review_pytest_cache— 82 passed, 1 warning, 0 failed.melite --help,melite run --help,melite export --help, andmelite --version— passed.- Public API smoke test —
OK: 0.1.10. python -m build—melite-0.1.10.tar.gzand.whlbuilt successfully.python -m twine check dist/*— PASSED.mkdocs build --strict— build succeeded with no errors.- Wheel includes
melite/,melite/config_default.toml, metadata, and license files. - Sdist inspected; local virtual environments, caches, generated review/docs
artifacts, build folders, raw/data/output folders, egg-info,
.pkl, and.joblibartifacts were not present.
[0.1.9] - 2026-05-25¶
Added¶
- Added dedicated MkDocs pages for installation, quick start, CLI reference, configuration, and release notes.
- Added a home-page workflow diagram:
X / y -> mosaic run -> results.csv -> mosaic export -> .pkl -> predict(). - Added a "MOSAIC does / does not" scope table to clarify project boundaries.
Changed¶
- Reworked
docs/index.mdinto a concise project overview with links to the dedicated documentation pages. - Updated
mkdocs.ymlnavigation to expose the expanded documentation set. - Updated
README.mdfordev/v0.1.9, test-suite status, live documentation links, and planned PyPI publication asmosaic-tabular. - Bumped version to
0.1.9inversion.pyandCITATION.cff.
Validation¶
mkdocs build --strict— build succeeded with no errors.pytest tests/ -v— 82 passed, 1 warning, 0 failed.python -m build—mosaic_tabular-0.1.9.tar.gzand.whlbuilt successfully.python -m twine check dist/*— PASSED.mosaic --version->MOSAIC 0.1.9.- Wheel and sdist contents inspected; local virtual environments, caches,
generated review artifacts, build folders, raw/data/output folders,
egg-info,
.pkl, and.joblibartifacts were not present.
[0.1.8] - 2026-05-25¶
Added¶
- Added
.github/workflows/publish-to-pypi.yml— manual PyPI publish workflow triggered viaworkflow_dispatch. Validates tag format, verifies package version matches tag, builds wheel and sdist, checks distributions, and publishes via trusted publishing (OIDC, no API token required). - Added
dist/to.gitignore.
Changed¶
- Renamed PyPI package from
mosaic-mltomosaic-tabularinpyproject.toml. - Updated
descriptioninpyproject.tomlto:"Tabular classification benchmarking toolkit for model selection, repeated stratified cross-validation, final model export, and artifact-based inference." - Updated
docs/api.mdto includepredictin the public API reference. - Updated
docs/index.md: version badge, pre-stable note, four-card panel,predicttab in Python API examples,predictin public API table. - Updated
docs/stylesheets/extra.css: added.ms-grid--fourlayout class. - Updated
README.md: corrected all references frommosaic-mltomosaic-tabular, replaced "inference" with "artifact-based inference" throughout, updated roadmap and notes. - Bumped version to
0.1.8inversion.pyandCITATION.cff.
Validation¶
python -m build—mosaic_tabular-0.1.8.tar.gzand.whlbuilt successfully.python -m twine check dist/*— PASSED.mkdocs build --strict— build succeeded with no errors.pytest tests/ -v— 80 passed, 1 warning, 0 failed.mosaic --version→MOSAIC 0.1.8.
[0.1.7] - 2026-05-25¶
Added¶
- Added
mosaic/predict.py— inference module exposingpredict()as a stable public API symbol. Loads a.pklartifact, returns predictions and class probabilities for a new feature matrix. - Added
predicttomosaic/__init__.pyand__all__. - Added
.github/workflows/ci.yml— CI workflow: tests on Python 3.11 and 3.12, public import boundary check, wheel and sdist smoke installs, docs build. - Added
.github/workflows/docs.yml— deploys MkDocs site to GitHub Pages on push tomain. - Added synthetic example dataset under
examples/: sample_labels.npy— 100 binary labels, balanced classes.sample_PCA70.npz— 100×37 feature matrix withXandykeys.example_config.toml— TOML config pointing to example files.generate_sample_data.py— reproducible generation script (seed=42).- Added
tests/test_predict.py— 11 tests for the inference module. - Added
tests/test_examples.py— 11 tests for example dataset integrity. - Added
tmp_modelfixture totests/conftest.py— trained SVC saved as.pkl. - Added
.pytest_tmpto.gitignore.
Changed¶
- Updated
tests/test_public_api.py— addedpredictimport and__all__tests. Total test count: 80 tests. - Rewrote
README.mdcombining outside-in user perspective with full developer documentation. - Updated
mosaic/__init__.pypublic API docstring to includepredict. - Bumped version to
0.1.7inversion.pyandCITATION.cff.
Validation¶
pytest tests/ -v— 80 passed, 1 warning, 0 failed.mosaic run --smoke --config examples/example_config.toml— completed successfully.predict()returns correct shapes for predictions and probabilities.- CI workflow passes on Python 3.11 and 3.12 (GitHub Actions).
mkdocs build --strict— build succeeded.
[0.1.6] - 2026-05-23¶
Added¶
- Added NumPy-style docstrings to all 10 modules:
__init__.py,version.py,config.py,load_dataset.py,result_manager.py,plot_metrics.py,model_training.py,export_best_model.py,main.py, andcli.py. - Added MkDocs documentation site with
mkdocs-materialtheme: mkdocs.yml— site configuration with MOSAIC steel-blue + amber palette.docs/index.md— home page with hero section, quick start, and Python API examples.docs/api.md— API Reference generated from docstrings viamkdocstrings.docs/changelog.md— changelog page (includesCHANGELOG.md).docs/stylesheets/extra.css— custom MOSAIC theme styles.
Changed¶
- Bumped version to
0.1.6inversion.pyandCITATION.cff.
Validation¶
pytest tests/ -v— 57 passed, 1 warning, 0 failed.mkdocs build --strict— build succeeded with no errors.mkdocs serve— site renders correctly locally.python -c "help(mosaic.Config)"— docstring visible.
[0.1.5] - 2026-05-23¶
Added¶
- Defined stable public API in
mosaic/__init__.py:Config,load_dataset,ResultManager,plot_cv_distributions, and__version__are now importable directly frommosaic. - Added
__all__to all modules:config.py,load_dataset.py,result_manager.py,plot_metrics.py,model_training.py,export_best_model.py, andcli.py. - Added
tests/test_version.py— 6 tests for version metadata. - Added
tests/test_public_api.py— 7 tests for public API imports and__all__. - Added
tests/test_plot_metrics.py— 5 tests for PNG output and directory creation. - Added
tests/test_cli.py— 8 tests for CLI help and version output. - Added
pytesttoenvironment.yml.
Changed¶
mosaic/__init__.pynow exposes the stable public API with explicit imports and__all__. Users can dofrom mosaic import Config, load_dataset.- Bumped version to
0.1.5inversion.pyandCITATION.cff.
Validation¶
pytest tests/ -v— 57 passed, 1 warning (expected Agg backend warning), 0 failed.from mosaic import Config, load_dataset, ResultManager, plot_cv_distributions, __version__✓mosaic.__all__contains exactly the 5 expected public symbols ✓- CLI help and version tests pass via subprocess ✓
[0.1.4] - 2026-05-22¶
Added¶
- Added formal
pytestsuite undertests/with 31 tests coveringConfig,load_dataset,ResultManager, andFinalizer. - Added
tests/conftest.pywith shared synthetic fixtures: labels, valid/invalid.npzfiles, minimalresults.csv, and a baseConfiginstance. - Added
tests_output.txtto.gitignore.
Fixed¶
- Removed redundant
print()progress calls frommain.py; all progress now goes throughlogger.*only. Smoke banner remains asprint()(user-facing UI). - Changed smoke-mode
logger.warning()tologger.info()inmain.pyto avoid spurious output when--verboseis not passed. - Removed
logging.basicConfig(level=logging.INFO)fromload_dataset.py— module-levelbasicConfigwas overriding the package logger configuration. - Improved error message for missing
.npzfile: now includes full expected path and an actionable hint. - Improved error message for missing
Xkey in.npz: now raisesValueErrorwith filename and list of available keys. - Improved label mismatch error: now includes both array shapes and differing element count.
- Added guard in
Finalizer.__init__for missingresults.csv: raisesFileNotFoundErrorwith path and actionable hint before attempting to read. - Bumped version to
0.1.4inversion.pyandCITATION.cff.
Validation¶
pytest tests/ -v— 31 passed, 0 failed.mosaic run --smoke— silent output (smoke banner only, no logger noise).mosaic run --smoke --verbose— clean INFO logs, no duplicates.mosaic export --row 0(missing CSV) — descriptiveFileNotFoundError.
[0.1.3] - 2026-05-22¶
Added¶
- Added
pyproject.tomlwithhatchlingbuild backend and[project.scripts]entry point:mosaic = "mosaic.cli:main". Package is now installable viapip install -e .. - Added unified CLI
mosaic/cli.pywith subcommandsmosaic runandmosaic export, replacing the two separate entry points. - Added global CLI flags:
--verbose(INFO-level logging),--config PATH(user TOML override),--version. - Added
mosaic/config_default.tomlwith externalized configuration: paths, reduction types, levels, random state, CV settings, and active models. - Added
Config.setup()method to separate filesystem side effects from object instantiation, enabling safe use in tests. - Added
ResultManager.write_csv()method, consolidating all file I/O underResultManager. - Added
smokecolumn toresults.csvto mark runs generated in smoke mode. - Added smoke-mode export guard:
mosaic exportblocks export of smoke results with exit code 1. Usemosaic export --forceto override with a visible warning. - Added package-level
NullHandlerlogger inmosaic/__init__.py.
Changed¶
Confignow readsconfig_default.tomlas the base configuration.Config.__init__no longer creates directories or sets random seeds.Config.PARAM_GRIDis now built by_build_param_grid().main.pynow iterates overconfig.REDUCTION_TYPESinstead of a hardcoded list.main.pydelegates CSV writing toResultManager.write_csv().- CLI logic centralized in
mosaic/cli.py. - Bumped version to
0.1.3inversion.pyandCITATION.cff.
Validation¶
pip install -e .succeeded inmosaic_env.mosaic --help,mosaic run --help,mosaic export --helpverified.mosaic --versionreturnsMOSAIC 0.1.3.mosaic run --smoke --verbosecompleted full PCA + UMAP run with INFO logging.mosaic export --row 0 --forceexported with warning,.pklartifact created.
[0.1.2] - 2026-05-22¶
Changed¶
- Moved all source modules into a
mosaic/package directory. - Updated all intra-package imports to use the
mosaic.*namespace. result_manager.pynow reads__version__frommosaic.version.- Updated
README.mdto reflect themosaic/package structure.
Fixed¶
- Bumped version string in
version.pyto0.1.2.
Added¶
- Added
--smokeflag tomosaic.mainfor lightweight benchmarking. - Added
argparseCLI tomosaic.mainwith--smokeflag and--helpsupport.
Validation¶
- Python syntax validation passed for all modules under
mosaic/. - Dataset loading smoke test passed: PCA70 labels and features loaded correctly.
- SVC, Random Forest and XGBoost smoke tests passed; scores match v0.1.1 baseline.
- PNG figure generation smoke test passed.
[0.1.1] - 2025-05-22¶
Changed¶
- Rewrote
README.mdto reflect the current pre-stable repository workflow. - Changed project license from MIT to GNU LGPL v3.0 or later.
- Added GNU license files:
COPYINGandCOPYING.LESSER. - Added SPDX license metadata:
LGPL-3.0-or-later.
Fixed¶
- Added validation to ensure embedded
.npzlabels matchraw/labels.npy. - Ensured plot output directories are created automatically before saving figures.
Added¶
- Added
version.pywith centralized project version metadata. - Added
CITATION.cfffor software citation metadata. - Added non-interactive model export support with
python export_best_model.py --row <index>.
Validation¶
- Python syntax validation passed.
- PCA70 dataset loading passed.
- Export CLI help validation passed.
- Minimal SVC, Random Forest and XGBoost smoke tests passed in
mosaic_env.
[0.1.0] - 2025-05-22¶
Added¶
- Initial corrected pre-stable version of MOSAIC.
- Tabular classification benchmarking with PCA/UMAP reduced datasets.
- Grid search support for SVC, Random Forest and XGBoost.
- Repeated Stratified K-Fold evaluation.
- TXT/CSV result export.
- Final model export as
.pkl. - Three-panel metric plotting for F1, Accuracy and AUC-ROC.