release: 0.4.0 - #13
Merged
Merged
Conversation
numpy is the only runtime dependency, and a trained map can be saved without pickle. Results change in two places. Linear initialization is corrected for data far from the origin, where 0.3.0 was wrong by up to 5.8%. Anyone who imported pandas or scikit-learn transitively through this package must now depend on them directly. Everything else is additive: no public name or signature is removed, and the plain-string options keep working. Verified from the built wheel in a clean environment: installs numpy alone, trains, round-trips a saved map bit-identically, never imports pandas or scikit-learn, ships py.typed, and the cli extra still resolves to tqdm.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version bump and changelog for 0.4.0. Merging this, then tagging
v0.4.0, triggers the trustedpublisher.
What 0.4.0 is
numpyis the only runtime dependency, and a trained map can be saved withoutpickle.pickle, or nothingsave_npz/load_npzmode=ValueErrorat runtimeResults change in two places
Stated plainly because this is a research library:
scikit-learn's
autosolver, which pickscovariance_eighwhen samples outnumber features andloses precision when the mean dominates the spread. On
(150, 4)data offset by 1e7 the secondexplained variance was wrong by 5.8%. Near the origin the difference is floating-point noise.
through this package, depend on them directly.
pip install python-som[examples]restores the oldinstall set.
Everything else is additive. No public name or signature is removed;
mode="batch"and the otherplain strings keep working and will until 1.0.0.
Verified from the built wheel, not the source tree
Plus the usual gates: 369 tests at 100% coverage, ruff /
ruff format/mypy --strictclean,mkdocs build --strictexits 0,twine checkpasses both artifacts, bandit clean,pip-auditreports no known vulnerabilities, architecture profile
--strictpasses.After merge
v0.4.0immediately, so master never claims an untagged version for long.release.ymlbuilds, then waits on thepypienvironment's required reviewer.I will ask for explicit confirmation immediately before approving it, and will not proceed without
it.
github-releasejob runs after publish, so the tag gets a release with the changelog body.Note on the next version
0.4.0 documents the plain-string deprecation but emits no warning, because
mode="batch"is what thedocs showed until this release. 0.5.0 must ship the
DeprecationWarningbefore 1.0.0 can removestrings — the policy is that a removal in a major release follows at least one minor release that
warns. Recorded in the plan so 1.0.0 does not skip it.