Repository navigation
Release-time versioning with [Unreleased]; the shims name 4.0.0 as their removal - #88
Merged
Merged
Conversation
…der [Unreleased] Every commit used to bump the patch version, which left 80-odd versions in CHANGELOG.md, most of them one commit each. Now changes go under `## [Unreleased]`, and the release commit sets the version in datamasking/_version.py and data_masking.py and renames the section. The per-push test accepts one [Unreleased] section, at the top, and still requires a section for the current version (the newest versioned one). release_notes.py --strict, which release.yml passes for a tag, refuses to release while [Unreleased] still holds entries; a missing section for the tag's version already stopped the release. CLAUDE.md describes the rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KWNMnT1qhC9uKcyrNbjL9t Generated-With: Claude Code 2.1.42
… them The root shims (masking/, unmasking/, modules/, rank_data.py) have been deprecated since 3.0 without saying until when. Removing them breaks the old import paths, so it waits for the next major version: each warning now says "will be removed in 4.0.0", and so do the shims' docstrings, README (EN/UK), CLAUDE.md and the [Unreleased] changelog. The shim test holds every warning to that text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KWNMnT1qhC9uKcyrNbjL9t Generated-With: Claude Code 2.1.42
ubuntu-latest is now Ubuntu 26.04, and actions/setup-python has no
Python 3.9 for it ("The version '3.9' with architecture 'x64' was not
found for Ubuntu 26.04"), so the py3.9 job failed before any test ran,
on every branch. 3.9 is the floor of requires-python, so it keeps its
job: the matrix entry runs on ubuntu-24.04 through a `runner` key, and
its name stays "Tests (ubuntu-latest, py3.9)".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KWNMnT1qhC9uKcyrNbjL9t
Generated-With: Claude Code 2.1.42
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.
Two commits.
Release process: the version is bumped at release
## [Unreleased]; the release commit sets the version indatamasking/_version.pyanddata_masking.py(CI still checks they match) and renames the section to## [X.Y.Z] - YYYY-MM.tests/test_release_notes.py: the per-push gate accepts one[Unreleased]section, at the top, and still requires a section for the current version (the newest versioned section must be it).release_notes.py --strictrefuses a release while[Unreleased]still holds entries;release.ymlpasses it for tag builds (not for dry-runs). A tag whose version has no section was already refused.release.ymlheader describe the procedure. This PR does not bump the version: its entries are under[Unreleased].Shims: removal in 4.0.0
masking/,unmasking/,modules/,rank_data.pyare deprecated since 3.0; removing them breaks old imports, so it is the next major. EveryDeprecationWarningnow says "will be removed in 4.0.0"; docstrings, README (EN/UK), CLAUDE.md and the CHANGELOG say the same, andtest_compat_shims.pyasserts the text.Locally:
pytest tests/1538 passed, 1 skipped;mypy datamasking/no issues;flake8 --select=E9,F63,F7,F82clean.Generated by Claude Code