Welcome, and thank you for your interest in contributing to Raven! We appreciate all contributions, whether they are bug reports, feature suggestions, documentation improvements, or code changes.
- How to Contribute
- Development Setup
- Branch Naming
- Commit Convention
- Pull Request Process
- Code Style
- Reporting Bugs
- Suggesting Features
- Code of Conduct
There are many ways to contribute to Raven:
- Report bugs by opening a GitHub Issue
- Suggest features by opening a GitHub Issue or starting a Discussion
- Improve documentation by submitting a pull request
- Fix bugs by picking up an existing issue and submitting a pull request
- Implement features by working on open issues or proposing new ones
- Join discussions to help shape the direction of the project
Ensure you have the following installed:
- Node.js 22 or later
- pnpm 10.27 or later
- PostgreSQL 17
- Redis 7
-
Fork the repository on GitHub at github.com/bigint/raven.
-
Clone your fork locally:
git clone https://github.com/<your-username>/raven.git cd raven
-
Install dependencies:
pnpm install
-
Set up your environment:
cp .env.example .env
Edit the
.envfile and configure your database connection, Redis URL, and any other required variables. -
Run database migrations:
pnpm db:migrate
-
Start the development server:
pnpm dev
Use the following branch naming conventions:
feature/*-- for new features (e.g.,feature/add-rate-limiting)fix/*-- for bug fixes (e.g.,fix/virtual-key-validation)docs/*-- for documentation changes (e.g.,docs/update-api-reference)
This project follows Conventional Commits. All commit messages should use one of the following prefixes:
feat:-- a new featurefix:-- a bug fixdocs:-- documentation changesrefactor:-- code changes that neither fix a bug nor add a featurechore:-- maintenance tasks, dependency updates, CI changes
Examples:
feat: add support for Anthropic provider routing
fix: resolve token counting for streaming responses
docs: update environment variable reference
refactor: simplify middleware chain for gateway requests
chore: upgrade dependencies to latest versions
- Create a branch from
mainusing the naming convention above. - Make your changes and commit them following the commit convention.
- Describe your changes clearly in the pull request description.
- Reference any related issues (e.g., "Closes #42").
- Ensure all checks pass -- your code must pass linting and type checking before it can be merged.
- Keep pull requests focused -- each PR should address a single concern.
- Be responsive to feedback -- maintainers may request changes during review.
-
Follow the conventions defined in STYLEGUIDE.md.
-
Use Biome for linting and formatting. Run it before submitting your PR:
pnpm lint pnpm format
-
Ensure your code passes type checking:
pnpm typecheck
If you find a bug, please open a GitHub Issue and include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Your environment details (OS, Node.js version, etc.)
- Any relevant logs or error messages
We welcome feature suggestions. You can:
- Open a GitHub Issue with the "feature request" label
- Start a GitHub Discussion to gather community feedback before formal proposals
Please include:
- A clear description of the problem the feature would solve
- Your proposed solution or approach
- Any alternatives you have considered
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to oss@bigint.studio.
Thank you for contributing to Raven!