@williamthorsen/release-kit 10.2.1 → 10.2.2

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.
Files changed (39) hide show
  1. package/.readyup/kits/default.js +1 -1
  2. package/.readyup/kits/npm-auto-publish.js +135 -23
  3. package/.readyup/manifest.json +3 -3
  4. package/CHANGELOG.md +22 -0
  5. package/README.md +13 -3
  6. package/dist/esm/buildChangelogEntries.js +1 -1
  7. package/dist/esm/buildReleaseSummary.d.ts +1 -1
  8. package/dist/esm/changelogJsonFile.d.ts +1 -3
  9. package/dist/esm/changelogJsonFile.js +4 -18
  10. package/dist/esm/commitCommand.js +3 -13
  11. package/dist/esm/createTags.js +2 -13
  12. package/dist/esm/injectReleaseNotesIntoReadme.d.ts +2 -0
  13. package/dist/esm/injectReleaseNotesIntoReadme.js +13 -10
  14. package/dist/esm/planReleaseNotesPreviews.d.ts +13 -0
  15. package/dist/esm/planReleaseNotesPreviews.js +43 -0
  16. package/dist/esm/planVersionBump.d.ts +9 -0
  17. package/dist/esm/{bumpAllVersions.js → planVersionBump.js} +15 -26
  18. package/dist/esm/prepareCommand.d.ts +0 -4
  19. package/dist/esm/prepareCommand.js +51 -45
  20. package/dist/esm/releaseFiles.d.ts +4 -0
  21. package/dist/esm/releaseFiles.js +34 -0
  22. package/dist/esm/releasePlan.d.ts +10 -0
  23. package/dist/esm/releasePlan.js +53 -0
  24. package/dist/esm/releasePrepare.d.ts +3 -3
  25. package/dist/esm/releasePrepare.js +53 -54
  26. package/dist/esm/releasePrepareMono.d.ts +3 -2
  27. package/dist/esm/releasePrepareMono.js +48 -52
  28. package/dist/esm/releasePrepareProject.d.ts +3 -0
  29. package/dist/esm/releasePrepareProject.js +33 -37
  30. package/dist/esm/renderChangelogMarkdown.d.ts +0 -7
  31. package/dist/esm/renderChangelogMarkdown.js +0 -13
  32. package/dist/esm/reportPrepare.d.ts +5 -1
  33. package/dist/esm/reportPrepare.js +36 -17
  34. package/dist/esm/types.d.ts +4 -9
  35. package/dist/esm/workTypesData.d.ts +1 -1
  36. package/package.json +2 -2
  37. package/dist/esm/bumpAllVersions.d.ts +0 -3
  38. package/dist/esm/writeReleaseNotesPreviews.d.ts +0 -18
  39. package/dist/esm/writeReleaseNotesPreviews.js +0 -63
@@ -1,63 +0,0 @@
1
- import { existsSync, readFileSync } from 'node:fs';
2
- import path from 'node:path';
3
- import { reportError, writeFileWithCheck } from '@williamthorsen/nmr-core';
4
- import { extractVersion } from "./changelogJsonUtils.js";
5
- import { dim } from "./format.js";
6
- import { renderInjectedReadme } from "./injectReleaseNotesIntoReadme.js";
7
- export function writeReleaseNotesPreviews(options) {
8
- const { workspacePath, tag, changelogJsonPath, sectionOrder, dryRun } = options;
9
- const version = extractVersion(tag);
10
- const readmePath = path.join(workspacePath, 'README.md');
11
- let readmeExists = existsSync(readmePath);
12
- let readmeUnreadable = false;
13
- let readmeContent = '';
14
- if (readmeExists) {
15
- try {
16
- readmeContent = readFileSync(readmePath, 'utf8');
17
- }
18
- catch (error) {
19
- const message = error instanceof Error ? error.message : String(error);
20
- console.warn(`Warning: failed to read ${readmePath}: ${message}; skipping injected-README preview`);
21
- readmeExists = false;
22
- readmeUnreadable = true;
23
- }
24
- }
25
- const rendered = renderInjectedReadme(readmeContent, changelogJsonPath, tag, sectionOrder);
26
- if (rendered === undefined) {
27
- return { renderSkipped: true };
28
- }
29
- const docsDir = path.join(workspacePath, 'docs');
30
- const readmePreviewPath = path.join(docsDir, `README.v${version}.md`);
31
- const releaseNotesPreviewPath = path.join(docsDir, `RELEASE_NOTES.v${version}.md`);
32
- let injectedReadme;
33
- if (readmeExists) {
34
- injectedReadme = writePreviewFile(readmePreviewPath, rendered.injectedReadme, dryRun);
35
- }
36
- else {
37
- if (!readmeUnreadable) {
38
- console.warn(`Warning: ${readmePath} not found; skipping injected-README preview but still writing standalone release notes`);
39
- }
40
- injectedReadme = { filePath: readmePreviewPath, outcome: 'skipped-no-readme' };
41
- }
42
- const releaseNotesContent = rendered.releaseNotesMarkdown.endsWith('\n')
43
- ? rendered.releaseNotesMarkdown
44
- : `${rendered.releaseNotesMarkdown}\n`;
45
- const releaseNotes = writePreviewFile(releaseNotesPreviewPath, releaseNotesContent, dryRun);
46
- return { injectedReadme, releaseNotes, renderSkipped: false };
47
- }
48
- function writePreviewFile(filePath, content, dryRun) {
49
- if (dryRun) {
50
- console.info(dim(` [dry-run] Would write ${filePath}`));
51
- return { filePath, outcome: 'dry-run' };
52
- }
53
- const result = writeFileWithCheck(filePath, content, { dryRun: false, overwrite: true });
54
- if (result.outcome === 'failed') {
55
- reportError(`Failed to write ${filePath}: ${result.error ?? 'unknown error'}`);
56
- return { filePath, outcome: 'failed', ...(result.error !== undefined && { error: result.error }) };
57
- }
58
- if (result.outcome === 'created' || result.outcome === 'overwritten') {
59
- console.info(dim(` Wrote ${filePath}`));
60
- return { filePath, outcome: result.outcome };
61
- }
62
- return { filePath, outcome: 'failed', error: `unexpected outcome: ${result.outcome}` };
63
- }