mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
build: generate changelog as part of staging script (#14250)
* Converts the changelog script into plain TypeScript. This makes it easier to integrate it into the _interactive_ staging script * Fixes that the "Is this is a pre-release" prompt is not returning a boolean. * No longer runs the staging script with Bazel because `ts-node` is more convenient and also we can be more context-aware (e.g. paths)
This commit is contained in:
committed by
Jeremy Elbourn
parent
42681ee254
commit
325b6400d0
+3
-3
@@ -23,7 +23,7 @@
|
||||
"api": "gulp api-docs",
|
||||
"breaking-changes": "gulp breaking-changes",
|
||||
"gulp": "gulp",
|
||||
"stage-release": "bash ./tools/release/stage-release-bin.sh",
|
||||
"stage-release": "ts-node --project tools/release/ tools/release/stage-release.ts",
|
||||
"preinstall": "node ./tools/npm/check-npm.js"
|
||||
},
|
||||
"version": "7.1.0",
|
||||
@@ -78,20 +78,19 @@
|
||||
"axe-webdriverjs": "^1.1.1",
|
||||
"chalk": "^1.1.3",
|
||||
"codelyzer": "^4.5.0",
|
||||
"conventional-changelog": "^3.0.5",
|
||||
"dgeni": "^0.4.10",
|
||||
"dgeni-packages": "^0.26.12",
|
||||
"firebase": "^5.5.2",
|
||||
"firebase-admin": "^5.0.0",
|
||||
"firebase-tools": "^4.1.0",
|
||||
"fs-extra": "^3.0.1",
|
||||
"git-semver-tags": "^2.0.0",
|
||||
"glob": "^7.1.2",
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-clean": "^0.3.2",
|
||||
"gulp-clean-css": "^3.3.1",
|
||||
"gulp-cli": "^2.0.1",
|
||||
"gulp-connect": "^5.0.0",
|
||||
"gulp-conventional-changelog": "^1.1.3",
|
||||
"gulp-dom": "^0.9.17",
|
||||
"gulp-flatten": "^0.3.1",
|
||||
"gulp-highlight-files": "^0.0.5",
|
||||
@@ -117,6 +116,7 @@
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"magic-string": "^0.22.4",
|
||||
"marked": "^0.5.1",
|
||||
"merge2": "^1.2.3",
|
||||
"minimatch": "^3.0.4",
|
||||
"minimist": "^1.2.0",
|
||||
"mock-fs": "^4.7.0",
|
||||
|
||||
@@ -17,7 +17,6 @@ createPackageBuildTasks(momentAdapterPackage);
|
||||
|
||||
import './tasks/aot';
|
||||
import './tasks/breaking-changes';
|
||||
import './tasks/changelog';
|
||||
import './tasks/ci';
|
||||
import './tasks/clean';
|
||||
import './tasks/default';
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
import {grey, red, yellow} from 'chalk';
|
||||
import {readFileSync} from 'fs';
|
||||
import {dest, src, task} from 'gulp';
|
||||
import {prompt} from 'inquirer';
|
||||
import {buildConfig} from 'material2-build-tools';
|
||||
import {join} from 'path';
|
||||
|
||||
// This imports lack of type definitions.
|
||||
const gulpChangelog = require('gulp-conventional-changelog');
|
||||
const gitSemverTags = require('git-semver-tags');
|
||||
|
||||
/** Path to the changelog markdown file of the project. */
|
||||
const changelogFile = join(buildConfig.projectDir, 'CHANGELOG.md');
|
||||
|
||||
/** Default changelog options that are passed to gulp-conventional-changelog. */
|
||||
const changelogOptions = { preset: 'angular' };
|
||||
|
||||
/** Task that generates a new changelog section from the latest tag to HEAD. */
|
||||
task('changelog', async () => {
|
||||
// Show the instructions for the changelog generation.
|
||||
showChangelogInstructions();
|
||||
|
||||
// Cancel the generation when the latest tag is the same as the version from the "package.json".
|
||||
if (await getLatestSemverTag() === buildConfig.projectVersion) {
|
||||
console.error(red('Warning: Changelog won\'t change because the "package.json" version is ' +
|
||||
'equal to the latest Git tag.\n'));
|
||||
return;
|
||||
}
|
||||
|
||||
const {releaseName} = await prompt<{releaseName: string}>({
|
||||
type: 'text',
|
||||
name: 'releaseName',
|
||||
message: 'What should be the name of the release?'
|
||||
});
|
||||
|
||||
return src(changelogFile)
|
||||
.pipe(gulpChangelog(changelogOptions, {title: releaseName}, null, null,
|
||||
createDedupeWriterOptions()))
|
||||
.pipe(dest('./'));
|
||||
});
|
||||
|
||||
/** Task that re-generates the full changelog. */
|
||||
task('changelog:full', () => {
|
||||
return src(changelogFile)
|
||||
.pipe(gulpChangelog({ ...changelogOptions, releaseCount: 0 }))
|
||||
.pipe(dest('./'));
|
||||
});
|
||||
|
||||
/** Prints a message that gives instructions about generating a changelog section. */
|
||||
function showChangelogInstructions() {
|
||||
console.info(`
|
||||
${yellow('Changelog Instructions')}
|
||||
|
||||
When running this command, the changelog from the latest tag to HEAD will be generated.
|
||||
The name of the new changelog section will be taken from the "package.json" version.
|
||||
|
||||
The recommended steps when creating a new changelog section:
|
||||
1. Bump the version in the "package.json"
|
||||
2. Run the changelog gulp task
|
||||
3. Tweak the changelog manually.
|
||||
`);
|
||||
}
|
||||
|
||||
/** Returns the latest Semver Tag from the project Git repository */
|
||||
function getLatestSemverTag(): Promise<string> {
|
||||
return new Promise((resolve, reject) => {
|
||||
return gitSemverTags((err: Error, tags: string[]) => err ? reject(err) : resolve(tags[0]));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates changelog writer options which ensure that commits are not showing up multiple times.
|
||||
*
|
||||
* Commits can show up multiple times, if a changelog has been generated on a publish branch
|
||||
* and has been copied over to "master". In that case, the changelog will already contain the
|
||||
* commits that have been cherry-picked into the publish branch. These shouldn't be added twice.
|
||||
*/
|
||||
function createDedupeWriterOptions() {
|
||||
const previousContent = readFileSync(changelogFile, 'utf8');
|
||||
|
||||
return {
|
||||
// Change writer option that can be used to modify the content of a new changelog section.
|
||||
// See: conventional-changelog/tree/master/packages/conventional-changelog-writer
|
||||
finalizeContext: (context: any) => {
|
||||
context.commitGroups.forEach((group: any) => {
|
||||
group.commits = group.commits.filter((commit: any) => {
|
||||
// Note that we cannot compare the SHA's because the commits will have a different SHA
|
||||
// if they are being cherry-picked into a different branch.
|
||||
if (previousContent.includes(commit.header)) {
|
||||
console.log(grey(`Skipping: "${commit.header}" (${commit.hash})`));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
});
|
||||
return context;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package(default_visibility=["//visibility:public"])
|
||||
|
||||
load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary")
|
||||
load("//tools:defaults.bzl", "ts_library")
|
||||
|
||||
ts_library(
|
||||
name = "release-sources",
|
||||
srcs = glob(["**/*.ts"]),
|
||||
deps = [
|
||||
"@matdeps//@types/node",
|
||||
"@matdeps//@types/inquirer",
|
||||
"@matdeps//chalk",
|
||||
"@matdeps//inquirer"
|
||||
],
|
||||
tsconfig = ":tsconfig.json"
|
||||
)
|
||||
|
||||
nodejs_binary(
|
||||
name = "stage-release",
|
||||
data = [
|
||||
"@matdeps//source-map-support",
|
||||
":release-sources",
|
||||
],
|
||||
entry_point = "angular_material/tools/release/stage-release.js",
|
||||
)
|
||||
@@ -0,0 +1,98 @@
|
||||
import {green, grey} from 'chalk';
|
||||
import {createReadStream, createWriteStream, readFileSync} from 'fs';
|
||||
import {prompt} from 'inquirer';
|
||||
import {join} from 'path';
|
||||
import {Readable} from 'stream';
|
||||
|
||||
// These imports lack type definitions.
|
||||
const conventionalChangelog = require('conventional-changelog');
|
||||
const merge2 = require('merge2');
|
||||
|
||||
/** Prompts for a changelog release name and prepends the new changelog. */
|
||||
export async function promptAndGenerateChangelog(changelogPath: string) {
|
||||
const releaseName = await promptChangelogReleaseName();
|
||||
await prependChangelogFromLatestTag(changelogPath, releaseName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the changelog from the latest Semver tag to the current HEAD.
|
||||
* @param changelogPath Path to the changelog file.
|
||||
* @param releaseName Name of the release that should show up in the changelog.
|
||||
*/
|
||||
export async function prependChangelogFromLatestTag(changelogPath: string, releaseName: string) {
|
||||
const outputStream: Readable = conventionalChangelog(
|
||||
/* core options */ {preset: 'angular'},
|
||||
/* context options */ {title: releaseName},
|
||||
/* raw-commits options */ null,
|
||||
/* commit parser options */ null,
|
||||
/* writer options */ createDedupeWriterOptions(changelogPath));
|
||||
|
||||
// Stream for reading the existing changelog. This is necessary because we want to
|
||||
// actually prepend the new changelog to the existing one.
|
||||
const previousChangelogStream = createReadStream(changelogPath);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
// Sequentially merge the changelog output and the previous changelog stream, so that
|
||||
// the new changelog section comes before the existing versions. Afterwards, pipe into the
|
||||
// changelog file, so that the changes are reflected on file system.
|
||||
const mergedCompleteChangelog = merge2(outputStream, previousChangelogStream);
|
||||
|
||||
// Wait for the previous changelog to be completely read because otherwise we would
|
||||
// read and write from the same source which causes the content to be thrown off.
|
||||
previousChangelogStream.on('end', () => {
|
||||
mergedCompleteChangelog.pipe(createWriteStream(changelogPath))
|
||||
.once('error', (error: any) => reject(error))
|
||||
.once('finish', () => resolve());
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/** Prompts the terminal for a changelog release name. */
|
||||
export async function promptChangelogReleaseName(): Promise<string> {
|
||||
return (await prompt<{releaseName: string}>({
|
||||
type: 'text',
|
||||
name: 'releaseName',
|
||||
message: 'What should be the name of the release?'
|
||||
})).releaseName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates changelog writer options which ensure that commits are not showing up multiple times.
|
||||
* Commits can show up multiple times if a changelog has been generated on a publish branch
|
||||
* and has been cherry-picked into "master". In that case, the changelog will already contain
|
||||
* commits from master which might be added to the changelog again. This is because usually
|
||||
* patch and minor releases are tagged from the publish branches and therefore
|
||||
* conventional-changelog tries to build the changelog from last major version to master's HEAD.
|
||||
*/
|
||||
function createDedupeWriterOptions(changelogPath: string) {
|
||||
const existingChangelogContent = readFileSync(changelogPath, 'utf8');
|
||||
|
||||
return {
|
||||
// Specify a writer option that can be used to modify the content of a new changelog section.
|
||||
// See: conventional-changelog/tree/master/packages/conventional-changelog-writer
|
||||
finalizeContext: (context: any) => {
|
||||
context.commitGroups.forEach((group: any) => {
|
||||
group.commits = group.commits.filter((commit: any) => {
|
||||
// NOTE: We cannot compare the SHA's because the commits will have a different SHA
|
||||
// if they are being cherry-picked into a different branch.
|
||||
if (existingChangelogContent.includes(commit.header)) {
|
||||
console.log(grey(`Excluding: "${commit.header}" (${commit.hash})`));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
});
|
||||
return context;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/** Entry-point for generating the changelog when called through the CLI. */
|
||||
if (require.main === module) {
|
||||
promptAndGenerateChangelog(join(__dirname, '../../CHANGELOG.md')).then(() => {
|
||||
console.log(green(' ✓ Successfully updated the changelog.'));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ export async function promptForNewVersion(currentVersion: Version): Promise<Vers
|
||||
message: `What's the type of the new release?`,
|
||||
choices: versionChoices,
|
||||
}, {
|
||||
type: 'prompt',
|
||||
type: 'confirm',
|
||||
name: 'isPrerelease',
|
||||
message: 'Should this be a pre-release?',
|
||||
// Prompt whether this should a pre-release if the current release is not a pre-release
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script that builds and launches the stage release script through Bazel. An additional script is
|
||||
# needed because environment variables (like $PWD) are not being interpolated within NPM scripts.
|
||||
|
||||
# Go to project directory.
|
||||
cd $(dirname ${0})/../..
|
||||
|
||||
# Build and run the stage release script.
|
||||
bazel run //tools/release:stage-release -- $PWD
|
||||
@@ -2,11 +2,15 @@ import {bold, cyan, green, italic, red, yellow} from 'chalk';
|
||||
import {existsSync, readFileSync, writeFileSync} from 'fs';
|
||||
import {prompt} from 'inquirer';
|
||||
import {join} from 'path';
|
||||
import {promptAndGenerateChangelog} from './changelog';
|
||||
import {GitClient} from './git/git-client';
|
||||
import {promptForNewVersion} from './prompt/new-version-prompt';
|
||||
import {parseVersionName, Version} from './version-name/parse-version';
|
||||
import {getExpectedPublishBranch} from './version-name/publish-branch';
|
||||
|
||||
/** Default filename for the changelog. */
|
||||
const CHANGELOG_FILE_NAME = 'CHANGELOG.md';
|
||||
|
||||
/**
|
||||
* Class that can be instantiated in order to stage a new release. The tasks requires user
|
||||
* interaction/input through command line prompts.
|
||||
@@ -92,13 +96,15 @@ class StageReleaseTask {
|
||||
|
||||
console.log(green(` ✓ Updated the version to "${bold(newVersionName)}" inside of the ` +
|
||||
`${italic('package.json')}`));
|
||||
console.log();
|
||||
|
||||
// TODO(devversion): run changelog script w/prompts in the future.
|
||||
// For now, we just let users make modifications and stage the changes.
|
||||
await promptAndGenerateChangelog(join(this.projectDir, CHANGELOG_FILE_NAME));
|
||||
|
||||
console.log(yellow(` ⚠ Please generate the ${bold('CHANGELOG')} for the new version. ` +
|
||||
`You can also make other unrelated modifications. After the changes have been made, ` +
|
||||
`just continue here.`));
|
||||
console.log();
|
||||
console.log(green(` ✓ Updated the changelog in ` +
|
||||
`"${bold(CHANGELOG_FILE_NAME)}"`));
|
||||
console.log(yellow(` ⚠ You can also make other unrelated modifications. After the ` +
|
||||
`changes have been made, just continue here.`));
|
||||
console.log();
|
||||
|
||||
const {shouldContinue} = await prompt<{shouldContinue: boolean}>({
|
||||
@@ -166,19 +172,7 @@ class StageReleaseTask {
|
||||
}
|
||||
|
||||
/** Entry-point for the release staging script. */
|
||||
async function main() {
|
||||
const projectDir = process.argv.slice(2)[0];
|
||||
|
||||
if (!projectDir) {
|
||||
console.error(red(`You specified no project directory. Cannot run stage release script.`));
|
||||
console.error(red(`Usage: bazel run //tools/release:stage-release <project-directory>`));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
return new StageReleaseTask(projectDir).run();
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main();
|
||||
new StageReleaseTask(join(__dirname, '../../')).run();
|
||||
}
|
||||
|
||||
|
||||
@@ -1061,11 +1061,6 @@ acorn@^5.0.0:
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
|
||||
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
|
||||
|
||||
add-stream@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
|
||||
integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=
|
||||
|
||||
addressparser@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746"
|
||||
@@ -2717,102 +2712,95 @@ continuable-cache@^0.3.1:
|
||||
resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f"
|
||||
integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=
|
||||
|
||||
conventional-changelog-angular@^1.6.6:
|
||||
version "1.6.6"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f"
|
||||
integrity sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==
|
||||
conventional-changelog-angular@^5.0.2:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.2.tgz#39d945635e03b6d0c9d4078b1df74e06163dc66a"
|
||||
integrity sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==
|
||||
dependencies:
|
||||
compare-func "^1.3.1"
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-atom@^0.2.8:
|
||||
version "0.2.8"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14"
|
||||
integrity sha512-8pPZqhMbrnltNBizjoDCb/Sz85KyUXNDQxuAEYAU5V/eHn0okMBVjqc8aHWYpHrytyZWvMGbayOlDv7i8kEf6g==
|
||||
conventional-changelog-atom@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.1.tgz#dc88ce650ffa9ceace805cbe70f88bfd0cb2c13a"
|
||||
integrity sha512-9BniJa4gLwL20Sm7HWSNXd0gd9c5qo49gCi8nylLFpqAHhkFTj7NQfROq3f1VpffRtzfTQp4VKU5nxbe2v+eZQ==
|
||||
dependencies:
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-codemirror@^0.3.8:
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47"
|
||||
integrity sha512-3HFZKtBXTaUCHvz7ai6nk2+psRIkldDoNzCsom0egDtVmPsvvHZkzjynhdQyULfacRSsBTaiQ0ol6nBOL4dDiQ==
|
||||
conventional-changelog-codemirror@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.1.tgz#acc046bc0971460939a0cc2d390e5eafc5eb30da"
|
||||
integrity sha512-23kT5IZWa+oNoUaDUzVXMYn60MCdOygTA2I+UjnOMiYVhZgmVwNd6ri/yDlmQGXHqbKhNR5NoXdBzSOSGxsgIQ==
|
||||
dependencies:
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-core@^2.0.11:
|
||||
version "2.0.11"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287"
|
||||
integrity sha512-HvTE6RlqeEZ/NFPtQeFLsIDOLrGP3bXYr7lFLMhCVsbduF1MXIe8OODkwMFyo1i9ku9NWBwVnVn0jDmIFXjDRg==
|
||||
conventional-changelog-core@^3.1.5:
|
||||
version "3.1.5"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.1.5.tgz#c2edf928539308b54fe1b90a2fc731abc021852c"
|
||||
integrity sha512-iwqAotS4zk0wA4S84YY1JCUG7X3LxaRjJxuUo6GI4dZuIy243j5nOg/Ora35ExT4DOiw5dQbMMQvw2SUjh6moQ==
|
||||
dependencies:
|
||||
conventional-changelog-writer "^3.0.9"
|
||||
conventional-commits-parser "^2.1.7"
|
||||
conventional-changelog-writer "^4.0.2"
|
||||
conventional-commits-parser "^3.0.1"
|
||||
dateformat "^3.0.0"
|
||||
get-pkg-repo "^1.0.0"
|
||||
git-raw-commits "^1.3.6"
|
||||
git-raw-commits "2.0.0"
|
||||
git-remote-origin-url "^2.0.0"
|
||||
git-semver-tags "^1.3.6"
|
||||
git-semver-tags "^2.0.2"
|
||||
lodash "^4.2.1"
|
||||
normalize-package-data "^2.3.5"
|
||||
q "^1.5.1"
|
||||
read-pkg "^1.1.0"
|
||||
read-pkg-up "^1.0.1"
|
||||
read-pkg "^3.0.0"
|
||||
read-pkg-up "^3.0.0"
|
||||
through2 "^2.0.0"
|
||||
|
||||
conventional-changelog-ember@^0.3.12:
|
||||
version "0.3.12"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400"
|
||||
integrity sha512-mmJzA7uzbrOqeF89dMMi6z17O07ORTXlTMArnLG9ZTX4oLaKNolUlxFUFlFm9JUoVWajVpaHQWjxH1EOQ+ARoQ==
|
||||
conventional-changelog-ember@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.2.tgz#284ffdea8c83ea8c210b65c5b4eb3e5cc0f4f51a"
|
||||
integrity sha512-qtZbA3XefO/n6DDmkYywDYi6wDKNNc98MMl2F9PKSaheJ25Trpi3336W8fDlBhq0X+EJRuseceAdKLEMmuX2tg==
|
||||
dependencies:
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-eslint@^1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3"
|
||||
integrity sha512-h87nfVh2fdk9fJIvz26wCBsbDC/KxqCc5wSlNMZbXcARtbgNbNDIF7Y7ctokFdnxkzVdaHsbINkh548T9eBA7Q==
|
||||
conventional-changelog-eslint@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.1.tgz#f65e0e7f63dc09c044244b8785313a602e628002"
|
||||
integrity sha512-yH3+bYrtvgKxSFChUBQnKNh9/U9kN2JElYBm253VpYs5wXhPHVc9ENcuVGWijh24nnOkei7wEJmnmUzgZ4ok+A==
|
||||
dependencies:
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-express@^0.3.6:
|
||||
version "0.3.6"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c"
|
||||
integrity sha512-3iWVtBJZ9RnRnZveNDzOD8QRn6g6vUif0qVTWWyi5nUIAbuN1FfPVyKdAlJJfp5Im+dE8Kiy/d2SpaX/0X678Q==
|
||||
conventional-changelog-express@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz#fea2231d99a5381b4e6badb0c1c40a41fcacb755"
|
||||
integrity sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw==
|
||||
dependencies:
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-jquery@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz#0208397162e3846986e71273b6c79c5b5f80f510"
|
||||
integrity sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=
|
||||
conventional-changelog-jquery@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.4.tgz#7eb598467b83db96742178e1e8d68598bffcd7ae"
|
||||
integrity sha512-IVJGI3MseYoY6eybknnTf9WzeQIKZv7aNTm2KQsiFVJH21bfP2q7XVjfoMibdCg95GmgeFlaygMdeoDDa+ZbEQ==
|
||||
dependencies:
|
||||
q "^1.4.1"
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-jscs@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz#0479eb443cc7d72c58bf0bcf0ef1d444a92f0e5c"
|
||||
integrity sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=
|
||||
dependencies:
|
||||
q "^1.4.1"
|
||||
|
||||
conventional-changelog-jshint@^0.3.8:
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8"
|
||||
integrity sha512-hn9QU4ZI/5V50wKPJNPGT4gEWgiBFpV6adieILW4MaUFynuDYOvQ71EMSj3EznJyKi/KzuXpc9dGmX8njZMjig==
|
||||
conventional-changelog-jshint@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.1.tgz#11c0e8283abf156a4ff78e89be6fdedf9bd72202"
|
||||
integrity sha512-kRFJsCOZzPFm2tzRHULWP4tauGMvccOlXYf3zGeuSW4U0mZhk5NsjnRZ7xFWrTFPlCLV+PNmHMuXp5atdoZmEg==
|
||||
dependencies:
|
||||
compare-func "^1.3.1"
|
||||
q "^1.5.1"
|
||||
|
||||
conventional-changelog-preset-loader@^1.1.8:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373"
|
||||
integrity sha512-MkksM4G4YdrMlT2MbTsV2F6LXu/hZR0Tc/yenRrDIKRwBl/SP7ER4ZDlglqJsCzLJi4UonBc52Bkm5hzrOVCcw==
|
||||
conventional-changelog-preset-loader@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz#81d1a07523913f3d17da3a49f0091f967ad345b0"
|
||||
integrity sha512-pBY+qnUoJPXAXXqVGwQaVmcye05xi6z231QM98wHWamGAmu/ghkBprQAwmF5bdmyobdVxiLhPY3PrCfSeUNzRQ==
|
||||
|
||||
conventional-changelog-writer@^3.0.9:
|
||||
version "3.0.9"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634"
|
||||
integrity sha512-n9KbsxlJxRQsUnK6wIBRnARacvNnN4C/nxnxCkH+B/R1JS2Fa+DiP1dU4I59mEDEjgnFaN2+9wr1P1s7GYB5/Q==
|
||||
conventional-changelog-writer@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.2.tgz#eb493ed84269e7a663da36e49af51c54639c9a67"
|
||||
integrity sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==
|
||||
dependencies:
|
||||
compare-func "^1.3.1"
|
||||
conventional-commits-filter "^1.1.6"
|
||||
conventional-commits-filter "^2.0.1"
|
||||
dateformat "^3.0.0"
|
||||
handlebars "^4.0.2"
|
||||
json-stringify-safe "^5.0.1"
|
||||
@@ -2822,35 +2810,34 @@ conventional-changelog-writer@^3.0.9:
|
||||
split "^1.0.0"
|
||||
through2 "^2.0.0"
|
||||
|
||||
conventional-changelog@^1.1.24:
|
||||
version "1.1.24"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0"
|
||||
integrity sha512-2WcSUst4Y3Z4hHvoMTWXMJr/DmgVdLiMOVY1Kak2LfFz+GIz2KDp5naqbFesYbfXPmaZ5p491dO0FWZIJoJw1Q==
|
||||
conventional-changelog@^3.0.5:
|
||||
version "3.0.5"
|
||||
resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.0.5.tgz#660a61c1c5c9c9ba967ff3d2f5e7e9d7e0680be6"
|
||||
integrity sha512-JYSVGJbnOl9S2gkZwmoJ+wX2gxNVHodUmEiv+eIykeJBNX0zN5vJ3oa2xCvk2HiF7TZ+Les0eq/aX49dcymONA==
|
||||
dependencies:
|
||||
conventional-changelog-angular "^1.6.6"
|
||||
conventional-changelog-atom "^0.2.8"
|
||||
conventional-changelog-codemirror "^0.3.8"
|
||||
conventional-changelog-core "^2.0.11"
|
||||
conventional-changelog-ember "^0.3.12"
|
||||
conventional-changelog-eslint "^1.0.9"
|
||||
conventional-changelog-express "^0.3.6"
|
||||
conventional-changelog-jquery "^0.1.0"
|
||||
conventional-changelog-jscs "^0.1.0"
|
||||
conventional-changelog-jshint "^0.3.8"
|
||||
conventional-changelog-preset-loader "^1.1.8"
|
||||
conventional-changelog-angular "^5.0.2"
|
||||
conventional-changelog-atom "^2.0.1"
|
||||
conventional-changelog-codemirror "^2.0.1"
|
||||
conventional-changelog-core "^3.1.5"
|
||||
conventional-changelog-ember "^2.0.2"
|
||||
conventional-changelog-eslint "^3.0.1"
|
||||
conventional-changelog-express "^2.0.1"
|
||||
conventional-changelog-jquery "^3.0.4"
|
||||
conventional-changelog-jshint "^2.0.1"
|
||||
conventional-changelog-preset-loader "^2.0.2"
|
||||
|
||||
conventional-commits-filter@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831"
|
||||
integrity sha512-KcDgtCRKJCQhyk6VLT7zR+ZOyCnerfemE/CsR3iQpzRRFbLEs0Y6rwk3mpDvtOh04X223z+1xyJ582Stfct/0Q==
|
||||
conventional-commits-filter@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz#55a135de1802f6510b6758e0a6aa9e0b28618db3"
|
||||
integrity sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==
|
||||
dependencies:
|
||||
is-subset "^0.1.1"
|
||||
modify-values "^1.0.0"
|
||||
|
||||
conventional-commits-parser@^2.1.7:
|
||||
version "2.1.7"
|
||||
resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e"
|
||||
integrity sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==
|
||||
conventional-commits-parser@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz#fe1c49753df3f98edb2285a5e485e11ffa7f2e4c"
|
||||
integrity sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==
|
||||
dependencies:
|
||||
JSONStream "^1.0.4"
|
||||
is-text-path "^1.0.0"
|
||||
@@ -4651,10 +4638,10 @@ getpass@^0.1.1:
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
git-raw-commits@^1.3.6:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff"
|
||||
integrity sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==
|
||||
git-raw-commits@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5"
|
||||
integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==
|
||||
dependencies:
|
||||
dargs "^4.0.1"
|
||||
lodash.template "^4.0.2"
|
||||
@@ -4670,18 +4657,10 @@ git-remote-origin-url@^2.0.0:
|
||||
gitconfiglocal "^1.0.0"
|
||||
pify "^2.3.0"
|
||||
|
||||
git-semver-tags@^1.3.6:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5"
|
||||
integrity sha512-2jHlJnln4D/ECk9FxGEBh3k44wgYdWjWDtMmJPaecjoRmxKo3Y1Lh8GMYuOPu04CHw86NTAODchYjC5pnpMQig==
|
||||
dependencies:
|
||||
meow "^4.0.0"
|
||||
semver "^5.5.0"
|
||||
|
||||
git-semver-tags@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.0.tgz#c218fd895bdf8e8e02f6bde555b2c3893ac73cd7"
|
||||
integrity sha512-lSgFc3zQTul31nFje2Q8XdNcTOI6B4I3mJRPCgFzHQQLfxfqdWTYzdtCaynkK5Xmb2wQlSJoKolhXJ1VhKROnQ==
|
||||
git-semver-tags@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.2.tgz#f506ec07caade191ac0c8d5a21bdb8131b4934e3"
|
||||
integrity sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w==
|
||||
dependencies:
|
||||
meow "^4.0.0"
|
||||
semver "^5.5.0"
|
||||
@@ -5180,19 +5159,6 @@ gulp-connect@^5.0.0:
|
||||
serve-static "^1.13.2"
|
||||
tiny-lr "^1.1.1"
|
||||
|
||||
gulp-conventional-changelog@^1.1.3:
|
||||
version "1.1.24"
|
||||
resolved "https://registry.yarnpkg.com/gulp-conventional-changelog/-/gulp-conventional-changelog-1.1.24.tgz#53955cf5260434615cd081ccae4357645e06844e"
|
||||
integrity sha512-8nw2Vh7HSvNkmYLRrpt77zGjSjz+GoG9uMWCIJWHEoCR4iAHJ1w6PaPJ39C8xdkAfvPdowyKrAhUi3WepELiTA==
|
||||
dependencies:
|
||||
add-stream "^1.0.0"
|
||||
concat-stream "^1.6.0"
|
||||
conventional-changelog "^1.1.24"
|
||||
fancy-log "^1.3.2"
|
||||
object-assign "^4.0.1"
|
||||
plugin-error "^1.0.1"
|
||||
through2 "^2.0.0"
|
||||
|
||||
gulp-dom@^0.9.17:
|
||||
version "0.9.17"
|
||||
resolved "https://registry.yarnpkg.com/gulp-dom/-/gulp-dom-0.9.17.tgz#4a23c625b5da820bb73d4405459319c9922383ca"
|
||||
@@ -7670,6 +7636,11 @@ merge2@^1.2.1:
|
||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34"
|
||||
integrity sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==
|
||||
|
||||
merge2@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5"
|
||||
integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==
|
||||
|
||||
methmeth@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/methmeth/-/methmeth-1.1.0.tgz#e80a26618e52f5c4222861bb748510bd10e29089"
|
||||
@@ -8836,7 +8807,7 @@ pkginfo@0.x.x:
|
||||
resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff"
|
||||
integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=
|
||||
|
||||
plugin-error@1.0.1, plugin-error@^1.0.1:
|
||||
plugin-error@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c"
|
||||
integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==
|
||||
@@ -9409,7 +9380,7 @@ read-pkg-up@^3.0.0:
|
||||
find-up "^2.0.0"
|
||||
read-pkg "^3.0.0"
|
||||
|
||||
read-pkg@^1.0.0, read-pkg@^1.1.0:
|
||||
read-pkg@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
|
||||
integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
|
||||
|
||||
Reference in New Issue
Block a user