Skip to content

Commit 2975deb

Browse files
dbrattliclaude
andauthored
ci: make CHANGELOG.md ready for ShipIt (#768)
* ci: pad historical versions to strict SemVer in CHANGELOG.md ShipIt's changelog scanner parses every "## X.Y[.Z]..." heading with SemVersionStyles.Strict, which requires MAJOR.MINOR.PATCH. The three oldest entries (0.15, 0.14, 0.13) were two-part, so the first real ShipIt run failed with: System.Exception: Invalid version at findVersions ... src/Generate/Changelog.fs:42 Rewrite those headings to 0.15.0 / 0.14.0 / 0.13.0. The content is unchanged and the three-part form matches what PyPI would canonicalize these to anyway. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(changelog): reconstruct entries for 3.0.0, 4.0.0, 5.0.0a1, 5.0.0a2 Fill the gap between the existing 2.0.0-alpha entry and the upcoming 5.0.0-rc.1 release. Bullets are curated from git log between tag pairs (v1.5.9..v3.0.0, v3.2.0..v4.0.0, v4.1.0..v5.0.0a1, v5.0.0a1..v5.0.0a2) plus PR #743 for the 5.0.0a1 fluent-chaining headline — not exhaustive, just the major changes (API rewrites, package rename, tooling moves, Python-version floors). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(changelog): use SemVer for 5.0.0 alpha headings The historical 5.0.0a1 / 5.0.0a2 entries were written in PEP 440 form (matching PyPI), but CHANGELOG.md headings must be strict SemVer for ShipIt's parser — same reason we just padded 0.13/0.14/0.15. PEP 440 '5.0.0a1' fails SemVersionStyles.Strict; rewrite as 5.0.0-alpha.1 / 5.0.0-alpha.2, consistent with the preamble note that "ShipIt records SemVer in this file" and with the upcoming 5.0.0-rc.1 heading. The PEP 440 form still lives on PyPI (published wheel metadata) and in pyproject.toml / reactivex/_version.py at release time, where the shipit_bump_version.sh updater script performs the SemVer -> PEP 440 translation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d3a1247 commit 2975deb

1 file changed

Lines changed: 55 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,58 @@ this file; the release script normalizes between them.
5454
`Scheduler` base class.
5555
- CI: Standardised `actions/setup-python` to `@v5` across all workflow jobs.
5656

57+
## 5.0.0-alpha.2
58+
59+
- Documentation header formatting fixes.
60+
61+
## 5.0.0-alpha.1
62+
63+
- **Fluent method chaining** — operators are now available as methods on
64+
`Observable` in addition to the existing `pipe()` style. Both work
65+
interchangeably and can be mixed freely. Implemented via eleven category
66+
mixins (transformation, filtering, combination, error handling,
67+
windowing/buffering, multicasting, etc.). Zero breaking changes from 4.x —
68+
all existing `pipe()`-based code continues to work. (#743)
69+
- Migrated project tooling from Poetry to `uv`.
70+
- Replaced Black + isort with Ruff for formatting and linting.
71+
- Dropped Python 3.8; added support for Python 3.11, 3.12, 3.13.
72+
- Added `scheduler` parameter to `run()` for consistent scheduling control.
73+
- Fixed `subscribe_on` not forwarding scheduler to the source. Thanks to
74+
@MainRo
75+
- Minor internal: renamed `ReplaySubject.window` to `ReplaySubject._window`
76+
to free the `window` name for the new method.
77+
78+
## 4.0.0
79+
80+
- Renamed the distribution from `rx` to `reactivex` (`pip install reactivex`).
81+
- Flattened the package: `Observable` and operators now live at the top level
82+
(`rx.core` gone).
83+
- Raised minimum Python to 3.7.
84+
- Full pyright-strict type coverage; `disallow_untyped_defs` enforced.
85+
- Migrated from `setup.py` to Poetry.
86+
- Improved scheduler type annotations and asyncio thread-safety.
87+
- Internal operators renamed with a leading underscore (`_map`, `_filter`,
88+
etc.).
89+
- Marble-diagram documentation added for every operator.
90+
- Test scheduler and marble-testing improvements. Thanks to @MainRo
91+
92+
## 3.0.0
93+
94+
- Replaced method chaining with a pipe-based functional API as the
95+
recommended style.
96+
- Dropped Python 2 support; Python 3.6+ only.
97+
- Renamed the `concurrency` package to `scheduler`; split mainloop and
98+
eventloop schedulers into their own modules.
99+
- Simplified variadic operator signatures (`amb`, `combine_latest`, `concat`,
100+
`merge`, `on_error_resume_next`, `catch`, `zip`) — the leading `Iterable`
101+
argument is gone.
102+
- Removed `result_mapper` from `join`, `group_join`, `zip`, `generate`.
103+
- Added comprehensive type hints and a `py.typed` marker (PEP 561).
104+
- Collapsed `AnonymousObservable` into `Observable`.
105+
- Renamed `catch_exception` to `catch`.
106+
- Added `TrampolineScheduler` and priority-queue scheduler improvements.
107+
- Replaced the blocking observable with a single `run()` function.
108+
57109
## 2.0.0-alpha
58110

59111
- Extension methods and extension class methods have been removed. This
@@ -170,23 +222,23 @@ this file; the release script normalizes between them.
170222
- Refactored operators to use C# like extensionmethods using function decorators
171223
- More PEP8 alignment
172224

173-
## 0.15
225+
## 0.15.0
174226

175227
- Python slicing and indexing of observables. Thus you can write xs[1:-1:2]
176228
- Aligned backpressure with RxJS
177229
- Renamed all `select()` to `map()` and `where()` to `map()`
178230
- `from_` is now an alias for `from_iterable`. Removed `from_array`
179231
- Fixes for `flat_map`/`flat_map`. Selector may return iterable
180232

181-
## 0.14
233+
## 0.14.0
182234

183235
- Made `ScheduledObserver` thread safe
184236
- Thread safe handling for `take_while` and `group_join`
185237
- Removed dependecy on six (https://pythonhosted.org/six/)
186238
- Added support for IronPython (by removing six)
187239
- Aggregate is now an alias for reduce
188240

189-
## 0.13
241+
## 0.13.0
190242

191243
- Aligning throttle type operator naming with RxJS and RxJava
192244
- Added `throttle_last()` as alias for `sample()`

0 commit comments

Comments
 (0)