This is an automated email from the ASF dual-hosted git repository.
PDavid pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 3dbfe52e628 HBASE-29878 Improve the Documentation UI (addendum) - fix
author check in nightly (#7952)
3dbfe52e628 is described below
commit 3dbfe52e628b71f3c628a117b4d2476f2713000b
Author: Dávid Paksy <[email protected]>
AuthorDate: Thu Jun 25 07:07:25 2026 +0200
HBASE-29878 Improve the Documentation UI (addendum) - fix author check in
nightly (#7952)
Ignore files under hbase-website in author checks.
For this we monkey-patch YETUS-1266 fix for author_postcompile function in
our hbase-personality.sh.
YETUS-1266 Escape regex metacharacters in author plugin ignore list
The author_postcompile function writes --author-ignore-list entries
directly into a grep -E filter file without escaping. Filenames containing
regex metacharacters (parentheses, brackets, etc.) are silently misinterpreted
as pattern syntax, causing those files to pass through unfiltered.
Signed-off-by: Nick Dimiduk <[email protected]>
---
.github/workflows/yetus-general-check.yml | 2 +-
.../yetus-jdk17-hadoop3-compile-check.yml | 2 +-
.../workflows/yetus-jdk17-hadoop3-unit-check.yml | 2 +-
dev-support/Jenkinsfile | 2 +-
dev-support/Jenkinsfile_GitHub | 2 +-
...doop3-backwards-compatibility-check.Jenkinsfile | 2 +-
dev-support/hbase-personality.sh | 51 ++++++++++++++++++++++
7 files changed, 57 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/yetus-general-check.yml
b/.github/workflows/yetus-general-check.yml
index 435ec80778b..d21f9e46fdd 100644
--- a/.github/workflows/yetus-general-check.yml
+++ b/.github/workflows/yetus-general-check.yml
@@ -115,7 +115,7 @@ jobs:
SOURCEDIR: "${{ github.workspace }}/src"
TESTS_FILTER:
"checkstyle,javac,pylint,shellcheck,shelldocs,blanks,perlcritic,ruby-lint,rubocop"
YETUSDIR: "${{ github.workspace }}/yetus"
- AUTHOR_IGNORE_LIST: "src/main/asciidoc/_chapters/developer.adoc"
+ AUTHOR_IGNORE_LIST:
"hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html"
BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt"
BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt"
EXCLUDE_TESTS_URL:
"https://ci-hbase.apache.org/job/HBase-Find-Flaky-Tests/job/${{ github.base_ref
}}/lastSuccessfulBuild/artifact/output/excludes"
diff --git a/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml
b/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml
index 3c6f920f39a..552746ac6c0 100644
--- a/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml
+++ b/.github/workflows/yetus-jdk17-hadoop3-compile-check.yml
@@ -114,7 +114,7 @@ jobs:
SOURCEDIR: "${{ github.workspace }}/src"
TESTS_FILTER: "javac,javadoc"
YETUSDIR: "${{ github.workspace }}/yetus"
- AUTHOR_IGNORE_LIST: "src/main/asciidoc/_chapters/developer.adoc"
+ AUTHOR_IGNORE_LIST:
"hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html"
BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt"
BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt"
BUILD_THREAD: "4"
diff --git a/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml
b/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml
index 460d187bbad..633deb9f66c 100644
--- a/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml
+++ b/.github/workflows/yetus-jdk17-hadoop3-unit-check.yml
@@ -132,7 +132,7 @@ jobs:
SET_JAVA_HOME: "/usr/lib/jvm/java-17"
SOURCEDIR: "${{ github.workspace }}/src"
YETUSDIR: "${{ github.workspace }}/yetus"
- AUTHOR_IGNORE_LIST: "src/main/asciidoc/_chapters/developer.adoc"
+ AUTHOR_IGNORE_LIST:
"hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html"
BLANKS_EOL_IGNORE_FILE: "dev-support/blanks-eol-ignore.txt"
BLANKS_TABS_IGNORE_FILE: "dev-support/blanks-tabs-ignore.txt"
EXCLUDE_TESTS_URL:
"https://ci-hbase.apache.org/job/HBase-Find-Flaky-Tests/job/${{ github.base_ref
}}/lastSuccessfulBuild/artifact/output/excludes"
diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile
index f22e67d04e8..bb4bcd4fb54 100644
--- a/dev-support/Jenkinsfile
+++ b/dev-support/Jenkinsfile
@@ -43,7 +43,7 @@ pipeline {
PROJECT_PERSONALITY =
'https://raw.githubusercontent.com/apache/hbase/master/dev-support/hbase-personality.sh'
PERSONALITY_FILE = 'tools/personality.sh'
// This section of the docs tells folks not to use the javadoc tag. older
branches have our old version of the check for said tag.
- AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc'
+ AUTHOR_IGNORE_LIST =
'hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html'
BLANKS_EOL_IGNORE_FILE = 'dev-support/blanks-eol-ignore.txt'
BLANKS_TABS_IGNORE_FILE = 'dev-support/blanks-tabs-ignore.txt'
// output from surefire; sadly the archive function in yetus only works on
file names.
diff --git a/dev-support/Jenkinsfile_GitHub b/dev-support/Jenkinsfile_GitHub
index c29d4f9140e..8cf5a7ab871 100644
--- a/dev-support/Jenkinsfile_GitHub
+++ b/dev-support/Jenkinsfile_GitHub
@@ -41,7 +41,7 @@ pipeline {
GENERAL_CHECK_PLUGINS = 'all,-javadoc,-jira,-shadedjars,-unit'
JDK_SPECIFIC_PLUGINS =
'compile,github,htmlout,javac,javadoc,maven,mvninstall,shadedjars,unit'
// This section of the docs tells folks not to use the javadoc tag.
older branches have our old version of the check for said tag.
- AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc'
+ AUTHOR_IGNORE_LIST =
'hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html'
BLANKS_EOL_IGNORE_FILE = 'dev-support/blanks-eol-ignore.txt'
BLANKS_TABS_IGNORE_FILE = 'dev-support/blanks-tabs-ignore.txt'
// output from surefire; sadly the archive function in yetus only
works on file names.
diff --git a/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile
b/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile
index 8e8eff8ded3..7a26647ae34 100644
--- a/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile
+++ b/dev-support/hadoop3-backwards-compatibility-check.Jenkinsfile
@@ -135,7 +135,7 @@ pipeline {
SKIP_ERRORPRONE = true
OUTPUT_DIR_RELATIVE =
"output-jdk17-hadoop3-backwards-${HADOOP3_VERSION}"
OUTPUT_DIR = "${WORKSPACE}/${OUTPUT_DIR_RELATIVE}"
- AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc'
+ AUTHOR_IGNORE_LIST =
'hbase-website/app/pages/_docs/docs/_mdx/(multi-page)/building-and-developing/developer-guidelines.mdx,hbase-website/public/book.html'
BLANKS_EOL_IGNORE_FILE = 'dev-support/blanks-eol-ignore.txt'
BLANKS_TABS_IGNORE_FILE = 'dev-support/blanks-tabs-ignore.txt'
// output from surefire; sadly the archive function in yetus only
works on file names.
diff --git a/dev-support/hbase-personality.sh b/dev-support/hbase-personality.sh
index 577f7c77deb..75a462eea5a 100755
--- a/dev-support/hbase-personality.sh
+++ b/dev-support/hbase-personality.sh
@@ -290,6 +290,57 @@ function personality_modules
done
}
+# This is a workaround to fix the author check until YETUS-1266 is released.
+# TODO: Remove this when we upgraded to Yetus having YETUS-1266!
+## @description Check the current directory for author tags
+## @audience private
+## @stability evolving
+## @replaceable no
+## @return 0 on success
+## @return 1 on failure
+function author_postcompile
+{
+ # shellcheck disable=SC2155
+ declare -r appname=$(basename "${BASH_SOURCE-$0}")
+ declare -a globalignore
+
+ if [[ "${BUILDMODE}" != full ]]; then
+ return
+ fi
+
+ big_console_header "Checking for @author tags: ${BUILDMODE}"
+
+ start_clock
+
+ if [[ -f "${PATCH_DIR}/excluded.txt" ]]; then
+ globalignore=("${GREP}" "-v" "-f" "${PATCH_DIR}/excluded.txt")
+ else
+ globalignore=("cat")
+ fi
+
+ "${GIT}" grep -n -I --extended-regexp -i -e '^[^-].*@author' \
+ | "${GREP}" -v "${appname}" \
+ | "${globalignore[@]}" \
+ >> "${PATCH_DIR}/author-tags-git.txt"
+
+ if [[ -z "${AUTHOR_IGNORE_LIST[0]}" ]]; then
+ cp -p "${PATCH_DIR}/author-tags-git.txt" "${PATCH_DIR}/${AUTHOR_LOGNAME}"
+ else
+ for i in "${AUTHOR_IGNORE_LIST[@]}"; do
+ printf "%s\n" "${i}"
+ done \
+ | "${SED}" 's/[][\\.^$*+?{}()|]/\\&/g' \
+ | "${SED}" 's/^/^/' \
+ > "${PATCH_DIR}/author-tags-filter.txt"
+ "${GREP}" -v -E \
+ -f "${PATCH_DIR}/author-tags-filter.txt" \
+ "${PATCH_DIR}/author-tags-git.txt" \
+ > "${PATCH_DIR}/${AUTHOR_LOGNAME}"
+ fi
+
+ author_generic
+}
+
## @description places where we override the built in assumptions about what
tests to run
## @audience private
## @stability evolving