2 min read

Boss brings npm-style packages to Delphi

Boss is an open source dependency manager for Delphi and Lazarus, with npm-like commands, semantic versioning, and toolchain controls.

Image: Hacker News

Boss is an open source dependency manager for Delphi and Lazarus, explicitly inspired by npm. The project aims to give Pascal developers a familiar package workflow, centered on a boss.json manifest, CLI-based installs, version constraints, and reusable scripts.

Setup is straightforward: download the latest version, extract it, add the folder to the system path, and run boss in a terminal. An optional Boss Delphi IDE complement is also available.

The command set mirrors modern package managers closely. Core commands include:

  • boss init to create a new project and generate boss.json
  • boss install and boss uninstall to add or remove dependencies
  • boss update to fetch the latest compatible versions
  • boss upgrade to update the CLI itself
  • boss dependencies to inspect dependency trees
  • boss run to execute custom scripts defined in boss.json

Boss also supports repository authentication through boss login and boss logout, plus global installs, debug output, and built-in help flags.

Recommended reading

Cracking Face and Pickle Emojis Arrive in Unicode 18

A notable feature is its handling of toolchains. Developers can pin a specific compiler and platform in boss.json, including 37.0, Win32, and Win64, and optionally require an exact match with strict mode. The CLI can also detect installed Delphi versions and switch between them with boss config delphi use.

On the Git side, Boss offers an embedded mode using go-git and a native mode using the system git.exe. It also supports shallow clone, which the project says can cut downloads dramatically — for example, from 127 MB to <1 MB for large repositories. Shallow clone is disabled by default for compatibility.

Versioning follows familiar semantic versioning patterns, including ^1.0.0, ~1.0.0, 1.0.x, and wildcard formats such as \* or x. The manifest can also define project metadata, source paths, build targets, engine requirements, and scripts like build, test, clean, and deploy.

Tomas Berg

Computing Editor

Tomas lives in the terminal. He covers chips, laptops, and operating systems with a focus on performance and efficiency. He reads kernel changelogs the way other people read fiction, and he's always on the hunt for the perfect mechanical keyboard switch. If it processes data, Tomas has an opinion on it.

via Hacker News

// Keep reading