Repository navigation
Issue #464: Move building of the distribution archives into its own module - #465
Merged
reckart merged 4 commits intoOct 5, 2026
Conversation
…odule - Move the binary distribution build out of the root aggregator into a new `uimaj-dist` module, relocating the assembly descriptor, launch scripts, logger properties, readme helper scripts and binary-distribution LICENSE/NOTICE files along with the bundled-artifact dependency list that defines the archive contents - Restore the `maven-deploy-plugin` skip explicitly on the root, which was previously inherited from the parent-pom `build distribution` profile that activates on the presence of `src/main/assembly/bin.xml` - Declare `jVinci`, `jackson-core` and `commons-lang3` as direct dependencies of the distribution instead of relying on them arriving transitively, so the shipped `lib/` no longer depends on another module's dependency graph - Drop the log4j bindings from the distribution and document that it ships exactly one slf4j binding, since a second binding on the launcher classpath would silently disable the bundled logger configuration - Force the root aggregator to build before `uimaj-dist` via an explicit dependency, as the aggregated Javadoc and generated release notes can only be produced on the root but are consumed by the binary assembly - Add a `check-distribution-inputs` guard that fails release builds fast when the aggregated Javadoc or release notes are missing, rather than silently producing an archive with empty sections - Move all RC auto-staging into `uimaj-dist` by relocating the `marker-file-enabling-auto-staging` marker, so the staging timestamp and candidate id are generated and consumed in one module and the binary distribution, source release and Eclipse update site all land in a single correctly named staging folder - Stage the source-release archive alongside the binary distribution, which was no longer being picked up after the move because the two archives now live in separate target directories - Assert that both archives are present in the staging folder, as Ant treats a fileset matching nothing as success and would otherwise publish an incomplete release candidate - Override the staging folder name and SCM commit message so the release candidate is named after the product rather than the new module's artifact id - Fix an `unless:set="iisApacheRelease"` typo that prevented the non-release-build staging message from ever being emitted - Add `.mvn/maven.config` forcing the depth-first dependency collector, working around a thread-safety bug in the p2 layout resolver extension under Maven 4 - Exclude a gitignored `scratch/` directory from RAT checks and from the source-release assembly, as that assembly packages the working directory rather than the git index - Update the release and Eclipse setup documentation for the relocated paths, and correct the stale project name in the Eclipse launch configuration for the source-packaging script
…odule - Add explicit reactor-ordering dependencies so the distribution archives are built after everything they package. The root POM now depends on all modules with Java sources (provided scope, for the aggregated Javadoc), and uimaj-dist depends on uimaj-documentation and, in the apache-release profile, on uimaj-eclipse-update-site - Use pom-type dependencies with wildcard exclusions so the ordering edges don't leak into the lib/ contents of the binary distribution - Add a pre-flight check in uimaj-dist that fails fast if the generated documentation is missing, and another in the release staging step that fails if the Eclipse update site is missing, before anything is copied - Remove the `docs` profile (skipDocs switch) from uimaj-documentation so the asciidoctor executions are part of the regular build, and re-indent the POM accordingly - Remove the obsolete marker-file-rc-auto-staging-module rat exclusion from the root POM - Raise the minimum Maven version to 3.9.3 and update the build requirements in the README and the maintainer documentation (Java 21, Maven 3.9.3); drop the outdated MAVEN_OPTS/MaxPermSize advice
…odule - tycho 5.0.3 -> 5.0.4
…odule - Exclude the generated DEPENDENCIES file from the source distribution assembly, since dependencies are declared by uimaj-dist and the file would only contain an empty header
reckart
deleted the
refactoring/464-Move-building-of-the-distribution-archives-into-its-own-module
branch
October 5, 2026 13:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's in the PR
uimaj-distmodule, relocating the assembly descriptor, launch scripts, logger properties, readme helper scripts and binary-distribution LICENSE/NOTICE files along with the bundled-artifact dependency list that defines the archive contentsmaven-deploy-pluginskip explicitly on the root, which was previously inherited from the parent-pombuild distributionprofile that activates on the presence ofsrc/main/assembly/bin.xmljVinci,jackson-coreandcommons-lang3as direct dependencies of the distribution instead of relying on them arriving transitively, so the shippedlib/no longer depends on another module's dependency graphuimaj-distvia an explicit dependency, as the aggregated Javadoc and generated release notes can only be produced on the root but are consumed by the binary assemblycheck-distribution-inputsguard that fails release builds fast when the aggregated Javadoc or release notes are missing, rather than silently producing an archive with empty sectionsuimaj-distby relocating themarker-file-enabling-auto-stagingmarker, so the staging timestamp and candidate id are generated and consumed in one module and the binary distribution, source release and Eclipse update site all land in a single correctly named staging folderunless:set="iisApacheRelease"typo that prevented the non-release-build staging message from ever being emitted.mvn/maven.configforcing the depth-first dependency collector, working around a thread-safety bug in the p2 layout resolver extension under Maven 4scratch/directory from RAT checks and from the source-release assembly, as that assembly packages the working directory rather than the git indexHow to test manually
Automatic testing
Documentation
Organizational
Only dependencies under approved licenses are allowed. LICENSE and NOTICE files in the respective modules where dependencies have been added as well as in the project root have been updated.