Skip to content

release: report 3.3.0, so the version the gate reads matches the tag - #516

Merged
ChuckBuilds merged 1 commit into
mainfrom
fix/report-3.3.0
Sep 3, 2026
Merged

release: report 3.3.0, so the version the gate reads matches the tag#516
ChuckBuilds merged 1 commit into
mainfrom
fix/report-3.3.0

Conversation

@ChuckBuilds

@ChuckBuilds ChuckBuilds commented Sep 2, 2026

Copy link
Copy Markdown
Owner

v3.3.0 is tagged, but src/__init__.py still says "3.2.0" — and that string, not the git tag, is what the compatibility gate compares:

# store_manager.py:1470
from src import __version__ as core_version
compatible, reason = compatibility.check(manifest, core_version)

What that costs today

Every plugin flooring at 3.3.0 is refused on a device running 3.3.0. Run against the real gate and the real manifest:

core __version__ reported to the gate : 3.2.0
hockey manifest floor                 : 3.3.0
gate verdict                          : REFUSE
  "Hockey Scoreboard supports LEDMatrix >=3.3.0, but this system is
   running 3.2.0. Install a build in that range, or a plugin version
   that supports 3.2.0."

That is all eight sports scoreboards plus calendar 1.2.3 — and it presents as a broken plugin store rather than a stale constant.

The TRUSTWORTHY_FLOOR escape hatch does not cover it: that exempts cores reporting below 2.0.0 as "unknown rather than old". 3.2.0 is above the floor, so the number is trusted and compared.

This is the same slip as v3.1.0, which was tagged six weeks before its version string was bumped and shipped __version__ = "1.0.0" — the reason the escape hatch exists at all.

After the bump

Same gate call, same manifests:

plugin floor verdict
hockey 1.23.0 (sports_card) 3.3.0 ALLOW
hockey 1.24.0 (sports_shared) 3.3.0 ALLOW
calendar 1.2.3 3.3.0 ALLOW

Also

CHANGELOG.md gains its 3.3.0 section. That file exists so plugin authors know which release to floor on, so it records the three new importable modules — src/common/sports_card.py, sports_game_renderer.py, sports_shared.py — against this version, plus the three traps in adopting the mixins (the SportsRecentSharedMixin base-order hazard, why _plugin_dir() walks the MRO, and which three methods deliberately stay in the plugins).

Verification

No test pinned the old literal — the ones that care monkeypatch __version__. 135 compatibility tests pass.

This should merge before the plugin-side PRs, or they publish eight plugins nobody can install.

Summary by CodeRabbit

  • New Features

    • Added display orientation settings, Vegas ticker behavior, and clearer labels for enum-based dropdown options.
    • Improved plugin compatibility and retry behavior during installation and loading.
  • Bug Fixes

    • Improved ESPN access, logo download retries, caching, odds retrieval, secret handling, backup-device matching, and web UI error reporting.
    • Enhanced stability on low-memory devices.
  • Documentation

    • Added release documentation for the sports-library sunset, compatibility requirements, and upgrade behavior.
    • Updated the release version to 3.3.0.

v3.3.0 is tagged, but src/__init__.py still says "3.2.0" -- and that string,
not the git tag, is what the compatibility gate compares
(store_manager.py: `from src import __version__ as core_version`).

The effect is that every plugin flooring at 3.3.0 is refused on a device
running 3.3.0. Checked against the real gate and the real manifest:

    core __version__ reported to the gate : 3.2.0
    hockey floor                          : 3.3.0
    verdict                               : REFUSE
      "supports LEDMatrix >=3.3.0, but this system is running 3.2.0"

That is all eight sports scoreboards plus calendar 1.2.3, and it would read as
a broken plugin store rather than a stale constant.

The TRUSTWORTHY_FLOOR escape hatch does not cover this: it exempts cores
reporting below 2.0.0 as "unknown rather than old", and 3.2.0 is above it, so
the number is trusted and compared.

This is the same slip as v3.1.0, which was tagged six weeks before its version
string was bumped and shipped __version__ = "1.0.0" -- the reason that escape
hatch exists at all.

With the bump, the same gate call returns ALLOW for hockey at both the
sports_card and sports_shared floors, and for calendar 1.2.3.

CHANGELOG.md gains the 3.3.0 section. That file is what plugin authors read to
decide which release to floor on, so it records the three new modules --
src/common/sports_card.py, sports_game_renderer.py and sports_shared.py --
against this version, along with the three traps in adopting the mixins.

No test pinned the old literal; the ones that care monkeypatch __version__.
135 compatibility tests pass.
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 6753e7ae-7a03-438e-896d-2e7c9331e0e0

📥 Commits

Reviewing files that changed from the base of the PR and between 300cdaa and ed5b5e6.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • src/__init__.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The package version changes from 3.2.0 to 3.3.0. The changelog documents the sports-library sunset, compatibility gate updates, fixed issues, and new configuration and schema behavior.

Changes

Release metadata

Layer / File(s) Summary
Version and changelog
src/__init__.py, CHANGELOG.md
The package version is updated to 3.3.0. The changelog records the sports-library sunset, compatibility updates, fixes, and additions.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Merge Risk: ⚪ Minimal · up to ed5b5

The PR updates the reported release version to 3.3.0 and documents the release, enabling compatibility checks to accept plugins targeting 3.3.0. No actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: reporting version 3.3.0 so the compatibility gate matches the release tag.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/report-3.3.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 duplication

Metric Results
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@ChuckBuilds
ChuckBuilds merged commit cb0545e into main Sep 3, 2026
9 checks passed
@ChuckBuilds
ChuckBuilds deleted the fix/report-3.3.0 branch September 3, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant