mirror of
https://github.com/Gathin23/cleanyourtv.git
synced 2026-10-29 20:05:17 +00:00
Following docs/workflows/addon.md as written left a new add-on folder that the suite refuses: the page never asked for addons/<name>/screenshot.jpg, which tests/test_addons.py fails a folder without, nor that the folder's row in addons/README.md shows it. It also left out the folder's own gradlew wrapper, which .github/workflows/addons.yml refuses to build. Both are now steps, and tests/test_addon_recipe_checklist.py reads the requirements out of the two checkers so the page cannot drift from them.
1.4 KiB
1.4 KiB
Workflow: Add an add-on
When to use this: a widget or tile that can be its own small app, shown through a module card.
- Create
addons/<name>/as its own Gradle project (settings.gradle, its owngradlewwrapper and anappmodule), with its own package name. Copy the wrapper from an add-on that is already here: the add-on build refuses a folder without one. - It talks to the launcher only through the module-card contract (
docs/modules.md,docs/specs/card.md). Nothing underlauncher/changes, andlauncher/never mentionsaddons/. If the idea needs a launcher change, it is not an add-on: open an issue. - Its
README.mdhas a Permissions section listing every permission and why, plus any network access or background service. No telemetry without an opt-in, no ads, your own art. - Add
addons/<name>/screenshot.jpg: the add-on on a real TV, its card in the grid or its own screen, a JPEG, 16:9 (1280x720 is plenty) and under 300 KB, with Wi-Fi names and anything personal blurred out.tests/test_addons.pyfails without it. - Add one row to the table in
addons/README.mdlinking<name>/, with the TV it was tested on and the screenshot in the row's Screenshot column. - No APKs in the repo.
tests/test_addons.pychecks all of this;.github/workflows/addons.ymlbuilds the add-ons that changed with./gradlew --no-daemon assembleRelease.
Then run the tests: python3 -m unittest discover -s tests -v.