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.2 (2026-05-26)
Release highlights
Deprecated
train()fully replaced byfit()across all examples, scripts, and documentation — the API is now consistent with scikit-learn conventions throughout.assertin_batch_forwardreplaced with an explicitRuntimeErrorso unfitted-model errors survivepython -Ooptimised mode.
Fixed
Replace
assert self.model is not Nonewith an explicitRuntimeErrorin_batch_forward— assertions are silently stripped underpython -O, causing an unhelpfulAttributeErrorfrom PyTorch when callingpredict()orpredict_proba()on an unfitted model. See issue #113 by @direkkakkar319-ops.Replace deprecated
train()withfit()inscripts/train_model.py. See issue #111 by @iccccccccccccc.Replace deprecated
train()withfit()inexamples/01_quickstart.py. See issue #112 by @iccccccccccccc.Replace deprecated
train()withfit()inexamples/02_save_and_load.py. See issue #135 by @direkkakkar319-ops.Replace deprecated
train()withfit()inexamples/03_evaluation.py. See issue #133 by @Storm1289.Replace deprecated
train()withfit()inexamples/04_custom_labels.py. See issue #134 by @direkkakkar319-ops.Update
train()tofit()indocs/usage.rst. See issue #126 by @direkkakkar319-ops.Move
epochsargument toSentenceClassifierconstructor indocs/index.rst. See issue #127 by @direkkakkar319-ops.
Changed
Updated repository dependencies. See issue #129 by @direkkakkar319-ops.
Bumped
actions/labelerfrom 5 to 6. By @dependabot.Bumped
actions/upload-artifactfrom 4 to 7. By @dependabot.
Added
Documentation link added to
README.md. See issue #100 by @YuuGR1337.New CI/CD labels. See issue #119 by @direkkakkar319-ops.
Test coverage for all example scripts. See issue #128 by @atharrva01.
New Contributors
@YuuGR1337 made their first contribution.
@iccccccccccccc made their first contribution.
@Storm1289 made their first contribution.
@atharrva01 made their first contribution.
0.2.1 (2026-05-21)
Fixed
Updated
CONTRIBUTING.mdlinks to the correct repository URL. By @Raviteja2299.Replaced
Sentinel AIlabel in CLI description,train_modelscript,evaluate_llmscript, and04_custom_labelsexample. By @taiman724.Fixed README clone URL and changelog repository URL. By @donglrd.
Removed scikit-learn boilerplate from PR template. By @donglrd.
New Contributors
@Raviteja2299 made their first contribution.
@taiman724 made their first contribution.
@donglrd made their first contribution.
0.2.0 (2026-05-19)
Release highlights
New
model_selectionmodule withtrain_test_split()andcross_val_score().predict_proba()— probability outputs for LIME, SHAP, and ONNX compatibility.SentenceClassifiernow inherits fromsklearn.base.BaseEstimator, enabling full sklearn pipeline andGridSearchCVcompatibility.
Added
model_selection— new module withtrain_test_split()andcross_val_score(). By @direkkakkar319-ops.predict_proba()— probability outputs for LIME, SHAP, and ONNX compatibility. By @direkkakkar319-ops.Validation split and early stopping in
fit()(val_split,patienceparameters). By @direkkakkar319-ops.Batched prediction in
predict()andpredict_proba(). By @direkkakkar319-ops.num_workersandpin_memoryparameters on the DataLoader for faster data loading. By @direkkakkar319-ops.random_stateparameter onSentenceClassifierfor reproducible training. By @direkkakkar319-ops.Input validation in
fit()andpredict(). By @direkkakkar319-ops.SentenceClassifiernow inherits fromsklearn.base.BaseEstimator— fully compatible with sklearn pipelines andGridSearchCV. By @direkkakkar319-ops.check_estimator()compliance tests in CI. By @direkkakkar319-ops.Integration tests for the full pipeline (CSV → train → save → load → predict → evaluate). By @direkkakkar319-ops.
Test suite grew from 11 to 79 tests. By @direkkakkar319-ops.
Google-style docstrings on all public classes and functions. By @direkkakkar319-ops.
Ecosystem compatibility documentation (LIME, SHAP, ONNX, skore, GridSearchCV). By @direkkakkar319-ops.
Read the Docs configuration and Sphinx docs build workflow. By @direkkakkar319-ops.
Changed
VocabBuildernow buildsword2idxandidx2wordin a single pass. By @direkkakkar319-ops.transformersanddatasetsmoved to optional extras (pip install skeval[transformers]). By @direkkakkar319-ops.Dependency upper bounds pinned to prevent silent breakage. By @direkkakkar319-ops.
Full type annotations with
mypy --strictenforced in CI. By @direkkakkar319-ops.
0.1.2 (2026-04-25)
Changed
Renamed the library to
skeval. By @direkkakkar319-ops.
Fixed
Miscellaneous fixes and stability improvements. By @direkkakkar319-ops.
0.1.1 (2026-04-25)
Fixed
CI workflow: updated
actions/checkouttov4andactions/setup-pythontov5(v6does 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_f1→per_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
SentenceClassifier— train, predict, save, and load a PyTorch sentence classifier. By @direkkakkar319-ops.BasicTextClassifier—EmbeddingBag + Linearneural network architecture. By @direkkakkar319-ops.Evaluator— evaluate predicted labels against ground truth. By @direkkakkar319-ops.compute_metrics()— accuracy, per-class precision / recall / F1, and confusion matrix via scikit-learn. By @direkkakkar319-ops.DatasetLoader— load training data from CSV or JSON Lines files. By @direkkakkar319-ops.SentenceDataset— PyTorchDatasetwrapper with variable-length collation. By @direkkakkar319-ops.VocabBuilder— bag-of-words tokenizer with<PAD>/<UNK>support. By @direkkakkar319-ops.LabelEncoder— string label ↔ integer index mapping. By @direkkakkar319-ops.scripts/train_model.py— CLI script for training from file. By @direkkakkar319-ops.scripts/evaluate_llm.py— CLI script for evaluation from file. By @direkkakkar319-ops.Sphinx documentation. By @direkkakkar319-ops.
Full pytest test suite. By @direkkakkar319-ops.
5 example scripts in
examples/. By @direkkakkar319-ops.