apache / apache/tooling-atr-maven-plugin

Emit the project's effective apache-rat excludes as a .rat-excludes file at upload time

Open
#78 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
5
Forks
2
Avg merge
1d 23h
Merged PRs (30d)
8

Description

### Context

When verifying release candidates via ATR, the RAT check runs its own `apache-rat 0.18` with the standard exclude sets but has no knowledge of a project's `apache-rat-plugin` configuration. Files a project deliberately excludes therefore surface as "unknown license" false positives — e.g. on the Maven Resolver Ant Tasks 1.6.1 RC, `src/test/resources/ProjectWorkspaceReader/dummy-file.txt` and `.../ant/Resolve/dependencies.txt` (both covered by the project's `src/test/resources/**/*.txt` exclude; the project's own `apache-rat:check` is green with 0 unknown).

Discussed on dev@tooling: https://lists.apache.org/thread/1ks8dbdxr2smhf5y0odmoybwvg0dbrq8 — Dave Fisher suggested splitting this into two issues (this one + a companion in `tooling-trusted-releases`).

### Proposal

Since `atr:upload` already runs *inside* Maven, it has the effective project model — and thus the effective RAT excludes — available. During upload it could serialize those excludes into a well-known `.rat-excludes` file and upload it alongside the artifacts.

### Notes

* Source of truth: the `apache-rat-plugin` configuration in the effective model (maven-parent defaults + the project's own `` / ``), so profiles and inheritance are resolved correctly — which is exactly what an external pom.xml parse could not do reliably.
* The companion issue (`tooling-trusted-releases`) covers ATR consuming this file (`--input-exclude-file`). Projects that don't upload via the plugin keep today's behaviour.
* Related: apache/tooling-trusted-releases#312 (same idea for the non-RAT licence check), apache/tooling-trusted-releases#1426 (check-result UX).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the atr:upload entry point and trace how the effective Maven project model is available during upload. Review how apache-rat-plugin excludes, excludesFile, profiles, and inherited defaults are represented, then determine how the effective excludes should be serialized and uploaded as .rat-excludes alongside the artifacts. Done means the generated file reflects the effective project configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.