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
- Check the existing issues to avoid duplicates
- Use the bug report template when creating a new issue
- Include steps to reproduce, expected behavior, and actual behavior
- Include your environment details (OS, Python/Go/Rust versions, Docker version)
Suggesting Features
- Check existing issues and discussions first
- Use the feature request template
- Describe the use case, expected behavior, and why it matters
Submitting Pull Requests
- Fork the repository and create a feature branch from
main - Follow the coding standards described below
- Add tests for all new functionality
- Ensure all tests pass:
make test - Update documentation if your changes affect user-facing behavior
- 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
blackfor formatting,flake8for linting
Rust
- -- Follow standard Rust style (rustfmt)
- -- Run
cargo clippywith no warnings - -- Use
unsafeonly when absolutely necessary and documented - -- Prefer zero-copy parsing for performance
Go
- -- Follow standard Go conventions (gofmt, govet)
- -- Use
golangci-lintfor 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
Automated Checks
CI runs linting, type checking, unit tests, integration tests, and security scans. All checks must pass before review.
Code Review
At least one maintainer will review your code within 48 hours. We may ask for changes or suggest improvements.
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.