This is an automated email from the ASF dual-hosted git repository.
JingsongLi pushed a commit to branch release-2.0
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/release-2.0 by this push:
new a08a808b5d [release] Make PyPaimon licensing check reproducible
a08a808b5d is described below
commit a08a808b5deed314946a0404ab1973230fe40590
Author: JingsongLi <[email protected]>
AuthorDate: Sat Aug 1 21:30:53 2026 +0800
[release] Make PyPaimon licensing check reproducible
---
paimon-python/dev/.rat-excludes | 6 ++++
paimon-python/dev/check-licensing.sh | 54 ++++++++++++++++++++++++++----------
2 files changed, 45 insertions(+), 15 deletions(-)
diff --git a/paimon-python/dev/.rat-excludes b/paimon-python/dev/.rat-excludes
index 421839c0f1..7f1a66aa81 100644
--- a/paimon-python/dev/.rat-excludes
+++ b/paimon-python/dev/.rat-excludes
@@ -19,3 +19,9 @@
.gitignore
rat-results.txt
.*\.jsonl$
+.*PKG-INFO$
+.*SOURCES[.]txt$
+.*dependency_links[.]txt$
+.*entry_points[.]txt$
+.*requires[.]txt$
+.*top_level[.]txt$
diff --git a/paimon-python/dev/check-licensing.sh
b/paimon-python/dev/check-licensing.sh
index 883c43d5a8..ec1fe9df0e 100755
--- a/paimon-python/dev/check-licensing.sh
+++ b/paimon-python/dev/check-licensing.sh
@@ -26,10 +26,21 @@ download_rat_jar () {
wget --quiet ${URL} -O "$JAR"
}
-SOURCE_PACKAGE=${SOURCE_PACKAGE}
+SOURCE_PACKAGE=${SOURCE_PACKAGE:-}
export RAT_VERSION=0.15
export rat_jar=rat/apache-rat-${RAT_VERSION}.jar
+PACKAGE_DIR=""
+TEMP_DIR=""
+
+cleanup () {
+ rm -rf rat
+ if [ -n "${TEMP_DIR}" ] && [ -d "${TEMP_DIR}" ]; then
+ rm -rf "${TEMP_DIR}"
+ fi
+}
+
+trap cleanup EXIT
if [ -z "${SOURCE_PACKAGE}" ]; then
BASE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
@@ -42,33 +53,46 @@ if [ -z "${SOURCE_PACKAGE}" ]; then
exit 1
fi
- RUN_RAT="java -jar ${rat_jar} -E ${PROJECT_ROOT}/dev/.rat-excludes -d
${PROJECT_ROOT}"
+ RUN_RAT=(
+ java -jar "${rat_jar}"
+ -E "${PROJECT_ROOT}/dev/.rat-excludes"
+ -d "${PROJECT_ROOT}"
+ )
else
EXTENSION='.tar.gz'
# get unzipped directory
- PACKAGE_DIR="${SOURCE_PACKAGE:0:$((${#SOURCE_PACKAGE} - ${#EXTENSION}))}"
- tar -xf ${SOURCE_PACKAGE}
+ PACKAGE_NAME="$(basename "${SOURCE_PACKAGE}" "${EXTENSION}")"
+ TEMP_DIR="$(mktemp -d /tmp/pypaimon-rat.XXXXXX)"
+ PACKAGE_DIR="${TEMP_DIR}/${PACKAGE_NAME}"
+ tar -xf "${SOURCE_PACKAGE}" -C "${TEMP_DIR}"
+ if [ ! -d "${PACKAGE_DIR}" ]; then
+ echo "Source package did not contain ${PACKAGE_NAME}" >&2
+ exit 1
+ fi
- RUN_RAT="java -jar ${rat_jar} -e PKG-INFO -e setup.cfg -e
pypaimon.egg-info/* -d ${PACKAGE_DIR}"
+ RUN_RAT=(
+ java -jar "${rat_jar}"
+ -e '.*PKG-INFO$'
+ -e '.*setup[.]cfg$'
+ -e '.*SOURCES[.]txt$'
+ -e '.*dependency_links[.]txt$'
+ -e '.*entry_points[.]txt$'
+ -e '.*requires[.]txt$'
+ -e '.*top_level[.]txt$'
+ -e '.*[.]jsonl$'
+ -d "${PACKAGE_DIR}"
+ )
fi
mkdir -p rat
download_rat_jar
-$RUN_RAT > rat/rat-results.txt
-
-if [ $? -ne 0 ]; then
+if ! "${RUN_RAT[@]}" > rat/rat-results.txt; then
echo "RAT exited abnormally"
exit 1
fi
-ERRORS="$(cat rat/rat-results.txt | grep -e "??")"
-
-# clean
-rm -rf rat
-if [ -d "$PACKAGE_DIR" ]; then
- rm -rf $PACKAGE_DIR
-fi
+ERRORS="$(grep -e "??" rat/rat-results.txt)"
if [[ -n "${ERRORS}" ]]; then
echo "Could not find Apache license headers in the following files:"