Open Source

Contributing to QBITEL Bridge

Thank you for your interest in contributing. This guide covers everything you need to get started: development setup, coding standards, and the pull request workflow.

Code of Conduct

This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.

How to Contribute

Reporting Bugs

  1. Check the existing issues to avoid duplicates
  2. Use the bug report template when creating a new issue
  3. Include steps to reproduce, expected behavior, and actual behavior
  4. Include your environment details (OS, Python/Go/Rust versions, Docker version)

Suggesting Features

  1. Check existing issues and discussions first
  2. Use the feature request template
  3. Describe the use case, expected behavior, and why it matters

Submitting Pull Requests

  1. Fork the repository and create a feature branch from main
  2. Follow the coding standards described below
  3. Add tests for all new functionality
  4. Ensure all tests pass: make test
  5. Update documentation if your changes affect user-facing behavior
  6. Submit the PR using the pull request template

Development Setup

# Clone your fork
git clone https://github.com/YOUR_USERNAME/qbitel-bridge.git
cd qbitel-bridge

# Build all components
make build

# Run all tests
make test

Component-Specific Setup

Python AI Engine

python -m venv venv && source venv/bin/activate
pip install -r requirements.txt -r ai_engine/requirements.txt
pytest ai_engine/tests/ -v

Rust Data Plane

cd rust/dataplane
cargo build --locked && cargo test

Go Services

cd go/controlplane && go test ./...
cd go/mgmtapi && go test ./...

UI Console

cd ui/console && npm install && npm test

Coding Standards

Python

  • -- Follow PEP 8 style guidelines
  • -- Use type hints for function signatures
  • -- Maximum line length: 120 characters
  • -- Use black for formatting, flake8 for linting

Rust

  • -- Follow standard Rust style (rustfmt)
  • -- Run cargo clippy with no warnings
  • -- Use unsafe only when absolutely necessary and documented
  • -- Prefer zero-copy parsing for performance

Go

  • -- Follow standard Go conventions (gofmt, govet)
  • -- Use golangci-lint for static analysis
  • -- Handle all errors explicitly
  • -- Write table-driven tests

TypeScript (UI)

  • -- Use TypeScript strict mode
  • -- Prefer functional components with hooks
  • -- Use Prettier for formatting, ESLint for linting
  • -- Write tests with Vitest

Commit Message Format

We use conventional commits. Each commit message should follow this format:

type(scope): description

[optional body]

[optional footer]

Types: feat, fix, docs, refactor, test, chore, perf, ci

Scopes: ai-engine, dataplane, controlplane, mgmtapi, ui, pqc, compliance, docs

Pull Request Review Process

1

Automated Checks

CI runs linting, type checking, unit tests, integration tests, and security scans. All checks must pass before review.

2

Code Review

At least one maintainer will review your code within 48 hours. We may ask for changes or suggest improvements.

3

Merge

Once approved and all checks pass, a maintainer will merge your PR using squash-and-merge.

License

By contributing to QBITEL Bridge, you agree that your contributions will be licensed under the Apache License 2.0.

Ready to Contribute?

Fork the repository, pick an issue labeled 'good first issue', and submit your first pull request.