Skip to content

Commit ba5c002

Browse files
Bordaclaude[bot]
andcommitted
docs(changelog): backfill missing unreleased entries
- Add `[UnReleased]` entries for #201 (inner_order_property flag, _StrictProperty export) and #200 (circular chain RuntimeError, _StrictProperty module path fix) - Add CHANGELOG update rule to AGENTS.md `Always:` block: write entry at PR-creation time with `(#N)` link; skip docs/tests/CI/refactoring - Add matching checklist item to CONTRIBUTING.md "Before Opening a PR" --- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
1 parent 1827c96 commit ba5c002

3 files changed

Lines changed: 11 additions & 0 deletions

File tree

.github/CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ Complete this checklist before opening a pull request to ensure quality and smoo
131131
- [ ] Added tests for new functionality (happy path, failure path, edge cases)
132132
- [ ] Ran tests locally and they pass (`pytest .`)
133133
- [ ] Updated documentation if needed (README, docs/guide pages, docstrings, inline comments)
134+
- [ ] Updated `CHANGELOG.md` under `[UnReleased]` — write the entry **at PR-creation time** (once the PR number is known and content is stable); re-assess against the final diff, not individual commits; include `(#N)` PR link; exclude docs-only, test-only, CI, and internal refactoring changes
134135
- [ ] Updated `docs/llms.txt` if public API behavior, patterns, or anti-patterns changed
135136
- [ ] Self-reviewed my code
136137
- [ ] Linked to related issue(s)

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ Write a clear explanation linking to both sources, then let maintainers decide o
118118

119119
- **Keep README and docs site in sync** — any API addition, rename, or behavior change must be reflected in `README.md` **and** the relevant `docs/guide/` page; new troubleshooting items go in `docs/troubleshooting.md` **and** the FAQPage JSON-LD in `docs/overrides/main.html`
120120

121+
- **Update `CHANGELOG.md` at PR-creation time** — once the PR number is known and the diff is stable, add or re-assess the entry under `[UnReleased]` (new features → `Added`, fixes → `Fixed`, behavior changes → `Changed`); always include `(#N)` PR link; skip docs-only, test-only, CI, and pure internal refactoring changes; do not write entries during iterative development commits — content may pivot before the PR is opened
122+
121123
- **Update inline comments when changing behavior** — after any logic change, scan changed files for comments describing that behavior; update stale ones (stale comments mislead more than none)
122124

123125
- **Keep AI-agent documentation in sync**`docs/llms.txt` is a machine-readable contract read by AI agents before generating code; it must reflect actual behavior at all times. Apply this sync table on every relevant change:

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
### Added
66

7+
- **`DeprecationWrapperInfo.inner_order_property` flag.** `find_deprecation_wrappers()` now sets `inner_order_property=True` when a plain `property` (not `_DeprecatedProperty`) has a `@deprecated`-wrapped `fget` — the inner-order `@property @deprecated` shape where only the getter warns; setters and deleters added via `@value.setter` / `@value.deleter` remain silently unprotected. CI pipelines can filter on this field to reject the pattern. ([#201](https://github.com/Borda/pyDeprecate/pull/201))
8+
9+
- **Opt-in strict `property` replacement.** `from deprecate import property` now exports `_StrictProperty`, a `property` subclass that raises `TypeError` at class-definition time when handed an already-`@deprecated` getter (inner-order detection). Import it in modules that want compile-time enforcement; star imports (`from deprecate import *`) are unaffected. ([#201](https://github.com/Borda/pyDeprecate/pull/201))
10+
711
### Changed
812

913
### Deprecated
@@ -12,6 +16,10 @@
1216

1317
### Fixed
1418

19+
- **Circular deprecation chains now raise `RuntimeError` at call time.** Callable `target` chains that form a cycle (A → B → A) previously caused unbounded recursion and a `RecursionError`. The decorator now detects the cycle via a `ContextVar` re-entrancy guard and raises a clear `RuntimeError` naming the circular path. Async deprecation cycle detection was also improved to avoid false positives from concurrent tasks sharing a threading-local guard. ([#200](https://github.com/Borda/pyDeprecate/pull/200))
20+
21+
- **`_StrictProperty` `TypeError` message now references the correct module path.** The error previously pointed to `deprecate._StrictProperty`; corrected to `deprecate.deprecation._StrictProperty`, which is the actual import path.
22+
1523
______________________________________________________________________
1624

1725
## [0.10.0] — 2026-06-21 — Property accessors, class attribute mapping & descriptor targets

0 commit comments

Comments
 (0)