Thank you for your interest in contributing to TraceVault! This document explains how to contribute.
For non-trivial changes, please open an issue first to discuss your proposal. This helps avoid duplicated effort and ensures your contribution aligns with the project's direction.
We welcome AI-assisted contributions. Whether you write code by hand, use an AI coding assistant, or a combination of both — all contributions are held to the same standard: every change must include thorough tests. PRs without adequate test coverage will not be merged, regardless of how the code was written.
External contributors must sign our CLA before their first PR can be merged. An automated bot will prompt you when you open a PR. Members of the softwaremill and virtuslab GitHub organizations are exempt.
- Fork the repository
- Create a feature branch from
main - Make your changes
- Ensure all checks pass (see below)
- Open a pull request against
main
All PRs must pass these checks before merging:
# Format check
cargo fmt -- --check
# Lint
cargo clippy --all-targets -- -D warnings
# Tests
cargo testFor frontend changes in the web/ directory:
pnpm install --frozen-lockfile
pnpm run check
pnpm run build
pnpm testFollow the conventional commits style used in this project:
feat:— new featurefix:— bug fixdocs:— documentation onlychore:— maintenance tasksrefactor:— code change that neither fixes a bug nor adds a feature
TraceVault has an enterprise edition. Contributions to the open-source project are welcome, but please note that the enterprise module (enterprise/) is not part of the open-source distribution.