diff --git a/.bumpy/bundled-deps-and-no-bump-comment.md b/.bumpy/bundled-deps-and-no-bump-comment.md deleted file mode 100644 index 8a1f4e3..0000000 --- a/.bumpy/bundled-deps-and-no-bump-comment.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@varlock/bumpy': minor ---- - -Change detection is now `package.json`-field-aware: when `package.json` is the only changed file in a package, bumpy diffs it against the base branch and only requires a bump file if a publish-affecting field changed. The new `ignoredPackageJsonFields` option (default `["devDependencies"]`) controls which fields are ignored, so a dev-only dependency bump (e.g. Dependabot) no longer requires a bump file — unless the changed dep matches the package's `releaseTriggeringDevDeps`. - -`ci check` no longer posts a "you're good to go" comment while exiting 1. When the check fails because changed packages have no bump file, the comment now matches the failing status, lists the uncovered packages, and points at an empty bump file (`bumpy add --empty`) to acknowledge an intentional no-release. - -Add a per-package `releaseTriggeringDevDeps` option: names/globs of `devDependencies` that affect a package's published output (most often because they're bundled in). A change to one requires a release, and a listed internal workspace dep's own releases cascade with a patch bump — shorthand for a `cascadeFrom` rule of `{ trigger: 'patch', bumpAs: 'patch' }`. diff --git a/.bumpy/changelog-block-layout.md b/.bumpy/changelog-block-layout.md deleted file mode 100644 index 0dd7cf0..0000000 --- a/.bumpy/changelog-block-layout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@varlock/bumpy': patch ---- - -Changelog entries now use a block layout when a summary is multi-line, long (>120 chars), or contains markdown block syntax (headings, lists, blockquotes, code fences, tables). In those cases the entry metadata (`*(type)*`, PR link, "Thanks @user!") goes on its own line and the summary is rendered indented below it, instead of being jammed onto the same line. Short single-line summaries are unchanged and stay inline. Internal blank lines in a summary are now preserved so markdown paragraphs and lists render correctly. Applies to both the default and `github` formatters. diff --git a/.bumpy/github-packages-release-url.md b/.bumpy/github-packages-release-url.md deleted file mode 100644 index ea51750..0000000 --- a/.bumpy/github-packages-release-url.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@varlock/bumpy': patch ---- - -Label and link npm targets published to GitHub Packages correctly. Packages publishing to a GitHub Packages registry (`npm.pkg.github.com`) were labelled `npm` in the GitHub release notes and `bumpy status`/`bumpy ci plan` output, with a "Published to" badge linking to a non-existent npmjs.com page (404). The configured registry is now honoured: such targets are labelled **GitHub Packages** and link to the package page under the repo (`https://github.com///pkgs/npm/`), resolving the repo from the package's `repository` field or `GITHUB_REPOSITORY`. Other custom/private registries no longer emit a dead npmjs.com link. `buildPublishUrl` now honours its registry argument (previously the unused `_registry` param). diff --git a/.bumpy/single-package-changed-detection.md b/.bumpy/single-package-changed-detection.md deleted file mode 100644 index 41c35a0..0000000 --- a/.bumpy/single-package-changed-detection.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@varlock/bumpy': patch ---- - -Fix changed-package detection in single-package (non-monorepo) repos. Both `findChangedPackages` (used by `check`/`ci check`) and `mapFilesToPackages` (used by `generate`) matched changed files against `pkgRelDir + '/'`, but for the root package the relative dir is empty, so the check became `file.startsWith('/')` — always false for git's relative paths. As a result `ci check` always reported "No managed packages have changed" (never requiring a bump file or posting a PR comment) and `generate` never attributed commits to the root package. The root package (empty relative dir) now treats every changed file as belonging to it, while still honoring `changedFilePatterns`. diff --git a/.bumpy/stream-custom-command-output.md b/.bumpy/stream-custom-command-output.md deleted file mode 100644 index b29ed68..0000000 --- a/.bumpy/stream-custom-command-output.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@varlock/bumpy': patch ---- - -Stream `buildCommand`/`publishCommand` output live to the parent process and surface the child's real failure reason. Custom publish commands (vsce, ovsx, anything bespoke) previously ran through a buffering runner that discarded stdout and never streamed output, so a failure like an expired marketplace token produced only a generic `Command failed` wrapper with no usable cause in CI logs. These commands now run through a streaming runner (`spawn` with piped+teed stdio) that prints output as it happens and includes both stdout and stderr in the thrown error. The capturing `runAsync`/`runArgsAsync` helpers (still used for internal git/npm calls whose output is parsed) also now include stdout in their error messages. diff --git a/packages/bumpy/CHANGELOG.md b/packages/bumpy/CHANGELOG.md index 93d3e86..bd23c6a 100644 --- a/packages/bumpy/CHANGELOG.md +++ b/packages/bumpy/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## 1.15.0 + +2026-06-18 + +- [#120](https://github.com/dmno-dev/bumpy/pull/120) _(minor)_ + Change detection is now `package.json`-field-aware: when `package.json` is the only changed file in a package, bumpy diffs it against the base branch and only requires a bump file if a publish-affecting field changed. The new `ignoredPackageJsonFields` option (default `["devDependencies"]`) controls which fields are ignored, so a dev-only dependency bump (e.g. Dependabot) no longer requires a bump file — unless the changed dep matches the package's `releaseTriggeringDevDeps`. + + `ci check` no longer posts a "you're good to go" comment while exiting 1. When the check fails because changed packages have no bump file, the comment now matches the failing status, lists the uncovered packages, and points at an empty bump file (`bumpy add --empty`) to acknowledge an intentional no-release. + + Add a per-package `releaseTriggeringDevDeps` option: names/globs of `devDependencies` that affect a package's published output (most often because they're bundled in). A change to one requires a release, and a listed internal workspace dep's own releases cascade with a patch bump — shorthand for a `cascadeFrom` rule of `{ trigger: 'patch', bumpAs: 'patch' }`. + +- [#118](https://github.com/dmno-dev/bumpy/pull/118) _(patch)_ + Stream `buildCommand`/`publishCommand` output live to the parent process and surface the child's real failure reason. Custom publish commands (vsce, ovsx, anything bespoke) previously ran through a buffering runner that discarded stdout and never streamed output, so a failure like an expired marketplace token produced only a generic `Command failed` wrapper with no usable cause in CI logs. These commands now run through a streaming runner (`spawn` with piped+teed stdio) that prints output as it happens and includes both stdout and stderr in the thrown error. The capturing `runAsync`/`runArgsAsync` helpers (still used for internal git/npm calls whose output is parsed) also now include stdout in their error messages. +- [#122](https://github.com/dmno-dev/bumpy/pull/122) _(patch)_ + Changelog entries now use a block layout when a summary is multi-line, long (>120 chars), or contains markdown block syntax (headings, lists, blockquotes, code fences, tables). In those cases the entry metadata (`*(type)*`, PR link, "Thanks @user!") goes on its own line and the summary is rendered indented below it, instead of being jammed onto the same line. Short single-line summaries are unchanged and stay inline. Internal blank lines in a summary are now preserved so markdown paragraphs and lists render correctly. Applies to both the default and `github` formatters. +- [#124](https://github.com/dmno-dev/bumpy/pull/124) _(patch)_ + Label and link npm targets published to GitHub Packages correctly. Packages publishing to a GitHub Packages registry (`npm.pkg.github.com`) were labelled `npm` in the GitHub release notes and `bumpy status`/`bumpy ci plan` output, with a "Published to" badge linking to a non-existent npmjs.com page (404). The configured registry is now honoured: such targets are labelled **GitHub Packages** and link to the package page under the repo (`https://github.com///pkgs/npm/`), resolving the repo from the package's `repository` field or `GITHUB_REPOSITORY`. Other custom/private registries no longer emit a dead npmjs.com link. `buildPublishUrl` now honours its registry argument (previously the unused `_registry` param). +- [#125](https://github.com/dmno-dev/bumpy/pull/125) _(patch)_ + Fix changed-package detection in single-package (non-monorepo) repos. Both `findChangedPackages` (used by `check`/`ci check`) and `mapFilesToPackages` (used by `generate`) matched changed files against `pkgRelDir + '/'`, but for the root package the relative dir is empty, so the check became `file.startsWith('/')` — always false for git's relative paths. As a result `ci check` always reported "No managed packages have changed" (never requiring a bump file or posting a PR comment) and `generate` never attributed commits to the root package. The root package (empty relative dir) now treats every changed file as belonging to it, while still honoring `changedFilePatterns`. + ## 1.14.0 2026-06-13 diff --git a/packages/bumpy/package.json b/packages/bumpy/package.json index 9c2ad9d..cd6bfce 100644 --- a/packages/bumpy/package.json +++ b/packages/bumpy/package.json @@ -1,6 +1,6 @@ { "name": "@varlock/bumpy", - "version": "1.14.0", + "version": "1.15.0", "description": "Modern monorepo versioning and changelog tool", "keywords": [ "bump",