This is an automated email from the ASF dual-hosted git repository.

sbp pushed a commit to branch sbp
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git


The following commit(s) were added to refs/heads/sbp by this push:
     new e1ad640  Document check ignores
e1ad640 is described below

commit e1ad640630a4bc19552f9ae407ca59b0c1456d64
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu Jan 29 16:09:41 2026 +0000

    Document check ignores
---
 atr/docs/check-ignores.md      | 77 ++++++++++++++++++++++++++++++++++++++++++
 atr/docs/index.md              |  1 +
 atr/docs/license-checks.md     |  2 +-
 atr/docs/running-the-server.md |  2 +-
 atr/docs/user-guide.md         |  1 +
 5 files changed, 81 insertions(+), 2 deletions(-)

diff --git a/atr/docs/check-ignores.md b/atr/docs/check-ignores.md
new file mode 100644
index 0000000..5cebbb4
--- /dev/null
+++ b/atr/docs/check-ignores.md
@@ -0,0 +1,77 @@
+# 2.4. Check ignores
+
+**Up**: `2.` [User guide](user-guide)
+
+**Prev**: `2.3.` [License checks](license-checks)
+
+**Next**: `3.1.` [Running the server](running-the-server)
+
+**Sections**:
+
+* [Overview](#overview)
+* [Syntax](#syntax)
+* [Examples](#examples)
+
+## Overview
+
+Check ignores let committee members hide specific check results in the UI. 
Ignored checks are removed from the warning and error counts shown on the 
checks pages and are shown separately in _Ignored checks_ sections.
+
+### Where to manage ignores
+
+You can manage ignores from the release checks page by selecting _Manage check 
ignores_. The ignores page shows the existing rules and lets you add, update, 
or delete them, and the per-file report page shows ignored checks for that 
specific file.
+
+### Permissions and visibility
+
+Any committer can view the ignores page for a committee, but only committee 
members can add, update, or delete ignores. Ignores are stored per committee 
and apply only to that committee's releases. (We intend to update this so that 
ignores are stored per project instead.)
+
+Please note that on the release checks page, the _Ignored checks_ list 
includes primary check results only; archive member checks are not shown there. 
On the per-file report page, the _Ignored checks_ list can include member 
checks for that file.
+
+## Syntax
+
+### Fields and what they match
+
+Each ignore rule can match on any combination of fields, and any field you 
leave blank does not restrict matching. The release pattern matches the release 
name in the `project-version` format; the revision number is a literal string 
match (for example `00005`) and cannot use patterns; the checker pattern 
matches the full checker key; the primary rel path pattern matches the artifact 
filename; the member rel path pattern matches a path inside the archive; the 
status matches `Exception`, ` [...]
+
+### Matching rules
+
+Success is never ignored, so only `Exception`, `Failure`, and `Warning` 
results can match. When a rule includes multiple fields, all filled fields must 
match for the ignore to apply, and if any ignore rule matches a check result 
then the check result is ignored.
+
+### Pattern syntax
+
+Patterns use one of two modes.
+
+A pattern is treated as a glob-like string when it does not start with `^` and 
does not end with `$`. In this mode, `*` matches any number of characters, all 
other characters are treated literally, and matching is a substring match 
rather than a full string match.
+
+A pattern is treated as a regular expression when it starts with `^` or ends 
with `$`, and the regex is applied as a search. To keep rules portable across 
engines, use the common subset of RE2 and Hyperscan:
+
+* Anchor with `^` and `$` (mandatory to enable the regex mode)
+* Match any chracter with `.`
+* Escape metacharacters with `\`
+* Use character ranges using classes like `[A-Za-z0-9_.-]`
+* Group with `(...)`
+* Alternate with `|`
+* Quantify with `*`, `+`, `?`
+
+Patterns longer than 128 characters are rejected, and cannot be used.
+
+Negation and missing values are handled with a leading exclamation mark. 
Prefix a pattern of either mode with `!` to negate it, and use the special 
pattern `!` by itself to match a missing value such as a missing member path. 
Negated patterns do not match missing values unless you use the standalone `!`. 
Use `!` before the opening anchor `^` in regular expression mode.
+
+## Examples
+
+To ignore all RAT warnings for your committee, set the checker pattern to 
`atr.tasks.checks.rat.check` and the status to `Warning`.
+
+To ignore license header failures for a specific release series, set the 
release pattern to `apache-example-1.2.*`, the checker pattern to 
`atr.tasks.checks.license.headers`, and the status to `Failure`.
+
+To ignore only a specific revision, set the release pattern to 
`apache-example-2.0.0`, set the revision number to the literal value `00005`, 
and set the status to `Warning`.
+
+To ignore a single artifact file, set the primary rel path pattern to 
`apache-example-2.0.0-source.tar.gz`, the checker pattern to 
`atr.tasks.checks.signature.check`, and the status to `Failure`.
+
+To ignore warnings for one file inside the archive, set the member rel path 
pattern to `apache-example-2.0.0/src/main/java/Foo.java`, set the checker 
pattern to `atr.tasks.checks.license.headers`, and set the status to `Warning`.
+
+To match only primary results with no member path, set the member rel path 
pattern to `!`, set the checker pattern to `atr.tasks.checks.paths.check`, and 
set the status to `Warning`.
+
+To use regex for an exact release name, set the release pattern to 
`^apache-example-[0-9]+\.[0-9]+\.[0-9]+$` and set the status to `Failure`.
+
+To ignore all warnings except the ATR license header checks, set the checker 
pattern to `!atr.tasks.checks.license.headers` and set the status to `Warning`.
+
+Try setting multiple ignores to understand how matching works. Separate 
ignores are ORed together, so e.g. one rule that ignores RAT warnings and 
another separate rule that ignores signature failures will result in any checks 
that match either rule being ignored.
diff --git a/atr/docs/index.md b/atr/docs/index.md
index 700c6fb..a84e83c 100644
--- a/atr/docs/index.md
+++ b/atr/docs/index.md
@@ -11,6 +11,7 @@ NOTE: This documentation is a work in progress.
   * `2.1.` [Components](components)
   * `2.2.` [Signing artifacts](signing-artifacts)
   * `2.3.` [License checks](license-checks)
+  * `2.4.` [Check ignores](check-ignores)
 * `3.` [Developer guide](developer-guide)
   * `3.1.` [Running the server](running-the-server)
   * `3.2.` [Overview of the code](overview-of-the-code)
diff --git a/atr/docs/license-checks.md b/atr/docs/license-checks.md
index 2275c83..77df4bf 100644
--- a/atr/docs/license-checks.md
+++ b/atr/docs/license-checks.md
@@ -4,7 +4,7 @@
 
 **Prev**: `2.2.` [Signing artifacts](signing-artifacts)
 
-**Next**: `3.1.` [Running the server](running-the-server)
+**Next**: `2.4.` [Check ignores](check-ignores)
 
 **Sections**:
 
diff --git a/atr/docs/running-the-server.md b/atr/docs/running-the-server.md
index 211f4d3..73d15aa 100644
--- a/atr/docs/running-the-server.md
+++ b/atr/docs/running-the-server.md
@@ -2,7 +2,7 @@
 
 **Up**: `3.` [Developer guide](developer-guide)
 
-**Prev**: `2.3.` [License checks](license-checks)
+**Prev**: `2.4.` [Check ignores](check-ignores)
 
 **Next**: `3.2.` [Overview of the code](overview-of-the-code)
 
diff --git a/atr/docs/user-guide.md b/atr/docs/user-guide.md
index 5670125..00f3a38 100644
--- a/atr/docs/user-guide.md
+++ b/atr/docs/user-guide.md
@@ -11,6 +11,7 @@
 * `2.1.` [Components](components)
 * `2.2.` [Signing artifacts](signing-artifacts)
 * `2.3.` [License checks](license-checks)
+* `2.4.` [Check ignores](check-ignores)
 
 **Sections**:
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to