Skip to content

feat(release): support npm/pnpm workspaces and Lerna releases - #563

Open
neilime wants to merge 14 commits into
mainfrom
feat/release-workspaces
Open

neilime wants to merge 14 commits into
mainfrom
feat/release-workspaces

Conversation

@neilime

@neilime neilime commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Extend the single-package release process to public npm/pnpm workspaces and fixed or independent Lerna packages. Existing single-package callers keep their inputs and outputs.

  • Preparation updates manifests and lockfiles, signs the prepared commit, and atomically pushes the commit and tags. Lerna uses native version planning without generating a changelog file.
  • Preparation and release accept partial YAML/JSON configuration overrides through the public ci-github-publish interfaces. Manual force preserves higher Conventional Commit plans and uses a patch fallback when necessary; schedules and tag recovery ignore force.
  • CI discovers public packages from workspace configuration, with an explicit directory override when needed. It validates package contents and optional isolated-consumer commands, then collects validated artifacts while preserving successful results across partial reruns. Consumer project fixtures can supply test dependencies without changing the source tree.
  • Release verifies prepared packages and their artifacts, completes draft notes and optional summaries before npm publication, recovers original registry bytes on retries, and checks asset digests before final publication. Independent releases receive package-specific notes and assets.
  • GitHub artifact ownership, tag identity and published-state checks delegate to the shared release verifier. The existing Codecov action delegates to the shared uploader; package rules and release grouping remain here.

CI and publication remain separate. Actions keep their own dependencies, and the pull-request CI entry point is unchanged. The existing ADR and generated action documentation describe the final implementation.

Shared dependencies for this PR:

The new shared actions are pinned to reviewed PR commits. Update these pins to stable shared releases before merging; other publication actions remain on ci-github-publish 2.0.0.

Validation: focused package/release tests and composed Node.js/shared-action checks pass locally. The composition check preserves independent package scopes, artifact bindings and published-state outputs. Shared verifier tests cover stale artifacts, annotated tags, drafts, conflicting commits and API errors. make lint passes and references were regenerated with CI Dokumentor. All GitHub Actions checks pass on the updated head, including the standalone action tests and end-to-end CI workflows with and without containers.

Scope is stable public npm packages on GitHub.com and npmjs.org. Prereleases and custom registries are outside this PR.

@github-actions github-actions Bot added the type: feature Introduces a new feature label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Super-linter summary

Language Validation result
BIOME_FORMAT Pass ✅
BIOME_LINT Pass ✅
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_COMMITLINT Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSCPD Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter
Super-linter revision: 2da136927bd4a73596db63044b504547c62cb854
Super-linter version: 9.0.0

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Report

Coverage Results

Coverage

Metric Covered Total Percentage
Lines 2 2 100.00%
Functions 1 1 100.00%

Overall: 100.00% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

@codecov

codecov Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (31cd29b) to head (dad0f55).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #563   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            1         1           
  Lines            3         3           
=========================================
  Hits             3         3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@neilime
neilime force-pushed the feat/release-orchestration branch 2 times, most recently from 74481c1 to 438fb1f Compare November 4, 2026 10:40
@neilime
neilime force-pushed the feat/release-workspaces branch from 0ad0387 to 854f280 Compare November 4, 2026 10:40
@neilime
neilime force-pushed the feat/release-orchestration branch from 8c5caf1 to d484859 Compare November 4, 2026 12:07
@neilime
neilime force-pushed the feat/release-workspaces branch from be53437 to 959cca4 Compare November 4, 2026 12:07
@neilime
neilime force-pushed the feat/release-orchestration branch from 4c4a26a to dfd1662 Compare November 4, 2026 14:30
@neilime
neilime force-pushed the feat/release-workspaces branch from 4a59c60 to 91784ab Compare November 4, 2026 14:30
@neilime
neilime force-pushed the feat/release-orchestration branch from dfd1662 to a737d06 Compare November 4, 2026 14:34
@neilime
neilime force-pushed the feat/release-workspaces branch from 91784ab to 34e96c0 Compare November 4, 2026 14:34
@neilime
neilime force-pushed the feat/release-orchestration branch from add4b89 to 7e9524c Compare November 4, 2026 15:15
@neilime
neilime force-pushed the feat/release-workspaces branch from 3877cb7 to 31f3b67 Compare November 4, 2026 15:15
Base automatically changed from feat/release-orchestration to main November 4, 2026 21:05
Install tarballs with scripts disabled, expose package binaries and support
copied example projects. Keep archive-only defaults dependency-free.

BREAKING CHANGE: custom package test commands run from the temporary consumer.
Use GITHUB_WORKSPACE to access checked-out source.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature Introduces a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant