Contributing¶
The short-form ground rules. For the full local-dev workflow see the Developer Guide.
This page renders the project-root CONTRIBUTING.md. The canonical source is at
github.com/sharma-bhaskar/aegis-kms/blob/main/CONTRIBUTING.md.
Contributing to Aegis-KMS¶
Thanks for considering a contribution. Aegis-KMS is an Apache-2.0 project and welcomes patches from anyone.
Ground rules¶
- By submitting a PR you agree to license your contribution under Apache-2.0.
- Every commit must be signed off (
git commit -s) — we use the Developer Certificate of Origin. - No vendor-specific code in
aegis-core. Vendor integrations live inaegis-crypto,aegis-persistence, oraegis-audit, behind an SPI. aegis-core,aegis-crypto,aegis-iam,aegis-audit,aegis-persistence, and the SDK modules MUST NOT depend on Pekko.
Getting started¶
bash
git clone https://github.com/aegis-kms/aegis-kms.git
cd aegis-kms
sbt test # run unit tests
sbt scalafmtCheckAll # formatting gate
sbt scalafixAll --check # lint gate
Good first issues¶
The best places to start without needing deep context:
- Add a new
RootOfTrustbackend (GCP KMS, HashiCorp Vault, YubiHSM). - Add a new
PersistenceStoredriver (CockroachDB, SQLite). - Add a new
AuditSink(Kafka, S3, OpenTelemetry logs). - Add a new
LlmClientbackend (Ollama, Anthropic, OpenAI). - Expand KMIP test vector coverage under
modules/aegis-kmip/src/test. - Improve docs in
docs/.
PR checklist¶
- Linked to a tracking issue
- Unit tests added or updated
-
sbt testpasses locally -
sbt scalafmtCheckAll scalafixAll --checkpasses - CHANGELOG updated under
## Unreleased - MiMa check green (
sbt mimaReportBinaryIssues) — or the breaking change is documented and justified
Code style¶
- Scala 3,
-Xfatal-warnings,-Wunused:all. scalafmton every file;scalafixfor lint rules.- Prefer immutable data,
Option/Eitherover nulls, ADTs over flags. - Actor behaviors are always typed (
Behavior[T]with a sealed command ADT).
Reporting security issues¶
Please do not open a public issue for a security report. See SECURITY.md.