Skip to content

Fix license headers and RAT exclusions for ATR's checks - #9263

Merged
reiabreu merged 3 commits into
apache:masterfrom
reiabreu:fix-license-headers-for-atr
Nov 8, 2026
Merged

reiabreu merged 3 commits into
apache:masterfrom
reiabreu:fix-license-headers-for-atr

Conversation

@reiabreu

@reiabreu reiabreu commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

The ATR checks on the 3.2.0 candidate flagged license headers and RAT results. This PR fixes both in the source tree. Only comments and one new file change.

1. License headers (ATR matches the ASF header word for word, which is stricter than RAT). 264 of 266 flagged files:

  • 169 files: a javadoc <p> or <p/> line inside the header. Those lines now read *. Wrapping and wording are unchanged.
  • 94 files: the standard Apache-2.0 boilerplate, with or without a Copyright <year> The Apache Software Foundation. line. They now use the ASF template, as in storm-checkstyle/.../normalize-license-headers.groovy. 15 of them (dev-tools scripts) had no copyright line at all.
  • 1 file: a typo, ee the NOTICE file, in LocalFsBlobStoreSynchronizer.java.
  • Not changed: the two MIT-licensed cJSON.c and cJSON.h files. They keep their own header.

2. RAT (new .rat-excludes). ATR runs RAT with its own defaults. It reads exclusions only from a .rat-excludes file at the top of the archive, from the project's ATR settings, or from a URL, not from pom.xml. So docs, READMEs and licenses/** were reported as unknown or unapproved. The new file lists the same patterns as the rat profile in pom.xml, plus RELEASE and **/public/dist/** for the binary distribution. It carries the ASF header as # comments.

Verified:

  • A local replica of ATR's header check reports 266 failing files before and 2 (cJSON) after. The 266 matches ATR's count for the source archive.
  • In all 264 header-edited files, nothing after the leading comment differs.
  • RAT on the extracted 3.2.0 source archive, run without pom.xml config like ATR does: 171 flagged before, 0 with .rat-excludes. On the binary tarball: 40 before, 0 after, when the file sits at its root.
  • mvn validate -P externals,examples,rat: 0 Checkstyle violations in 37 modules. Storm's own RAT passes with the new file.

Limits:

  • This does not change the 3.2.0 candidate, which is built from the v3.2.0 tag.
  • The source archive should pick up .rat-excludes (the 3.2.0 archive already holds other root dotfiles), but I could not build the archive offline to confirm.
  • The binary distribution does not contain the file. For it, put the same patterns in ATR's "RAT source excludes" setting.

🤖 Generated with Claude Code

reiabreu and others added 2 commits November 7, 2026 22:56
ATR matches the ASF license header word for word, which is stricter than RAT.
264 files failed it for three reasons:

- 169 files have a javadoc '<p>' or '<p/>' line inside the header. Those lines
  now read ' *'. Wrapping and wording are untouched.
- 94 files carry the standard Apache-2.0 boilerplate, with or without a
  'Copyright <year> The Apache Software Foundation.' line. They now use the ASF
  template, as in storm-checkstyle's normalize-license-headers.groovy.
- 1 file has a typo ('ee the NOTICE file').

Only the leading comment changes. The two MIT-licensed cJSON files keep their
own header.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
ATR runs Apache RAT on the release archives with its own defaults and reads
exclusions only from a .rat-excludes file at the top of the archive, from the
project's ATR settings, or from a URL. It does not read the apache-rat-plugin
configuration in pom.xml, so docs, READMEs and the third-party license texts in
licenses/ were reported as unknown or unapproved.

The new file lists the same patterns as the rat profile of pom.xml, plus RELEASE
and the generated public/dist assets of the binary distribution. It carries the
ASF license header as '#' comments, so RAT accepts it without an exclusion.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@reiabreu reiabreu changed the title Fix license headers that ATR's header check rejects Fix license headers and RAT exclusions for ATR's checks Nov 7, 2026
@reiabreu reiabreu added this to the 3.3.0 milestone Nov 7, 2026
Keeps .rat-excludes in sync with pom.xml for the ATR vote email template added
in the RELEASING.md pull request.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@reiabreu
reiabreu merged commit 26aedff into apache:master Nov 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants