Skip to content

release: 0.6.0 - #19

Merged
andremsouza merged 1 commit into
masterfrom
release/0.6.0
Jul 30, 2026
Merged

release: 0.6.0#19
andremsouza merged 1 commit into
masterfrom
release/0.6.0

Conversation

@andremsouza

Copy link
Copy Markdown
Owner

Version bump and changelog for 0.6.0. Nothing breaks, no results change.

What 0.6.0 is

Two things, both additive:

  • A map can be used as a scikit-learn estimator. fit, transform, predict, score,
    get_params, set_params on SOM, plus python_som.sklearn.SOMEstimator for full Pipeline and
    GridSearchCV integration behind pip install "python-som[sklearn]".
  • The plain-string deprecation from 0.5.0 is withdrawn. Strings are permanent.

train is untouched and remains primary. numpy is still the only runtime dependency.

The withdrawal, stated plainly

0.5.0 shipped a DeprecationWarning announcing that mode="batch" would stop working in 1.0.0. That
was wrong, and this release reverses it. Every comparable library passes options as plain strings and
none export enums — scikit-learn, numpy, scipy, minisom, sompy — so removing the string form would have
made this the only library in its ecosystem to reject mode="batch".

Anyone who migrated to the enums while 0.5.0 was current keeps working code: the enums are staying too.
The changelog says so directly rather than quietly dropping the warning.

Verified from the built wheel, both ways

numpy only:
  version 0.6.0
  estimator methods: predict (40,)  transform (40, 30)  score -0.5236
  plain strings under -W error::DeprecationWarning: silent
  python_som.sklearn: correctly unavailable, with a message naming the extra

with [sklearn]:
  GridSearchCV(SOMEstimator(y=4), {"x": [4, 6]}, cv=3) -> best {'x': 6}, score -1.1440

Plus 424 tests at 100% coverage, ruff / ruff format / mypy --strict clean, mkdocs build --strict
exits 0, twine check passes both artifacts.

Where 1.0.0 stands

Deliberately not next. What remains breaking is thin — keyword-only arguments, removing two setters,
removing pre-0.3.0 private aliases, dropping Python 3.10 after its October 2026 EOL — and the estimator
interface introduced here should have real use before the API is frozen around it. refactor/enums-only
is dropped from the plan entirely.

After merge

Tag v0.6.0, then the workflow builds and waits on the pypi environment reviewer, which you
authorise in the GitHub UI.

A map can be used as a scikit-learn estimator, and the plain-string deprecation from 0.5.0 is
withdrawn.

Nothing breaks and no numerical results change. train is untouched and remains the primary way to
train, both option spellings work and neither is deprecated, and scikit-learn is optional: numpy is
still the only runtime dependency.

Verified from the built wheel in a clean environment. With numpy alone: the estimator methods work,
plain strings are silent under -W error::DeprecationWarning, and importing python_som.sklearn raises an
ImportError naming the extra. With the extra installed, GridSearchCV runs against the adapter.
@andremsouza
andremsouza merged commit e77c432 into master Jul 30, 2026
8 checks passed
@andremsouza
andremsouza deleted the release/0.6.0 branch July 30, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant