Skip to content

[build] Include legal files in Fluss server image - #4427

Open
wuchong wants to merge 2 commits into
apache:mainfrom
wuchong:codex/fix-docker-license-files
Open

wuchong wants to merge 2 commits into
apache:mainfrom
wuchong:codex/fix-docker-license-files

Conversation

@wuchong

@wuchong wuchong commented Sep 18, 2026

Copy link
Copy Markdown
Member

Purpose

Linked issue: close #4426

The Fluss server Docker image is built from build-target. A later mvn clean deploy in the release process regenerates that directory, but the binary assembly did not include LICENSE or NOTICE. As a result, the published server image omitted both files.

Brief change log

  • Add LICENSE-bin and NOTICE-bin to the binary assembly as LICENSE and NOTICE.
  • Remove the release script's post-package copy, so the assembly is the single source of truth.
  • Compare the generated legal files byte-for-byte in CI and smoke-test their presence in the server image.
  • Include the legal files in the workflow trigger and image cache key.
  • Document the same content checks in the release guide.

Tests

  • ./mvnw -B --no-transfer-progress clean package -pl fluss-dist -am -DskipTests
  • ./mvnw -B --no-transfer-progress test -pl fluss-dist -am -Dtest=DistShellScriptTest -Dsurefire.failIfNoSpecifiedTests=false -DskipITs
  • cmp LICENSE-bin build-target/LICENSE
  • cmp NOTICE-bin build-target/NOTICE
  • Verified the generated tar contains fluss-1.1-SNAPSHOT/LICENSE and fluss-1.1-SNAPSHOT/NOTICE.
  • Built an offline verification image from the locally cached RC3 base and verified both container files and their SHA-256 hashes. The direct Dockerfile build could not refresh the base image because the local Docker registry mirror returned EOF; CI will exercise the normal build.
  • bash -n tools/releasing/create_binary_release.sh
  • Parsed .github/workflows/client-integration.yml as YAML.

API and Format

No API or storage format changes.

Documentation

The release guide now requires byte-for-byte comparison of the generated legal files before building the server image.

Add LICENSE-bin and NOTICE-bin to the binary assembly so clean Maven builds and downstream Docker images retain the required legal files. Verify their contents and presence in CI, and document the release check.\n\nFixes apache#4426\n\nCo-Authored-By: Codex <noreply@openai.com>\nAI-Model: gpt-5\nAI-Contributed/Feature: 35/35\nAI-Contributed/UT: 0/0
AI-Contributed/Feature: 35/35
AI-Contributed/UT: 0/0
Separate the comparison from the image build, document its purpose and expected success output, and require release managers to stop and rebuild or roll the RC when verification fails.\n\nCo-Authored-By: Codex <noreply@openai.com>\nAI-Model: gpt-5\nAI-Contributed/Feature: 36/36\nAI-Contributed/UT: 0/0
AI-Contributed/Feature: 36/36
AI-Contributed/UT: 0/0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[docker] Include LICENSE and NOTICE in the Fluss server image

1 participant