Contributing Guidelines¶
Thank you for considering contributing to OpenTransition! 🌈
How to Contribute¶
Reporting Bugs¶
- Search existing issues to avoid duplicates
- Create a new issue using the bug report template
- Include:
- Android version and device model
- Steps to reproduce
- Expected vs actual behaviour
- Logcat output if applicable
Suggesting Features¶
- Check existing issues for similar ideas
- Create a new issue using the feature request template
- Describe the use case, not just the solution
Contributing Code¶
1. Fork and clone¶
2. Set up your development environment¶
Follow the Development Setup guide.
3. Branch naming¶
Use descriptive branch names:
| Type | Pattern | Example |
|---|---|---|
| Feature | feature/short-description |
feature/audio-export |
| Bug fix | fix/short-description |
fix/gallery-crash-on-rotate |
| Documentation | docs/short-description |
docs/update-readme |
| Chore/refactor | chore/short-description |
chore/upgrade-camerax |
4. Make your changes¶
- Follow the Code Style guidelines
- Keep changes focused — one concern per PR
- Add or update tests where applicable
- Run lint and unit tests before pushing:
5. Commit messages¶
Use the Conventional Commits format:
Types: feat, fix, docs, chore, refactor, test, ci
Examples:
feat: add audio export to gallery
fix: prevent crash when gallery loads empty state
docs: expand import-export feature page
6. Open a Pull Request¶
- Target the
mainbranch - Fill in the PR template completely
- Link any related issues with
Closes #123 - Request a review from a maintainer
What We're Looking For¶
- Bug fixes and stability improvements
- Documentation improvements
- Test coverage improvements
- Accessibility improvements
- UI/UX refinements consistent with the existing XML Views approach
What We're Not Looking For (Right Now)¶
- Jetpack Compose migration — the app uses XML Views + ViewBinding by design
- New DI frameworks — dependencies are passed manually
- KAPT processors — use KSP for any new annotation processing
- Breaking changes to the
.ttbackupimport format — backwards compatibility must be maintained
Code Review Process¶
- Automated checks run (lint, unit tests, debug build)
- A maintainer reviews the code
- Feedback is provided as PR comments
- Address feedback and push updated commits
- Maintainer approves and merges
Note on AI-Assisted Development¶
This repository uses GitHub Copilot coding agent for some development tasks. AI-generated changes go through the same PR review process. If you see a PR from copilot-swe-agent[bot], treat it like any other contribution and review it carefully.
Questions?¶
Open an issue with the question label or check the FAQ.
Thank you for helping make transition tracking more accessible and private! 🏳️⚧️