Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: third_party/pkg/angular/scripts/changelog/changelog.js

Issue 1058283006: Update pubspecs and dependencies to get pkgbuild tests working. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/pkg/angular/scripts/changelog/changelog.js
diff --git a/third_party/pkg/angular/scripts/changelog/changelog.js b/third_party/pkg/angular/scripts/changelog/changelog.js
deleted file mode 100755
index 2177100a308a7ebba86a6c783e4ee01cb300afa8..0000000000000000000000000000000000000000
--- a/third_party/pkg/angular/scripts/changelog/changelog.js
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/usr/bin/env node
-
-// TODO(vojta): pre-commit hook for validating messages
-// TODO(vojta): report errors, currently Q silence everything which really sucks
-
-var child = require('child_process');
-var fs = require('fs');
-var util = require('util');
-var q = require('qq');
-
-var GIT_LOG_CMD = 'git log --grep="%s" -E --format=%s %s..HEAD';
-var GIT_TAG_CMD = 'git describe --tags --abbrev=0';
-
-var HEADER_TPL = '<a name="%s"></a>\n# %s (%s)\n\n';
-var LINK_ISSUE = '[#%s](https://github.com/angular/angular.dart/issues/%s)';
-var LINK_COMMIT = '[%s](https://github.com/angular/angular.dart/commit/%s)';
-
-var EMPTY_COMPONENT = '$$';
-
-
-var warn = function() {
- console.log('WARNING:', util.format.apply(null, arguments));
-};
-
-
-var parseRawCommit = function(raw) {
- if (!raw) return null;
-
- var lines = raw.split('\n');
- var msg = {}, match;
-
- msg.hash = lines.shift();
- msg.subject = lines.shift();
- msg.closes = [];
- msg.breaks = [];
-
- lines.forEach(function(line) {
- match = line.match(/(?:Closes|Fixes)\s#(\d+)/);
- if (match) msg.closes.push(parseInt(match[1]));
- });
-
- match = raw.match(/BREAKING CHANGE:([\s\S]*)/);
- if (match) {
- msg.breaking = match[1];
- }
-
-
- msg.body = lines.join('\n');
- match = msg.subject.match(/^(.*)\((.*)\)\:\s(.*)$/);
-
- if (!match || !match[1] || !match[3]) {
- warn('Incorrect message: %s %s', msg.hash, msg.subject);
- return null;
- }
-
- msg.type = match[1];
- msg.component = match[2];
- msg.subject = match[3];
-
- return msg;
-};
-
-
-var linkToIssue = function(issue) {
- return util.format(LINK_ISSUE, issue, issue);
-};
-
-
-var linkToCommit = function(hash) {
- return util.format(LINK_COMMIT, hash.substr(0, 8), hash);
-};
-
-
-var currentDate = function() {
- var now = new Date();
- var pad = function(i) {
- return ('0' + i).substr(-2);
- };
-
- return util.format('%d-%s-%s', now.getFullYear(), pad(now.getMonth() + 1), pad(now.getDate()));
-};
-
-
-var printSection = function(stream, title, section, printCommitLinks) {
- printCommitLinks = printCommitLinks === undefined ? true : printCommitLinks;
- var components = Object.getOwnPropertyNames(section).sort();
-
- if (!components.length) return;
-
- stream.write(util.format('\n## %s\n\n', title));
-
- components.forEach(function(name) {
- var prefix = '-';
- var nested = section[name].length > 1;
-
- if (name !== EMPTY_COMPONENT) {
- if (nested) {
- stream.write(util.format('- **%s:**\n', name));
- prefix = ' -';
- } else {
- prefix = util.format('- **%s:**', name);
- }
- }
-
- section[name].forEach(function(commit) {
- if (printCommitLinks) {
- stream.write(util.format('%s %s\n (%s', prefix, commit.subject, linkToCommit(commit.hash)));
- if (commit.closes.length) {
- stream.write(',\n ' + commit.closes.map(linkToIssue).join(', '));
- }
- stream.write(')\n');
- } else {
- stream.write(util.format('%s %s', prefix, commit.subject));
- }
- });
- });
-
- stream.write('\n');
-};
-
-
-var readGitLog = function(grep, from) {
- var deferred = q.defer();
-
- // TODO(vojta): if it's slow, use spawn and stream it instead
- child.exec(util.format(GIT_LOG_CMD, grep, '%H%n%s%n%b%n==END==', from), function(code, stdout, stderr) {
- var commits = [];
-
- stdout.split('\n==END==\n').forEach(function(rawCommit) {
- var commit = parseRawCommit(rawCommit);
- if (commit) commits.push(commit);
- });
-
- deferred.resolve(commits);
- });
-
- return deferred.promise;
-};
-
-
-var writeChangelog = function(stream, commits, version) {
- var sections = {
- fix: {},
- feat: {},
- perf: {},
- breaks: {}
- };
-
- sections.breaks[EMPTY_COMPONENT] = [];
-
- commits.forEach(function(commit) {
- var section = sections[commit.type];
- var component = commit.component || EMPTY_COMPONENT;
-
- if (section) {
- section[component] = section[component] || [];
- section[component].push(commit);
- }
-
- if (commit.breaking) {
- sections.breaks[component] = sections.breaks[component] || [];
- sections.breaks[component].push({
- subject: util.format("due to %s,\n %s", linkToCommit(commit.hash), commit.breaking),
- hash: commit.hash,
- closes: []
- });
- };
- });
-
- stream.write(util.format(HEADER_TPL, version, version, currentDate()));
- printSection(stream, 'Bug Fixes', sections.fix);
- printSection(stream, 'Features', sections.feat);
- printSection(stream, 'Performance Improvements', sections.perf);
- printSection(stream, 'Breaking Changes', sections.breaks, false);
-}
-
-
-var getPreviousTag = function() {
- var deferred = q.defer();
- child.exec(GIT_TAG_CMD, function(code, stdout, stderr) {
- if (code) deferred.reject('Cannot get the previous tag.');
- else deferred.resolve(stdout.replace('\n', ''));
- });
- return deferred.promise;
-};
-
-
-var generate = function(version, file) {
- getPreviousTag().then(function(tag) {
- console.log('Reading git log since', tag);
- readGitLog('^fix|^feat|^perf|BREAKING', tag).then(function(commits) {
- console.log('Parsed', commits.length, 'commits');
- console.log('Generating changelog to', file || 'stdout', '(', version, ')');
- writeChangelog(file ? fs.createWriteStream(file) : process.stdout, commits, version);
- });
- });
-};
-
-
-// publish for testing
-exports.parseRawCommit = parseRawCommit;
-
-// hacky start if not run by jasmine :-D
-if (process.argv.join('').indexOf('jasmine-node') === -1) {
- generate(process.argv[2], process.argv[3]);
-}
« no previous file with comments | « third_party/pkg/angular/scripts/changelog/authors.sh ('k') | third_party/pkg/angular/scripts/changelog/changelog.spec.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698