diff --git a/CHANGELOG.md b/CHANGELOG.md index 76bb85e..f310d88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,13 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### Removed -- **Dropped support for Python 3.9** (end-of-life since October 2025). - Minimum supported version is now Python 3.10. This unblocks dev-tool - upgrades (pytest 9, build 1.5+) that no longer support 3.9. Closes #44. +## [0.4.0] — 2026-07-23 -### Fixed -- Augmented assignments no longer produce invalid-variable-name linter errors. +First release published to PyPI since 0.2.0 (0.3.0 was an internal +release that was never pushed to the index). This release bundles the +0.3.0 hardening work plus the fixes and tooling below. ### Added - **PyPI publish pipeline** (`.github/workflows/publish.yml`) using @@ -28,15 +26,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 release flow, version-bump convention, and recovery procedure for bad releases. - **`build` and `twine`** added to `requirements-dev.txt`. +- **`examples/README.md`** documenting every bundled example program, + the keywords each demonstrates, and expected output. Closes #41. +- **Enforced coverage gate.** `fail_under = 85` in `pyproject.toml`'s + `[tool.coverage.report]` so a coverage regression fails CI. Closes #42. ### Fixed -- **Unused-function checks accepted identifier substrings as calls.** Function - names now require a real Devanagari-aware call site outside strings and - comments. Closes #31. - - Known trade-off: because a call now requires `name(`, passing a function as - a value (`x = जोड़`, `map(जोड़, …)`) counts as *unused* and warns. This is a - deliberate choice favoring clarity for learner-oriented code over - higher-order usage. +- **Augmented assignments flagged as invalid variable names.** `+=`, + `-=`, `*=`, `/=`, `//=`, `%=`, `**=` no longer produce a spurious + "invalid variable name" linter error. Closes #29. +- **Unused-function checks accepted identifier substrings as calls.** + Function names now require a real Devanagari-aware call site outside + strings and comments. Closes #31. + - Known trade-off: because a call now requires `name(`, passing a + function as a value (`x = जोड़`, `map(जोड़, …)`) counts as *unused* + and warns. This is a deliberate choice favoring clarity for + learner-oriented code over higher-order usage. + +### Removed +- **Dropped support for Python 3.9** (end-of-life since October 2025). + Minimum supported version is now Python 3.10. This unblocks dev-tool + upgrades (pytest 9, build 1.5+) that no longer support 3.9. Closes #44. ## [0.3.0] — 2026-04-17 diff --git a/maithili_dsl/__init__.py b/maithili_dsl/__init__.py index a564c5e..64837b5 100644 --- a/maithili_dsl/__init__.py +++ b/maithili_dsl/__init__.py @@ -3,7 +3,7 @@ from maithili_dsl.transpiler.linter import lint_maithili_code, translate_exception_to_maithili from maithili_dsl.transpiler.numeral import convert_devanagari_numerals -__version__ = "0.3.0" +__version__ = "0.4.0" __all__ = [ "__version__", diff --git a/pyproject.toml b/pyproject.toml index b5874f4..08b6158 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "python_maithili" -version = "0.3.0" +version = "0.4.0" description = "Run Python code written in Maithili using Devanagari script" readme = "README.md" license = { file = "LICENSE" }