-
Notifications
You must be signed in to change notification settings - Fork 0
chore: improve discoverability and marketing readiness #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,77 @@ | ||
| # Contributing to Initium | ||
|
|
||
| Contributions are welcome! This guide covers how to build, test, and submit changes. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - Rust 1.88+ (stable) | ||
| - Docker (for integration tests) | ||
| - Helm + helm-unittest plugin (for Helm chart tests) | ||
|
|
||
| ## Build | ||
|
|
||
| ```bash | ||
| make build | ||
| # or directly: | ||
| cargo build --release | ||
| ``` | ||
|
|
||
| ## Test | ||
|
|
||
| ```bash | ||
| # Unit tests | ||
| cargo test --all-features | ||
|
|
||
| # Clippy lints (must pass with zero warnings) | ||
| cargo clippy --all-targets --all-features -- -D warnings | ||
|
|
||
| # Format check | ||
| cargo fmt -- --check | ||
|
|
||
| # Integration tests (requires Docker) | ||
| docker compose -f tests/docker-compose.yml up -d | ||
| INTEGRATION=1 cargo test --all-features -- --ignored | ||
| docker compose -f tests/docker-compose.yml down | ||
|
|
||
| # Helm chart tests | ||
| helm unittest charts/initium | ||
| ``` | ||
|
|
||
| ## Adding a new subcommand | ||
|
|
||
| See [docs/design.md](docs/design.md) for the architecture and step-by-step guide. | ||
|
|
||
| In short: | ||
|
|
||
| 1. Create `src/cmd/yourcommand.rs` with a `pub fn run(log: &Logger, ...) -> Result<(), String>` | ||
| 2. Add the variant to the `Commands` enum in `src/main.rs` | ||
| 3. Wire it up in the `match cli.command` block in `main()` | ||
| 4. Add flags with `#[arg(...)]` and env var support via `env = "INITIUM_*"` | ||
| 5. Add unit tests in the same file | ||
| 6. Add integration tests in `tests/integration_test.rs` | ||
| 7. Document in `docs/usage.md` and `README.md` | ||
| 8. Update `Changelog.md` under `[Unreleased]` | ||
|
|
||
| ## Pull request expectations | ||
|
|
||
| - All CI checks must pass (clippy, fmt, tests, helm-lint, build) | ||
| - Include a "How to verify" section in the PR description | ||
| - Keep diffs small and focused — separate refactors from features | ||
| - Update docs and CHANGELOG for user-visible changes | ||
|
|
||
| ## Code style | ||
|
|
||
| - Prefer clear code over comments | ||
| - Propagate errors with context (`map_err(|e| format!("...: {}", e))`) | ||
| - Use `clippy` lints and `rustfmt` defaults | ||
| - Follow existing patterns in the codebase | ||
|
|
||
| ## Security | ||
|
|
||
| - Never log secrets — use the redaction built into `Logger` | ||
| - Constrain file writes to `--workdir` via `safety::validate_file_path` | ||
| - Default to the most restrictive option | ||
|
|
||
| ## Reporting vulnerabilities | ||
|
|
||
| See [SECURITY.md](SECURITY.md). | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -4,6 +4,12 @@ version = "0.1.0" | |||||||||||||||||||||||||||||||||||||
| edition = "2021" | ||||||||||||||||||||||||||||||||||||||
| description = "Swiss-army toolbox for Kubernetes initContainers" | ||||||||||||||||||||||||||||||||||||||
| license = "Apache-2.0" | ||||||||||||||||||||||||||||||||||||||
| repository = "https://github.com/KitStream/initium" | ||||||||||||||||||||||||||||||||||||||
| homepage = "https://github.com/KitStream/initium" | ||||||||||||||||||||||||||||||||||||||
| documentation = "https://github.com/KitStream/initium/blob/main/docs/usage.md" | ||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+7
to
+9
|
||||||||||||||||||||||||||||||||||||||
| repository = "https://github.com/KitStream/initium" | |
| homepage = "https://github.com/KitStream/initium" | |
| documentation = "https://github.com/KitStream/initium/blob/main/docs/usage.md" | |
| repository = "https://github.com/kitstream/initium" | |
| homepage = "https://github.com/kitstream/initium" | |
| documentation = "https://github.com/kitstream/initium/blob/main/docs/usage.md" |
Copilot
AI
Feb 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The GitHub organization name should be lowercase "kitstream" to match the rest of the codebase. The existing README, release workflow, and all other references consistently use "kitstream" (all lowercase), not "KitStream" (mixed case). While GitHub URLs are case-insensitive, it's best to use the canonical form consistently throughout the project. Update this to "https://github.com/kitstream/initium".
| repository = "https://github.com/KitStream/initium" | |
| homepage = "https://github.com/KitStream/initium" | |
| documentation = "https://github.com/KitStream/initium/blob/main/docs/usage.md" | |
| repository = "https://github.com/kitstream/initium" | |
| homepage = "https://github.com/kitstream/initium" | |
| documentation = "https://github.com/kitstream/initium/blob/main/docs/usage.md" |
Copilot
AI
Feb 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The GitHub organization name should be lowercase "kitstream" to match the rest of the codebase. The existing README, release workflow, and all other references consistently use "kitstream" (all lowercase), not "KitStream" (mixed case). While GitHub URLs are case-insensitive, it's best to use the canonical form consistently throughout the project. Update this to "https://github.com/kitstream/initium/blob/main/docs/usage.md".
| repository = "https://github.com/KitStream/initium" | |
| homepage = "https://github.com/KitStream/initium" | |
| documentation = "https://github.com/KitStream/initium/blob/main/docs/usage.md" | |
| repository = "https://github.com/kitstream/initium" | |
| homepage = "https://github.com/kitstream/initium" | |
| documentation = "https://github.com/kitstream/initium/blob/main/docs/usage.md" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| repositoryID: initium | ||
| owners: | ||
| - name: Kitstream | ||
| email: opensource@kitstream.io |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The filename is inconsistent with the actual file. The file is named "CHANGELOG.md" (all uppercase), but this references "Changelog.md" (mixed case). Update this to "CHANGELOG.md" to match the actual filename.