Merge pull request #1165 from 0xProject/fix/release-notes-versions
Fix the package versions in release notes
This commit is contained in:
@@ -11,7 +11,7 @@ import { utils } from './utils/utils';
|
||||
|
||||
async function prepublishChecksAsync(): Promise<void> {
|
||||
const shouldIncludePrivate = false;
|
||||
const updatedPublicPackages = await utils.getUpdatedPackagesAsync(shouldIncludePrivate);
|
||||
const updatedPublicPackages = await utils.getPackagesToPublishAsync(shouldIncludePrivate);
|
||||
|
||||
await checkCurrentVersionMatchesLatestPublishedNPMPackageAsync(updatedPublicPackages);
|
||||
await checkChangelogFormatAsync(updatedPublicPackages);
|
||||
|
@@ -34,12 +34,12 @@ async function confirmAsync(message: string): Promise<void> {
|
||||
(async () => {
|
||||
// Fetch public, updated Lerna packages
|
||||
const shouldIncludePrivate = true;
|
||||
const allUpdatedPackages = await utils.getUpdatedPackagesAsync(shouldIncludePrivate);
|
||||
if (_.isEmpty(allUpdatedPackages)) {
|
||||
const allPackagesToPublish = await utils.getPackagesToPublishAsync(shouldIncludePrivate);
|
||||
if (_.isEmpty(allPackagesToPublish)) {
|
||||
utils.log('No packages need publishing');
|
||||
process.exit(0);
|
||||
}
|
||||
const packagesWithDocs = getPackagesWithDocs(allUpdatedPackages);
|
||||
const packagesWithDocs = getPackagesWithDocs(allPackagesToPublish);
|
||||
|
||||
if (!configs.IS_LOCAL_PUBLISH) {
|
||||
await confirmAsync(
|
||||
@@ -49,12 +49,12 @@ async function confirmAsync(message: string): Promise<void> {
|
||||
}
|
||||
|
||||
// Update CHANGELOGs
|
||||
const updatedPublicPackages = _.filter(allUpdatedPackages, pkg => !pkg.packageJson.private);
|
||||
const updatedPublicPackages = _.filter(allPackagesToPublish, pkg => !pkg.packageJson.private);
|
||||
const updatedPublicPackageNames = _.map(updatedPublicPackages, pkg => pkg.packageJson.name);
|
||||
utils.log(`Will update CHANGELOGs and publish: \n${updatedPublicPackageNames.join('\n')}\n`);
|
||||
const packageToNextVersion = await updateChangeLogsAsync(updatedPublicPackages);
|
||||
|
||||
const updatedPrivatePackages = _.filter(allUpdatedPackages, pkg => pkg.packageJson.private);
|
||||
const updatedPrivatePackages = _.filter(allPackagesToPublish, pkg => pkg.packageJson.private);
|
||||
_.each(updatedPrivatePackages, pkg => {
|
||||
const currentVersion = pkg.packageJson.version;
|
||||
const packageName = pkg.packageJson.name;
|
||||
|
@@ -22,7 +22,7 @@ const args = yargs
|
||||
let packages;
|
||||
if (_.isUndefined(args.packages)) {
|
||||
const shouldIncludePrivate = false;
|
||||
packages = await utils.getUpdatedPackagesAsync(shouldIncludePrivate);
|
||||
packages = await utils.getPackagesToPublishAsync(shouldIncludePrivate);
|
||||
} else {
|
||||
const packageNames = args.packages.split(' ');
|
||||
packages = await utils.getPackagesByNameAsync(packageNames);
|
||||
|
@@ -12,7 +12,7 @@ import { utils } from './utils';
|
||||
|
||||
const publishReleaseAsync = promisify(publishRelease);
|
||||
// tslint:disable-next-line:completed-docs
|
||||
export async function publishReleaseNotesAsync(updatedPublishPackages: Package[], isDryRun: boolean): Promise<void> {
|
||||
export async function publishReleaseNotesAsync(packagesToPublish: Package[], isDryRun: boolean): Promise<void> {
|
||||
// Git push a tag representing this publish (publish-{commit-hash}) (truncate hash)
|
||||
const result = await execAsync('git log -n 1 --pretty=format:"%H"', { cwd: constants.monorepoRootPath });
|
||||
const latestGitCommit = result.stdout;
|
||||
@@ -40,12 +40,8 @@ export async function publishReleaseNotesAsync(updatedPublishPackages: Package[]
|
||||
|
||||
let assets: string[] = [];
|
||||
let aggregateNotes = '';
|
||||
_.each(updatedPublishPackages, pkg => {
|
||||
const notes = getReleaseNotesForPackage(pkg.packageJson.name, pkg.packageJson.version);
|
||||
if (_.isEmpty(notes)) {
|
||||
return; // don't include it
|
||||
}
|
||||
aggregateNotes += `### ${pkg.packageJson.name}@${pkg.packageJson.version}\n${notes}\n\n`;
|
||||
_.each(packagesToPublish, pkg => {
|
||||
aggregateNotes += getReleaseNotesForPackage(pkg.packageJson.name);
|
||||
|
||||
const packageAssets = _.get(pkg.packageJson, 'config.postpublish.assets');
|
||||
if (!_.isUndefined(packageAssets)) {
|
||||
@@ -92,7 +88,7 @@ function adjustAssetPaths(assets: string[]): string[] {
|
||||
return finalAssets;
|
||||
}
|
||||
|
||||
function getReleaseNotesForPackage(packageName: string, version: string): string {
|
||||
function getReleaseNotesForPackage(packageName: string): string {
|
||||
const packageNameWithoutNamespace = packageName.replace('@0x/', '');
|
||||
const changelogJSONPath = path.join(
|
||||
constants.monorepoRootPath,
|
||||
@@ -115,5 +111,9 @@ function getReleaseNotesForPackage(packageName: string, version: string): string
|
||||
}
|
||||
notes += `\n`;
|
||||
});
|
||||
return notes;
|
||||
if (_.isEmpty(notes)) {
|
||||
return ''; // don't include it
|
||||
}
|
||||
const releaseNotesSection = `### ${packageName}@${latestLog.version}\n${notes}\n\n`;
|
||||
return releaseNotesSection;
|
||||
}
|
||||
|
@@ -61,7 +61,7 @@ export const utils = {
|
||||
});
|
||||
return updatedPackages;
|
||||
},
|
||||
async getUpdatedPackagesAsync(shouldIncludePrivate: boolean): Promise<Package[]> {
|
||||
async getPackagesToPublishAsync(shouldIncludePrivate: boolean): Promise<Package[]> {
|
||||
const updatedPublicPackages = await utils.getLernaUpdatedPackagesAsync(shouldIncludePrivate);
|
||||
const updatedPackageNames = _.map(updatedPublicPackages, pkg => pkg.name);
|
||||
|
||||
|
Reference in New Issue
Block a user