PasBuild v1.5.0 Release - improved output and dependency tree
PasBuild v1.5.0 Release Notes
Date: 2026-03-03
Overview
PasBuild v1.5.0 builds on the multi-module foundation established in
v1.4.0, adding richer build output and a new goal for visualising
project dependencies. Reactor builds now produce Maven-style progress
and summary output, making it easy to track build status across many
modules at a glance. A new dependency-tree goal lets you inspect the
full dependency graph of any project without invoking the compiler.
New Features
Maven-Style Reactor Build Output
Multi-module reactor builds now produce structured, human-readable
output throughout the build process:
- A Reactor Build Order section is printed at the start, listing
all modules in the order they will be built. - Each module build is surrounded by a visual separator showing
the module name and its position in the build sequence
(e.g. [2/3]). - A BUILD SUCCESS or BUILD FAILURE block is printed after each
module completes, together with elapsed time for that module. - A Reactor Summary section is printed at the end of the full
build, with dot-aligned module names, per-module status and
timing, overall BUILD SUCCESS or BUILD FAILURE, and total
elapsed time.
Example (abbreviated):
[INFO] -------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 1. lib-core
[INFO] 2. lib-utils
[INFO] 3. myapp
[INFO] -------------------------------------------------------
[INFO] Building lib-core [1/3]
[INFO] -------------------------------------------------------
...
[INFO] BUILD SUCCESS
[INFO] Total time: 3.4 s
[INFO] -------------------------------------------------------
[INFO] Reactor Summary:
[INFO] lib-core ............ SUCCESS [1.1 s]
[INFO] lib-utils ............ SUCCESS [0.9 s]
[INFO] myapp ............ SUCCESS [1.4 s]
[INFO] -------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] Total time: 3.4 s
dependency-tree Goal
A new 'pasbuild dependency-tree' goal prints the full dependency
graph of a project without invoking the compiler. This is useful
for auditing dependencies and understanding module relationships.
For multi-module (aggregator) projects, all modules are listed in
topological order. Each module shows its local module dependencies
and external repository dependencies. The -m flag restricts output
to a single named module and its dependencies.
For single-module projects, only the external are
shown.
Output uses tree branch characters (|- and _) with descriptive
labels for each node:
[module] -- a local inter-module dependency
[external] -- a dependency from the local repository
[library] -- a library-type module
[application] -- an application-type module
[aggregator] -- a pom-type aggregator module
Example usage:
pasbuild dependency-tree
pasbuild dependency-tree -m myapp
Example output (multi-module project):
myapp [application]
|- lib-core [module] [library]
\_ lib-utils [module] [library]
\_ some-lib:1.0.0 [external]