@williamthorsen/release-kit 5.2.0 โ 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +3 -29
- package/dist/esm/.cache +1 -1
- package/dist/esm/createGithubReleaseCommand.js +0 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [release-kit-v5.2.1] - 2026-05-05
|
|
6
|
+
|
|
7
|
+
### ๐ Bug fixes
|
|
8
|
+
|
|
9
|
+
- Soft-skip tags with no changelog entry under --tags (#366)
|
|
10
|
+
|
|
11
|
+
Fixes an issue where `release-kit create-github-release --tags <tag>` exited 1 โ failing the calling CI workflow โ when the requested tag had no changelog entry. Tooling-only releases (those whose changelog generator legitimately omits an entry) are now soft-skipped with an info-level summary, the same as releases skipped because their entry has no audience-relevant content. Typo protection is preserved: passing an unknown tag to `--tags` still exits 1.
|
|
12
|
+
|
|
5
13
|
## [release-kit-v5.2.0] - 2026-05-04
|
|
6
14
|
|
|
7
15
|
### ๐ Features
|
package/README.md
CHANGED
|
@@ -5,39 +5,13 @@ Version-bumping and changelog-generation toolkit for release workflows.
|
|
|
5
5
|
Provides a self-contained CLI that auto-discovers workspaces from `pnpm-workspace.yaml`, parses conventional commits, determines version bumps, updates `package.json` files, and generates changelogs with `git-cliff`.
|
|
6
6
|
|
|
7
7
|
<!-- section:release-notes -->
|
|
8
|
-
## Release notes โ v5.2.
|
|
9
|
-
|
|
10
|
-
### ๐ Features
|
|
11
|
-
|
|
12
|
-
- Add emojis to changelog and release-note headings (#352)
|
|
13
|
-
|
|
14
|
-
Adds emoji prefixes to the section headings rendered in `CHANGELOG.md` and release notes generated by `@williamthorsen/release-kit`. Each of the 13 default work types gets a single decorative emoji so its section is easier to spot when skimming a release: ๐ Bug fixes, ๐ Features, ๐ Documentation, โป๏ธ Refactoring, โก Performance, ๐ Security, ๐งช Tests, โ๏ธ Tooling, ๐ท CI, ๐ฆ Dependencies, ๐๏ธ Internal, ๐๏ธ Deprecated, and ๐ค Agentic support. Matching of `changelogJson.devOnlySections` is emoji-tolerant: existing consumer overrides written as bare names continue to work without modification.
|
|
15
|
-
|
|
16
|
-
- Surface bang violations in release prepare reports (#359)
|
|
17
|
-
|
|
18
|
-
Release-prepare flows now surface `!`-policy violations as warnings in the prepare report. Each workspace's and project's commit window is parsed against the default policy table โ `internal!` is rejected as contradictory, bare `drop:` is rejected for missing the required `!`, and so on โ and any violations appear under the workspace's section in the report alongside short hash, truncated subject, type, and surface (prefix or body). A new `breakingPolicies` config field lets consumers override individual entries or pass `{}` to disable enforcement entirely. Release-time enforcement remains tolerant: violations are warnings, never failures, so a single legacy commit cannot block a release.
|
|
8
|
+
## Release notes โ v5.2.1 (2026-05-05)
|
|
19
9
|
|
|
20
10
|
### ๐ Bug fixes
|
|
21
11
|
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
Fixes an issue where `release-kit publish` failed for workspaces marked `package.json#private: true`. The command now operates only on publishable workspaces โ those where `private` is absent or `false` โ and the rest of the release pipeline (`tag`, `create-github-release`, `prepare`, changelog) continues to handle private workspaces unchanged. This preserves the "versioned but not published" workflow: a private workspace can still be versioned, tagged, and published as a GitHub Release; only the registry-publish step is skipped. Without `--tags`, unpublishable tags are silently filtered (an empty result prints `Nothing to publish.` and exits 0). With `--tags` naming an unpublishable workspace, `release-kit publish` exits 1 with one error per offending tag, citing `package.json#private` and the workspace path.
|
|
25
|
-
|
|
26
|
-
- Skip tooling-only releases instead of failing (#347)
|
|
27
|
-
|
|
28
|
-
Fixes an issue where `release-kit create-github-release --tags <tag>` exited 1 whenever the tag's changelog had no all-audience content. The reusable `create-github-release.reusable.yaml` workflow forwards `github.ref_name` into `--tags`, so tooling-only releases consistently produced failed workflow runs even though no failure occurred. The command now exits 1 only when a requested tag has no changelog entry; intentional skip reasons (`no-audience-content`, `empty-body`) are informational. A typoed tag still surfaces an error even when batched alongside successful tags, and the info summary reports the per-tag skip reason for diagnostic visibility.
|
|
29
|
-
|
|
30
|
-
- Establish canonical work-types SSOT and restore changelog section ordering (#358)
|
|
31
|
-
|
|
32
|
-
Restores canonical section ordering in changelogs and release notes โ sections were appearing in unpredictable order after the previous release added emoji prefixes to section headers. Sections now follow a stable priority: public-facing types (Features, Fixes, Security, โฆ) first, then internal types, then process types. Release-note bullets for breaking changes carry a `๐จ **Breaking:**` prefix so they stand out at a glance. Documentation entries move out of public release notes โ they continue to appear in dev changelogs.
|
|
33
|
-
|
|
34
|
-
Closes #355.
|
|
35
|
-
|
|
36
|
-
### โก Performance
|
|
37
|
-
|
|
38
|
-
- Skip npx registry revalidation when running git-cliff (#361)
|
|
12
|
+
- Soft-skip tags with no changelog entry under --tags (#366)
|
|
39
13
|
|
|
40
|
-
|
|
14
|
+
Fixes an issue where `release-kit create-github-release --tags <tag>` exited 1 โ failing the calling CI workflow โ when the requested tag had no changelog entry. Tooling-only releases (those whose changelog generator legitimately omits an entry) are now soft-skipped with an info-level summary, the same as releases skipped because their entry has no audience-relevant content. Typo protection is preserved: passing an unknown tag to `--tags` still exits 1.
|
|
41
15
|
<!-- /section:release-notes -->
|
|
42
16
|
|
|
43
17
|
## Installation
|
package/dist/esm/.cache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
704a70608ce284c9f8ef2dda2e6604a5f38ac0c995c9419ae39206ed053775c6
|
|
@@ -26,15 +26,6 @@ async function createGithubReleaseCommand(argv) {
|
|
|
26
26
|
console.error(`Error creating GitHub Releases: ${error instanceof Error ? error.message : String(error)}`);
|
|
27
27
|
process.exit(1);
|
|
28
28
|
}
|
|
29
|
-
if (requestedTags !== void 0) {
|
|
30
|
-
const noEntryTags = outcome.skipped.filter((s) => s.reason === "no-entry").map((s) => s.tag);
|
|
31
|
-
if (noEntryTags.length > 0) {
|
|
32
|
-
console.error(
|
|
33
|
-
`Error: requested tags have no changelog entry: ${noEntryTags.join(", ")}. Verify the tag names match a published changelog version.`
|
|
34
|
-
);
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
29
|
if (outcome.skipped.length > 0) {
|
|
39
30
|
const formatted = outcome.skipped.map((s) => `${s.tag} (${s.reason})`).join(", ");
|
|
40
31
|
console.info(`Skipped ${outcome.skipped.length} tag(s) with no releasable content: ${formatted}.`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@williamthorsen/release-kit",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.1",
|
|
4
4
|
"description": "Version-bumping and changelog-generation toolkit for release workflows",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://github.com/williamthorsen/node-monorepo-tools/tree/main/packages/release-kit#readme",
|