Repository navigation
scoreboards: require core 3.8.1; use its game-over check (sports family 5 adopt) - #631
Merged
Merged
Conversation
…opies (family 5) Core 3.8.1 ships src.common.sports_game_over, whose SportsGameOverMixin._is_game_really_over is the body the nine copies were reconciled to in #625. Each plugin's SportsLive now inherits it, listed before SportsLiveSharedMixin (the order core documents and tests), keeps its FINAL_PERIOD declaration and deletes its copy. The import is plain; the next commit floors every plugin on 3.8.1. Baseball keeps BaseballLive._is_game_really_over, the postponed/suspended check; its super() call now reaches core's method. No behaviour change: scripts/test_game_over_check.py gives the same 3,115 answers, and every harness render is byte-identical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
afl 1.36.0, baseball 1.58.0, basketball 1.43.0, football 3.19.0, hockey 1.43.0, lacrosse 1.37.0, nrl 1.35.0, soccer 2.40.0, ufc 1.20.0. versions[0].ledmatrix_min_version and compatible_versions rise to 3.8.1, the first release that ships src.common.sports_game_over, which the previous commit imports plainly. A floor raise is a minor bump, as for the 3.7.0 and 3.8.0 raises before it. plugins.json regenerated with update_registry.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/test_game_over_mixin_copies.py, in the shape of the stage 3 and stage 4 guards. For each of the nine scoreboards it fails when: - a runtime file defines _is_game_really_over again (any class, or module level), except baseball's BaseballLive, which must call super(); - sports.py's import of SportsGameOverMixin is missing, aliased or inside a try that catches ImportError; - SportsLive does not inherit the mixin, or lists it after SportsLiveSharedMixin; - SportsLive's FINAL_PERIOD is not the owner's value (hockey 3; basketball, football and lacrosse 4; the rest None), or another class sets it; - with a core checkout, the mixin defines anything but the method and FINAL_PERIOD. A self-check plants each failure. CI picks it up through the scripts/test_*.py glob in test-plugins.yml. The shared sports code page records the 3.8.1 convergence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Core v3.8.1 (a669d781) is tagged. Every None entry in the min-core table is in it (checked with git show v3.8.1:<path>): fetch_service, sports_game_over, display_arbiter, screen_runner and plugin_local_files are now "3.8.1", and the test's tag list gains 3.8.1, so its tag section checks them. v3.8.1 reports __version__ "3.8.1"; REPORTED_AS needs no entry. This clears check_min_core_version for the scoreboards' plain import of src.common.sports_game_over. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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. Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 107 |
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.
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 6 of family 5, the last one. Core v3.8.1 ships
src.common.sports_game_over(LEDMatrix#770). The nine scoreboards now require 3.8.1, inheritSportsGameOverMixinand delete their identical_is_game_really_overcopies, which #625 had reconciled. Nothing a user sees changes.Changes
SportsLivelistsSportsGameOverMixinjust beforeSportsLiveSharedMixin, the order core documents and tests. The import is plain, each plugin keeps itsFINAL_PERIOD, and its copy is deleted. Baseball'sBaseballLivenot-played override stays, and itssuper()now reaches core's method.versions[]entry,compatible_versions >=3.8.1, a CHANGELOG entry, andplugins.json.scripts/test_game_over_mixin_copies.py:BaseballLivemay define the method, and it must callsuper().FINAL_PERIODvalue drifts or appears elsewhere, or if core's mixin grows.check_min_core_version.pydates the five modules it ships as 3.8.1:fetch_service,sports_game_over,display_arbiter,screen_runnerandplugin_local_files. I checked each withgit show v3.8.1:<path>. The tag test now tracks v3.8.1.Verification
Compared against origin/main, both on the core v3.8.1 tag.
test_game_over_check.pypasses all 3,115, unchanged, and its--printtables are byte-identical.run_plugin_tests.pygives the same result per test (349 passed). The same 2 failures happen on main:test_football_plugin, which prompts for input, andtest_baseball_activity.scripts/test_*.pypass.check_version_bump(naming all nine),update_registry --check,check_min_core_version,check_sports_driftandcheck_manifests_asciiall pass.BaseballLivefirst.test_sports_game_over_parity.pypasses against this branch (118); deleted copies count as adopted.Overlap: #620 conflicts in seven plugins' manifest and CHANGELOG and in
plugins.json. Itssports.pychanges merge cleanly. Whichever lands second re-bumps those seven.🤖 Generated with Claude Code