Introduction
This page documents the JCheck configuration file .jcheck/conf. JCheck was originally a Mercurial plugin created for the OpenJDK organization to help keep order in the source repositories. The main features were whitespace checking, commit message formatting and commit hash blacklisting. Skara has taken over this role and has expanded on the functionality of JCheck.
Basics
The Skara version of .jcheck/conf is an ini-file. An ini file consists of a number of sections which contain one or more name value pairs. Below is an example of the section general
with the parameter project
set ot jdk
.
[general] project=jdk
Sections
Below follows a breakdown of each section and the configuration options they support.
general
project | The OpenJDK project that this repository belongs to. |
jbs | The project name in the bug tracker. |
version | The version to use as fixVersion in the bug tracker when resolving issues. |
checks
error | List of checks to apply to this repository/branch that are to be considered errors if they fail. |
warning | List of checks to apply to this repository/branch that are to be considered warnings if they fail. |
repository
tags | Regex that all tags must match. |
branches | Regex that all branch names must match. |
census
version | Which version of the census to use (currently 0 for OpenJDK). |
domain | The domain of the census (openjdk.org for OpenJDK). |
url | The url of the census XML (defaults to "https://openjdk.org/census.xml") |
Checks
In addition to these main sections, each check can be configured in its own section on the form [checks "name"]
. Here follows a list of all currently supported checks and their options.
author
Checks that both the author.name and author.email have values in a commit.
binary
Checks if there are any binary files in a commit.
committer
Checks that the committer of a commit has at least a given role in the census for the project.
role | The minimum role required |
executable
Checks that no files have the executable bit set.
issues
Checks that commit messages for regular commits reference issues in the bug tracker.
pattern | The pattern to match. The first capturing group should contain the bugId. |
required | Set to true to require the bugs to exist in the bug tracker |
issuestitle
Checks that issue titles in commit messages don't include trailing periods or leading lowercase.
Depends on issues check, if issues check is not required, issuestitle check will be ignored.
merge
Checks that commit messages for merge commits match a pattern.
message | The pattern to match. |
message
Checks for formatting issues in commit messages.
problemlists
Checks the contents of Jtreg problem list files.
dirs | List of directories to look for files in. Separated by | . |
pattern | Regex naming pattern for problem list files. |
symlink
Checks that commits do not contain symlinks.
reviewers
Checks that a commit has enough reviewers with the required role. The default is 0 for each role.
lead | How many of the lead role that are required. |
reviewers | How many of the reviewer role that are required. |
committers | How many of the committer role that are required. |
authors | How many of the author role that are required. |
contributors | How many of the contributor role that are required. |
whitespace
Checks source files for whitespace issues.
files | Regex matching all files that should be included in the whitespace check. |
ignore-tabs | Regex matching all files where tabs should be allowed. |