Thank you for your interest in contributing to SecureFabric! This document provides guidelines for contributing to the public SDK and documentation repository.
IMPORTANT: This repository is for SDKs and protocol specifications ONLY.
- Client SDK improvements (Rust, JavaScript/TypeScript, Python)
- Protocol specification updates and clarifications
- Documentation, examples, and guides
- Bug fixes in client libraries
- New language SDK implementations
- Test coverage and conformance tests
- Server/node implementation changes (not in this repo)
- Infrastructure, deployment, or operational code
- Changes to private/proprietary components
- Production credentials, keys, or certificates
Pull requests attempting to add server code, infrastructure configs, or deployment tooling will be rejected. For questions about node implementation or architecture, please contact the maintainers directly.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you agree to uphold a respectful and inclusive environment.
- Bugs: Use the bug report template
- Feature Requests: Use the feature request template
- Security Issues: See SECURITY.md
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Test your changes (see Testing section)
- Commit with clear messages: Follow Conventional Commits
- Push to your fork:
git push origin feature/my-feature - Open a Pull Request
cd sdk/rust
cargo build
cargo test
cargo fmt --check
cargo clippy -- -D warningscd sdk/js
npm install
npm run build
npm test
npm run lintcd sdk/python
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
pip install -e '.[dev]'
pytest
black --check .
mypy securefabricAll contributions must include tests:
- Unit tests for new functionality
- Integration tests for SDK methods (where applicable)
- Documentation updates if adding/changing APIs
- Examples updated if changing interfaces
- Follow
rustfmtdefaults - Use
clippywith-D warnings - Document public APIs with
///doc comments
- Use ESLint + Prettier
- TypeScript strict mode enabled
- JSDoc comments for public APIs
- Follow PEP 8
- Use Black for formatting
- Type hints required for public APIs
- Docstrings in Google style
Follow Conventional Commits:
feat: add support for Python async API
fix: correct error handling in Rust SDK
docs: update quickstart guide
test: add integration tests for JS SDK
chore: update dependencies
- Title: Use conventional commit format
- Description: Explain what and why, not how
- Link Issues: Reference related issues
- Tests: Ensure all tests pass
- Documentation: Update docs if needed
- Changelog: Update CHANGELOG.md for notable changes
- Automated CI checks must pass
- At least one maintainer approval required
- All conversations must be resolved
- Squash merging preferred for clean history
- API docs: Auto-generated from code comments
- Guides: Markdown in
docs/ - Examples: Self-contained in
examples/
Update documentation when:
- Adding new SDK methods
- Changing existing interfaces
- Adding new examples
- Updating protocol specs
Changes to protocol specs (specs/) require:
- Clear rationale for changes
- Backward compatibility analysis
- Update to all affected SDKs
- Version bump in proto file
- Entry in CHANGELOG.md explaining the change
Breaking Changes: Any breaking protocol changes must:
- Increment the major version number
- Document migration path in CHANGELOG.md
- Update all SDK implementations
- Provide backward compatibility guidance
By contributing, you agree that your contributions will be licensed under the Apache-2.0 license. All source files should include SPDX headers:
// SPDX-License-Identifier: Apache-2.0Or for Python/shell scripts:
# SPDX-License-Identifier: Apache-2.0- Open a discussion on GitHub Discussions
- Email: contact@secure-fabric.io
Thank you for contributing to SecureFabric!