Open Development
All work on Vespa happens directly on GitHub using the GitHub flow model.We release the master branch four times a week (Monday through Thursday), and you should expect it to always work.
Code Review Process
All pull requests must be approved by a Vespa Committer. You can find a suitable reviewer in the OWNERS file upward in the source tree from where you are making the change.OWNERS have a special responsibility for ensuring the long-term integrity of a portion of the code.
Becoming a Committer
The way to become a committer (and OWNER) is to make quality contributions to an area of the code. See GOVERNANCE.md for more details.Start Contributing
Begin by creating pull requests that demonstrate quality and understanding of the codebase.
Build Trust
Continue making approved PRs and building trust with the community through your contributions.
Getting Started
Development Environment
C++ and Java building is supported on AlmaLinux 8. The Java source can also be built on any platform having Java 17 and Maven 3.8+ installed.Setup on AlmaLinux 8
Setup on AlmaLinux 8
Use the complete development environment guide using Docker for building Vespa, running unit tests and system tests:
Vespa development on AlmaLinux 8
Setup Java Environment on Mac
Setup Java Environment on Mac
- Install dependencies through Homebrew:
- On ARM Macs (M1, M2, etc.), install Intel compatibility:
- Symlink the JDK:
- Configure your shell (for zsh):
- Add JDK17 to jEnv:
- Verify configuration:
Building Java Modules
If you only need to build the Java modules:Understanding the Codebase
- See Code-map.md for an overview of Vespa modules
- Each module has its own README with more details
- Check TODO.md for suggested improvements
Issues and Feature Requests
We track issues in GitHub issues. It is fine to submit issues for:- Bug reports
- Feature requests
- Ideas and suggestions
- Questions and discussions
Community Resources
Slack
Join our Slack channel to ask questions, share experiences, and help others
Stack Overflow
Browse questions tagged with “vespa” or ask your own
Blog
Follow the Vespa Blog for feature updates and use cases
Sample Apps
Explore sample applications to learn Vespa patterns
License and Copyright
If you add new files, you are welcome to use your own copyright. The license confirmation is included in the pull request template:I confirm that this contribution is made under the terms of the license found in the root directory of this repository’s source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
Testing
Shell Script Tests
Shell scripts are tested with BATS.Running BATS Tests on Mac
Running BATS Tests on Mac
- Install the testing framework and plugins:
- Export the plugin path:
- Run all tests from the repository root:
- Run a specific test:
Next Steps
Pull Request Process
Learn how to create and submit pull requests
Versioning Guidelines
Understand Vespa’s semantic versioning and API compatibility