Recent

Author Topic: PasBuild v1.1.0 Released - Multi-Module Build Support  (Read 373 times)

Graeme

  • Hero Member
  • *****
  • Posts: 1459
    • Graeme on the web
PasBuild v1.1.0 Released - Multi-Module Build Support
« on: December 19, 2025, 05:52:11 pm »

PASBUILD v1.1.0 IS NOW AVAILABLE

GitHub: https://github.com/graemeg/PasBuild                                                                                                                                 
                                                                                                                                                                 
I am pleased to announce the release of PasBuild v1.1.0, featuring
comprehensive multi-module build support for organizing related
projects within a single build tree.
                                                                                                                                                                 

Multi-module build support                                                                                                                                     
                                                                                                                                                                 
The major feature in this release enables you to structure complex
projects as a collection of coordinated modules:                                             
                                                                                                                                                                 
- Aggregator projects that declare and coordinate child modules                                                                                                 
- Three packaging types: 'pom' (aggregator), 'library' (shared code),
  and 'application' (executables)                                                           
- Automatic dependency-based build ordering with cycle detection                                                                                                 
- Simplified module references that replace brittle relative path
  hacks                                                                                         
- Automatic bootstrap program generation for library modules                                                                                                     
                                                                                                                                                                 

What this solves                                                                                                                                               
                                                                                                                                                                 
Previously, building related projects required manual orchestration.
With v1.1.0:                                                                               
                                                                                                                                                                 
- No more manual build ordering - the system handles it automatically                                                                                           
- No more hardcoding relative paths to framework artifacts in your
  projects                                                                                     
- No more separate repositories for buildable units that should be
  coordinated                                                                                   
- Missing or circular dependencies are caught at configuration time,
  not compile time                                                                           
                                                                                                                                                                 

Common use cases                                                                                                                                               
                                                                                                                                                                 
Multi-module support excels for:                                                                                                                                 
                                                                                                                                                                 
- Framework + Example Applications: Build a GUI toolkit and its demos
  together                                                                                   
- Shared Libraries + Applications: Create common utilities used by
  multiple executables                                                                         
- Layered Frameworks: Foundation → Graphics → Widgets → Applications                                                                                             
- Plugin Architectures: Core application with separately-built
  extension modules                                                                                 
                                                                                                                                                                 

Single command builds                                                                                                                                         
                                                                                                                                                                 
Run a single pasbuild compile command from your aggregator root
directory, and the system:                                                                       
                                                                                                                                                                 
1. Discovers all modules                                                                                                                                         
2. Calculates correct build order from your declared dependencies                                                                                               
3. Builds each module in sequence                                                                                                                               
4. Stops on first failure with clear error messages                                                                                                             
                                                                                                                                                                 
Build only a specific module and its dependencies using the -m flag,
or run from a child module directory for selective builds.                                 
                                                                                                                                                                 

Migration path                                                                                                                                                 
                                                                                                                                                                 
Existing single-project builds are completely unchanged. Multi-module
is opt-in. If you have related projects today, you can migrate at your
own pace using the new project structure and packaging types.
                                                                                                                                                                 

Getting started                                                                                                                                               
                                                                                                                                                                 
Documentation includes:                                                                                                                                         
                                                                                                                                                                 
- Updated quick-start guide with multi-module examples                                                                                                           
- Sample projects demonstrating simple and complex scenarios                                                                                                     
- Multi-module project creation via 'pasbuild init'                                                                                                             
- Full design specification with architecture details                                                                                                           
                                                                                                                                                                 
The pasbuild init command now guides you through creating either
single-project or multi-module structures.                                                     
                                                                                                                                                                 

Testing and stability                                                                                                                                         
                                                                                                                                                                 
The multi-module implementation underwent a structured and phased
development with comprehensive testing at each stage, covering module
discovery, dependency resolution, build ordering, and error handling.


Download PasBuild v1.1.0 and start organising your related projects as
a unified build system.                                                                                                                                                               

Your feedback and contributions are welcome! Please kindly use the
GitHub Issue Tracker. More features to come soon. :)


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

 

TinyPortal © 2005-2018