Skip to content

Commit efb97da

Browse files
authored
Rename ChangelogGroupOptions.masterPackageName to mainPackageName (#1065)
1 parent 1796759 commit efb97da

8 files changed

Lines changed: 50 additions & 31 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "Add ChangelogGroupOptions.mainPackageName and deprecate ChangelogGroupOptions.masterPackageName",
4+
"packageName": "beachball",
5+
"email": "elcraig@microsoft.com",
6+
"dependentChangeType": "patch"
7+
}

src/__functional__/changefile/readChangeFiles.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ describe('readChangeFiles', () => {
156156
changelog: {
157157
groups: [
158158
{
159-
masterPackageName: 'foo',
159+
mainPackageName: 'foo',
160160
changelogPath: repo.pathTo('packages/foo'),
161161
include: ['packages/foo', 'packages/bar'],
162162
},

src/__functional__/changelog/writeChangelog.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ describe('writeChangelog', () => {
283283
changelog: {
284284
groups: [
285285
{
286-
masterPackageName: 'foo',
286+
mainPackageName: 'foo',
287287
changelogPath: '.',
288288
include: ['packages/*'],
289289
},
@@ -354,7 +354,7 @@ describe('writeChangelog', () => {
354354
changelog: {
355355
groups: [
356356
{
357-
masterPackageName: 'foo',
357+
mainPackageName: 'foo',
358358
changelogPath: 'packages/foo',
359359
include: ['packages/foo', 'packages/bar'],
360360
},
@@ -380,7 +380,7 @@ describe('writeChangelog', () => {
380380
repo = sharedMonoRepo;
381381
const options = getOptions({
382382
changelog: {
383-
groups: [{ masterPackageName: 'foo', changelogPath: '.', include: ['packages/foo', 'packages/baz'] }],
383+
groups: [{ mainPackageName: 'foo', changelogPath: '.', include: ['packages/foo', 'packages/baz'] }],
384384
},
385385
});
386386

@@ -402,7 +402,7 @@ describe('writeChangelog', () => {
402402
changelog: {
403403
groups: [
404404
// The grouped changelog overlaps with the changelog for packages/foo.
405-
{ masterPackageName: 'foo', changelogPath: 'packages/foo', include: ['packages/foo', 'packages/baz'] },
405+
{ mainPackageName: 'foo', changelogPath: 'packages/foo', include: ['packages/foo', 'packages/baz'] },
406406
],
407407
},
408408
});

src/__functional__/options/getOptions.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ describe('getOptions', () => {
6868
publish: false,
6969
disallowedChangeTypes: null,
7070
changelog: {
71-
groups: [{ masterPackageName: 'foo', include: ['foo'], changelogPath: '.' }],
71+
groups: [{ mainPackageName: 'foo', include: ['foo'], changelogPath: '.' }],
7272
},
7373
};
7474
const config = inDirectory(repo.rootPath, () => {

src/changelog/mergeChangelogs.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ import type { ChangeType } from '../types/ChangeInfo';
55

66
/**
77
* Merge multiple package changelogs into one.
8-
* `name` and `version` will use the values from `primaryPackage`'s changelog.
8+
* `name` and `version` will use the values from `mainPackage`'s changelog.
99
* `comments` are merged. `date` will be now.
1010
*/
1111
export function mergeChangelogs(
1212
changelogs: PackageChangelog[],
13-
primaryPackage: PackageInfo
13+
mainPackage: PackageInfo
1414
): PackageChangelog | undefined {
15-
if (changelogs.length < 1 || !primaryPackage) {
15+
if (changelogs.length < 1 || !mainPackage) {
1616
return undefined;
1717
}
1818

1919
const result: PackageChangelog = {
20-
name: primaryPackage.name,
21-
version: primaryPackage.version,
22-
tag: generateTag(primaryPackage.name, primaryPackage.version),
20+
name: mainPackage.name,
21+
version: mainPackage.version,
22+
tag: generateTag(mainPackage.name, mainPackage.version),
2323
date: new Date(),
2424
comments: {},
2525
};

src/changelog/writeChangelog.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,23 @@ async function writeGroupedChangelog(
6262
const changelogs = getPackageChangelogs({ changeFileChangeInfos, calculatedChangeTypes, packageInfos }, options);
6363

6464
const groupedChangelogs: {
65-
[changelogAbsDir: string]: { changelogs: PackageChangelog[]; masterPackage: PackageInfo };
65+
[changelogAbsDir: string]: { changelogs: PackageChangelog[]; mainPackage: PackageInfo };
6666
} = {};
6767

6868
// Validate groups and initialize groupedChangelogs
69-
for (const { masterPackageName, changelogAbsDir } of changelogGroups) {
70-
const masterPackage = packageInfos[masterPackageName];
71-
if (!masterPackage) {
72-
console.warn(`master package ${masterPackageName} does not exist.`);
69+
for (const group of changelogGroups) {
70+
const { changelogAbsDir } = group;
71+
const mainPackageName = 'mainPackageName' in group ? group.mainPackageName : group.masterPackageName;
72+
const mainPackage = packageInfos[mainPackageName];
73+
if (!mainPackage) {
74+
console.warn(`main package ${mainPackageName} does not exist.`);
7375
continue;
7476
}
7577
if (!fs.existsSync(changelogAbsDir)) {
7678
console.warn(`changelog path ${changelogAbsDir} does not exist.`);
7779
continue;
7880
}
79-
groupedChangelogs[changelogAbsDir] = { masterPackage, changelogs: [] };
81+
groupedChangelogs[changelogAbsDir] = { mainPackage, changelogs: [] };
8082
}
8183

8284
// Put changelogs into groups
@@ -94,7 +96,7 @@ async function writeGroupedChangelog(
9496

9597
// Write each grouped changelog if it's not empty
9698
for (const [groupAbsDir, group] of Object.entries(groupedChangelogs)) {
97-
const groupedChangelog = mergeChangelogs(group.changelogs, group.masterPackage);
99+
const groupedChangelog = mergeChangelogs(group.changelogs, group.mainPackage);
98100
if (groupedChangelog) {
99101
await writeChangelogFiles({
100102
options,

src/types/ChangelogOptions.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,7 @@ export interface ChangelogOptions {
6262
includeCommitHashes?: boolean;
6363
}
6464

65-
/**
66-
* Options for generating a changelog for a group of packages.
67-
*/
68-
export interface ChangelogGroupOptions {
69-
/**
70-
* The main package which a group of changes bubbles up to.
71-
* All changes within the group are used to describe changes for the master package.
72-
*/
73-
masterPackageName: string;
74-
65+
interface ChangelogGroupOptionsBase {
7566
/**
7667
* minimatch pattern(s) for package paths to include in this group.
7768
* Patterns are relative to the repo root and must use forward slashes.
@@ -95,6 +86,23 @@ export interface ChangelogGroupOptions {
9586
changelogPath: string;
9687
}
9788

89+
/**
90+
* Options for generating a changelog for a group of packages.
91+
*/
92+
export type ChangelogGroupOptions =
93+
| (ChangelogGroupOptionsBase & {
94+
/**
95+
* The main package which a group of changes bubbles up to.
96+
* All changes within the group are used to describe changes for the main package.
97+
*/
98+
mainPackageName: string;
99+
})
100+
| (ChangelogGroupOptionsBase & {
101+
/** @deprecated Use `mainPackageName` */
102+
// Change the type back to a single interface once this is removed
103+
masterPackageName: string;
104+
});
105+
98106
/**
99107
* Info used for rendering the changelog markdown for a particular package version.
100108
*/

src/validation/isValidChangelogOptions.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ export function isValidChangelogOptions(options: ChangelogOptions): boolean {
66
return true;
77
}
88

9-
const badGroups = options.groups.filter(group => !group.changelogPath || !group.masterPackageName || !group.include);
9+
const badGroups = options.groups.filter(
10+
group => !group.changelogPath || !('masterPackageName' in group || 'mainPackageName' in group) || !group.include
11+
);
1012

1113
if (badGroups.length) {
1214
console.error(
13-
'ERROR: "changelog.groups" entries must define "changelogPath", "masterPackageName", and "include". ' +
15+
'ERROR: "changelog.groups" entries must define "changelogPath", "mainPackageName", and "include". ' +
1416
'Found invalid groups:\n' +
1517
badGroups.map(group => ' ' + singleLineStringify(group)).join('\n')
1618
);

0 commit comments

Comments
 (0)