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​