Thank you for your interest in contributing to SambaNova AI Starter Kits! This document provides guidelines and best practices for contributing to our repository.
- Overview
- Getting Started
- Branch Protection Rules
- Development Workflow
- Code Quality Standards
- Pull Request Guidelines
- Package Owner Responsibilities
SambaNova AI Starter Kits are open-source examples and guides designed to facilitate the deployment of AI-driven use cases. We welcome contributions that improve existing kits or add new functionality.
- Create a branch (not a fork) for your contribution
- Set up your development environment See Here For Instructions
- Make your changes following our coding standards
- Submit a pull request
The main
branch is protected with the following rules:
- Pull requests must be up-to-date with the base branch
- All conversations must be resolved before merging
- At least one reviewer approval is required
- All GitHub Actions checks must pass
Use the following prefixes for your branches:
feature/
for new features (e.g.,feature/rag-component
)improvement/
for improvements (e.g.,improvement/add-langchain-cache
)bugfix/
for bug fixes (e.g.,bugfix/vectorstore
)documentation/
for documentation (e.g.,documentation/rag-component
)release/
for releases (e.g.,release/v1.0.1
)
All code must pass our automated checks using Ruff and MyPy. You can run these checks locally using:
# Using Makefile (Preferred)
make venv-install # Initialize environment
make format # Format code with Ruff
make lint # Lint and type check with Ruff & MyPy
make format-lint # Run all checks
# Direct commands (Optional if you've ran the make commands above)
ruff format your_module
ruff check --fix your_module
ruff check --fix --select I your_module
mypy --explicit-package-bases your_module
- All contributions must pass the unit test suite
- Tests are automatically run when opening a PR
- Package owners must maintain up-to-date tests with good coverage
- New AISK Modules ie Kits (at high effort level with UI, etc.) should have unit test coverage that has been reviewed in a tests folder within the module. See the enterprise_knowledge_retreiver kit for an example.
-
Use the appropriate prefix in your PR title:
Feature:
for new featuresImprovement:
for improvementsBugfix:
for bug fixesDocumentation:
for documentationRelease:
for releases
-
Include:
- Informative title following the above conventions
- Detailed description
- Appropriate label
- Self-assignment
Ensure:
- Branch is up-to-date with main
- All conversations are resolved
- At least one reviewer has approved
- All checks have passed
- Code is formatted and linted
- All tests pass
- Delete your branch
Package owners must:
- Maintain up-to-date unit tests with good coverage
- Implement both 'main' and 'github_pull_request' test suites
- Clear all deprecation warnings
- Update libraries monthly and coordinate with global dependency updates
- Create the virtual environment as
.venv
at the repo root - This ensures consistency with common practices and Makefile configuration
- List dependencies alphabetically in
requirements.txt
for the kit - Add any new dependencies to
base-requirements.txt
in the root folder (if not already present)
- ,Message us on SambaNova Community <a href="https://community.sambanova.ai/latest"
- Create an issue on GitHub
- We're happy to help!
Note: These contribution guidelines are subject to change. Always refer to the latest version in the repository.