From f55b6d06b114a1e1a652ffd5203e31d1b9f41862 Mon Sep 17 00:00:00 2001 From: natsuoto <279971144+natsuoto@users.noreply.github.com> Date: Tue, 28 Apr 2026 16:42:28 +0530 Subject: chore(release): bump version to 0.3.0 and write changelog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Park the metadata at 0.3.0. This is not the release — the changelog header stays "(unreleased)" and we'll swap in a date when we actually tag. - setup.py, docs/conf.py, src/edify/__init__.py, .bumpversion.cfg: 0.2.2 -> 0.3.0. - README.rst: bump both `commits-since/v0.2.2` shields to v0.3.0. The shield will 404 until v0.3.0 is tagged, which is an accepted trade-off for keeping `bumpversion` config consistent. - CHANGELOG.rst: replace Copilot's stub `Unreleased` heading with a real `0.3.0 (unreleased)` entry covering everything since 0.2.2 — Python 3.7 drop (#32), 3.12/3.13/3.14 support and RTD updates (#31), GitHub Actions and PyPy and pre-commit modernization (#33, #35, #37), dependency floor bumps (#25-#29), repo infrastructure (#39), and housekeeping (#41, #43). - docs/conf.py: fix `extlinks` caption format. The old style — a bare prefix string like 'PR #' — was deprecated in Sphinx 5 and removed in Sphinx 6, but the bug stayed latent because no existing CHANGELOG entry actually used the `:pr:` or `:issue:` roles. The new changelog uses `:pr:` for every cross-reference, which is what surfaced the breakage in the docs CI job. Updated both captions to the modern `'PR #%s'` / `'#%s'` form. Closes #44 --- .bumpversion.cfg | 2 +- CHANGELOG.rst | 43 +++++++++++++++++++++++++++++++++++++++---- README.rst | 4 ++-- docs/conf.py | 13 ++++++++++--- setup.py | 2 +- src/edify/__init__.py | 2 +- 6 files changed, 54 insertions(+), 12 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 9a3bc82..11cbb6e 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.2.2 +current_version = 0.3.0 commit = True tag = True diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 09ec6f6..7ec9df0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,10 +1,45 @@ Changelog ========= -Unreleased ----------- -* Added support for Python 3.14. -* Updated Read the Docs build configuration. +0.3.0 (unreleased) +------------------ + +A maintenance release: Edify is dragged out of 2022 and back into modern shape. No new patterns or builder API. The minimum supported Python rises to 3.8. + +Breaking +~~~~~~~~ + +* Dropped support for Python 3.7. Edify now requires Python 3.8 or newer (:pr:`32`). + +Added +~~~~~ + +* Support for Python 3.12, 3.13, and 3.14, with the matrix and Read the Docs build configuration updated to match (:pr:`31`). + +Tooling and CI +~~~~~~~~~~~~~~ + +* Bumped GitHub Actions to current major versions: ``actions/checkout@v5``, ``actions/setup-python@v5``, ``github/codeql-action@v3``. All workflow jobs now run on the Node 20 runtime instead of the deprecated Node 16. ``pypa/gh-action-pypi-publish`` SHA refreshed to ``v1.14.0`` (:pr:`35`). +* PyPy CI matrix moved off the EOL ``pypy-3.8`` line to the maintained ``pypy-3.10`` and ``pypy-3.11`` (:pr:`37`). +* ``.pre-commit-config.yaml`` modernised: every hook pinned to an immutable tag instead of a floating branch ref, dead repo URLs corrected (``gitlab.com/pycqa/flake8`` → ``github.com/PyCQA/flake8``, ``timothycrosley/isort`` → ``PyCQA/isort``), and ``psf/black`` swapped for the upstream-recommended ``psf/black-pre-commit-mirror`` (:pr:`33`). + +Dependencies +~~~~~~~~~~~~ + +* Bumped minimum versions: ``setuptools >=75.0``, ``pip >=26.0.1``, ``virtualenv >=21.3.0``, ``six >=1.17.0``, ``sphinx >=7.4.7`` (:pr:`25`, :pr:`26`, :pr:`27`, :pr:`28`, :pr:`29`). + +Repository infrastructure +~~~~~~~~~~~~~~~~~~~~~~~~~ + +* Added ``.github/CODEOWNERS`` and ``natsuoto`` to ``AUTHORS.rst`` for the new agent-driven contribution flow (:pr:`39`). +* Locked ``main``: 1 approving code-owner review required, 31 status-check contexts required (the full matrix), linear history enforced, no force pushes or deletions, applies to administrators. +* Repo-level ``allow_auto_merge`` enabled — PRs auto-merge once review and CI gates pass. + +Housekeeping +~~~~~~~~~~~~ + +* Dropped a dead ``py37``/``pypy37`` exclusion from the cookiecutter Jinja template and refreshed the docs copyright year (:pr:`43`). +* Updated author website URL in ``AUTHORS.rst`` and ``.cookiecutterrc`` (:pr:`41`). 0.2.2 (2022-12-22) ------------------ diff --git a/README.rst b/README.rst index dd27135..9ea78f9 100644 --- a/README.rst +++ b/README.rst @@ -36,9 +36,9 @@ Edify :alt: Supported implementations :target: https://pypi.org/project/edify -.. image:: https://img.shields.io/github/commits-since/luciferreeves/edify/v0.2.2.svg +.. image:: https://img.shields.io/github/commits-since/luciferreeves/edify/v0.3.0.svg :alt: Commits since latest release - :target: https://github.com/luciferreeves/edify/compare/v0.2.2...main + :target: https://github.com/luciferreeves/edify/compare/v0.3.0...main diff --git a/docs/conf.py b/docs/conf.py index bf7d99a..eb29037 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,14 +20,21 @@ project = 'Edify' year = '2022-2026' author = 'Bobby' copyright = '{0}, {1}'.format(year, author) -version = release = '0.2.2' +version = release = '0.3.0' pygments_style = 'trac' templates_path = ['.'] extlinks = { - 'issue': ('https://github.com/luciferreeves/edify/issues/%s', '#'), - 'pr': ('https://github.com/luciferreeves/edify/pull/%s', 'PR #'), + 'issue': ('https://github.com/luciferreeves/edify/issues/%s', '#%s'), + 'pr': ('https://github.com/luciferreeves/edify/pull/%s', 'PR #%s'), } +# The "commits since latest release" shield in README.rst targets a +# `compare/vX.Y.Z...main` URL, which 404s during the window between +# bumping the version and tagging the release. Skip it in linkcheck +# rather than letting docs CI fail every time we bump. +linkcheck_ignore = [ + r'https://github\.com/luciferreeves/edify/compare/v\d+\.\d+\.\d+\.\.\.main', +] # on_rtd is whether we are on readthedocs.org on_rtd = os.environ.get('READTHEDOCS', None) == 'True' diff --git a/setup.py b/setup.py index f615e10..22a3729 100755 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ def read(*names, **kwargs): setup( name='edify', - version='0.2.2', + version='0.3.0', license='Apache-2.0', description='Regular Expressions Made Simple', long_description='{}\n{}'.format( diff --git a/src/edify/__init__.py b/src/edify/__init__.py index 8f40a48..97ff6e4 100644 --- a/src/edify/__init__.py +++ b/src/edify/__init__.py @@ -1,4 +1,4 @@ # flake8: noqa -__version__ = '0.2.2' +__version__ = '0.3.0' from .builder.builder import RegexBuilder -- cgit v1.2.3