← 返回信息流
AI 资讯Hacker News·3 小时前

Boss发布Delphi与Lazarus依赖管理工具

原标题:Boss – Dependency Manager for Delphi and Lazarus

速览

Boss是一款面向Delphi与Lazarus开发者的依赖管理器,旨在简化项目依赖的安装、更新与版本控制。它填补了Delphi生态中缺少现代包管理工具的空白,提升开发效率。该工具通过命令行或IDE集成,帮助开发者更便捷地管理第三方库。

AI 深度解读

背景

在 Delphi 和 Lazarus 的开发生态中,长期以来缺乏一个像 npm 那样现代化的依赖管理器。开发者通常需要手动管理第三方库的下载、版本控制和路径配置,过程繁琐且容易出错。随着开源社区对 Pascal 语言生态的复兴需求增加,Hacker News 上出现了一个名为 Boss 的开源项目——它受 npm 启发,专为 Delphi 和 Lazarus 项目打造,旨在简化依赖管理流程。

核心内容

Boss 是一个开源的依赖管理器,灵感来源于 npm,用于 Delphi 和 Lazarus 项目。它支持从命令行初始化项目、安装/卸载依赖、更新所有包、执行自定义脚本,并提供了丰富的配置选项。

快速开始

  • 下载安装程序并解压,将文件夹添加到系统路径。
  • 在终端中直接输入 boss 即可使用。
  • 可选安装 Boss Delphi IDE 插件。

项目初始化
使用 boss init 创建一个新项目,生成 boss.json 文件。添加 -q--quiet 可跳过交互式提示并使用默认值。

安装依赖
命令格式:boss install <dependency>
支持实时进度跟踪,例如:

  • ⏳ horse Waiting...
  • 🧬 dataset-serialize Cloning...
  • 🔍 jhonson Checking...
  • 🔥 redis-client Installing...
  • 📦 boss-core Installed

依赖名不区分大小写。安装来源可以是 GitHub 组织(如 boss install horse 即 HashLoad/horse)、其他组织(boss install fake/horse)、GitLab 或完整 URL。还可用 --compiler--platform 指定编译器版本和平台。别名:iadd

卸载依赖
boss uninstall <dependency> 别名:removermrununlink

更新依赖
boss update 将所有已安装依赖更新到兼容的最新版本。别名:up

升级 Boss 自身
boss upgrade 升级到最新稳定版;boss upgrade --dev 升级到最新预发布版。

列出依赖
boss dependencies 以树形结构显示所有依赖。加 -v 显示版本信息。可指定查看单个包的依赖树。别名:deplslistllladependency

运行自定义脚本
boss.jsonscripts 段中定义脚本,例如:

{
  "name": "my-project",
  "scripts": {
    "build": "msbuild MyProject.dproj",
    "test": "MyProject.exe --test",
    "clean": "del /s *.dcu"
  }
}

然后用 boss run build 等命令执行。

登录/登出仓库
boss login <repo> 可注册仓库凭证,支持用户名密码或 SSH 密钥认证。boss logout <repo> 移除保存的凭证。

版本与帮助
boss version(别名 v-v--version)显示版本。--help 显示帮助。

全局安装
boss install -g <dependency>boss --global install <dependency> 将包安装到系统全局环境。

调试模式
boss install --debugboss -d install 输出详细输出。

缓存管理
boss config cache rm 清除所有缓存的模块释放磁盘空间。别名:purgeclean

配置 Delphi 版本

  • boss config delphi list 列出所有检测到的 Delphi 安装(32位和64位)及其索引。
  • boss config delphi use <index|version|version-arch> 选择全局使用的 Delphi 版本。例如 boss config delphi use 0use 37.0use 37.0-Win64

Git 客户端配置

  • embedded:使用内置的 go-git 客户端(默认)。
  • native:使用系统安装的 git.exe。在 Windows 上推荐 native 模式以支持 core.autocrlf
    命令:boss config git mode nativeboss config git mode embedded

浅克隆
启用浅克隆可显著加快依赖下载速度(仅拉取最新提交,大型仓库从 127 MB 降到 <1 MB)。默认关闭以保持兼容性。
启用:boss config git shallow true
禁用:boss config git shallow false
也可通过环境变量临时启用:BOSS_GIT_SHALLOW=1 boss install

项目级工具链配置
boss.json 中添加 toolchain 段来指定必需的编译器版本和平台,确保团队使用一致的工具链。例如:

{
  "name": "my-project",
  "version": "1.0.0",
  "toolchain": {
    "compiler": "37.0",
    "platform": "Win64"
  }
}

支持字段:compilerplatformpath(显式编译器路径,可选)、strict(若为 true,找不到精确版本时报错)。

版本语义
可通过 boss.json 中依赖的版本约束指定可接受的更新类型:

  • 补丁更新:1.01.0.x~1.0.4
  • 小版本更新:11.x^1.0.4
  • 主版本更新:*x

boss.json 文件详解
它是 Delphi/Lazarus 项目的清单文件,包含元数据、依赖、构建配置和自定义脚本。主要字段:

  • name(必需):包名,发布时必须唯一。
  • description(可选):简短描述。
  • version(必需):语义版本号。
  • homepage(可选):项目网站或仓库 URL。
  • mainsrc(可选):主源码目录路径。
  • browsingpath(可选):IDE 浏览用额外路径,分号分隔。
  • projects(可选):要编译的 .dproj 文件列表。若不指定,Boss 不会编译但会管理依赖。
  • dependencies(可选):依赖名到版本约束的映射。支持的格式:精确版本("1.0.0")、caret(^1.0.0 允许 1.x.x)、tilde(~1.0.0 允许 1.0.x)、通配符(*x)、范围(">=1.0.0 <2.0.0")。
  • scripts(可选):自定义命令,用 boss run <script-name> 执行。
  • engines(可选):指定所需编译器版本和平台,如 "compiler": ">=35.0""platforms": ["Win32", "Win64"]
  • toolchain(可选):强制工具链配置。

关键要点

  • Boss 是受 npm 启发的 Delphi/Lazarus 依赖管理器,开源免费。
  • 核心命令包括 initinstalluninstallupdateupgradedependenciesrunlogin/logoutversionconfig 等。
  • 安装依赖时支持实时进度显示,可从 GitHub、GitLab 或任意 URL 拉取包。
  • 版本约束采用 npm 风格的语义化版本:精确、caret、tilde、通配符、范围。
  • 支持全局安装、调试模式、缓存清理、多 Delphi 版本选择、Git 客户端模式切换。
  • 浅克隆功能可通过配置或环境变量启用,大幅减少下载量。
  • 项目级 toolchain 配置可确保团队使用一致的编译器和平台。
  • boss.json 是项目清单,支持丰富字段包括 nameversiondependenciesscriptsengines、`
查看原文 →github.com