Contributing
How gitpanda is built, tested and released, and how to rename it.
gitpanda lives in the acific/gitpanda.ai repository:
bin/gitpanda.mjs the command line: one file, no dependencies
docs/*.md this documentation
site/ gitpanda.ai: the home page, installer and styles
scripts/build-site.mjs builds the site into dist/
test/ tests: the real CLI against a fake serverDevelop#
node bin/gitpanda.mjs help
GITPANDA_HOST=http://localhost:8790 node bin/gitpanda.mjs login # against a local OkayPanda
npm testThe tests start a small fake of the API and run the real CLI in a temporary folder: clone, status,
diff, add, commit, push (with messages, new documents and read-only files), conflicts, browser
sign-in and repos.
Principles#
- One file, no dependencies, Node 18+. Anyone can read it in full.
- Git's words and shapes wherever they fit; plain English where they don't.
- Never surprise. Nothing is deleted remotely, conflicts never overwrite, and every message says what to do next.
- The server decides. The CLI never enforces permissions itself; OkayPanda checks every request.
Release#
- Bump
VERSIONinbin/gitpanda.mjsandversioninpackage.json, and add the changes todocs/changelog.md. npm testnpm run releaseruns the tests, builds and deploys gitpanda.ai (the site, installer, download andreleases/gitpanda-<version>.mjs), and copies the CLI and guide into okaypanda.com.- Release okaypanda.com so the app's copy and guide match.
Other scripts: npm run build (just build dist/), npm run preview (build and serve it on
port 8811), npm run deploy (build and deploy the site only).
Renaming#
The product name is temporary. Everything that says it is in BRAND at the top of
bin/gitpanda.mjs: the command, title, prompt icon, ASCII mark, folder name, environment variable
prefix, server and site. Change those, rename the repository, and update the docs and site.