Repository navigation
feat: build community apps as FPApps - #31
Merged
ArthurGibert merged 2 commits intoSep 12, 2026
Merged
Conversation
13 of 24 tasks
Add one documented command that discovers every catalogued community app and builds installable .fpapp packages against an explicit Faderpunk checkout.\n\nKeep generated packages out of version control, explain the firmware compatibility rule, and show players how to install packages from the existing Apps page without replacing their firmware.
Two README claims describe the old revision-matching compatibility model rather than the abi_major/abi_minor contract that replaced it (ATOVproject/faderpunk#666): that a package is matched to a specific firmware revision, and that it must be rebuilt after every firmware update. Neither is true anymore. Also drops the hardcoded app list ('Heat Pump, Grooves, and Sift'), which was already stale — the catalogue holds far more than three apps — in favor of pointing at apps-catalog.json, so the README doesn't need editing per submission. Makefile: fail with a clear message when FADERPUNK_DIR isn't a Faderpunk checkout, instead of surfacing as fpapp's 'expected 40 hex digits' from an empty FIRMWARE_REVISION. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ArthurGibert
force-pushed
the
feat/fpapp-build-workflow
branch
from
September 11, 2026 11:44
85258e5 to
651ee04
Compare
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.
Why this exists
Community apps are Rust apps built on the same
App<N>interface as the appsinside Faderpunk firmware. Until now, trying one meant building and flashing a
different complete firmware image.
This PR adds the community side of a simpler workflow: one command builds each
catalogued app as an installable
.fpappfile. A player can then install thatsingle app from the normal Apps page without replacing the firmware.
What changes
make fpappsdiscovers every entry inapps-catalog.jsonand builds it.build/fpapps/and are deliberately ignored by Git.FADERPUNK_DIRselects the firmware checkout to build against when the tworepositories are not next to each other.
FIRMWARE_REVISIONorFIRMWARE_ABIcan pin compatibility explicitly for arelease or automated build.
submitting apps in plain language.
The important rule is simple: an FPApp is compiled for one exact firmware ABI.
After updating Faderpunk firmware, rebuild the packages. This strict match lets
community code use the real firmware services without pretending that two
different memory layouts are compatible.
What players see
Installed community apps appear in the normal app catalogue, with the same
settings and manual locations as built-in apps:
Verification
60523faa043c02d388afe991d251442164f0f71a.fpapp verifycommand.Dependency
Package building and installation require the companion native FPApp runtime in
ATOVproject/faderpunk#666.
Its small review-gate prerequisite is
ATOVproject/faderpunk#665.