Thank you for helping make Devboxes safer and easier to run on ordinary Kubernetes clusters.
- Use GitHub Discussions for design questions and support requests.
- Search existing issues before filing a bug or feature request.
- Open an issue before a large architectural change so maintainers and contributors can align on scope.
- Report vulnerabilities through a private GitHub security advisory as described in SECURITY.md.
By participating, you agree to follow CODE_OF_CONDUCT.md and license your contribution under Apache-2.0.
-
Fork the repository and create a focused branch.
-
Read docs/development.md and the relevant architecture or configuration documentation.
-
Add or update tests for behavioral changes.
-
Keep controller, CLI, Helm, dashboard, and documentation contracts synchronized.
-
Write direct technical prose without em dash punctuation. Prefer commas, periods, or explicit connecting words.
-
Run the local gates:
make bootstrap make lint make test make helm -
Describe the user-visible behavior, risks, migration impact, and validation evidence in the pull request.
- Preserve explicit persistence semantics: TTL and stop never delete a PVC.
- Keep Kubernetes permissions namespace-scoped and workspace service accounts tokenless; tenancy changes must prove cross-namespace and cross-principal denial.
- Do not add plaintext credentials, example secrets, telemetry, or external calls without explicit user control.
- Maintain both
LoadBalancerandNodePortSSH paths. - Keep the CLI usable in scripts: errors go to stderr, JSON remains stable within a release line, and tokens should not be required on command lines.
- Keep UI workflows fully keyboard accessible, WCAG 2.2 AA, status-text-first, and compatible with reduced motion.
- Keep browser JavaScript dependency-light, lint-clean, progressively enhanced, and free of inline event handlers.
- Keep public Python modules, classes, functions, and methods documented and strictly typed.
- Keep controller test coverage at or above the enforced 85 percent project threshold.
- Keep Rust clean under formatting, standard warnings, Clippy
all,pedantic, andnurserylint groups. - Prefer small, reviewable changes over unrelated cleanup.
Pull requests should be narrow enough to review and must pass CI. Maintainers may ask for a clean Kind install when packaging, RBAC, resource generation, or startup behavior changes. Breaking changes require documentation in CHANGELOG.md and a versioning decision before merge.
Generated files such as Cargo.lock and controller/uv.lock are committed and must be updated with their manifests.
Use an imperative subject that describes the outcome, for example:
Add NodePort endpoint discovery
Harden workspace Secret mounts
Document external secret operators