From 1ded62ecccd924fc315af00d09ae099177740766 Mon Sep 17 00:00:00 2001 From: Karthic Raghupathi Date: Wed, 24 Jun 2026 15:07:45 -0400 Subject: [PATCH 1/2] Prepare 1.3.0 release - Bump VERSION to 1.3.0. - Move the changelog Unreleased entries into [1.3.0] - 2026-06-24 and add the compare links. - Add a Python compatibility matrix to the README. Dropping Python 2 is strictly breaking, but Py2 support was already nominal and EOL, so 1.3.0 (minor) is the pragmatic version. Closes #56 --- CHANGELOG.md | 5 ++++- README.md | 11 ++++++++++- pystrix/__init__.py | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09a51aa..374eb73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [1.3.0] - 2026-06-24 + ### Added - `AGENTS.md` with an architecture overview and contributor guidance. - `CLAUDE.md` pointing to `AGENTS.md`. @@ -51,5 +53,6 @@ to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases before 1.2.0 are recorded in the git commit history. -[Unreleased]: https://github.com/IVRTech/pystrix/compare/v1.2.0...HEAD +[Unreleased]: https://github.com/IVRTech/pystrix/compare/v1.3.0...HEAD +[1.3.0]: https://github.com/IVRTech/pystrix/compare/v1.2.0...v1.3.0 [1.2.0]: https://github.com/IVRTech/pystrix/releases/tag/v1.2.0 diff --git a/README.md b/README.md index 26ce47c..943e948 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,16 @@ pystrix runs on Python 3.9+. It targets Asterisk 1.10+ and provides a rich, easy The package is a toolkit, not a framework. You can drop it into a larger project without adopting an async framework such as Twisted. -This repository is version **1.2.0**. The canonical version lives in `pystrix/__init__.py`. New releases follow `..`, with a patch release cut for each bug fix. +This repository is version **1.3.0**. The canonical version lives in `pystrix/__init__.py`. New releases follow `..`, with a patch release cut for each bug fix. + +## Compatibility + +| pystrix | Python | +| --- | --- | +| 1.3.0 and later | 3.9 – 3.13 | +| 1.2.0 and earlier | 2.7, 3.4+ (legacy, unmaintained) | + +From 1.3.0 on, the `requires-python` metadata makes pip resolve automatically: a project on an older Python receives 1.2.x. All versions target Asterisk 1.10+. ## Installation diff --git a/pystrix/__init__.py b/pystrix/__init__.py index bad110c..cb15305 100644 --- a/pystrix/__init__.py +++ b/pystrix/__init__.py @@ -43,5 +43,5 @@ import pystrix.agi import pystrix.ami -VERSION = "1.2.0" +VERSION = "1.3.0" COPYRIGHT = "2013, Neil Tallim " From 3afffc58860a7e9e6653c2f8afbd3d094225ab7e Mon Sep 17 00:00:00 2001 From: Karthic Raghupathi Date: Wed, 24 Jun 2026 15:20:09 -0400 Subject: [PATCH 2/2] Address release review panel feedback - AGENTS.md: drop the stale "(currently 1.2.0)" version note from the repo-layout tree (replaced with "single source of truth" so it can't go stale again). - README compatibility matrix: scope the supported row to "1.3.x" instead of "1.3.0 and later", which overpromised future versions. - CHANGELOG: note that the Python 2 drop is a pragmatic minor bump, not a 2.0.0 major, since Python 2 support was already nominal and EOL. --- AGENTS.md | 2 +- CHANGELOG.md | 2 +- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index b507d04..864c6e3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,7 +18,7 @@ The core split to keep in mind: AGI is one blocking call per script; AMI is one ``` pystrix/ -├── __init__.py VERSION lives here (currently 1.2.0) +├── __init__.py VERSION lives here (single source of truth) ├── ami/ │ ├── ami.py Manager class + threading/socket core (the heart of AMI) │ ├── core.py ~60 Action classes (Login, Originate, Hangup, Ping, ...) diff --git a/CHANGELOG.md b/CHANGELOG.md index 374eb73..17a8fb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,7 +31,7 @@ to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Migrated packaging from `setup.py` to `pyproject.toml` (PEP 621) with a PEP 639 SPDX license expression (`LGPL-3.0-or-later`). Moved the ruff config into `[tool.ruff]`, and removed `setup.py`, `build-release.py`, and `ruff.toml`. Build with `python -m build`; the version is read dynamically from `pystrix.VERSION`. ### Removed -- The Python 2 compatibility shims: the `queue` and `socketserver` import fallbacks, the `basestring` branch in `generic_transforms`, and the explicit `(object)` base classes. The codebase is now Python 3 only. +- The Python 2 compatibility shims: the `queue` and `socketserver` import fallbacks, the `basestring` branch in `generic_transforms`, and the explicit `(object)` base classes. The codebase is now Python 3 only. Dropping Python 2 is released as a pragmatic minor bump rather than a major one, since Python 2 support was already nominal and end-of-life. ### Fixed - Narrowed the bare `except` around `line.decode()` in `_AGI._read_line` to an `isinstance(line, bytes)` check. A real `UnicodeDecodeError` on malformed socket bytes now surfaces instead of being swallowed and leaving raw bytes in the line (#50). diff --git a/README.md b/README.md index 943e948..5c839c2 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ This repository is version **1.3.0**. The canonical version lives in `pystrix/__ | pystrix | Python | | --- | --- | -| 1.3.0 and later | 3.9 – 3.13 | +| 1.3.x | 3.9 – 3.13 | | 1.2.0 and earlier | 2.7, 3.4+ (legacy, unmaintained) | From 1.3.0 on, the `requires-python` metadata makes pip resolve automatically: a project on an older Python receives 1.2.x. All versions target Asterisk 1.10+.