An open-source dependency manager for Delphi and Lazarus projects, inspired by npm.
Boss is an open-source dependency manager for Delphi and Lazarus projects, inspired by npm. It helps developers manage external libraries, control compiler versions, and automate build tasks through a simple command-line interface and a project manifest file. It solves the problem of manual dependency handling in the Object Pascal ecosystem.
Delphi and Lazarus developers who need to manage external libraries, control project toolchains, and automate build processes in their Object Pascal projects.
Developers choose Boss because it brings modern, npm-like dependency management to the Delphi/Lazarus world, offering semantic versioning, script automation, and flexible toolchain configuration that native IDE tools lack.
Dependency Manager for Delphi and Lazarus
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Boss introduces npm-like semantics with semantic versioning support, allowing version constraints like ^ and ~ in boss.json, and fetches packages from GitHub or GitLab.
Configures compiler versions and platforms per project via the toolchain section in boss.json, ensuring consistent builds across teams, as shown with commands like `boss config delphi use`.
Supports custom scripts for build, test, and clean tasks in boss.json, enabling automation with the `boss run` command, similar to npm scripts.
Offers embedded or native Git clients with optional shallow cloning to speed up dependency downloads, configurable via `boss config git shallow true`.
Requires Git for fetching packages, and shallow cloning, while faster, disables access to full repository history, which might break workflows needing past commits or tags.
Lacks a curated package repository, making dependency discovery harder compared to tools like npm; users must rely on Git URLs or community knowledge.
Primarily command-line based, which can be a barrier for Delphi developers accustomed to visual IDE tools, despite the optional IDE complement mentioned in the README.