|
| 1 | +## 2025/04/08 Release 5.0.0 |
1 | 2 | - API Changes: |
2 | 3 | - **NEW:** `Receiver` class |
3 | 4 | - A subclass of `asyncio.Queue` |
4 | 5 | - `Client`: |
5 | | - - `subscribe` and `unsubscribe` methods use new `Receiver` class |
| 6 | + - **BREAKING:** `subscribe` and `unsubscribe` methods use new `Receiver` class |
6 | 7 | - Emit unmatched exceptions on expecting receivers instead of resolving `client.closed` |
7 | 8 | - `detect_baud_rate` exposes `timeout` and `retry_times` arguments |
8 | 9 | - Document `detect_baud_rate` |
9 | | - - **Breaking:** `ClientProtocol`/`EffectClient` |
| 10 | + - **BREAKING:** `ClientProtocol`/`EffectClient` |
10 | 11 | - `crystalfontz.protocol.ClientProtocol` type has been replaced by `crystalfontz.effects.EffectClient` |
11 | 12 | - `EffectClient` enforces a smaller API than `ClientProtocol` did previously |
12 | | - - `Response`: |
| 13 | + - **BREAKING:** `Response`: |
13 | 14 | - `Response.from_bytes` accepts bytes as from packets, rather than `__init__` |
14 | 15 | - `Response.__init__` accepts properties as arguments |
15 | | - - `SpecialCharacter` API: |
| 16 | + - **BREAKING:** `SpecialCharacter` API: |
16 | 17 | - Rename `as_bytes` method to `to_bytes` |
17 | 18 | - Store pixels as `List[List[bool]]` instead of `List[List[int]]` |
18 | 19 | - `KeyState` includes `keypress: KeyPress` attribute |
19 | 20 | - CLI changes: |
20 | | - - **Breaking:** CLI now invoked through `python3 -m crystalfontz` |
| 21 | + - **BREAKING:** CLI now invoked through `python3 -m crystalfontz` |
21 | 22 | - Optional unpackaged `crystalfontz` entry point at `./bin/crystalfontz` |
22 | 23 | - Use `configurence` library |
23 | 24 | - Respect `CRYSTALFONTZ_CONFIG_FILE` environment variable |
|
29 | 30 | - `python3 -m crystalfontz line 2` |
30 | 31 | - `python3 -m crystalfontz send` |
31 | 32 | - Help for `python3 -m crystalfontz listen` `--for` option |
32 | | -- Integration tests: |
33 | | - - Use `python-gak` plugin |
34 | | - - Use snapshots |
35 | | - - Leverage a config file at `./tests/fixtures/crystalfontz.yaml` |
36 | | - - Can be overridden with `CRYSTALFONTZ_CONFIG_FILE` environment variable |
37 | 33 | - **NEW:** Dbus support: |
38 | 34 | - `crystalfontz.dbus.DbusInterface` dbus Interface class, implementing most commands |
39 | 35 | - `crystalfontz.dbus.DbusClient` dbus client class |
|
42 | 38 | - Optional unpackaged `crystalfontz.dbus.service` entry point at `./bin/crystalfontz-service` |
43 | 39 | - `python3 -m crystalfontz.dbus.client` dbus client CLI |
44 | 40 | - Optional unpackaged `crystalfontz.dbus.client` entry point at `./bin/crystalfontz-dbus` |
| 41 | +- Packaging and Releases: |
| 42 | + - `python-crystalfontz` COPR package spec |
| 43 | + - This has been moved from <https://github.com/jfhbrook/public> |
| 44 | + - **NEW:** `crystalfontz` COPR package |
| 45 | + - Depends on `python-crystalfontz` COPR package |
| 46 | + - Includes systemd unit for `python3 -m crystalfontz.dbus.service` |
| 47 | + - **BREAKING:** Includes shim bin `crystalfontz` -> `python3 -m crystalfontz.dbus.client` |
| 48 | + - Tito based release tagging |
| 49 | + - GitHub release tarball |
| 50 | +- Integration tests: |
| 51 | + - Use `python-gak` plugin |
| 52 | + - Use snapshots |
| 53 | + - Leverage a config file at `./tests/fixtures/crystalfontz.yaml` |
| 54 | + - Can be overridden with `CRYSTALFONTZ_CONFIG_FILE` environment variable |
45 | 55 |
|
46 | 56 | ## 2025/01/12 Version 4.0.0 |
47 | 57 | - Fedora package on COPR: <https://copr.fedorainfracloud.org/coprs/jfhbrook/joshiverse/package/python-crystalfontz/> |
|
0 commit comments