Skip to main content

Contributing

We welcome contributions to Aucert. This guide covers how to set up your development environment and submit changes.

Getting started

  1. Fork the repository on GitHub
  2. Clone your fork: git clone git@github.com:your-username/aucert.git
  3. Create a feature branch: git checkout -b feat/your-feature
  4. Install dependencies: pnpm install
  5. Make your changes
  6. Test your changes (see below)
  7. Submit a pull request

PR guidelines

Title format

Use conventional commits:

PrefixWhen to useExample
feat:New featurefeat: add test scope filtering
fix:Bug fixfix: resolve timeout on large APKs
docs:Documentation onlydocs: add CI/CD integration guide
refactor:Code restructuringrefactor: extract test runner service
test:Adding teststest: add unit tests for KG queries
chore:Tooling, CI, depschore: 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

  1. Open a PR against main
  2. CI runs automatically (tests, lint, build)
  3. A maintainer reviews the code
  4. Address review feedback
  5. Maintainer approves and merges

Code standards

LanguageKey conventions
KotlinKDoc comments on public APIs, coroutines for async, interface+adapter pattern for cross-layer communication
TypeScriptStrict mode enabled, TSDoc on exports, React functional components with hooks
PythonType 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