This repository is responsible for keeping track of current configurations for experiences. Videos and Dockerfiles are not included. Files for web experiences are usually included where a build step is not required.
The build-experiences workflow runs on every push and pull request:
clone_remote_experiences.pyclones each entry inexperiences.tomlat its pinned commit, then appends every directory already present underexperiences/. Vendored experiences therefore need noexperiences.tomlentry — being on disk is enough.build_experiences.pybuilds each one.config.json(orconfig.toml) is required. Unless the config setsunlisted, bothwide.jpgandthumb.jpgare required and a missing one fails the build. Aweb/directory is copied tostatic/; if it contains apackage.json,npm install && npm run buildruns first and the output is taken fromdirectories.footronStatic, defaulting toweb/build.generate_experience_hashes.pywritesbuild/hashes.json, andbuild/is uploaded as theexperiencesartifact.
An experience only reaches the wall once a build has run on the branch it was merged into. Landing files on a branch is not on its own enough — if the push that merged them produced no workflow run, the most recent artifact still predates the experience, and it will not appear. Check that a run exists for the merge commit.
Listing an experience in the launcher is separate from building it: add its id to the
relevant list in tags.toml.