Metarepo for the Gobo project
In the instructions that follow, numerous steps involve running Tempo commands. Although the instructions don’t show this, you can run Tempo using npx. You can also install Tempo globally or alias tempo to npx tempo. In
- Clone this repo.
- Run
git switch <branch>to switch to the branch you want to work in. - Run
pnpm iin the repo. - Run
tempo syncto clone all the repos in the metarepo. - Run
tempo run switch <branch>to ensure all the repos are in the right branch. - Run
tempo run install. This runspnpm iwithin all the repos in the metarepo. Warning: You may need to run this step twice, depending on how many repos are in the metarepo, since it can overwhelm the OS and cause some of the installs to hang. - Run
tempo run build. This verifies that everything has been installed correctly. Important: This may deploy AWS dependencies as necessary for modules that rely on them. - Run
tempo run deploy. This will deploy all necessary AWS infrastructure, which includes several APIs, a browser client, an edge router, S3 buckets, and more.
To develop within the metarepo:
- Run
genie watchon any repos that you are actively developing against. Important: Don’t rungenie watchmore than you need to because watching files is CPU-intensive. - Make your changes. You may need to run
genie deployif your changes are server-side. For changes that only affect the client, you just need to refresh the browser.
.scriptscontains convenience scripts. These are different than the “scripts” described in thescripts.yamlfile in the.tempodirectory..targetscontains target files that can be used to target Tempo commands at specific repos. Typically, you would use these to tag a set of repos and use the tag from that point forward..templatescontains templates for creating new repositories. These current include templates for Node-only (node), browser-only (browser), and “universal” (universal)—both Node and browser—repositories..tempocontains all the Tempo configuration files. For more information on these, see the Tempo documentation.