Skip to content

PasBuild v1.3.0 release - external dependencies

Choose a tag to compare

@graemeg graemeg released this 14 Feb 12:10
· 80 commits to master since this release

Hi everyone,

PasBuild 1.3.0 has been released.

PasBuild now supports cross-project dependency management. Projects can
declare external dependencies in project.xml, install compiled
artifacts to a local repository, and have them automatically resolved
at compile time — including transitive dependencies.

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

Quick Overview

Install a library to the local repository (~/.pasbuild/repository/):

cd my-library
pasbuild install

Declare the dependency in the consumer’s project.xml:

<dependencies>
  <dependency>
    <name>my-library</name>
    <version>1.0.0</version>
  </dependency>
</dependencies>

Compile — dependencies are resolved automatically:

cd my-application
pasbuild compile

Highlights

  • Local repository at ~/.pasbuild/repository/ stores .ppu and .o files
    per name, version, and FPC target triplet (e.g.: x86_64-linux-3.2.2)

  • Transitive resolution — if A depends on B, and you depend on A, both
    are resolved automatically

  • Multi-module support — the reactor installs each module in dependency
    order

  • Metadata tracking — each artifact includes metadata.xml for version
    and target validation

  • Path quoting — compiler arguments now handle paths with spaces

  • Fully backward compatible — projects without work
    exactly as before

A sample project is included under samples/dependency-management/. For
full details, see the Quick Start Guide[1] and the Design Document[2].

Feedback and contributions are welcome on the project’s issue tracker.

Upgrade Instructions

Replace your existing pasbuild binary with the new 1.3.0 build. You can
use your existing pasbuild binary to build the new version. No project
configuration changes are required, as the external dependency
management is 100% optional.

Getting started

Documentation includes:

  • Updated quick-start guide with dependency management examples
  • Sample projects demonstrating simple and complex scenarios
  • Project creation via 'pasbuild init'
  • Full design specification with architecture details

Links

  1. Quick Start Guide:
    https://github.com/graemeg/pasbuild/blob/main/docs/quick-start-guide.adoc
  2. Design Document:
    https://github.com/graemeg/pasbuild/blob/main/docs/dependency-management-design.adoc

PasBuild is free software released under the BSD-3-Clause
license.

Happy Building!