Contributing to Vectra
Thank you for your interest in contributing! Vectra welcomes contributions of all kinds — bug fixes, documentation improvements, new features, and more.
Getting Started
- Fork the repository on GitHub: cortexiumlabs/vectra
- Clone your fork locally:
git clone https://github.com/<your-username>/vectra.gitcd vectra
- Create a feature branch:
git checkout -b feature/my-feature
- Restore dependencies and build:
dotnet restoredotnet build
- Run tests:
dotnet test
Project Structure
src/
├── Vectra # Host / entry-point
├── Vectra.Application # Use cases & abstractions
├── Vectra.Domain # Domain model
├── Vectra.Infrastructure # Implementations
├── Vectra.Infrastructure.Persistence.Sqlite
├── Vectra.Infrastructure.Persistence.Common
└── Vectra.BuildingBlocks # Shared utilities
tests/
├── Vectra.Domain.UnitTests
└── Vectra.BuildingBlocks.UnitTests
Coding Standards
- Target .NET 10
- Follow existing file and namespace conventions
- Use the
Result<T>/Errorpattern (fromVectra.BuildingBlocks) for error handling — do not throw exceptions in handlers - Write unit tests for all new domain logic and application handlers
- Keep infrastructure implementations behind interfaces defined in
Vectra.Application
Submitting a Pull Request
- Ensure all tests pass:
dotnet test - Ensure the build is clean:
dotnet build - Commit with a clear, descriptive message
- Push your branch and open a Pull Request against
main - Fill in the PR template describing the change and motivation
Good First Issues
Looking for something to work on? Check out issues labelled good first issue on GitHub.
License
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.