autorel 2.3.2 → 2.3.4

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.
@@ -0,0 +1,2 @@
1
+ import { Config } from '.';
2
+ export declare function autorel(args: Config): Promise<string | undefined>;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.autorel = void 0;
30
+ /* eslint-disable max-lines-per-function */
31
+ const convCom = __importStar(require("./conventionalcommits"));
32
+ const git = __importStar(require("./services/git"));
33
+ const npm = __importStar(require("./services/npm"));
34
+ const changelog_1 = require("./changelog");
35
+ const github = __importStar(require("./services/github"));
36
+ const logger_1 = __importDefault(require("./lib/logger"));
37
+ const updatePackageJsonVersion_1 = require("./updatePackageJsonVersion");
38
+ const colorette_1 = require("colorette");
39
+ const getPrereleaseChannel_1 = require("./getPrereleaseChannel");
40
+ const getTags_1 = require("./getTags");
41
+ const validateUseVersion_1 = require("./validateUseVersion");
42
+ const getNextTag_1 = require("./getNextTag");
43
+ const runUserReleaseScripts_1 = require("./runUserReleaseScripts");
44
+ const runUserPrereleaseScripts_1 = require("./runUserPrereleaseScripts");
45
+ async function autorel(args) {
46
+ const prereleaseChannel = (0, getPrereleaseChannel_1.getPrereleaseChannel)(args);
47
+ if (args.dryRun) {
48
+ logger_1.default.warn('Running in dry-run mode. No changes will be made.');
49
+ }
50
+ if (prereleaseChannel && !args.useVersion) {
51
+ const stmt = `Using prerelease channel: ${(0, colorette_1.bold)(prereleaseChannel)}`;
52
+ logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
53
+ }
54
+ else {
55
+ const stmt = 'This is a production release.';
56
+ logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
57
+ }
58
+ git.gitFetch();
59
+ const { highestTag, highestChannelTag, highestStableTag, tagFromWhichToFindCommits, } = (0, getTags_1.getTags)(prereleaseChannel);
60
+ const commits = git.getCommitsFromTag(tagFromWhichToFindCommits);
61
+ logger_1.default.info(`Found ${(0, colorette_1.bold)(commits.length.toString())} commit(s).`);
62
+ const parsedCommits = commits.map((commit) => convCom.parseConventionalCommit(commit.message, commit.hash))
63
+ .filter((commit) => !!commit);
64
+ const commitTypeMap = new Map(args.commitTypes.map((type) => [type.type, type]));
65
+ const releaseType = convCom.determineReleaseType(parsedCommits, commitTypeMap);
66
+ const releaseTypeStr = (releaseType === 'none' && (0, colorette_1.gray)('none'))
67
+ || (releaseType === 'major' && (0, colorette_1.redBright)('major'))
68
+ || (releaseType === 'minor' && (0, colorette_1.yellowBright)('minor'))
69
+ || (releaseType === 'patch' && (0, colorette_1.greenBright)('patch'));
70
+ logger_1.default.info(`The release type is: ${(0, colorette_1.bold)(String(releaseTypeStr))}`);
71
+ if (releaseType === 'none' && !args.useVersion) {
72
+ logger_1.default.info('No release is needed. Have a nice day (^_^)/');
73
+ return;
74
+ }
75
+ (0, validateUseVersion_1.validateUseVersion)(args.useVersion, releaseType);
76
+ const nextTag = (0, getNextTag_1.getNextTag)({
77
+ releaseType,
78
+ highestTag,
79
+ highestStableTag,
80
+ highestChannelTag,
81
+ useVersion: args.useVersion,
82
+ prereleaseChannel,
83
+ });
84
+ const changelog = (0, changelog_1.generateChangelog)(parsedCommits, commitTypeMap, args.breakingChangeTitle);
85
+ logger_1.default.info(`The next version is: ${(0, colorette_1.bold)(nextTag)}`);
86
+ logger_1.default.debug(`The changelog is:\n${changelog}`);
87
+ if (args.dryRun)
88
+ return;
89
+ (0, runUserPrereleaseScripts_1.runUserPreleaseScripts)(args);
90
+ git.createAndPushTag(nextTag);
91
+ // publish to GitHub
92
+ if (!args.skipRelease) {
93
+ const { owner, repository } = git.getRepo();
94
+ github.createRelease({
95
+ token: process.env.GITHUB_TOKEN,
96
+ owner,
97
+ repository,
98
+ tag: nextTag,
99
+ name: nextTag,
100
+ body: changelog,
101
+ });
102
+ }
103
+ // publish to npm
104
+ if (args.publish) {
105
+ (0, updatePackageJsonVersion_1.updatePackageJsonVersion)(nextTag);
106
+ npm.publishPackage(prereleaseChannel);
107
+ }
108
+ // set env variables
109
+ process.env.NEXT_VERSION = nextTag.replace('v', '');
110
+ process.env.NEXT_TAG = nextTag;
111
+ (0, runUserReleaseScripts_1.runUserReleaseScripts)(args);
112
+ return nextTag.replace('v', '');
113
+ }
114
+ exports.autorel = autorel;
115
+ //# sourceMappingURL=autorel.js.map
@@ -0,0 +1,9 @@
1
+ import { ReleaseType } from './semver';
2
+ export declare function getNextTag({ highestTag, highestStableTag, highestChannelTag, useVersion, prereleaseChannel, releaseType, }: {
3
+ highestTag: string | undefined;
4
+ highestStableTag: string | undefined;
5
+ highestChannelTag: string | undefined;
6
+ useVersion: string | undefined;
7
+ prereleaseChannel: string | undefined;
8
+ releaseType: ReleaseType;
9
+ }): string;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getNextTag = void 0;
27
+ const semver = __importStar(require("./semver"));
28
+ function getNextTag({ highestTag, highestStableTag, highestChannelTag, useVersion, prereleaseChannel, releaseType, }) {
29
+ return useVersion
30
+ ? `v${useVersion}`
31
+ : semver.toTag(semver.incrVer({
32
+ latestVer: semver.fromTag(highestTag || 'v0.0.0'),
33
+ latestStableVer: semver.fromTag(highestStableTag || 'v0.0.0'),
34
+ releaseType,
35
+ prereleaseChannel,
36
+ latestChannelVer: highestChannelTag ? semver.fromTag(highestChannelTag) ?? undefined : undefined,
37
+ }));
38
+ }
39
+ exports.getNextTag = getNextTag;
40
+ //# sourceMappingURL=getNextTag.js.map
@@ -0,0 +1,6 @@
1
+ export declare function getTags(prereleaseChannel?: string): {
2
+ highestTag: string | undefined;
3
+ highestStableTag: string | undefined;
4
+ highestChannelTag: string | undefined;
5
+ tagFromWhichToFindCommits: string | undefined;
6
+ };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.getTags = void 0;
30
+ const git = __importStar(require("./services/git"));
31
+ const semver = __importStar(require("./semver"));
32
+ const logger_1 = __importDefault(require("./lib/logger"));
33
+ const colorette_1 = require("colorette");
34
+ function getTags(prereleaseChannel) {
35
+ const recentTags = git.getRecentTags();
36
+ const highestTag = semver.highestTag(recentTags);
37
+ const highestStableTag = semver.highestStableTag(recentTags);
38
+ const highestChannelTag = prereleaseChannel
39
+ ? semver.highestChannelTag(recentTags, prereleaseChannel)
40
+ : undefined;
41
+ // Determine the starting Git tag to compare against when generating
42
+ // release notes or changelogs (i.e. the point “since” which to find commits).
43
+ // If a pre-release channel is specified, and that channel has a tag, and
44
+ // it is higher than the stable tag, use that tag. Otherwise, use the stable tag.
45
+ const tagFromWhichToFindCommits = highestChannelTag
46
+ ? semver.highestTag([highestChannelTag, highestStableTag ?? 'v0.0.0'])
47
+ : highestStableTag;
48
+ !!highestChannelTag && logger_1.default.info(`The last pre-release channel version (${prereleaseChannel}) is: ${(0, colorette_1.bold)(highestChannelTag)}`);
49
+ logger_1.default.info(`The last stable/production version is: ${highestStableTag ? (0, colorette_1.bold)(highestStableTag) : (0, colorette_1.gray)('none')}`);
50
+ logger_1.default.info(`The current/highest version is: ${highestTag ? (0, colorette_1.bold)(highestTag) : (0, colorette_1.gray)('none')}`);
51
+ logger_1.default.info(`Fetching commits since ${tagFromWhichToFindCommits ?? 'the beginning of the repository'}...`);
52
+ return {
53
+ highestTag,
54
+ highestStableTag,
55
+ highestChannelTag,
56
+ tagFromWhichToFindCommits,
57
+ };
58
+ }
59
+ exports.getTags = getTags;
60
+ //# sourceMappingURL=getTags.js.map
package/dist/index.d.ts CHANGED
@@ -20,6 +20,6 @@ export type Config = {
20
20
  commitTypes: CommitType[];
21
21
  branches: ReleaseBranch[];
22
22
  };
23
- export declare function autorel(args: Config): Promise<string | undefined>;
24
23
  export * from './defaults';
25
24
  export * from './config';
25
+ export * from './autorel';
package/dist/index.js CHANGED
@@ -10,149 +10,11 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
15
  };
28
- var __importDefault = (this && this.__importDefault) || function (mod) {
29
- return (mod && mod.__esModule) ? mod : { "default": mod };
30
- };
31
16
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.autorel = void 0;
33
- /* eslint-disable max-lines-per-function */
34
- const semver = __importStar(require("./semver"));
35
- const convCom = __importStar(require("./conventionalcommits"));
36
- const git = __importStar(require("./services/git"));
37
- const npm = __importStar(require("./services/npm"));
38
- const changelog_1 = require("./changelog");
39
- const github = __importStar(require("./services/github"));
40
- const logger_1 = __importDefault(require("./lib/logger"));
41
- const updatePackageJsonVersion_1 = require("./updatePackageJsonVersion");
42
- const sh_1 = require("./services/sh");
43
- const colorette_1 = require("colorette");
44
- const getPrereleaseChannel_1 = require("./getPrereleaseChannel");
45
- async function autorel(args) {
46
- const prereleaseChannel = (0, getPrereleaseChannel_1.getPrereleaseChannel)(args);
47
- if (args.dryRun) {
48
- logger_1.default.warn('Running in dry-run mode. No changes will be made.');
49
- }
50
- if (prereleaseChannel && !args.useVersion) {
51
- const stmt = `Using prerelease channel: ${(0, colorette_1.bold)(prereleaseChannel)}`;
52
- logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
53
- }
54
- else {
55
- const stmt = 'This is a production release.';
56
- logger_1.default.info(!args.useVersion ? stmt : (0, colorette_1.strikethrough)(stmt));
57
- }
58
- const commitTypeMap = new Map(args.commitTypes.map((type) => [type.type, type]));
59
- git.gitFetch();
60
- const recentTags = git.getRecentTags();
61
- const highestTag = semver.highestTag(recentTags);
62
- const highestStableTag = semver.highestStableTag(recentTags);
63
- const highestChannelTag = prereleaseChannel
64
- ? semver.highestChannelTag(recentTags, prereleaseChannel)
65
- : undefined;
66
- // Determine the starting Git tag to compare against when generating
67
- // release notes or changelogs (i.e. the point “since” which to find commits).
68
- // If a pre-release channel is specified, and that channel has a tag, and
69
- // it is higher than the stable tag, use that tag. Otherwise, use the stable tag.
70
- const tagFromWhichToFindCommits = highestChannelTag
71
- ? semver.highestTag([highestChannelTag, highestStableTag ?? 'v0.0.0'])
72
- : highestStableTag;
73
- !!highestChannelTag && logger_1.default.info(`The last pre-release channel version (${prereleaseChannel}) is: ${(0, colorette_1.bold)(highestChannelTag)}`);
74
- logger_1.default.info(`The last stable/production version is: ${highestStableTag ? (0, colorette_1.bold)(highestStableTag) : (0, colorette_1.gray)('none')}`);
75
- logger_1.default.info(`The current/highest version is: ${highestTag ? (0, colorette_1.bold)(highestTag) : (0, colorette_1.gray)('none')}`);
76
- logger_1.default.info(`Fetching commits since ${tagFromWhichToFindCommits ?? 'the beginning of the repository'}...`);
77
- const commits = git.getCommitsFromTag(tagFromWhichToFindCommits);
78
- logger_1.default.info(`Found ${(0, colorette_1.bold)(commits.length.toString())} commit(s).`);
79
- const parsedCommits = commits.map((commit) => convCom.parseConventionalCommit(commit.message, commit.hash))
80
- .filter((commit) => !!commit);
81
- const releaseType = convCom.determineReleaseType(parsedCommits, commitTypeMap);
82
- const releaseTypeStr = (releaseType === 'none' && (0, colorette_1.gray)('none'))
83
- || (releaseType === 'major' && (0, colorette_1.redBright)('major'))
84
- || (releaseType === 'minor' && (0, colorette_1.yellowBright)('minor'))
85
- || (releaseType === 'patch' && (0, colorette_1.greenBright)('patch'));
86
- logger_1.default.info(`The release type is: ${(0, colorette_1.bold)(String(releaseTypeStr))}`);
87
- if (releaseType === 'none' && !args.useVersion) {
88
- logger_1.default.info('No release is needed. Have a nice day (^_^)/');
89
- return;
90
- }
91
- // Validate useVersion & log warnings
92
- if (args.useVersion) {
93
- if (/^v(.+)$/.test(args.useVersion))
94
- throw new Error('useVersion should not start with a "v".');
95
- if (!semver.isValidTag(args.useVersion))
96
- throw new Error('useVersion must be a valid SemVer version');
97
- if (releaseType === 'none') {
98
- logger_1.default.warn(`We didn't find any commmits that would create a release, but you have set 'useVersion', which will force a release as: ${(0, colorette_1.bold)(args.useVersion)}.`);
99
- }
100
- else {
101
- logger_1.default.warn(`The next version was explicitly set by useVersion to be: ${(0, colorette_1.bold)(args.useVersion)}.`);
102
- }
103
- }
104
- const nextTag = args.useVersion
105
- ? `v${args.useVersion}`
106
- : semver.toTag(semver.incrVer({
107
- latestVer: semver.fromTag(highestTag || 'v0.0.0'),
108
- latestStableVer: semver.fromTag(highestStableTag || 'v0.0.0'),
109
- releaseType,
110
- prereleaseChannel,
111
- latestChannelVer: highestChannelTag ? semver.fromTag(highestChannelTag) ?? undefined : undefined,
112
- }));
113
- const changelog = (0, changelog_1.generateChangelog)(parsedCommits, commitTypeMap, args.breakingChangeTitle);
114
- logger_1.default.info(`The next version is: ${(0, colorette_1.bold)(nextTag)}`);
115
- logger_1.default.debug(`The changelog is:\n${changelog}`);
116
- if (args.dryRun)
117
- return;
118
- if (args.preRun) {
119
- logger_1.default.info('Running pre-release bash script...');
120
- (0, sh_1.bash)(args.preRun);
121
- }
122
- git.createAndPushTag(nextTag);
123
- const { owner, repository } = git.getRepo();
124
- !args.skipRelease && github.createRelease({
125
- token: process.env.GITHUB_TOKEN,
126
- owner,
127
- repository,
128
- tag: nextTag,
129
- name: nextTag,
130
- body: changelog,
131
- });
132
- // publish to npm
133
- if (args.publish) {
134
- (0, updatePackageJsonVersion_1.updatePackageJsonVersion)(nextTag);
135
- npm.publishPackage(prereleaseChannel);
136
- }
137
- process.env.NEXT_VERSION = nextTag.replace('v', '');
138
- process.env.NEXT_TAG = nextTag;
139
- // run post-release bash script
140
- if (args.run) {
141
- logger_1.default.info('Running post-release bash script...');
142
- (0, sh_1.bash)(args.run);
143
- }
144
- else if (args.runScript) {
145
- // TODO: delete this block in the next major version
146
- logger_1.default.warn('----------------------------');
147
- logger_1.default.warn('🚨 The "runScript" option is deprecated. Please use "run" instead. 🚨');
148
- logger_1.default.warn('🚨 The "runScript" option will be removed in the next major version. 🚨');
149
- logger_1.default.warn('----------------------------');
150
- logger_1.default.info('Running post-release bash script...');
151
- (0, sh_1.bash)(args.runScript);
152
- }
153
- return nextTag.replace('v', '');
154
- }
155
- exports.autorel = autorel;
156
17
  __exportStar(require("./defaults"), exports);
157
18
  __exportStar(require("./config"), exports);
19
+ __exportStar(require("./autorel"), exports);
158
20
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ import { Config } from '.';
2
+ export declare function runUserPreleaseScripts(args: Config): void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runUserPreleaseScripts = void 0;
7
+ const logger_1 = __importDefault(require("./lib/logger"));
8
+ const sh_1 = require("./services/sh");
9
+ function runUserPreleaseScripts(args) {
10
+ if (!args.preRun)
11
+ return;
12
+ logger_1.default.info('Running pre-release bash script...');
13
+ (0, sh_1.bash)(args.preRun);
14
+ }
15
+ exports.runUserPreleaseScripts = runUserPreleaseScripts;
16
+ //# sourceMappingURL=runUserPrereleaseScripts.js.map
@@ -0,0 +1,2 @@
1
+ import { Config } from '.';
2
+ export declare function runUserReleaseScripts(args: Config): void;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runUserReleaseScripts = void 0;
7
+ const logger_1 = __importDefault(require("./lib/logger"));
8
+ const sh_1 = require("./services/sh");
9
+ function runUserReleaseScripts(args) {
10
+ if (args.run) {
11
+ logger_1.default.info('Running post-release bash script...');
12
+ (0, sh_1.bash)(args.run);
13
+ }
14
+ else if (args.runScript) {
15
+ // TODO: delete this block in the next major version
16
+ logger_1.default.warn('----------------------------');
17
+ logger_1.default.warn('🚨 The "runScript" option is deprecated. Please use "run" instead. 🚨');
18
+ logger_1.default.warn('🚨 The "runScript" option will be removed in the next major version. 🚨');
19
+ logger_1.default.warn('----------------------------');
20
+ logger_1.default.info('Running post-release bash script...');
21
+ (0, sh_1.bash)(args.runScript);
22
+ }
23
+ }
24
+ exports.runUserReleaseScripts = runUserReleaseScripts;
25
+ //# sourceMappingURL=runUserReleaseScripts.js.map
@@ -4,6 +4,7 @@ export type Commit = {
4
4
  };
5
5
  export declare function gitFetch(): void;
6
6
  export declare function createAndPushTag(tag: string): void;
7
+ export declare function deleteTagFromLocalAndRemote(tag: string): void;
7
8
  /**
8
9
  * Returns the most recent 100 tags in the repository loosely sorted by version
9
10
  * (does not take into account pre-release tags).
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCurrentBranch = exports.getCommitsFromTag = exports.getRepo = exports.getRecentTags = exports.createAndPushTag = exports.gitFetch = void 0;
3
+ exports.getCurrentBranch = exports.getCommitsFromTag = exports.getRepo = exports.getRecentTags = exports.deleteTagFromLocalAndRemote = exports.createAndPushTag = exports.gitFetch = void 0;
4
4
  const sh_1 = require("./sh");
5
5
  function gitFetch() {
6
6
  (0, sh_1.$) `git fetch`;
@@ -11,6 +11,11 @@ function createAndPushTag(tag) {
11
11
  (0, sh_1.$) `git push origin ${tag}`;
12
12
  }
13
13
  exports.createAndPushTag = createAndPushTag;
14
+ function deleteTagFromLocalAndRemote(tag) {
15
+ (0, sh_1.$) `git tag -d ${tag}`;
16
+ (0, sh_1.$) `git push origin :refs/tags/${tag}`;
17
+ }
18
+ exports.deleteTagFromLocalAndRemote = deleteTagFromLocalAndRemote;
14
19
  /**
15
20
  * Returns the most recent 100 tags in the repository loosely sorted by version
16
21
  * (does not take into account pre-release tags).
@@ -0,0 +1,2 @@
1
+ import { ReleaseType } from './semver';
2
+ export declare function validateUseVersion(useVersion: string | undefined, releaseType: ReleaseType): void;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateUseVersion = void 0;
7
+ const colorette_1 = require("colorette");
8
+ const logger_1 = __importDefault(require("./lib/logger"));
9
+ const semver_1 = require("./semver");
10
+ function validateUseVersion(useVersion, releaseType) {
11
+ if (!useVersion)
12
+ return;
13
+ if (/^v(.+)$/.test(useVersion))
14
+ throw new Error('useVersion should not start with a "v".');
15
+ if (!(0, semver_1.isValidTag)(useVersion))
16
+ throw new Error('useVersion must be a valid SemVer version');
17
+ if (releaseType === 'none') {
18
+ logger_1.default.warn(`We didn't find any commmits that would create a release, but you have set 'useVersion', which will force a release as: ${(0, colorette_1.bold)(useVersion)}.`);
19
+ }
20
+ else {
21
+ logger_1.default.warn(`The next version was explicitly set by useVersion to be: ${(0, colorette_1.bold)(useVersion)}.`);
22
+ }
23
+ }
24
+ exports.validateUseVersion = validateUseVersion;
25
+ //# sourceMappingURL=validateUseVersion.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autorel",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "Automate semantic releases based on conventional commits. Similar to semantic-release but much simpler.",
5
5
  "license": "MIT",
6
6
  "author": "Marc H. Weiner <mhweiner234@gmail.com> (https://mhweiner.com)",