Skip to content

fix(license): list zmij in fory-json jar LICENSE; per-module Scala NOTICE - #4130

Merged
chaokunyang merged 2 commits into
apache:mainfrom
pjfanning:fix/jar-license-notice
Oct 6, 2026
Merged

chaokunyang merged 2 commits into
apache:mainfrom
pjfanning:fix/jar-license-notice

Conversation

@pjfanning

Copy link
Copy Markdown
Member

Why?

Two convenience-binary licensing problems found in the 1.7.7-rc1 Nexus staging jars. See #4129 for the full analysis.

What does this PR do?

  • fory-json jar LICENSE. FloatingDecimal is adapted from zmij (MIT). The jar already ships META-INF/licenses/LICENSE-zmij.txt, but java/fory-json/src/main/resources/META-INF/LICENSE (which becomes the jar's META-INF/LICENSE) had no MIT section. This PR adds the zmij entry, in the same format the fory-core jar LICENSE uses for Kryo.

  • Scala jar NOTICE. scala/build.sbt set apacheSonatypeNoticeFile to the root source NOTICE for every module, so the fory-scala and fory-json-scala jars listed Spark, Commons IO, Commons Lang, dataclasses and gRPC, none of which they contain. This PR:

    • adds scala/fory-scala/NOTICE and scala/fory-json-scala/NOTICE, matching the per-module LICENSE files that are already there;
    • points each module's apacheSonatypeNoticeFile at its own NOTICE.

    fory-json-scala's only third-party-derived code is based on jackson-module-scala, which has no NOTICE file, so the plain Apache Fory notice is correct for both modules. The unpublished root aggregate project keeps its own setting.

Verification:

  • The staged 1.7.7-rc1 jars use exactly these files:
    • the fory-json-1.7.7.jar META-INF/LICENSE is byte-identical to the resource at v1.7.7-rc1;
    • the fory-scala_3-1.7.7.jar META-INF/NOTICE is byte-identical to the root NOTICE.
  • sbt "show fory-scala/apacheSonatypeNoticeFile" "show fory-json-scala/apacheSonatypeNoticeFile" resolves to the new per-module files.
  • sbt fory-scala/Compile/packageBin fory-json-scala/Compile/packageBin fory-scala/Compile/packageSrc succeeds, and the built jars contain the new module NOTICE.

Related issues

Does this PR introduce any user-facing change?

  • Does this PR introduce any public API change?
  • Does this PR introduce any binary protocol compatibility change?

🤖 Generated with Claude Code

…TICE

- fory-json ships FloatingDecimal (adapted from zmij, MIT) and
  META-INF/licenses/LICENSE-zmij.txt, but its META-INF/LICENSE had no MIT
  section. Add the zmij entry.
- fory-scala and fory-json-scala jars shipped the root source NOTICE,
  which lists Spark, Commons IO, Commons Lang, dataclasses and gRPC, none
  of which these jars contain. Give each module its own NOTICE, matching
  the per-module LICENSE files.

Fixes apache#4129

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pjfanning
pjfanning requested a review from chaokunyang as a code owner October 6, 2026 11:10
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@chaokunyang chaokunyang left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@chaokunyang
chaokunyang merged commit d64cc8e into apache:main Oct 6, 2026
70 checks passed
@pjfanning
pjfanning deleted the fix/jar-license-notice branch October 6, 2026 14:47
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.

[License] fory-json jar LICENSE misses zmij; Scala jars ship the root NOTICE

2 participants