All work on Vespa happens directly on Github, using the Github flow model. We release the master branch a few times a week and you should expect it to almost always work. In addition to the public Screwdriver build we have a large acceptance and performance test suite which is also run continuously.
All pull requests are reviewed by a member of the Vespa Committers team. You can find a suitable reviewer in the OWNERS file upward in the source tree from where you are making the change (the OWNERS have a special responsibility for ensuring the long-term integrity of a portion of the code). If you want to become a committer/OWNER making some quality contributions is the way to start.
We require all pull request checks to pass. If you have done changes involving the config model, OSGi bundles or dependency injection, we also require that the pull request is created with [run-systemtest] in the title. This will execute an extended test suite as part of the checks.
Vespa uses semantic versioning - see vespa versions. Notice in particular that any Java API in a package having a @PublicAPI annotation in the package-info file cannot be changed in an incompatible way between major versions: Existing types and method signatures must be preserved (but can be marked deprecated).
We track issues in GitHub issues. It is fine to submit issues also for feature requests and ideas, whether or not you intend to work on them.
There is also a ToDo list for larger things which nobody are working on yet.
If you have questions, want to share your experience or help others, please join our community on Stack Overflow.