release-monorepo-semantically 1.2.0 → 1.3.0

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.
@@ -9,14 +9,14 @@ interface ReleaseOptions {
9
9
  }
10
10
  export declare class MonorepoController {
11
11
  private fileSystemService;
12
- private vscService;
12
+ private vcsService;
13
13
  private changelog;
14
14
  private releaseCommit;
15
15
  private packageManager;
16
16
  private logger;
17
17
  private packages;
18
18
  private rootPackageJson;
19
- constructor(fileSystemService: NodeFileSystemService, vscService: GitService, changelog: ChangelogRenderer, releaseCommit: ReleaseCommit, packageManager: PackageManager, logger: ConsoleLogger);
19
+ constructor(fileSystemService: NodeFileSystemService, vcsService: GitService, changelog: ChangelogRenderer, releaseCommit: ReleaseCommit, packageManager: PackageManager, logger: ConsoleLogger);
20
20
  discoverRootPackageJSON(): void;
21
21
  discoverPackages(): void;
22
22
  private resolveWorkspacePackageJsonPath;
@@ -27,6 +27,9 @@ export declare class MonorepoController {
27
27
  private isNonEmptyChangeSet;
28
28
  private parseVersionBump;
29
29
  private collectReleaseCommits;
30
+ private renderChangelog;
31
+ private createTags;
32
+ private toReleaseCommitPackage;
30
33
  release(options?: ReleaseOptions): void;
31
34
  }
32
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MonorepoController.d.ts","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASzD,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAAe;gBAG5B,iBAAiB,EAAE,qBAAqB,EACxC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,iBAAiB,EAC5B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,aAAa;IAG/B,uBAAuB,IAAI,IAAI;IAI/B,gBAAgB,IAAI,IAAI;IAcxB,OAAO,CAAC,+BAA+B;IAKvC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;CA8D5C"}
1
+ {"version":3,"file":"MonorepoController.d.ts","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AASzD,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2BD,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAAe;gBAG5B,iBAAiB,EAAE,qBAAqB,EACxC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,iBAAiB,EAC5B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,aAAa;IAG/B,uBAAuB,IAAI,IAAI;IAI/B,gBAAgB,IAAI,IAAI;IAcxB,OAAO,CAAC,+BAA+B;IAKvC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;CA2C5C"}
@@ -10,16 +10,16 @@ const sortLessDependenciesFirst_1 = require("./sortLessDependenciesFirst");
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
11
  class MonorepoController {
12
12
  fileSystemService;
13
- vscService;
13
+ vcsService;
14
14
  changelog;
15
15
  releaseCommit;
16
16
  packageManager;
17
17
  logger;
18
18
  packages = [];
19
19
  rootPackageJson;
20
- constructor(fileSystemService, vscService, changelog, releaseCommit, packageManager, logger) {
20
+ constructor(fileSystemService, vcsService, changelog, releaseCommit, packageManager, logger) {
21
21
  this.fileSystemService = fileSystemService;
22
- this.vscService = vscService;
22
+ this.vcsService = vcsService;
23
23
  this.changelog = changelog;
24
24
  this.releaseCommit = releaseCommit;
25
25
  this.packageManager = packageManager;
@@ -83,59 +83,80 @@ class MonorepoController {
83
83
  parseVersionBump(commits, versionBumpFromDependency) {
84
84
  return Math.max(SemVerBumpType_1.SemVerBumpType.NONE, ...commits.map((commit) => (commit.isBreaking ? SemVerBumpType_1.SemVerBumpType.MAJOR : commit.bumpType)), versionBumpFromDependency);
85
85
  }
86
- collectReleaseCommits(commits, packageName) {
87
- return commits.filter((commit) => commit.isReleaseTrigger() && commit.matchesScope(packageName));
86
+ collectReleaseCommits(commits) {
87
+ return commits.filter((commit) => commit.isReleaseTrigger());
88
+ }
89
+ renderChangelog(pkg, currentVersion, packageVersion, dependencyUpdates, releaseCommits) {
90
+ for (const commit of releaseCommits) {
91
+ this.changelog.addLog(commit);
92
+ }
93
+ this.changelog.render({
94
+ packageName: pkg.name,
95
+ packageVersion,
96
+ previousVersion: currentVersion,
97
+ packagePath: this.getPackageDir(pkg),
98
+ dependencyUpdates,
99
+ });
100
+ this.logger.info(`changelog(${pkg.name}) generated`);
101
+ }
102
+ createTags(releasedPackages) {
103
+ for (const releasedPackage of releasedPackages) {
104
+ this.vcsService.createTag(`${releasedPackage.pkg.name}@${releasedPackage.version}`);
105
+ this.logger.info(`createTag ${releasedPackage.pkg.name}@${releasedPackage.version}`);
106
+ }
107
+ }
108
+ toReleaseCommitPackage(pkg, previousVersion, version, commits, dependencyUpdates) {
109
+ return {
110
+ name: pkg.name,
111
+ version,
112
+ previousVersion,
113
+ commits: commits.map((commit) => ({
114
+ type: commit.type,
115
+ subject: commit.subject,
116
+ isBreaking: commit.isBreaking,
117
+ })),
118
+ dependencyUpdates: dependencyUpdates.map((dependencyUpdate) => ({
119
+ packageName: dependencyUpdate.packageName,
120
+ oldVersion: dependencyUpdate.oldVersion,
121
+ newVersion: dependencyUpdate.newVersion,
122
+ })),
123
+ };
88
124
  }
89
125
  release(options = {}) {
90
126
  const { dryRun = false } = options;
91
127
  const sorted = (0, sortLessDependenciesFirst_1.sortLessDependenciesFirst)(this.packages.filter((p) => !p.isPrivate));
92
- const versionBumpMap = new Map();
93
128
  const releasedVersions = new Map(this.packages.map((pkg) => [pkg.name, pkg.version]));
129
+ const releasedPackages = [];
130
+ const releaseCommitPackages = [];
94
131
  for (const pkg of sorted) {
95
132
  const currentVersion = releasedVersions.get(pkg.name) ?? pkg.version;
96
- const commits = this.vscService.findManyCommitsSinceTag(`${pkg.name}@${currentVersion}`);
133
+ const commits = this.vcsService.findManyCommitsSinceTag(`${pkg.name}@${currentVersion}`);
134
+ const scopedCommits = commits.filter((commit) => commit.matchesScope(pkg.name));
97
135
  const dependencyUpdates = this.getDependencyUpdates(pkg, releasedVersions);
98
136
  const versionBumpFromDependencies = this.isNonEmptyChangeSet(dependencyUpdates) ? SemVerBumpType_1.SemVerBumpType.MINOR : SemVerBumpType_1.SemVerBumpType.NONE;
99
- const versionBump = this.parseVersionBump(commits.filter((commit) => commit.matchesScope(pkg.name)), versionBumpFromDependencies);
100
- versionBumpMap.set(pkg.name, versionBump);
137
+ const versionBump = this.parseVersionBump(scopedCommits, versionBumpFromDependencies);
101
138
  if (versionBump === SemVerBumpType_1.SemVerBumpType.NONE) {
102
139
  this.logger.info(`bump(${pkg.name}) ${currentVersion} (skipped)`);
140
+ continue;
103
141
  }
104
- else {
105
- const newVersion = (0, SemVerBumpType_1.bumpVersion)(currentVersion, versionBump);
106
- this.applyDependencyUpdates(pkg, dependencyUpdates);
107
- this.packageManager.bumpVersion(pkg, versionBump);
108
- releasedVersions.set(pkg.name, newVersion);
109
- this.logger.info(`bump(${pkg.name}) ${currentVersion} (${(0, SemVerBumpType_1.bumpTypeToString)(versionBump)})`);
110
- }
111
- const releaseCommits = this.collectReleaseCommits(commits, pkg.name);
112
- for (const commit of releaseCommits) {
113
- this.changelog.addLog(commit);
114
- }
115
- this.changelog.render({
116
- packageName: pkg.name,
117
- packageVersion: releasedVersions.get(pkg.name),
118
- previousVersion: currentVersion,
119
- packagePath: this.getPackageDir(pkg),
120
- dependencyUpdates,
121
- });
122
- this.logger.info(`changelog(${pkg.name}) generated`);
142
+ const newVersion = (0, SemVerBumpType_1.bumpVersion)(currentVersion, versionBump);
143
+ const releaseCommits = this.collectReleaseCommits(scopedCommits);
144
+ this.applyDependencyUpdates(pkg, dependencyUpdates);
145
+ this.packageManager.bumpVersion(pkg, versionBump);
146
+ releasedVersions.set(pkg.name, newVersion);
147
+ releasedPackages.push({ pkg, version: newVersion });
148
+ releaseCommitPackages.push(this.toReleaseCommitPackage(pkg, currentVersion, newVersion, releaseCommits, dependencyUpdates));
149
+ this.logger.info(`bump(${pkg.name}) ${currentVersion} (${(0, SemVerBumpType_1.bumpTypeToString)(versionBump)})`);
150
+ this.renderChangelog(pkg, currentVersion, newVersion, dependencyUpdates, releaseCommits);
123
151
  }
124
152
  if (dryRun) {
125
153
  return;
126
154
  }
127
155
  // create release commit
128
- this.releaseCommit.commit({});
156
+ this.releaseCommit.commit({ packages: releaseCommitPackages });
129
157
  this.logger.info(`releaseCommit generated`);
130
158
  // create git tags for every released package
131
- for (const [packageName, versionBump] of versionBumpMap) {
132
- if (versionBump === SemVerBumpType_1.SemVerBumpType.NONE) {
133
- continue;
134
- }
135
- const pkg = this.packages.find((p) => p.name === packageName);
136
- this.vscService.createTag(`${pkg.name}@${releasedVersions.get(packageName)}`);
137
- this.logger.info(`createTag ${pkg.name}@${releasedVersions.get(packageName)}`);
138
- }
159
+ this.createTags(releasedPackages);
139
160
  }
140
161
  }
141
162
  exports.MonorepoController = MonorepoController;
@@ -1 +1 @@
1
- {"version":3,"file":"MonorepoController.js","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonorepoController.js","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
4
  const MonorepoController_1 = require("./MonorepoController");
5
+ const NpmPackage_1 = require("./models/NpmPackage");
6
+ const ConventionalCommit_1 = require("./models/ConventionalCommit");
5
7
  (0, vitest_1.describe)('MonorepoController.discoverPackages', () => {
6
8
  (0, vitest_1.it)('given directory workspaces when packages are discovered then package.json files are resolved', () => {
7
9
  const packageJsonByPath = new Map([
@@ -37,4 +39,103 @@ const MonorepoController_1 = require("./MonorepoController");
37
39
  (0, vitest_1.expect)(controller.packages.map((pkg) => pkg.name)).toEqual(['pkg-a', 'pkg-b']);
38
40
  });
39
41
  });
42
+ (0, vitest_1.describe)('MonorepoController.release', () => {
43
+ (0, vitest_1.it)('given a skipped bump when release runs then changelog is not rendered', () => {
44
+ const fileSystemService = {
45
+ readJson: vitest_1.vi.fn(),
46
+ };
47
+ const vcs = {
48
+ findManyCommitsSinceTag: vitest_1.vi.fn().mockReturnValue([]),
49
+ createTag: vitest_1.vi.fn(),
50
+ };
51
+ const changelog = {
52
+ addLog: vitest_1.vi.fn(),
53
+ render: vitest_1.vi.fn(),
54
+ };
55
+ const releaseCommit = {
56
+ commit: vitest_1.vi.fn(),
57
+ };
58
+ const packageManager = {
59
+ bumpVersion: vitest_1.vi.fn(),
60
+ };
61
+ const logger = {
62
+ info: vitest_1.vi.fn(),
63
+ };
64
+ const controller = new MonorepoController_1.MonorepoController(fileSystemService, vcs, changelog, releaseCommit, packageManager, logger);
65
+ controller.packages = [
66
+ NpmPackage_1.NpmPackage.createFromPackage({
67
+ name: 'pkg-a',
68
+ version: '1.0.0',
69
+ }, '/repo/packages/pkg-a/package.json'),
70
+ ];
71
+ controller.release();
72
+ (0, vitest_1.expect)(changelog.render).not.toHaveBeenCalled();
73
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('bump(pkg-a) 1.0.0 (skipped)');
74
+ (0, vitest_1.expect)(logger.info).not.toHaveBeenCalledWith('changelog(pkg-a) generated');
75
+ (0, vitest_1.expect)(releaseCommit.commit).toHaveBeenCalled();
76
+ });
77
+ (0, vitest_1.it)('given multiple bumped packages when release runs then release commit receives all package changes', () => {
78
+ const fileSystemService = {
79
+ readJson: vitest_1.vi.fn((filePath) => {
80
+ if (filePath === '/repo/packages/pkg-a/package.json') {
81
+ return { name: 'pkg-a', version: '1.0.0' };
82
+ }
83
+ if (filePath === '/repo/packages/pkg-b/package.json') {
84
+ return { name: 'pkg-b', version: '2.0.0' };
85
+ }
86
+ return undefined;
87
+ }),
88
+ writeJson: vitest_1.vi.fn(),
89
+ };
90
+ const vcs = {
91
+ findManyCommitsSinceTag: vitest_1.vi
92
+ .fn()
93
+ .mockImplementation((tag) => tag === 'pkg-a@1.0.0' ? [ConventionalCommit_1.ConventionalCommit.parse('feat(pkg-a): add feature')] : [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-b): resolve bug')]),
94
+ createTag: vitest_1.vi.fn(),
95
+ };
96
+ const changelog = {
97
+ addLog: vitest_1.vi.fn(),
98
+ render: vitest_1.vi.fn(),
99
+ };
100
+ const releaseCommit = {
101
+ commit: vitest_1.vi.fn(),
102
+ };
103
+ const packageManager = {
104
+ bumpVersion: vitest_1.vi.fn(),
105
+ };
106
+ const logger = {
107
+ info: vitest_1.vi.fn(),
108
+ };
109
+ const controller = new MonorepoController_1.MonorepoController(fileSystemService, vcs, changelog, releaseCommit, packageManager, logger);
110
+ controller.packages = [
111
+ NpmPackage_1.NpmPackage.createFromPackage({
112
+ name: 'pkg-a',
113
+ version: '1.0.0',
114
+ }, '/repo/packages/pkg-a/package.json'),
115
+ NpmPackage_1.NpmPackage.createFromPackage({
116
+ name: 'pkg-b',
117
+ version: '2.0.0',
118
+ }, '/repo/packages/pkg-b/package.json'),
119
+ ];
120
+ controller.release();
121
+ (0, vitest_1.expect)(releaseCommit.commit).toHaveBeenCalledWith({
122
+ packages: [
123
+ {
124
+ name: 'pkg-a',
125
+ version: '1.1.0',
126
+ previousVersion: '1.0.0',
127
+ commits: [{ type: 'feat', subject: 'add feature', isBreaking: false }],
128
+ dependencyUpdates: [],
129
+ },
130
+ {
131
+ name: 'pkg-b',
132
+ version: '2.0.1',
133
+ previousVersion: '2.0.0',
134
+ commits: [{ type: 'fix', subject: 'resolve bug', isBreaking: false }],
135
+ dependencyUpdates: [],
136
+ },
137
+ ],
138
+ });
139
+ });
140
+ });
40
141
  //# sourceMappingURL=MonorepoController.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonorepoController.spec.js","sourceRoot":"","sources":["../src/MonorepoController.spec.ts"],"names":[],"mappings":";;AAAA,mCAAkD;AAClD,6DAA0D;AAG1D,IAAA,iBAAQ,EAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAA,WAAE,EAAC,8FAA8F,EAAE,GAAG,EAAE;QACtG,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAsB;YACrD;gBACE,+BAA+B;gBAC/B;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF;YACD;gBACE,+BAA+B;gBAC/B;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO;iBACjB;aACF;SACF,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG;YACxB,cAAc,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;YAC9F,QAAQ,EAAE,WAAE,CAAC,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtE,UAAU,EAAE,WAAE,CAAC,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACzE,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,uCAAkB,CAAC,iBAA0B,EAAE,EAAW,EAAE,EAAW,EAAE,EAAW,EAAE,EAAW,EAAE,EAAW,CAAC,CAAC;QAEtI,UAA0D,CAAC,eAAe,GAAG;YAC5E,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,CAAC,YAAY,CAAC;SAC3B,CAAC;QAEF,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAA,eAAM,EAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;QACzF,IAAA,eAAM,EAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;QACzF,IAAA,eAAM,EAAE,UAA+D,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvI,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"MonorepoController.spec.js","sourceRoot":"","sources":["../src/MonorepoController.spec.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ class GitService {
26
26
  commit(message) {
27
27
  const normalizedMessage = message.trim();
28
28
  (0, node_child_process_1.execSync)('git add .');
29
- (0, node_child_process_1.execSync)(`git commit --allow-empty -m ${JSON.stringify(normalizedMessage)}`);
29
+ (0, node_child_process_1.execSync)('git commit --allow-empty -F -', { input: normalizedMessage });
30
30
  }
31
31
  push(includeTags) {
32
32
  (0, node_child_process_1.execSync)('git push');
@@ -1 +1 @@
1
- {"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../src/services/GitService.ts"],"names":[],"mappings":";;;AAAA,2DAA8C;AAC9C,qEAAkE;AAElE,MAAa,UAAU;IACrB,uBAAuB,CAAC,QAAgB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,WAAW,KAAK,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3F,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,4CAA4C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,IAAA,6BAAQ,EAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAA,6BAAQ,EAAC,WAAW,CAAC,CAAC;QACtB,IAAA,6BAAQ,EAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,CAAC,WAAoB;QACvB,IAAA,6BAAQ,EAAC,UAAU,CAAC,CAAC;QACrB,IAAI,WAAW,EAAE,CAAC;YAChB,IAAA,6BAAQ,EAAC,iBAAiB,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AAjCD,gCAiCC"}
1
+ {"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../src/services/GitService.ts"],"names":[],"mappings":";;;AAAA,2DAA8C;AAC9C,qEAAkE;AAElE,MAAa,UAAU;IACrB,uBAAuB,CAAC,QAAgB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,MAAM,MAAM,GAAG,IAAA,6BAAQ,EAAC,WAAW,KAAK,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3F,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,IAAI,CAAC;YACH,IAAA,6BAAQ,EAAC,4CAA4C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,IAAA,6BAAQ,EAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACzC,IAAA,6BAAQ,EAAC,WAAW,CAAC,CAAC;QACtB,IAAA,6BAAQ,EAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC,WAAoB;QACvB,IAAA,6BAAQ,EAAC,UAAU,CAAC,CAAC;QACrB,IAAI,WAAW,EAAE,CAAC;YAChB,IAAA,6BAAQ,EAAC,iBAAiB,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AAjCD,gCAiCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-monorepo-semantically",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "cli commands to manage versioning of package in monorepo and generate changelog",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -1 +1,16 @@
1
- ci: release [skip-ci]
1
+ ci(release): publish [skip-ci]
2
+ {{#if packages}}
3
+
4
+ {{#each packages}}
5
+ ## {{this.name}}@{{this.version}}
6
+
7
+ {{#each this.commits}}
8
+ - {{this.type}}{{#if this.isBreaking}}!{{/if}}: {{this.subject}}
9
+ {{/each}}
10
+ {{#each this.dependencyUpdates}}
11
+ - deps: update {{this.packageName}} from {{this.oldVersion}} to {{this.newVersion}}
12
+ {{/each}}
13
+
14
+ {{/each}}
15
+ Affected: {{#each packages}}{{this.name}}@{{this.version}}{{#unless @last}},{{/unless}}{{/each}}
16
+ {{/if}}