Welcome Contributors

CloudNexus thrives on community-driven innovation. Whether you're fixing a typo, improving documentation, or engineering a new provider module, your contributions are valued. We maintain a set of repositories across the cloudnexus GitHub organization, including the CLI, Terraform providers, Kubernetes operators, and core infrastructure tooling.

Before diving in, please review our Community Guidelines and ensure your proposed work aligns with our architectural roadmap.

Getting Started

Prerequisites

To contribute to CloudNexus projects, ensure your local environment meets these requirements:

  • Go 1.21+ (for core services & CLI)
  • Node.js 18+ / npm or pnpm (for frontend dashboards & plugins)
  • Docker & Docker Compose (for local orchestration)
  • Terraform 1.5+ (for provider development)
  • kubectl & kind/minikube (for Kubernetes integration tests)

Environment Setup

bash
# Fork & clone the repository
git clone https://github.com/YOUR_USERNAME/cloudnexus-cli.git
cd cloudnexus-cli

# Install dependencies & toolchainmake bootstrap

# Spin up local test environmentdocker compose up -d

# Run initial tests to verify setupmake test-unit
â„šī¸
First-Time Setup

Run make bootstrap exactly once. It configures linting, downloads required binaries, and sets up pre-commit hooks.

Development Workflow

We follow a standard Gitflow-inspired process optimized for rapid iteration and strict stability guarantees.

  1. Fork & Branch: Create a descriptive branch from main. Use prefixes: feat/, fix/, chore/, docs/.
  2. Commit Convention: Follow Conventional Commits. Example: feat(core): add auto-scaling thresholds
  3. PR Creation: Open a Pull Request against main. Link any related GitHub Issue.
  4. Code Review: Wait for at least one maintainer approval. CI must pass all checks.
  5. Squash & Merge: Once approved, squash commits to maintain a clean history.
Branch PrefixUsageExample
feat/New features or capabilitiesfeat/storage:add-s3-lifecycle-rules
fix/Bug fixes or patchesfix/cli:resolve-auth-timeout-issue
refactor/Code restructuring without behavior changesrefactor:extract-metrics-collector
docs/Documentation, README, or guidesdocs:clarify-k8s-deployment-steps

Code Standards

Consistency ensures maintainability across our distributed codebase. All submissions are automatically validated via CI.

  • Linting: Go code uses golangci-lint. JavaScript/TypeScript uses eslint + prettier.
  • Type Safety: No any in TypeScript. Strict mode enabled by default.
  • Error Handling: Never ignore errors. Use structured error wrapping (fmt.Errorf("context: %w", err)).
  • API Design: RESTful endpoints must follow RFC 7807 problem details. gRPC services require protobuf comments.
  • Security: No hardcoded secrets. Use dotenv or secret managers. Run gitleaks before committing.

Testing Requirements

Cloud infrastructure demands rigorous validation. All PRs must include appropriate tests.

âš ī¸
CI Enforcement

Pull requests with < 80% coverage or failing integration tests will be automatically blocked from merging.

  • Unit Tests: Cover core logic, parsers, and configuration handlers.
  • Integration Tests: Validate interactions with mock APIs, databases, and storage backends.
  • E2E Tests: Spin up ephemeral clusters to verify deployment pipelines.
  • Load Tests: Required for any changes affecting scaling or network throughput.
go
func TestAutoScaler_ScaleUp(t *testing.T) {
    scaler := NewAutoScaler(config.HighLoadThreshold)
    err := scaler.TriggerScale(context.Background(), "pool-alpha", 5)
    require.NoError(t, err)
    assert.Equal(t, "scaled", scaler.GetStatus())
}

Reporting Issues

Found a bug or have a feature request? Please use GitHub Issues with the appropriate template.

Bug Reports

Include reproduction steps, expected vs actual behavior, environment details (Go version, OS, provider version), and relevant logs. Redact all sensitive data (tokens, IP addresses, cluster names).

Feature Requests

Clearly describe the problem you're solving, proposed solution, and any alternative approaches considered. Link to related RFCs or architecture docs if available.

Community & Code of Conduct

We are committed to providing a safe, respectful, and inclusive environment for all contributors. By participating, you agree to abide by our Contributor Covenant v2.1.

Key principles:

  • Be empathetic and constructive in feedback.
  • Focus on technical merit, not identity or background.
  • Respect differing viewpoints and experiences.
  • Accept responsible criticism gracefully.

Violations will be addressed by the moderation team. Report concerns to conduct@cloudnexus.io.

FAQ

Do I need to sign a CLA?

Yes. All contributions require signing our Contributor License Agreement via our automated GitHub bot. It's a one-time process per author.

How long does PR review take?

Most PRs receive initial feedback within 48 hours. Complex infrastructure changes may take longer due to security and performance validation.

Can I contribute to the commercial Enterprise tier?

Core infrastructure is fully open-source. Enterprise features (SLA guarantees, dedicated support, advanced security modules) are maintained internally but benefit from community feedback via our public roadmap.

🚀
Ready to contribute?

Explore good-first-issues on GitHub or join our community Discord to ask questions before starting. We appreciate your help!