Boss发布Delphi与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 指定编译器版本和平台。别名:i、add。
卸载依赖
boss uninstall <dependency> 别名:remove、rm、r、un、unlink。
更新依赖
boss update 将所有已安装依赖更新到兼容的最新版本。别名:up。
升级 Boss 自身
boss upgrade 升级到最新稳定版;boss upgrade --dev 升级到最新预发布版。
列出依赖
boss dependencies 以树形结构显示所有依赖。加 -v 显示版本信息。可指定查看单个包的依赖树。别名:dep、ls、list、ll、la、dependency。
运行自定义脚本
在 boss.json 的 scripts 段中定义脚本,例如:
{
"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 --debug 或 boss -d install 输出详细输出。
缓存管理
boss config cache rm 清除所有缓存的模块释放磁盘空间。别名:purge、clean。
配置 Delphi 版本
boss config delphi list列出所有检测到的 Delphi 安装(32位和64位)及其索引。boss config delphi use <index|version|version-arch>选择全局使用的 Delphi 版本。例如boss config delphi use 0、use 37.0、use 37.0-Win64。
Git 客户端配置
embedded:使用内置的 go-git 客户端(默认)。native:使用系统安装的 git.exe。在 Windows 上推荐 native 模式以支持core.autocrlf。
命令:boss config git mode native或boss 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"
}
}
支持字段:compiler、platform、path(显式编译器路径,可选)、strict(若为 true,找不到精确版本时报错)。
版本语义
可通过 boss.json 中依赖的版本约束指定可接受的更新类型:
- 补丁更新:
1.0或1.0.x或~1.0.4 - 小版本更新:
1或1.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 依赖管理器,开源免费。
- 核心命令包括
init、install、uninstall、update、upgrade、dependencies、run、login/logout、version、config等。 - 安装依赖时支持实时进度显示,可从 GitHub、GitLab 或任意 URL 拉取包。
- 版本约束采用 npm 风格的语义化版本:精确、caret、tilde、通配符、范围。
- 支持全局安装、调试模式、缓存清理、多 Delphi 版本选择、Git 客户端模式切换。
- 浅克隆功能可通过配置或环境变量启用,大幅减少下载量。
- 项目级
toolchain配置可确保团队使用一致的编译器和平台。 boss.json是项目清单,支持丰富字段包括name、version、dependencies、scripts、engines、`
