mirror of
https://github.com/Gathin23/cleanyourtv.git
synced 2026-11-02 20:45:12 +00:00
docs/workflows/addon.md step 1 asked a new add-on for its own gradlew, while addons/README.md builds one with ./gradlew on macOS and Linux and with gradlew.bat in a Command Prompt, and the folder test now refuses either half missing: a folder made from the page fails on the Windows route. The step names both files, and a test reads that step so the page cannot drift back.
1.6 KiB
1.6 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 owngradlewandgradlew.batwrappers and anappmodule), with its own package name. Copy the two wrappers from an add-on that is already here: the add-on build names./gradlewon macOS and Linux andgradlew.batin a Command Prompt, andtests/test_addons.pyrefuses a folder without either 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.