Repository navigation
Build: fix pre-existing CI failures on 1.8.1-affirm-patch (MinIO test image, spotless) - #19
Open
abrarsher23 wants to merge 3 commits into
Open
abrarsher23 wants to merge 3 commits into
abrarsher23 wants to merge 3 commits into
Conversation
No behaviour change: line wrapping/operator placement and two unused imports, as reported by :iceberg-core:spotlessJavaCheck. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MinIO no longer publishes minio/minio or minio/mc to Docker Hub or Quay, so every test that starts a MinIO container fails with 'pull access denied'. Switch the S3 test helper and the kafka-connect integration compose file to cgr.dev/chainguard/minio and cgr.dev/chainguard/minio-client, which ship the same binaries. Upstream replaced MinIO with RustFS instead (apache#18247); that change depends on test refactors this line doesn't have. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- TestExponentialHttpRequestRetryStrategy: single-element annotation array (AnnotationUseStyle COMPACT_NO_ARRAY). - RemoveDanglingDeletesSparkAction: use Lists.newArrayList instead of new ArrayList<> (project RegexpSingleline rule). Same resulting list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
darthburrito
approved these changes
Oct 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Fixes the CI checks that fail on every PR against
1.8.1-affirm-patch. The three commits are formatting, test images andtwo style fixes; nothing changes behaviour.
build-checks:iceberg-core:spotlessJavaCheckflags three files that came in with #1. Once that passes, checkstyle finds two more pre-existing violations.spotlessApplyon them, then fix the two checkstyle issuescore-testsiceberg-awscan't start their MinIO container:pull access denied for minio/miniokafka-connect-testsdocker-compose.ymlpullsminio/minioandminio/mcCommit 1: formatting (
Core: apply spotless formatting to REST retry strategy files)./gradlew :iceberg-core:spotlessApplychanges exactly the three files the check reports:ExponentialHttpRequestRetryStrategy.java,TestExponentialHttpRequestRetryStrategy.javaandTestRESTCatalog.java.The changes are line wrapping, operator placement and two unused imports; with whitespace ignored the diff is 9 lines
added / 13 removed, and no logic changes.
TestExponentialHttpRequestRetryStrategypasses locally (29/29).Commit 2: MinIO test image (
Build: use Chainguard's MinIO images in tests)MinIO has stopped publishing
minio/minioandminio/mc. Docker Hub now denies the pull, and Quay (which the 1.11 lineswitched to in #11) now returns 401 for the same repository, so porting #11 would not fix this line.
aws/src/test/.../MinioUtil.java: the container image becomescgr.dev/chainguard/minio:latest, marked as a compatiblesubstitute for
minio/minioso Testcontainers'MinIOContainerstill accepts it. The image's entrypoint is theminiobinary itself, so
MinIOContainer'sserver /datacommand works unchanged.kafka-connect/.../docker-compose.yml:minio/minio→cgr.dev/chainguard/minio:latest,minio/mc→cgr.dev/chainguard/minio-client:latest. The compose commands (server /data …,mc mb /data/bucket) are unchanged.Upstream solved the same problem differently, by replacing MinIO with RustFS
(apache/iceberg#18247). That change sits on top of test refactors this
line doesn't have (the MinIO helper moved to
aws/src/integrationand was renamed), so cherry-picking it conflicts inabout 20 files. Swapping the image is the smallest change that works here.
Commit 3: checkstyle (
Fix checkstyle violations found once spotless passes)On the base branch the build always stopped at spotless, so checkstyle never ran. With spotless fixed it reports two
violations, both already on the base branch:
TestExponentialHttpRequestRetryStrategy.java:@ValueSource(ints = {429})→@ValueSource(ints = 429)(single-element annotation arrays must be written without braces).
RemoveDanglingDeletesSparkAction.java:new ArrayList<>(danglingDeletes)→Lists.newArrayList(danglingDeletes)(the project bans
new ArrayList<>in favour of Guava'sLists). It builds the same list.How it was checked
:iceberg-core:spotlessJavaCheckpasses;:iceberg-aws:spotlessJavaCheckand:iceberg-aws:compileTestJavapass.server /data, with and without anamed volume), the MinIO server comes up and listens on
:9000.Docker 29): all six MinIO-backed classes pass against the Chainguard image (
TestMinioUtil,TestS3FileIO,TestS3InputStream,TestS3OutputStream,TestFlakyS3InputStream,TestS3RestSigner: 49 tests, 0 failures), andthe whole
org.apache.iceberg.aws.s3package passes (101 tests, 0 failures)../gradlew -DallModules build -x test -x javadoc -x integrationTest) passes on the same host.TestRemoveDanglingDeleteAction(Spark 3.5) passes after theLists.newArrayListchange: 10 tests, 0 failures.build-checks,core-testsandkafka-connect-testspass on JDK 11, 17 and 21.Worth knowing
latestis the only tag Chainguard publishes for free, so these tests will pick up new MinIO releases as they come out.That's the same behaviour as the previous
minio/minio:latest.