Publish npm packages
LumiBase giữ contract/source của package trong monorepo; job publish npm chỉ đẩy những package không có private: true. Cờ private trong package.json của chính package đó là allowlist.
Allowlist package public
Không có file allowlist riêng. Job publish-npm-packages trong
.github/workflows/release.yml quét packages/*/package.json và chỉ publish những
package không có private: true:
packages/create-lumibase(create-lumibase)packages/sdk(@lumibase/sdk)packages/extension-sdk(@lumibase/extension-sdk)packages/mcp-server(@lumibase/mcp-server)packages/cli(lumibase— tên không scope; CLI kèm entry library re-export@lumibase/sdk, nên package đó phải được publish trước hoặc trong cùng lượt chạy)packages/contracts(@lumibase/contracts)
Muốn thêm package public: bỏ private: true khỏi package.json của package đó, thêm
publishConfig.access: public + script build ra dist/, và bảo đảm nó không phụ
thuộc vào dependency nội bộ dùng workspace:* chưa public.
Mỗi package public nên có README.md, homepage, bugs, và keywords — trang npm
là phễu discovery; manifest trống làm giảm lượt cài.
Version fixed từ root
Các package public dùng version fixed theo package.json ở root. Trước khi publish, workflow chạy pnpm version:check và script publish cũng kiểm tra tag release vX.Y.Z phải khớp với root version X.Y.Z.
Trigger release
Publish npm chạy khi push tag SemVer dạng v*.*.*. Ví dụ:
git tag v0.4.3
git push origin v0.4.3
Workflow dùng npm trusted publishing/OIDC qua quyền id-token: write và actions/setup-node với registry npm. Job cũng hỗ trợ NPM_TOKEN khi biến PUBLISH_NPM_PACKAGES bật. Không cấu hình npm token dài hạn trừ khi npm registry không hỗ trợ trusted publishing cho package đó.
Provenance
Lệnh publish bật --provenance để npm ghi provenance statement khi registry hỗ trợ. Nếu registry không hỗ trợ provenance/OIDC, release phải được xử lý như lỗi cấu hình registry thay vì chuyển sang token dài hạn mặc định.
Release notes
Sau khi publish thành công, workflow tạo hoặc cập nhật GitHub Release tương ứng với tag và chèn section npm packages published. Section này phải ghi rõ package/version đã publish, ví dụ:
## npm packages published
- [email protected] (packages/create-lumibase)
- @lumibase/[email protected] (packages/sdk)
- @lumibase/[email protected] (packages/extension-sdk)
- @lumibase/[email protected] (packages/mcp-server)
- @lumibase/[email protected] (packages/contracts)