@oneblink/release-cli 2.0.0-beta.1 → 2.0.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/dist/bin.js CHANGED
@@ -4,6 +4,7 @@ import updateNotifier from 'update-notifier';
4
4
  import meow from 'meow';
5
5
  import enquirer from 'enquirer';
6
6
  import startReleaseProcess from './startReleaseProcess.js';
7
+ import semver from 'semver';
7
8
  const cli = meow(`
8
9
  oneblink-release [next-version] [--no-git] [--name] [--no-name] [--cwd path]
9
10
 
@@ -56,7 +57,10 @@ Examples
56
57
  },
57
58
  },
58
59
  });
59
- async function getReleaseName(name) {
60
+ async function getReleaseName({ name, preRelease, }) {
61
+ if (preRelease) {
62
+ return;
63
+ }
60
64
  if (typeof name === 'string' && name) {
61
65
  return name;
62
66
  }
@@ -88,12 +92,28 @@ async function run() {
88
92
  type: 'input',
89
93
  message: 'Next version? e.g. "1.2.3" or "1.2.3-beta.1"',
90
94
  name: 'nextVersion',
95
+ required: true,
96
+ validate: (value) => {
97
+ const nextSemverVersion = semver.valid(value);
98
+ if (!nextSemverVersion) {
99
+ return 'Next version must be valid semver';
100
+ }
101
+ return true;
102
+ },
91
103
  },
92
104
  ]);
93
105
  input = nextVersion;
94
106
  }
95
- const releaseName = await getReleaseName(cli.flags.name);
107
+ const preReleaseComponents = semver.prerelease(input);
108
+ const preRelease = typeof preReleaseComponents?.[0] === 'string'
109
+ ? preReleaseComponents[0]
110
+ : undefined;
111
+ const releaseName = await getReleaseName({
112
+ name: cli.flags.name,
113
+ preRelease,
114
+ });
96
115
  await startReleaseProcess({
116
+ preRelease,
97
117
  nextVersion: input,
98
118
  git: cli.flags.git,
99
119
  releaseName,
@@ -82,9 +82,14 @@ ${dependenciesChangelogHeading}
82
82
  ${dependenciesChangelogEntries}
83
83
  `;
84
84
  });
85
- const nextReleaseTitle = `[${nextSemverVersion}] (${new Date()
85
+ const nextReleaseTitle = `[${nextSemverVersion}] - ${new Date()
86
86
  .toISOString()
87
- .substring(0, 10)})${releaseName ? ` ${releaseName}` : ''}`;
87
+ .substring(0, 10)}`;
88
+ const releaseNameSubtitle = releaseName
89
+ ? `
90
+
91
+ ##### Release Name: ${releaseName}`
92
+ : '';
88
93
  await wrapWithLoading({
89
94
  startText: `Updating CHANGELOG.md with next release (${nextReleaseTitle})`,
90
95
  failText: `Failed to update CHANGELOG.md with next release (${nextReleaseTitle})`,
@@ -108,7 +113,7 @@ ${parsedChangelog.versions
108
113
  return `
109
114
  ## ${title}
110
115
 
111
- ## ${nextReleaseTitle}
116
+ ## ${nextReleaseTitle}${releaseNameSubtitle}
112
117
 
113
118
  ${body}
114
119
 
@@ -146,15 +151,14 @@ async function executeCommand(command, args, cwd) {
146
151
  spinner.succeed(`Ran "${command} ${args.join(' ')}"`);
147
152
  });
148
153
  }
149
- export default async function startReleaseProcess({ nextVersion, cwd, git, releaseName, }) {
154
+ export default async function startReleaseProcess({ nextVersion, preRelease, cwd, git, releaseName, }) {
150
155
  const nextSemverVersion = semver.valid(nextVersion);
151
156
  if (!nextSemverVersion) {
152
157
  throw new Error('Next version is not valid semver');
153
158
  }
154
159
  const npm = await checkIfNPMPackageVersionShouldBeUpdated(cwd);
155
- const preReleaseComponents = semver.prerelease(nextSemverVersion);
156
- if (preReleaseComponents && preReleaseComponents[0]) {
157
- const text = `Skipping changelog updates for "${preReleaseComponents[0]}" release`;
160
+ if (preRelease) {
161
+ const text = `Skipping changelog updates for "${preRelease}" release`;
158
162
  ora(text).start().info(text);
159
163
  }
160
164
  else {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oneblink/release-cli",
3
3
  "description": "Used internally by OneBlink to release code bases quickly and consistently",
4
- "version": "2.0.0-beta.1",
4
+ "version": "2.0.1",
5
5
  "author": "OneBlink <developers@oneblink> (https://github.com/oneblink)",
6
6
  "bin": {
7
7
  "oneblink-release": "dist/bin.js"