@columenlabs/lumen-ship

中文文档
0.1.219发布于 2026/11/09MITTypeScriptES Module零依赖近 30 天下载 4.3万

鲁门通运包:放出便条,"什么是"新变换日志","放出护卫"和"行为检查".

中文使用文档
文档目录8 节
  1. 安装
  2. 释放
  3. 页:1
  4. 新的更改日志
  5. lumen-ship.json
  6. 林特警卫
  7. 行为检查
  8. 版本数

@columenlabs/lumen-ship (中文(简体) )

卢门的运货包:一个发布命令,每个发布者与克洛德一起写笔记,变更日志 新的读物, 和lint守护每一个Lumen应用程序运行。 巴什外加一个小型的TypeScript读取器,没有框架.

安装

bun add -d @columenlabs/lumen-ship

把它固定在与其他卢门软件包相同的准确版本. 命令需求 bash, (中文(简体) ), git, (中文(简体) ), gh (有REST 访问回转), jq 财务报告和审定财务报表 curl。 。 。 .

释放

lumen-ship release 切除 Repo 的 GitHub 释放。 从 repo 根运行, 每次合并到 main (CI工作)或用手进行.

命令它会做什么
lumen-ship release一个补丁发布时间 main 一次 cadence.every 合并自最新发布标记或第一次合并后登陆 cadence.days 过了几天. FORCE=1 现在就剪了
lumen-ship release minor标记 main 作为下一个未成年人。 它的笔记是手写的 docs/releases/v<major>.<minor>.0.md,必须打开 main
lumen-ship release notes再次从文件中设置最新的未成年人笔记
lumen-ship release tag v1.2.3使已经存在的标签发布(对于一个先给标签的发布工作). REDO=1 又写笔记

DRY_RUN=1 显示它会做什么 并创造什么.

页:1

Claude写下每个释放的笔记 从之前的拖拉请求(承诺在没有的情况下站立),从你的提示。 只有在完整时才会发布回复:任何被截断,拒绝或失败的东西都会再次被问到,最多3次,然后发布失败. 无 ANTHROPIC_API_KEY 这些笔记是GitHub自己的拉动请求列表.

设定 LUMEN_FORBIDDEN_NAMES (regex交替, A|B)在公开回放中:注意名称一再次被问出而从未被公布,拉出请求列表只显示数字.

新的更改日志

与 changelog.path 设定,每个发行的密钥外卖 也承诺 main 作为JSON,最新的第一, 和标记继续 承诺,所以释放部署自己的笔记。 每个取走的子弹会用标记打开:类型标记([Feature], (中文(简体) ), [Improvement], (中文(简体) ), [Fix], (中文(简体) ), [Performance], (中文(简体) ), [Security])成为其芯片和标签,列在 changelog.apps 成为它的 apps。在您的提示中询问:

- [Fix] [Console] **Exports finish**: ...
[{ "tag": "v0.3.2", "published_at": "2026-10-24T18:00:00Z",
   "takeaways": [{ "text": "**Exports finish**: ...", "types": ["fix"], "apps": ["console"] }] }]

交给他 WhatsNew (单位:千美元)LumenShell是因为 releases 与读者:

import { RELEASES_HEADERS, listReleases, type Release } from '@columenlabs/lumen-ship/releases';
import changelog from './changelog.json';

app.get('/api/releases', (c) =>
  c.json(
    { releases: listReleases(changelog as Release[], {
        limit: c.req.query('limit'),
        before: c.req.query('before'),
        canSee: (apps) => apps.some((a) => mayOpen(c, a)),   // optional
      }) },
    200,
    RELEASES_HEADERS,
  ),
);

listReleases 最新第一页limit 1至50起,20起违约; before iSO 时间)和 canSee保留一些应用程序的外卖 只给可能打开其中一台的人.

lumen-ship.json

在 repo 根(或路径在 LUMEN_SHIP_CONFIG:

{
  "repo": "owner/name",
  "notes": { "prompt": ".github/release-prompt.md", "model": "claude-sonnet-5-5", "maxTokens": 16000 },
  "changelog": { "path": "src/changelog.json", "apps": { "console": "console", "api": "api" } },
  "tags": "v0.*",
  "promote": "release",
  "cadence": { "every": 10, "days": 7 }
}
密钥
repoGitHub重新发布 继续。 需求
notes.prompt带有提示的文件; {tag} 成为发行的标签。 需求
notes.model, (中文(简体) ), notes.maxTokens模型及其输出限制(模型先想,所以保持大)
changelog.path新的JSON生活的地方 main; 退出, 无更改日志
changelog.apps标签( 更小的例) — app id, 用于一个应用程序的外卖
tags释放标记作为一个git glob, v[0-9]* 默认; 当另一个方案的旧标记排序更高时缩小
promote每个新发行的分会(一个生产部署分会,例如)
cadence.every, (中文(简体) ), cadence.days补丁到期后. RELEASE_EVERY 覆盖 every

林特警卫

lumen-ship check kit-neutral [paths]   # no name from LUMEN_FORBIDDEN_NAMES (default: src package.json README.md)
lumen-ship check suppressions          # a useExhaustiveDependencies suppression needs a reason of 3+ words
lumen-ship check settings-copy         # a Settings section description is one plain line of 64 characters or less
lumen-ship check magic-numbers         # hard-coded px/rem class values may only go down
lumen-ship check parts <folders>       # the kit's part pages: hint-text, text-action, raw-overlay, settings-page may only go down

从文件夹中逐一运行 lint 脚本; 运行 parts 从带应用程序文件夹的 repo 根中(lumen-ship check parts apps/*/web/src) (中文(简体) ). magic-numbers 读repo的 scripts/magic-numbers.baseline (或 LUMEN_SHIP_BASELINE: 一个 <folder> <count> 一条线,在变化中降低,删除一条. parts 读取 scripts/parts.baseline (或 LUMEN_SHIP_PARTS_BASELINE: 一个 <folder> <rule> <count> 线条; --write-baseline 写今天的计数 在第一次运行。 每个规则都会被解释, 写什么代替,在 https://lumen.columenlabs.com/parts/README.md (中文(简体) )。 。 。 .

行为检查

@columenlabs/lumen-ship/behavior 检查一个应用程序的持久对象在一段时间内是如何运行的,而不命名任何错误 。 一个理智的运行在模拟的时钟上驱动本地运行时间的应用程序,记录每个钟点,并让每个商店保持同样的生命迹象.

  • simClock() 替换全局 Date 有时钟,运行向前. SimAlarms 保持每个商店的警报 而不是运行时间, 所以没有火实时。 跑跑将时钟跳到最早期的警报,发射后再重复,所以模拟的一天需要几秒钟.
  • judge(wakes, { from, to, stopped }, limits?) 读取记录 Wakes 和返回数 numbers (对主音)和 broken (每个重要标志被打破,用平话来说) 纯:没有运行时间,没有I/O.
重要标志断时( 默认在 VITALS(中文(简体) )
醒来12多小时后醒来,一无所有,一无所有
快速闲置超过5个无所事事的钟声 一个小时后就响起下一个警报
唤醒率120多小时后醒来 工作与否
过去警钟唤醒在自己的时间之前设置了警报
每行钟声读取或写出一万行
每日行数一个店一天读了八百多行,或者写了四十多行
解决过去6小时 仍然醒了12个多小时
错误已丢出或记录出错
逃跑一天结束前的两千个醒来 跑步停止了
import { judge, type Wake } from '@columenlabs/lumen-ship/behavior';

const { numbers, broken } = judge(wakes, { from, to, stopped });
if (broken.length) console.log(broken.map((b) => `${b.rule}: ${b.detail}`).join('\n'));

给它不同的起步状态,而不是失败案例:一个返回的用户商店,30天后同一个商店,第一次访问. 一个循环,一个逃跑的读取或被卡住的工作,然后自己打破一个至关重要的标志,不管是什么原因造成的.

版本数

0.x:任何未成年人可以断裂到1.0. 每次和鲁门合并 main 发布每个 Lumen 软件包的下一个补丁;参见 释放。 。 。 .

版本与发布记录

@columenlabs/lumen-ship 共发布 192 个版本,首次发布于 2026/10/25;过去 12 个月发布了 192 个版本。

版本发布日期距今
0.1.219latest2026/11/091 天前
0.1.2182026/11/091 天前
0.1.2172026/11/091 天前
0.1.2162026/11/091 天前
0.1.2152026/11/091 天前
0.1.2142026/11/091 天前

关于 @columenlabs/lumen-ship 的常见问题

@columenlabs/lumen-ship 是什么?

鲁门通运包:放出便条,"什么是"新变换日志","放出护卫"和"行为检查".

如何安装 @columenlabs/lumen-ship?

在项目目录运行 npm install @columenlabs/lumen-ship,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 lumen-ship,可以用 npx lumen-ship 直接运行。

@columenlabs/lumen-ship 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@columenlabs/lumen-ship 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@columenlabs/lumen-ship 可以商用吗?

@columenlabs/lumen-ship 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@columenlabs/lumen-ship 的下载量有多少?

根据 npm 官方下载统计,@columenlabs/lumen-ship 在 2026/10/11 – 2026/11/09 这 30 天内被下载 42,548 次,日均约 1,418 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@columenlabs/lumen-ship 还在维护吗?

最新版本 0.1.219 发布于 2026/11/09(1 天前);至今共发布 192 个版本,其中过去 12 个月发布了 192 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。