Contributing
We welcome contributions to Aucert. This guide covers how to set up your development environment and submit changes.
Getting started
- Fork the repository on GitHub
- Clone your fork:
git clone git@github.com:your-username/aucert.git - Create a feature branch:
git checkout -b feat/your-feature - Install dependencies:
pnpm install - Make your changes
- Test your changes (see below)
- Submit a pull request
PR guidelines
Title format
Use conventional commits:
| Prefix | When to use | Example |
|---|---|---|
feat: | New feature | feat: add test scope filtering |
fix: | Bug fix | fix: resolve timeout on large APKs |
docs: | Documentation only | docs: add CI/CD integration guide |
refactor: | Code restructuring | refactor: extract test runner service |
test: | Adding tests | test: add unit tests for KG queries |
chore: | Tooling, CI, deps | chore: update dependencies |
PR requirements
- Small PRs — Keep pull requests focused on a single change
- Tests required — All business logic changes must include tests
- Docs required — API, CLI, or configuration changes must include documentation updates
- CI must pass — All automated checks must be green before review
Review process
- Open a PR against
main - CI runs automatically (tests, lint, build)
- A maintainer reviews the code
- Address review feedback
- Maintainer approves and merges
Code standards
| Language | Key conventions |
|---|---|
| Kotlin | KDoc comments on public APIs, coroutines for async, interface+adapter pattern for cross-layer communication |
| TypeScript | Strict mode enabled, TSDoc on exports, React functional components with hooks |
| Python | Type hints on all functions, Google-style docstrings, uv for dependency management |
Formatting
- All languages have automated formatters configured
- Run formatters before committing (or use editor integration)
- CI will catch formatting issues
Types of contributions
Bug reports
File an issue on GitHub with:
- Steps to reproduce
- Expected vs actual behavior
- CLI version (
aucert --version) - OS and Android SDK version
Documentation
Documentation improvements are always welcome:
- Fix typos or unclear explanations
- Add examples to CLI commands or configuration options
- Improve how-to guides
Code contributions
Before starting significant work, open an issue to discuss the approach. This prevents wasted effort if the design doesn't align with the project direction.
What's next
- Architecture overview — Understand the system design
- CLI commands — Reference for development