mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 06:15:09 +00:00
chore: prepare the 3.8.0 release (#709)
* chore(deprecation): remove the 35 APIs deprecated for 3.8.0 The usage scan (docs/DEPRECATIONS_3.8.md, regenerated 2026-10-01 and committed here) finds no call or override of any of them in the 46 monorepo plugins or the 8 third-party plugins plugins.json lists; the only core callers were other deprecated methods removed alongside. - CacheManager: 13 methods, plus the private helpers only has_data_changed used (_has_*_changed, _is_market_open). - DisplayManager: 7 methods, plus WEATHER_COLORS and the private _draw_sun/_cloud/_rain/_snow/_storm helpers only the icon methods used. - FontManager: 14 methods, plus size_tokens, _save_overrides and _clear_plugin_font_cache. font_overrides and _load_overrides stay: resolve_font() still applies config/font_overrides.json. performance_stats stays: get_font() keeps it and tests read it. - PluginManager.get_enabled_plugins. test_deprecation.py pins only the two 3.9.0 markers now; the scanner tests run against a stand-in core instead of the real markers. The memory-tier tests read stats through log_memory_cache_stats() and the component, and the test of the removed _clear_plugin_font_cache goes. Docs drop the removed methods' reference entries; the Deprecated APIs table becomes "Removed in 3.8.0". CHANGELOG gains a Removed section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore(deprecation): drop the test harness's copies of the removed icon methods VisualTestDisplayManager still drew weather icons that DisplayManager no longer has, so a plugin's visual tests could pass on calls that raise AttributeError on the real display. Its draw_sun/draw_cloud/draw_rain/ draw_snow/draw_weather_icon/draw_text_with_icons, WEATHER_COLORS and the private helpers go, with the tests that exercised them. The CHANGELOG's Deprecations entries no longer say nothing is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: prepare the 3.8.0 release Bumps src.__version__ to 3.8.0 and turns Unreleased into ## 3.8.0, with a summary and a New modules list (vegas_elements, testing.vegas, sports_vegas; display_watchdog, plugin_catalog, plugin_runtime) for plugins flooring on 3.8.0. Adds the CHANGELOG line #701's second commit lacked (blocks laid out off the render thread). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * chore: 3.8.0 also ships what landed on main since the prep #703, #705, #706 and #693 merged after this branch was cut; their CHANGELOG entries now sit under 3.8.0. The summary and New modules list name them (sports consolidation stage 4's four modules, src/ipc, field_model), stage 4's section says to floor on 3.8.0, and src/common/README.md marks its four modules 3.8.0 instead of Unreleased. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+41
-4
@@ -17,7 +17,37 @@ release that ships it.
|
||||
accepts both, but the store flags the old spelling as deprecated
|
||||
(`store_manager.py`) and only the new one is in `schema/manifest_schema.json`.
|
||||
|
||||
## Unreleased
|
||||
## 3.8.0
|
||||
|
||||
Live Vegas elements: plugin content that keeps changing while it scrolls
|
||||
(scores on the scoreboards' cards, the flight map's gliding aircraft, the
|
||||
weather radar's loop), with live games kept in the ticker by default. Also
|
||||
stable/beta update channels, the display control socket, the systemd
|
||||
display watchdog, optional web login, ES-module web UI pages, sports
|
||||
consolidation stage 4, and the removal of the 35 plugin APIs deprecated
|
||||
since 3.5.0 (see Removed).
|
||||
|
||||
### New modules
|
||||
|
||||
A plugin may import these via `src.*` once it floors on 3.8.0 (and should
|
||||
guard the import, since the loader's version check is advisory).
|
||||
|
||||
- `src/plugin_system/vegas_elements.py` -- `VegasElement`, the unit a
|
||||
plugin's `get_vegas_elements()` returns (also re-exported from
|
||||
`base_plugin`). See "Live Vegas elements" below.
|
||||
- `src/plugin_system/testing/vegas.py` -- the harness for those hooks:
|
||||
`render_vegas_elements`, `check_vegas_elements`, `render_vegas_timeline`.
|
||||
- `src/common/sports_vegas.py` -- what a scoreboard needs for live cards:
|
||||
`game_key`, `game_fingerprint`, `dedupe_games`, `VegasCardCache`,
|
||||
`StickyOdds`, `finished_games`.
|
||||
- `src/common/sports_plugin_host.py`, `sports_live_scroll.py`,
|
||||
`sports_display_rules.py` and `sports_font_path.py` -- sports
|
||||
consolidation stage 4; see "New modules (sports consolidation stage 4)"
|
||||
below.
|
||||
- `src/display_watchdog.py`, `src/plugin_system/plugin_catalog.py`,
|
||||
`src/plugin_system/plugin_runtime.py`, `src/plugin_system/field_model.py`
|
||||
and the `src/ipc/` package -- new core modules (described below) that
|
||||
plugins do not normally import.
|
||||
|
||||
### Web UI: ES modules and one form model (stage 1)
|
||||
|
||||
@@ -509,6 +539,14 @@ read any of them:
|
||||
twice. Assigning `cached_image` still stores exactly what was assigned.
|
||||
New `ScrollHelper.has_strip()` says whether there is a strip without
|
||||
building its image; the frame path and Vegas use it.
|
||||
- The frame after a Vegas strip extension is no longer late on a Pi 4. The
|
||||
render thread also laid out every plugin block of the new group (joining
|
||||
its rows, measuring the separation between each pair) and pasted the
|
||||
blocks into one image, about 37ms on hdpi against ~3.75ms of slack. The
|
||||
thread that fetches the group now does that as each plugin arrives, and
|
||||
the extension only writes the prepared pixels into the strip
|
||||
(`ScrollHelper.append_content` takes RGB arrays): 3.2ms. In a 4 x 8 minute
|
||||
A/B soak, extension frames went from 10 of 10 late to 3 of 10.
|
||||
|
||||
### Tooling
|
||||
|
||||
@@ -616,12 +654,11 @@ plugin that still calls one gets an `AttributeError`;
|
||||
|
||||
### New modules (sports consolidation stage 4)
|
||||
|
||||
A plugin may import these via `src.*` once it floors on the release that
|
||||
ships them (the first release cut from this section). All four hold code the
|
||||
A plugin may import these via `src.*` once it floors on 3.8.0. All four hold code the
|
||||
scoreboard plugins carry as identical copies (checked at ledmatrix-plugins
|
||||
`56c4f15`), moved without behaviour change under the plugins' own names;
|
||||
each docstring lists what the host class must provide. Nothing in core uses
|
||||
them yet. The plugins delete their copies when they floor on that release.
|
||||
them yet. The plugins delete their copies when they floor on 3.8.0.
|
||||
|
||||
- `src/common/sports_plugin_host.py` — `SportsPluginHostMixin`, ten helpers
|
||||
of the scoreboard plugin class (`manager.py`) identical in all nine:
|
||||
|
||||
Reference in New Issue
Block a user