Contributing
How to contribute to CloudOpt.
CloudOpt is GNU GPL v3. Pull requests welcome.
Before you open a PR
- File an issue for large changes, or claim an existing one.
- Fork kernul-io/cloudopt, branch from
main. - Keep the diff scoped to the problem.
- Run
make testandmake lint. - In the PR body: what changed, how you tested it.
Contributor docs
| Topic | Description |
|---|---|
| Development setup | Build, test, lint |
| Architecture | Layout, data flow, constraints |
| Canonical model | Domain types and SQLite |
| Rule engine | Manifest, evaluators, fingerprints |
| Reporting internals | Schema, savings math, redaction |
| Roadmap | Step order and status |
Code rules
- Domain packages: no cloud SDKs, SQLite, HTTP, or AI imports.
- Adapters implement
internal/application/ports; call them only throughinternal/application/api. - Unit tests for math; functional tests per vertical slice.
- Develop against fixtures under
testdata/; live cloud access optional. - No secrets, account IDs, or customer data in commits.
License
Contributions ship under GPL v3. Full text: LICENSE.
Kernul
CloudOpt is Kernul tooling. Partnership and consulting: kernul.io, hello@kernul.io.