You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Remove duplicate LICENSE and NOTICE files from benchmark JARs #3695
These local JMH artifacts are not published, so releases are unaffected. Update their shade configuration to retain only the intended META-INF/LICENSE and META-INF/NOTICE, while preserving required attribution in those canonical files.
The shaded benchmark uber-JARs contain multiple LICENSE/NOTICE variants:
parquet-benchmarks.jar
parquet-plugins-benchmarks.jar
Reproduction
# Build all default and vector-plugin JARs without running tests.
./mvnw --batch-mode -Pvector-plugins -DskipTests clean package
# Check all final JARs; exclude only Maven Shade backup artifacts.
(
failed=0
while IFS= read -r -d '' jar;do
licenses=$(jar tf "$jar"| grep -Eic '(^|/)LICENSE([._-].*)?$'|| true)
notices=$(jar tf "$jar"| grep -Eic '(^|/)NOTICE([._-].*)?$'|| true)if [ "$licenses"-eq 1 ] && [ "$notices"-eq 1 ];thenecho"PASS: $jar"elseecho"FAIL: $jar (LICENSE=$licenses, NOTICE=$notices)"
jar tf "$jar"| grep -Ei '(^|/)(LICENSE|NOTICE)([._-].*)?$'
failed=1
fidone<<(# original-* JARs are temporary backups created by Maven Shade. find . -type f -path '*/target/*.jar' \! -name 'original-*.jar' \ -print0 | sort -z)exit"$failed"
)
Hi @kevinjqliu, I'm interested in taking this. I reproduced the duplicate entries and have a possible fix working locally.
I noticed that jmh-core includes a root LICENSE, and hadoop-shaded-protobuf includes additional files under META-INF/licenses-binary/ and META-INF/NOTICE-binary. Should these be combined into module-specific META-INF/LICENSE and META-INF/NOTICE files, similar to the linked Iceberg fix? Simply filtering them out would remove some of the attribution.
Activity
zhangxinyao88 commentedon Sep 1, 2026
Hi @kevinjqliu, I'm interested in taking this. I reproduced the duplicate entries and have a possible fix working locally.
I noticed that
jmh-coreincludes a rootLICENSE, andhadoop-shaded-protobufincludes additional files underMETA-INF/licenses-binary/andMETA-INF/NOTICE-binary. Should these be combined into module-specificMETA-INF/LICENSEandMETA-INF/NOTICEfiles, similar to the linked Iceberg fix? Simply filtering them out would remove some of the attribution.I wanted to check before going further.