Contributing
Getting started
- Fork the repository and clone your fork
- Install prerequisites: Rust 1.70+ and signal-cli
- Build and run tests:
cargo build
cargo test
Use --demo mode to test the UI without a Signal account:
cargo run -- --demo
Making changes
- Create a feature branch from
master:
git checkout -b feature/my-change
- Make your changes. Run checks before committing:
cargo clippy --tests -- -D warnings
cargo test
- Push your branch and open a pull request against
master.
Branch naming
Use prefixed names:
| Prefix | Use case |
|---|---|
feature/ | New functionality |
fix/ | Bug fixes |
refactor/ | Code restructuring |
docs/ | Documentation changes |
Examples: feature/dark-mode, fix/unread-count, docs/update-readme
Code style
- Follow existing patterns in the codebase
- Run
cargo clippywith warnings-as-errors – CI enforces this - Keep commits focused: one logical change per commit
- Write descriptive commit messages
- Reference issue numbers in commits and PRs (e.g.,
closes #29)
Pull requests
- Create a PR targeting
master - Include a clear description of what changed and why
- Reference the issue being addressed if applicable
- Make sure CI passes (clippy + tests)
- Trivial docs-only changes may be committed directly to
master; all code changes must go through a PR
Reporting bugs
Use the bug report template. Include:
- Your OS and terminal emulator
- siggy version (
siggy --versionor the release tag) - Steps to reproduce the issue
Suggesting features
Use the feature request template. Describe the problem you’re trying to solve before proposing a solution.
License
By contributing, you agree that your contributions will be licensed under GPL-3.0.