Thanks for your interest in improving Base.
This document will help you get started. Do not let this document intimidate you. It should be considered as a guide to help you navigate the process.
There are three ways an individual can contribute:
- By opening an issue: If you believe you have uncovered a bug in Base or have a feature request, creating a new issue in the issue tracker is the way to begin the process.
- By adding context: Provide additional context to existing issues, such as screenshots, logs, and code snippets, to help resolve them.
- By resolving issues: Typically this is done by opening a pull request that fixes the underlying problem in a concrete and reviewable manner.
To ensure we're all rowing in the same direction and to prevent wasted effort, please note the following guidelines:
- Small, focused changes: One-liner fixes, typo corrections in code, small bug fixes, and similar minimal changes are welcome.
- Issues labeled
help wanted: Want to contribute code? Look for unassigned issues with this label — these are ones we've specifically identified for external contributions. You can find them here. - Bug reports: Well-documented bug reports with reproduction steps are always appreciated.
If you're considering a contribution (new features, refactors, architectural changes), please open an issue first to discuss your proposal. This helps:
- Ensure the change aligns with project goals
- Prevent duplicate work
- Get early feedback on the approach
- Save your time if the change isn't something we can accept
We want to respect your time. Opening a discussion before investing significant effort helps ensure your contribution can be merged.
Important: Only work on issues that are assigned to you. If you're interested in an existing issue, comment on it to request assignment. We assign issues on a first-come, first-served basis. This helps prevent duplicate work and ensures your contribution can be merged.
If you want to work on something that doesn't have an issue yet, open an issue first and note that you'd like to implement it. Once we agree it's worthwhile, we'll assign the issue to you.
- Check for existing issues or PRs that address the same problem
- If you are assigned an issue but no longer have time to work on it, please let us know so we can unassign it
- Fork the repository and create your branch from
main - Make your changes, following the existing code style
- Add or update tests as appropriate
- Ensure all checks pass locally:
just ci
- Link to the related issue
- Describe what your changes do and why
- Respond to feedback and requests for changes
- Keep your PR up to date with the
mainbranch - Be patient - reviews may take time
When filing a new bug report in the issue tracker, please include:
- The Base version you are on (and that it is up to date)
- Relevant logs and error messages
- Concrete steps to reproduce the bug
- Any relevant configuration
The more minimal your reproduction case, the easier it is to diagnose and fix.
If you have questions:
- Open a discussion in the repository
- Comment on the relevant issue
- Check existing documentation and issues first