Contributing¶
Before a change¶
- Tests:
python -m pytest -q. Every change comes with a test of what it does, and the whole suite passes. - Try it: run a Starbase from your copy and use the change on the Bridge, on a phone width too.
- The wiki: a change that affects what people see or do updates its page here, in the same commit, and a line in
CHANGELOG.mdunder Not released yet.
House style¶
- Words people see are plain and short: what it does, in the words people use, with the controls in bold. No jargon a household wouldn't use; the starship names (Bridge, Shuttlebay, Ops…) are the app's own words.
- Nothing personal ships. Code, docs and tests carry no one's own details: tests use made-up people and places ("Sam" in "Springfield"). Anything about one household is that install's data, never code. See Nothing personal ships.
- Nothing hard-coded to one setup. What a household chooses is a setting.
- The AI never makes things up. A tool that fails says so; the AI says what it actually did.
- Permissions in code, checked on every request, never by the AI's prompt.
Modules¶
Most new features belong in a Module rather than the core: see Writing Modules. A Module that uses only
the SDK in sdk/ can be under any license you like, closed-source and sold included (the Module exception in
License and credits).
The contributor agreement¶
Contributions to the core are accepted under the Contributor License Agreement in CLA.md: you keep your copyright
and give the project the right to use and relicense your contribution, so it can keep offering the Module exception
and other licensing options. (The agreement is a draft until it's been reviewed by a lawyer.)