Now that every version of a package published has a corresponding entry in it's CHANGELOG we no longer need the isPublished flag. Remove it.
This commit is contained in:
parent
29042e1939
commit
dd87588dfe
@ -91,7 +91,7 @@ export const postpublishUtils = {
|
||||
);
|
||||
},
|
||||
async publishReleaseNotesAsync(cwd: string, packageName: string, version: string, assets: string[]): Promise<void> {
|
||||
const notes = this.getReleaseNotes(packageName);
|
||||
const notes = this.getReleaseNotes(packageName, version);
|
||||
const releaseName = this.getReleaseName(packageName, version);
|
||||
const tag = this.getTag(packageName, version);
|
||||
const finalAssets = this.adjustAssetPaths(cwd, assets);
|
||||
@ -109,9 +109,8 @@ export const postpublishUtils = {
|
||||
reuseDraftOnly: false,
|
||||
assets,
|
||||
});
|
||||
this.updateChangelogIsPublished(packageName);
|
||||
},
|
||||
getReleaseNotes(packageName: string) {
|
||||
getReleaseNotes(packageName: string, version: string) {
|
||||
const packageNameWithNamespace = packageName.replace('@0xproject/', '');
|
||||
const changelogJSONPath = path.join(
|
||||
constants.monorepoRootPath,
|
||||
@ -122,33 +121,20 @@ export const postpublishUtils = {
|
||||
const changelogJSON = fs.readFileSync(changelogJSONPath, 'utf-8');
|
||||
const changelogs = JSON.parse(changelogJSON);
|
||||
const latestLog = changelogs[0];
|
||||
if (_.isUndefined(latestLog.isPublished)) {
|
||||
let notes = '';
|
||||
_.each(latestLog.changes, change => {
|
||||
notes += `* ${change.note}`;
|
||||
if (change.pr) {
|
||||
notes += ` (${change.pr})`;
|
||||
}
|
||||
notes += `\n`;
|
||||
});
|
||||
return notes;
|
||||
// We sanity check that the version for the changelog notes we are about to publish to Github
|
||||
// correspond to the new version of the package.
|
||||
if (version !== latestLog.version) {
|
||||
throw new Error('Expected CHANGELOG.json latest entry version to coincide with published version.');
|
||||
}
|
||||
return 'N/A';
|
||||
},
|
||||
updateChangelogIsPublished(packageName: string) {
|
||||
const packageNameWithNamespace = packageName.replace('@0xproject/', '');
|
||||
const changelogJSONPath = path.join(
|
||||
constants.monorepoRootPath,
|
||||
'packages',
|
||||
packageNameWithNamespace,
|
||||
'CHANGELOG.json',
|
||||
);
|
||||
const changelogJSON = fs.readFileSync(changelogJSONPath, 'utf-8');
|
||||
const changelogs = JSON.parse(changelogJSON);
|
||||
const latestLog = changelogs[0];
|
||||
latestLog.isPublished = true;
|
||||
changelogs[0] = latestLog;
|
||||
fs.writeFileSync(changelogJSONPath, JSON.stringify(changelogs, null, '\t'));
|
||||
let notes = '';
|
||||
_.each(latestLog.changes, change => {
|
||||
notes += `* ${change.note}`;
|
||||
if (change.pr) {
|
||||
notes += ` (${change.pr})`;
|
||||
}
|
||||
notes += `\n`;
|
||||
});
|
||||
return notes;
|
||||
},
|
||||
getTag(packageName: string, version: string) {
|
||||
return `${packageName}@${version}`;
|
||||
|
@ -48,7 +48,7 @@ const semverNameToIndex: { [semver: string]: number } = {
|
||||
}
|
||||
|
||||
const currentVersion = lernaPackage.package.version;
|
||||
const shouldAddNewEntry = shouldAddNewChangelogEntry(changelogs);
|
||||
const shouldAddNewEntry = shouldAddNewChangelogEntry(currentVersion, changelogs);
|
||||
if (shouldAddNewEntry) {
|
||||
// Create a new entry for a patch version with generic changelog entry.
|
||||
const nextPatchVersion = utils.getNextPatchVersion(currentVersion);
|
||||
@ -174,12 +174,13 @@ function getChangelogJSONOrCreateIfMissing(packageName: string, changelogPath: s
|
||||
}
|
||||
}
|
||||
|
||||
function shouldAddNewChangelogEntry(changelogs: Changelog[]): boolean {
|
||||
function shouldAddNewChangelogEntry(currentVersion: string, changelogs: Changelog[]): boolean {
|
||||
if (_.isEmpty(changelogs)) {
|
||||
return true;
|
||||
}
|
||||
const lastEntry = changelogs[0];
|
||||
return !!lastEntry.isPublished;
|
||||
const lastEntryCurrentVersion = lastEntry.version === currentVersion;
|
||||
return lastEntryCurrentVersion;
|
||||
}
|
||||
|
||||
function generateChangelogMd(changelogs: Changelog[]): string {
|
||||
|
@ -13,7 +13,6 @@ export interface Changelog {
|
||||
timestamp?: number;
|
||||
version: string;
|
||||
changes: Changes[];
|
||||
isPublished?: boolean;
|
||||
}
|
||||
|
||||
export enum SemVerIndex {
|
||||
|
Loading…
x
Reference in New Issue
Block a user