Contributing ​
Branches ​
text
feature branch ──MR──▶ develop ──MR──▶ main ──tag vX.Y.Z──▶ release- Work on a feature branch, and open a merge request into
develop. developcollects finished work. Its builds are published as prereleases on thedevelopchannel.- When
developis ready, it's merged intomain, and avX.Y.Ztag onmainmakes a release.
A good merge request ​
- Keep it to one change, with tests that cover it.
- Change contracts in the SDK first. A new API shape or socket event goes in
sdk/src/types/, then the backend, then the apps. See Project structure. - Add a migration for any schema change.
- Give every new endpoint its checks: sign-in, rate limits, membership and permissions.
- Run the checks for the packages you touched (see Checks & tests). CI runs them too.
- Format only what you changed.
yarn readyandyarn format:writerewrite every file in a package.
Style ​
- Prettier settles formatting: double quotes, semicolons, trailing commas, 120-character lines, 2-space indents.
- Comments explain why something is done, at the density of the code around them.
- In the web app, use the theme's tokens rather than hard-coded colours, and the shared UI components in
src/components/ui/.
Licence ​
Refract.Chat is licensed under the GNU Affero General Public License v3.0 or later, and the SDK (sdk/) under the MIT licence so that bots and integrations built on it can use any licence. If you run a modified version for others, the AGPL requires you to offer them its source: set config.sourceCodeUrl in app.config.yaml to where your version's source is, and the apps link to it.
Contributions are made under the contributor terms, which you agree to by signing off each commit (git commit -s). The name, logo and Beam are covered by the trademark policy.