reckart opened a new issue, #464:
URL: https://github.com/apache/uima-uimaj/issues/464

   **Describe the refactoring action**
   Move building of the distribution archives into its own module.
   
   **Expected benefit**
   
   Why:
   - **The root POM's dependency list describes a different artifact than the 
one carrying it.** The `<dependencies>` block (`spring-*`, `slf4j`, 
`procyon-*`, `javaparser-core`, …) does not declare dependencies of the 
aggregator — it declares the *contents of the binary distribution*, present 
only so the assembly can pull them into `lib/`.
   - **The root does two unrelated jobs.** It is both the reactor aggregator 
(`<modules>`, `dependencyManagement`, release/staging profiles) and a build 
target producing the binary distribution archive. The repo root's 
`src/main/{assembly,scripts,properties,readme_src,bin_distr_license_notices}` 
is effectively the distribution's source directory.
   - **It blocks the LICENSE/NOTICE automation (#455).** 
`uimaj-release-tooling` has to be invoked as an `exec-maven-plugin` *plugin 
dependency* on the root, and plugin dependencies resolve from repositories only 
— never from the reactor — so a clean checkout with no prior `mvn install` 
fails. In `uimaj-dist` it can be an ordinary `<dependency>`, which 
`ReactorReader` serves from the reactor. This is why 
`bin_distr_license_notices/` moves as part of this change.
   - **Moving it surfaced three latent release-staging bugs**, all of the same 
kind — an Ant `<copy>` or assembly `fileSet` that matches nothing is a 
*success*, so each failed silently: stale generated inputs (release notes, 
aggregated Javadoc, `api-change-report/`) being packaged from previous builds; 
the RC staging directory mismatch; and the source-release zip not being staged 
for the vote.
   
   Trade-off:
   - `uimaj-dist` consumes two things the root produces — the aggregated 
Javadoc (`aggregate-no-fork` cannot run in a leaf module) and the release notes 
(the root's own source-release assembly needs them too). This requires an 
explicit `<dependency>` on the root purely to force reactor order, plus a 
`check-distribution-inputs` guard so a missing input fails the build rather 
than silently yielding an incomplete archive.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to