[Refactoring] Adopt or retire the 19 orphan scripts under tests/demo/screens/ #374
Labels
No labels
Alpha Release Requirement
Bugfix
Demo Target
Documentation
Major Feature
Minor Feature
priority:tier1-active
priority:tier2-foundation
priority:tier3-future
priority:tier4-deferred
Refactoring & Cleanup
system:animation
system:documentation
system:grid
system:input
system:performance
system:procgen
system:python-binding
system:rendering
system:ui-hierarchy
Tiny Feature
workflow:blocked
workflow:needs-benchmark
workflow:needs-documentation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
john/McRogueFace#374
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Spun out of #372, which is otherwise closed.
Context
#372 unrotted the
demo_main.pypath and added a CI smoke gate for it, soscreens/base.pyand the 6 wiredDemoScreensubclasses (caption, frame, primitives, grid, animation, color) now run headless and are checked bytests/run_tests.py.The remaining problem
tests/demo/screens/contains 27 files, but only 8 are part of the demo_main system (__init__.py,base.py, and the 6 wired screens). The other 19 are standalone scripts that never go throughdemo_main.py:The
screens/package is really two unrelated things stapled together: a demo-screen framework, and a pile of loose scripts that happen to live in the same directory.They are not covered by the #372 smoke gate, so they can (and likely already do) rot exactly the way
demo_main.pydid.Why they were left out of #372
on_key, so they never terminate headless. Gating them needs quit-injection (amcrfpy.Timerdriven bymcrfpy.step(), or an explicitsys.exit(0)after N steps — note that as of #350 a headless--execscript must declare its exit status anyway).Options
DEMO_SMOKE_TESTSintests/run_tests.py(with a longer timeout tier for the 3D ones). Highest value, most work.screens/(e.g.tests/demo/standalone/) so the package stops implying they are demo screens, and gate only the 2D subset.tests/demo/screens/*_demo.pyor by the benchmark/Gauntlet work, keep the rest as explicitly-ungated examples.Recommend (2) + (1) for the 2D subset, deferring the 3D ones until the Viewport3D API stabilises.
Related
--execmust callsys.exit();--run-foreverfor long-lived processes)