|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to pytm are documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/). |
| 6 | +This project follows [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html) |
| 7 | +in spirit, with one deliberate exception in 1.4.0 (see the BREAKING heading |
| 8 | +below). |
| 9 | + |
| 10 | +## [Unreleased] |
| 11 | + |
| 12 | +## [1.4.0] - 2026-05-21 |
| 13 | + |
| 14 | +### BREAKING |
| 15 | + |
| 16 | +- **Removed `tm.sqlDump()` and the `--sqldump` CLI flag (#295, #301).** Calls to |
| 17 | + `tm.sqlDump(...)` will raise `AttributeError` at runtime. There is no |
| 18 | + drop-in replacement; use `--json` for machine-readable output. This breakage |
| 19 | + is shipped in a minor release on the assumption of no real-world users; if |
| 20 | + this is wrong, please open an issue and we will publish a stub release. |
| 21 | + |
| 22 | +### Added |
| 23 | + |
| 24 | +- New `LLM` element class with eight associated threat definitions covering |
| 25 | + common LLM-specific attack patterns (#316). |
| 26 | +- New LLM threat for untrusted tool launch configuration (#329). |
| 27 | +- `likelihood` field on `Finding`, propagated from the originating `Threat` and |
| 28 | + overridable per-finding (#318). |
| 29 | +- `flows` module providing helpers for declarative `Dataflow` construction |
| 30 | + (#259). |
| 31 | +- `Data` object decoding in the JSON decoder, enabling round-trip serialization |
| 32 | + of `Data` instances (#330). |
| 33 | +- Devcontainer configuration for VS Code / GitHub Codespaces (#307). |
| 34 | +- Devbox setup with Poetry integration (#274, #282, #283, #289). |
| 35 | +- Ruff linter configuration alongside Black (#325). |
| 36 | +- Google-style docstrings on the `Actor` model entity (#311). |
| 37 | +- ROADMAP entries for 2025 and beyond. |
| 38 | + |
| 39 | +### Changed |
| 40 | + |
| 41 | +- Internal element model refactored to Pydantic v2 (#320). The user-facing |
| 42 | + construction API in `tm.py`-style scripts is preserved: `Element(name)`, |
| 43 | + attribute assignment, and `controls.*` access continue to work as before. |
| 44 | + Pydantic v2 (`>=2.10`) is now a hard runtime dependency. Users with |
| 45 | + environments pinned to Pydantic v1 must upgrade. |
| 46 | +- Minimum supported Python is now 3.9. Tested against 3.9 through 3.14. Python |
| 47 | + 3.6, 3.7, and 3.8 are no longer supported. |
| 48 | +- Migrated the test suite from `unittest` to `pytest` (#276). Existing |
| 49 | + invocations via `python -m unittest` are replaced by `pytest`; CI scripts |
| 50 | + updated accordingly. |
| 51 | +- Upgraded the Docker base image to `python:alpine3.20` (#309). |
| 52 | +- Updated Makefile and Dockerfile build pipeline (#321). |
| 53 | +- Cleaned up legacy and unused files in the repository (#326). |
| 54 | +- CODEOWNERS now defaults a maintainer set on all paths. |
| 55 | + |
| 56 | +### Fixed |
| 57 | + |
| 58 | +- `getInScopeFindings()` regression introduced by the Pydantic refactor (#323). |
| 59 | +- `likelihood` regression on resolved findings, with regression tests added |
| 60 | + (#324). |
| 61 | +- Findings on assets with `inScope=False` are now correctly suppressed (#312). |
| 62 | +- CVSS and response overrides on `Finding` are no longer overwritten during |
| 63 | + threat resolution (#248). |
| 64 | +- Various type annotation fixes and minor cleanups (#322). |
| 65 | + |
| 66 | +### Security |
| 67 | + |
| 68 | +- Escaped HTML metacharacters in DOT (Graphviz) output to prevent injection in |
| 69 | + rendered diagrams (#278, #280). |
| 70 | + |
| 71 | +## [1.3.1] - prior |
| 72 | + |
| 73 | +See [git history](https://github.com/OWASP/pytm/commits/v1.3.1) for releases |
| 74 | +prior to 1.4.0. Earlier versions did not maintain a CHANGELOG; only 1.4.0 and |
| 75 | +later are documented here. |
| 76 | + |
| 77 | +[Unreleased]: https://github.com/OWASP/pytm/compare/v1.4.0...HEAD |
| 78 | +[1.4.0]: https://github.com/OWASP/pytm/compare/v1.3.1...v1.4.0 |
| 79 | +[1.3.1]: https://github.com/OWASP/pytm/releases/tag/v1.3.1 |
0 commit comments