Thank you for your interest in contributing to Addon Bone! This guide explains the rules and processes that help us work consistently.
By participating, you agree to follow our Code of Conduct (see CODE_OF_CONDUCT.md). To report violations, email addonbonedev@gmail.com or use Issues: https://github.com/addon-stack/addon-bone/issues
We follow Conventional Commits 1.0.0: https://www.conventionalcommits.org/en/v1.0.0/
Basic syntax:
type(scope)!: short imperative description in English
[more details/motivation]
[BREAKING CHANGE: description of the incompatible change]
[Closes #123]
Examples:
feat(relay): add proxy support for multi-tenant routingfix(storage): prevent data race in local adapterdocs(readme): clarify installation stepsrefactor(service)!: drop deprecated init flowtest(message): add unit tests for message buschore(release): bump version to 0.3.0
Allowed types:
feat,fix,docs,style,refactor,perf,test,build,ci,chore,revert
Recommended scopes for this repository:
cli,entrypoint,manifest,pluginsrelay,service,storage,message,locale,offscreen,transportdocs,tests,build,deps,tooling
Rules:
- Subject line up to ~72 characters, no trailing period.
- English commit messages are preferred for consistency.
- Mark breaking changes: add
!after the scope or include aBREAKING CHANGEsection. - Link issues in the footer:
Closes/Refs#<number>.
The project follows Git Flow.
Main branches:
main— stable releasesdevelop— integration branch
Temporary branches:
feature/<short-name>— new features (branch fromdevelop→ merge intodevelop)bugfix/<short-name>— fixes that don’t require urgent release (fromdevelop→ todevelop)release/<x.y.z>— release prep (fromdevelop→ intomainand back intodevelop)hotfix/<x.y.z>— urgent production fixes (frommain→ intomainand back intodevelop)
PR rules:
- For features and regular fixes, open PRs into
develop. - For hotfixes, open PRs into
main; after release, back-merge/PR intodevelop. - Use PR titles in Conventional Commits style (scope optional but encouraged).
- One PR = one logical change. Keep diffs small.
Releases and versioning:
- We use SemVer. Commit types help determine version bumps (
feat→ minor,fix→ patch,BREAKING CHANGE→ major). - Package version is updated by maintainers within release/hotfix branches.
- Fork the repository and create a branch from
develop(ormainforhotfix):feature/my-cool-featurebugfix/fix-storage-racehotfix/0.2.10
- Install dependencies:
npm install - Make changes and ensure commits follow Conventional Commits.
- Before opening a PR, run local checks:
- Formatting:
npm run format - Tests:
npm test - By area (if needed):
npm run test:relaynpm run test:servicenpm run test:storagenpm run test:messagenpm run test:localenpm run test:manifestnpm run test:entrypointnpm run test:plugins
- Formatting:
- Open a PR to the appropriate branch (usually
develop) and include:- motivation and solution;
- alternatives and trade-offs (if any);
- related issues (e.g.,
Closes #123).
- Use Prettier:
npm run format - Follow existing patterns in the codebase. For large refactors, use separate PRs.
The project is MIT-licensed (see LICENSE.md). By contributing, you agree your contributions are licensed under MIT.
- Issue tracker: https://github.com/addon-stack/addon-bone/issues
- General questions can be raised there as a Discussion/Issue.