Thank you for your interest in contributing to StellarSettle! We welcome contributions from developers of all skill levels.
All active development happens on the dev branch. The main branch is reserved exclusively for stable, production-ready releases.
- Fork the repository (external contributors) or create a branch (team members).
- Branch off
dev:git checkout dev git pull origin dev git checkout -b feature/your-feature-name
- Make your changes, adhering to code style guidelines and writing unit tests.
- Commit using Conventional Commits:
git commit -m "feat(escrow): add partial payment refund hook" - Push to your fork/branch:
git push origin feature/your-feature-name
- Open a Pull Request targeting
dev(NOTmain). - Ensure all CI checks pass (automated via GitHub Actions).
- Address review feedback if requested.
- Merge will be performed by maintainers after approval.
β οΈ IMPORTANT: Pull Requests targetingmainwill be closed automatically. Always targetdev.
| Prefix | Purpose | Example |
|---|---|---|
feature/ |
New features or contract functions | feature/add-clawback-token |
fix/ |
Bug fixes or edge-case handling | fix/integer-overflow-fee |
docs/ |
Documentation changes | docs/update-api-reference |
test/ |
Unit or integration test additions | test/add-escrow-fuzz-tests |
refactor/ |
Code refactoring without behavioral changes | refactor/simplify-storage-keys |
chore/ |
Maintenance tasks & dependency updates | chore/update-soroban-sdk |
- β Require pull request before merging
- β Require at least 2 maintainer approvals
- β Require status checks to pass (CI workflow)
- β Require branches to be up to date before merging
- β Require conversation resolution before merging
- β Do not allow force pushes
- β Do not allow deletions
- β Require pull request before merging
- β Require at least 1 maintainer approval
- β Require status checks to pass (CI workflow)
- β Require branches to be up to date before merging
- β Do not allow force pushes
- β Do not allow deletions
- Go to Settings β Branches in the GitHub repository.
- Click Add branch protection rule.
- Enter the branch name pattern (
mainanddev). - Enable the rules listed above.
- Click Save changes.
- Under Settings β General β Default branch, set the default branch to
dev.
Every Pull Request targeting dev automatically triggers our CI pipeline via GitHub Actions. Your PR must pass ALL checks before it can be merged:
- Format Check:
cargo fmt --all -- --check - Clippy Lints:
cargo clippy --all-targets --all-features -- -D warnings - Unit & Integration Tests:
cargo test --all --verbose - WASM Build:
cargo build --release --target wasm32-unknown-unknown
Releases follow a controlled merge from dev to main:
- A maintainer creates a release PR:
devβmain. - The release PR includes a changelog update and version bump.
- Two maintainer approvals are required.
- All CI checks must pass cleanly.
- After merge, a GitHub Release is tagged and published.
devis rebased onmainto stay in sync.
Contributors focus on getting PRs merged into dev. Maintenance of main is handled by core maintainers.