Skip to content

[pull] main from apache:main#167

Merged
pull[bot] merged 1 commit into
sudoevans:mainfrom
apache:main
Apr 26, 2026
Merged

[pull] main from apache:main#167
pull[bot] merged 1 commit into
sudoevans:mainfrom
apache:main

Conversation

@pull

@pull pull Bot commented Apr 26, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

* fix: remove stray newline from burr/examples symlink target

The burr/examples symlink was committed with target '../examples\n'
(12 bytes) instead of '../examples' (11 bytes). Most tools tolerate
the trailing newline, but stricter consumers (Java's FileReader via
Apache RAT, some Linux extractors of the source tarball) treat
'../examples\n' as a literal nonexistent target and fail.

Manifested in CI as a RAT crash on the source tarball produced by
git-archive: the symlink in the tarball points to '../examples\n',
which doesn't resolve, and RAT raises FileNotFoundException trying
to read it as a file.

Recreate the symlink via 'rm burr/examples && ln -s ../examples
burr/examples' to write the correct 11-byte target.

* fix: fail license verification when Apache RAT exits non-zero

Previously, if RAT crashed partway through scanning (e.g. on the
broken burr/examples symlink that motivated this PR), the verify
script would print a warning, parse the truncated XML report, find
zero unapproved licenses in whatever RAT managed to scan before the
crash, and report success.

That false green is what hid the symlink corruption when PR #745
merged into main, even though our release-validation workflow
technically ran on main. The CI run scanned 14 files (out of ~700),
saw RAT exit code 1, swallowed it, and called the build green.

Treat any nonzero exit from RAT as a hard failure of license
verification. Print the last 25 lines of RAT stderr so the next
debug session has the trace immediately.

* fix: exclude burr/examples symlink from end-of-file-fixer pre-commit hook

end-of-file-fixer mistreats the symlink as a regular text file and
appends '\n' to the link target, turning '../examples' (11 bytes) into
'../examples\n' (12 bytes). Strict consumers (Apache RAT, Linux tar
extractors) then fail to resolve the symlink. This is exactly the bug
that motivated PR #748 — without this exclude, the next pre-commit run
on a maintainer's machine would silently re-corrupt the symlink.

Also exclude trailing-whitespace defensively for the same reason.
@pull pull Bot locked and limited conversation to collaborators Apr 26, 2026
@pull pull Bot added the ⤵️ pull label Apr 26, 2026
@pull
pull Bot merged commit b707b1d into sudoevans:main Apr 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant