Repository navigation
feat: a theme that passes the install lint, with a release workflow - #1
Conversation
Fills the repository with the reference theme: a manifest extending the default theme with a green trust accent and a rounder control corner, in light and dark, and the Spline Sans Mono face bundled with its licence. scripts/pack.mjs packs the theme deterministically and scripts/lint.mjs runs the install lint from @openbrf/theme-tools on the tarball, the check an instance runs when a board installs it. The tests hold the packed theme to that lint and check that the lint can still refuse it. The release workflow starts on a pushed v<version> tag, which is the one start the catalog accepts: it refuses a tag that is off main or that differs from the manifest's version, packs the tarball once, attests it and attaches it to the release before the release is published.
…low (#396) ## Summary - Updates the "Plugins and themes" section of ROADMAP.md: `openbrf/example-theme` now holds a theme that passes the install lint and a tag-triggered release workflow, so the section no longer says it has nothing in it. - The reference plugin's repository and the catalog's entries are still described as empty, since they are. The theme itself is openbrf/example-theme#1. ## Verification - `prettier --check ROADMAP.md` is clean. - The statement matches what openbrf/example-theme#1 contains: lint and tests pass in its CI run. Documentation only. The same paragraph is worded to hold whether or not the first release has been tagged yet. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated the roadmap to note that the example theme passes install lint and that tagged releases are attested and published immutably. * Clarified that the plugin repository and catalog remain empty, so there is currently nothing to install. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Summary
scripts/pack.mjspacks the theme intodist/example-theme-<version>.tgzdeterministically;scripts/lint.mjsrunslintThemePackagefrom the published@openbrf/theme-toolson that tarball, the check an instance runs at install.v<version>tag only, as the catalog requires: it refuses a tag that is offmainor that differs from the manifest's version, lints and tests, packs the tarball once, attests it, attaches it to a draft release and then publishes it, so the immutable release carries the asset.Implementation notes
theme.json,fonts/andLICENSE.txt(a bareLICENSEis not a file type a package may carry). Packing twice gives the same bytes, so the sha512 a catalog entry states stays meaningful; a test holds that.fonts/OFL.txtis the upstream licence text of Spline Sans Mono, not only a notice, since the font requires the licence to travel with it.v0.1.0and push the tag. The tag has to follow the merge because the workflow refuses a commit that is not onmain. The repository already has immutable releases enabled.Verification
npm ci && npm run lint && npm testlocally: the packed theme passes the install lint with no finding, 5 tests pass.prettier --check .is clean.Risk and rollback
Only new files, except the README. Nothing is published until a
v*tag is pushed.Summary by CodeRabbit
New Features
Documentation
Chores