Recent

Author Topic: [ANN] PasBuild 1.5.0 release  (Read 2149 times)

Graeme

  • Hero Member
  • *****
  • Posts: 1518
    • Graeme on the web
[ANN] PasBuild 1.5.0 release
« on: March 03, 2026, 07:59:40 pm »
PasBuild v1.5.0 Release Notes
==============================
Date: 2026-03-03

Homepage:
  https://github.com/graemeg/pasbuild

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 <dependencies> 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]

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

cdbc

  • Hero Member
  • *****
  • Posts: 2728
    • http://www.cdbc.dk
Re: [ANN] PasBuild 1.5.0 release
« Reply #1 on: March 03, 2026, 08:14:10 pm »
Hi Graeme
COOL!  8-)
Will be pulling shortly  :D
Thanks mate
Regards Benny

eta: "Same procedure as last year - Miss Sophie?!?" i.e.: Just build with its older sibling?
eta2: [INFO] Built with PasBuild 1.3.0, without a hitch - Well Done!
« Last Edit: March 03, 2026, 08:38:11 pm by cdbc »
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1225
Re: [ANN] PasBuild 1.5.0 release
« Reply #2 on: March 07, 2026, 03:25:14 am »
Just out of curiosity.

Have both of you ever used or tried LazBuild?

What were or are your impressions about LazBuild?

cdbc

  • Hero Member
  • *****
  • Posts: 2728
    • http://www.cdbc.dk
Re: [ANN] PasBuild 1.5.0 release
« Reply #3 on: March 07, 2026, 05:10:09 am »
Hi
Graeme is its author and uses it himself, that's why he wrote it... So I've read.
I myself tried it out and am now using it together with Fpc/Lazarus on a daily basis. I guess my thinking circles are akin to Graeme's, because PasBuild feels intuitive and natural to me, plus it has the features I'd wish for, if they weren't  already there...  ;D
The learning curve is rather flat, compared to say 'make' - 'ninja' etc...
...And it's a perfect fit, when you (like me) are trying to move your GUI-work to 'fpGUI'  :D
Me Likey  8-)
Regards Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE6/QT6 -> FPC Release -> Lazarus Release &  FPC Main -> Lazarus Main

Graeme

  • Hero Member
  • *****
  • Posts: 1518
    • Graeme on the web
Re: [ANN] PasBuild 1.5.0 release
« Reply #4 on: March 11, 2026, 02:26:47 pm »
Have both of you ever used or tried LazBuild?

Last time I checked it requires Lazarus and Lazarus project files. It also doesn't define or suggest a project structure - which I've learnt from Java is incredibly useful when work or using many closed or open-source projects.

PasBuild is a Maven-inspired build automation tool for Free Pascal projects. I took my Java learnings and applied it to Free Pascal based projects. PasBuild provides convention-based project structure, dependency management, multi-module builds, resource filtering, and packaging. It has no other dependencies other that FPC, and doesn't force you to use any specific development tool (IDE).

LazBuild does very little of any of that.
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

Graeme

  • Hero Member
  • *****
  • Posts: 1518
    • Graeme on the web
Re: [ANN] PasBuild 1.5.0 release
« Reply #5 on: March 11, 2026, 02:30:32 pm »
PasBuild feels intuitive and natural to me, plus it has the features I'd wish for, if they weren't  already there...  ;D
The learning curve is rather flat, compared to say 'make' - 'ninja' etc...

Thank you Benny, it is so good to read that. It means I've achieved the initial goals I wanted with PasBuild. Intuitive and easy to learn, and a huge time saver (intuitive project layout, quick builds, auto-discovery of paths, injects version info if needed, quick packaging (source or binaries) etc).
« Last Edit: March 11, 2026, 02:36:09 pm by Graeme »
--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1225
Re: [ANN] PasBuild 1.5.0 release
« Reply #6 on: March 12, 2026, 06:19:54 pm »
Have both of you ever used or tried LazBuild?
Last time I checked it requires Lazarus and Lazarus project files. It also doesn't define or suggest a project structure - which I've learnt from Java is incredibly useful when work or using many closed or open-source projects.

PasBuild is a Maven-inspired build automation tool for Free Pascal projects. I took my Java learnings and applied it to Free Pascal based projects. PasBuild provides convention-based project structure, dependency management, multi-module builds, resource filtering, and packaging. It has no other dependencies other that FPC, and doesn't force you to use any specific development tool (IDE).

LazBuild does very little of any of that.
Thanks.

 

TinyPortal © 2005-2018