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 organising 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/ _______________________________________________ fpc-pascal maillist - [email protected] https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
