Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/release-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ permissions:

jobs:
build-artifacts:
name: build-artifacts
name: "Release Validation / build-artifacts"
runs-on: ubuntu-latest
timeout-minutes: 20
outputs:
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:
retention-days: 14

install-and-smoke:
name: install-and-smoke
name: "Release Validation / install-and-smoke"
needs: build-artifacts
runs-on: ubuntu-latest
timeout-minutes: 10
Expand Down
11 changes: 10 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,17 @@ repos:
rev: v4.5.0
hooks:
- id: trailing-whitespace
# ensures files are either empty or end with a blank line
# burr/examples is a symlink. trailing-whitespace would mangle the
# link target text (treating "../examples" as a "trailing whitespace"
# situation) and break the symlink.
exclude: '^burr/examples$'
# ensures files are either empty or end with a blank line.
# NOTE: burr/examples is excluded — end-of-file-fixer will append "\n"
# to the symlink target turning "../examples" into "../examples\n",
# which makes the symlink unresolvable on strict consumers (Apache RAT
# and several Linux tarball extractors). See PR #748.
- id: end-of-file-fixer
exclude: '^burr/examples$'
# sorts requirements
- id: requirements-txt-fixer
# valid python file
Expand Down
2 changes: 1 addition & 1 deletion burr/examples
10 changes: 9 additions & 1 deletion scripts/verify_apache_artifacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,15 @@ def _check_licenses_with_rat(
)

if result.returncode != 0:
print(f" ⚠️ RAT exited with code {result.returncode}")
# A nonzero exit means RAT crashed mid-scan (e.g. on a broken
# symlink). The XML report it produced will be truncated and
# parsing it gives a falsely clean result, so fail hard here.
print(f" ✗ RAT exited with code {result.returncode}")
if result.stderr:
print(" --- RAT stderr ---")
for line in result.stderr.splitlines()[-25:]:
print(f" {line}")
return False

print(f" ✓ RAT XML report: {rat_report_xml}")
except Exception as e:
Expand Down
Loading