Changelog

All notable changes to skeval are documented here.

The format follows Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased


0.2.3 (2026-06-02)

Release highlights

  • compute_metrics now raises a clear ValueError when fewer than two distinct labels are present — a 1×1 confusion matrix has no diagnostic value.

  • load() raises a user-friendly FileNotFoundError instead of a raw Python traceback when the saved model directory does not exist.

  • CSV and JSONL dataset loaders now validate their inputs and report errors clearly before any training begins.

  • Doc-build dependencies pinned to exact versions for fully reproducible Read the Docs builds.

Fixed

  • compute_metrics now raises ValueError when fewer than 2 distinct labels are found in the combined y_true / y_pred set — previously it produced a meaningless 1×1 confusion matrix and emitted a UserWarning. See issue #131 by @direkkakkar319-ops.

  • load() now raises FileNotFoundError with a clear message ("No saved model found in '<path>'. Call save() first.") instead of propagating a raw Python FileNotFoundError with no context. See issue #115 by @direkkakkar319-ops.

  • DatasetLoader now validates that the required text and label columns are present in CSV files before attempting to load, raising ValueError with the missing column names. See issue #121 by @iccccccccccccc.

  • DatasetLoader now catches json.JSONDecodeError on malformed JSONL lines and re-raises with the line number and content for easier debugging. See issue #120 by @iccccccccccccc.

  • Added wheel and build to [project.optional-dependencies] dev in pyproject.toml so python -m build --no-isolation works out of the box for contributors without extra manual installs. See issue #143 by @direkkakkar319-ops.

Changed

  • Pinned exact doc-build dependency versions in docs/requirements-docs.txt for reproducible Read the Docs builds. See issue #139 by @direkkakkar319-ops.

  • Bumped codecov/codecov-action from 5 to 6. By @dependabot.

  • Bumped actions/upload-artifact from 4 to 7. By @dependabot.

  • Bumped actions/download-artifact from 4 to 8. By @dependabot.

  • Bumped MishaKav/pytest-coverage-comment from 1.0.26 to 1.7.2. By @dependabot.

Added

  • Integrated CodeRabbit AI review — maintainers can trigger a review on any pull request by commenting @coderabbitai review. See issue #144 by @direkkakkar319-ops.


0.2.2 (2026-05-26)

Release highlights

  • Deprecated train() fully replaced by fit() across all examples, scripts, and documentation — the API is now consistent with scikit-learn conventions throughout.

  • assert in _batch_forward replaced with an explicit RuntimeError so unfitted-model errors survive python -O optimised mode.

Fixed

Changed

Added

New Contributors


0.2.1 (2026-05-21)

Fixed

  • Updated CONTRIBUTING.md links to the correct repository URL. By @Raviteja2299.

  • Replaced Sentinel AI label in CLI description, train_model script, evaluate_llm script, and 04_custom_labels example. By @taiman724.

  • Fixed README clone URL and changelog repository URL. By @donglrd.

  • Removed scikit-learn boilerplate from PR template. By @donglrd.

New Contributors


0.2.0 (2026-05-19)

Release highlights

  • New model_selection module with train_test_split() and cross_val_score().

  • predict_proba() — probability outputs for LIME, SHAP, and ONNX compatibility.

  • SentenceClassifier now inherits from sklearn.base.BaseEstimator, enabling full sklearn pipeline and GridSearchCV compatibility.

Added

Changed


0.1.2 (2026-04-25)

Changed

Fixed


0.1.1 (2026-04-25)

Fixed

  • CI workflow: updated actions/checkout to v4 and actions/setup-python to v5 (v6 does not exist and caused CI failures). By @direkkakkar319-ops.

  • README: corrected predict() usage example — method takes a list of strings, not a single string. By @direkkakkar319-ops.

  • README: corrected example output keys (per_class_f1per_class). By @direkkakkar319-ops.

  • README: fixed install URL placeholder (your-username → correct repository path). By @direkkakkar319-ops.


0.1.0 (2026-04-25)

Release highlights

First public release of skeval — a lightweight semantic evaluation layer for LLMs.

Added