This page aims to document the various services and configuration options that Skara provides for OpenJDK projects and their repositories. The information is targeted towards project leads when setting up new repositories. Each section describes a service/feature of Skara and the possible options for it.
A project can choose wether its members should have direct write/push permissions to its repositories. As an example, the main JDK repository is read-only and requires pull requests created from personal forks for new changes, while the sandbox repository allows any committer in the JDK project to push freely to all branches except master. A Skara bot can be configured to automatically give write permissions based on an OpenJDK Census project committer role.
OpenJDK projects typically have one or more email lists associated with them. Skara can provide notifications on commits, new branches (optional) and new tags (optional), as well as bridging of pull request comments and events. Notifications can be limited to certain branches through a regular expression. The notification email subject can optionally contain the affected branch name.
Skara bots can be setup to automatically resolve bugs and create backports in JBS. To do this, a unique
fixVersion string needs to be defined and configured in
.jcheck/conf in the appropriate branch and repository. This version string also needs to be added in JBS as a valid
fixVersion. The value of such a version string needs to be coordinated with both Skara and JBS admins.
Pull requests can be both a required as well as an optional feature for a repository. Even if a project decides to allow members write access, it's sometimes convenient to have the option of using pull requests. We recommend having this enabled for most repositories.
CSR and JEP
Support for the CSR and JEP features in pull requests needs to be explicitly enabled. Generally only main release repositories have a need for either of these.
Dependent Pull Requests
To use the Dependent Pull Requests feature in a repository, the
prbranch option needs to be enabled.
For a repository to be eligible to be a target of the
/backport command, a special fork repository needs to be created and configured.
Mirror from Upstream
A common scenario is to have the master branch of a project repository automatically mirror its upstream repository (typically the main JDK repository or one of the updates repositories). Skara can be configured to perform this continuously.
Merge between branches
It's also possible to perform automatic merges from one branch to another, within or between repos, at a set schedule. If merging is resolved automatically, the changes are just pushed to the target branch. If not, a pull request is created, where a project member may resolve the merge conflicts and then integrate the pull request to conclude the merge.