From b631bd354261341259763b2de57ca4e4b346635c Mon Sep 17 00:00:00 2001 From: Cliff Brake Date: Tue, 31 May 2011 07:59:02 -0400 Subject: cleanup and rename weekly-changelog script --- README | 3 +- tools/git-weekly-changelog.js | 102 --------------------------------------- tools/weekly-changelog-report.py | 51 -------------------- tools/weekly-changelog.js | 102 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 155 deletions(-) delete mode 100644 tools/git-weekly-changelog.js delete mode 100755 tools/weekly-changelog-report.py create mode 100644 tools/weekly-changelog.js diff --git a/README b/README index 4b9e543..d366dd5 100644 --- a/README +++ b/README @@ -7,8 +7,7 @@ to set up: - npm install nodemailer (tested with 0.1.13) to use: - - git submodule foreach "git fetch" (pull down the latest repo data for each project) - - node ./tools/git-weekly-changelog.js (email out weekly changelog reports, based on origin/master in each project) + - node ./tools/weekly-changelog.js (email out weekly changelog reports, based on origin/master in each project) to develop: - cd tools diff --git a/tools/git-weekly-changelog.js b/tools/git-weekly-changelog.js deleted file mode 100644 index ebc362d..0000000 --- a/tools/git-weekly-changelog.js +++ /dev/null @@ -1,102 +0,0 @@ -// script to collect the weekly changelog in a git repo - -var testing = true; -var email_to = ''; -var email_bcc = 'cbrake@bec-systems.com,'; - -if (!testing) { - email_bcc += 'beagleboard@googlegroups.com'; - email_to += 'openembedded-core@lists.openembedded.org, openembedded-devel@lists.openembedded.org, angstrom-distro-devel@linuxtogo.org'; -} - -var path = require('path'), - child_process = require('child_process'), - fs = require('fs'), - nodemailer = require('nodemailer'), - git = require('./git'), - dateutil = require('./dateutil'); - -String.prototype.format = function() { - var formatted = this; - for (var i = 0; i < arguments.length; i++) { - var regexp = new RegExp('\\{'+i+'\\}', 'gi'); - formatted = formatted.replace(regexp, arguments[i]); - } - return formatted; -}; - -var format_report = function(projects, weekly_data) { - var ret = '' - // report header - ret += "Changelog for " + dateutil.last_week_text() + ". Projects included in this report:\n\n"; - var project; - for (project in projects) { - ret += project + ": " + projects[project] + "\n"; - } - - ret += "\n"; - - for (project in projects) { - ret += "====================================================\n"; - ret += "Changelog for " + project + ":\n\n"; - ret += weekly_data[project]; - } - return ret; -} - -var email_report = function(report) { - nodemailer.send_mail( - { - sender: "cliff.brake@gmail.com", - to: email_to, - bcc: email_bcc, - subject: "OE Changelog for " + dateutil.last_week_text(), - body: report - }, - function(error, success) { - console.log("Message " + (success?"sent":"failed")); - } - ); -} - -var run_changelog = function(projects) { - var output = {}; - var count = Object.keys(projects).length; - var lastwk = dateutil.last_week(); - var project; - for (project in projects) { - // function required to preserve the value of project - (function(project) { - console.log('processing: ' + path.join(__dirname, '../', project)); - var repo_dir = path.join(__dirname, '../', project); - child_process.exec('cd ' + repo_dir + '; git fetch', function(error, stdout, stderr) { - git.changelog(repo_dir, lastwk.start, lastwk.end, function(err, changelog) { - if (err !== null) { - console.log('changelog error: ' + err); - } else { - output[project] = changelog; - } - count--; - if (count === 0) { - var r = format_report(projects, output); - process.chdir(path.join(__dirname, '../')); - var f = fs.openSync('weekly-changelog', 'w'); - fs.writeSync(f, r); - fs.closeSync(f); - email_report(r); - } - }); - }); - })(project); - } -} - -git.parse_gitmodules(path.join(__dirname, "../.gitmodules"), function(err, data) { - if (err) { - console.log("Error parsing .gitmodules"); - } else { - run_changelog(data); - } -}); - - diff --git a/tools/weekly-changelog-report.py b/tools/weekly-changelog-report.py deleted file mode 100755 index 641d4be..0000000 --- a/tools/weekly-changelog-report.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/python - - -# generates an OE changelog for last weeks activity (Mon-Sun) assuming it is run on -# any day of the following week - -# TODO -# - remove patch count as it does not match after we remove "Merge branch" statements -# - add bugzilla info - -import datetime -import os -import sys -import string - -today = datetime.date.today() - -# 0 = Mon, 6 = Sun -today_weekday = today.weekday() - -# find Mon of this week -end_day = today - datetime.timedelta(today_weekday) - -start_day = end_day - datetime.timedelta(7) - -if (len(sys.argv) <= 1): - branch = "origin/master" -else: - branch = sys.argv[1] - -branch_pretty = string.replace(branch, "origin/", "") - -#print "OE weekly changelog for %s, %s to %s\n" % (branch_pretty, start_day.isoformat(), end_day.isoformat()) -os.system("git shortlog --since=%s --until=%s %s | grep -v 'Merge branch' | grep -v 'Merge commit'|sed -e 's/^ //g'|cut -b -78 " % (start_day.isoformat(), end_day.isoformat(), branch)) - -sys.exit(0) - -os.system("wget 'http://bugs.openembedded.net/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&bugidtype=include&chfieldfrom=7d&chfieldto=Now&chfieldvalue=&email1=&email2=&emailassigned_to1=1&emailassigned_to2=1&emailcc2=1&emailqa_contact2=1&emailreporter2=1&emailtype1=substring&emailtype2=substring&field-1-0-0=bug_status&field0-0-0=noop&known_name=1WFixed&long_desc=&long_desc_type=substring&query_format=advanced&remaction=&short_desc=&short_desc_type=allwordssubstr&type-1-0-0=anyexact&type0-0-0=noop&value-1-0-0=RESOLVED%2CVERIFIED%2CCLOSED&value0-0-0=&ctype=csv' -O resolved-bugs.csv >& /dev/null") -os.system("wget 'http://bugs.openembedded.net/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=NEW&bugidtype=include&chfield=%5BBug%20creation%5D&chfieldfrom=7d&chfieldto=Now&chfieldvalue=&email1=&email2=&emailassigned_to1=1&emailassigned_to2=1&emailcc2=1&emailqa_contact2=1&emailreporter2=1&emailtype1=substring&emailtype2=substring&field-1-0-0=bug_status&field0-0-0=noop&long_desc=&long_desc_type=substring&query_format=advanced&remaction=&short_desc=&short_desc_type=allwordssubstr&type-1-0-0=anyexact&type0-0-0=noop&value-1-0-0=NEW&value0-0-0=&ctype=csv' -O new-bugs.csv &> /dev/null") - - -print "=====================================================" -print "Bugs fixed:\n" - -os.system("cat resolved-bugs.csv | awk -F, '{print $1 \" \" $7 \"\t \" $8}' | sed s:\\\"::g") - -print "\nBugs opened:\n" - -os.system("cat new-bugs.csv | awk -F, '{print $1 \" \" $7 \"\t \" $8}' | sed s:\\\"::g") - - diff --git a/tools/weekly-changelog.js b/tools/weekly-changelog.js new file mode 100644 index 0000000..4bf248d --- /dev/null +++ b/tools/weekly-changelog.js @@ -0,0 +1,102 @@ +// script to collect the weekly changelog in a git repo + +var testing = false; +var email_to = ''; +var email_bcc = 'cbrake@bec-systems.com,'; + +if (!testing) { + email_bcc += 'beagleboard@googlegroups.com'; + email_to += 'openembedded-core@lists.openembedded.org, openembedded-devel@lists.openembedded.org, angstrom-distro-devel@linuxtogo.org'; +} + +var path = require('path'), + child_process = require('child_process'), + fs = require('fs'), + nodemailer = require('nodemailer'), + git = require('./git'), + dateutil = require('./dateutil'); + +String.prototype.format = function() { + var formatted = this; + for (var i = 0; i < arguments.length; i++) { + var regexp = new RegExp('\\{'+i+'\\}', 'gi'); + formatted = formatted.replace(regexp, arguments[i]); + } + return formatted; +}; + +var format_report = function(projects, weekly_data) { + var ret = '' + // report header + ret += "Changelog for " + dateutil.last_week_text() + ". Projects included in this report:\n\n"; + var project; + for (project in projects) { + ret += project + ": " + projects[project] + "\n"; + } + + ret += "\n"; + + for (project in projects) { + ret += "====================================================\n"; + ret += "Changelog for " + project + ":\n\n"; + ret += weekly_data[project]; + } + return ret; +} + +var email_report = function(report) { + nodemailer.send_mail( + { + sender: "cliff.brake@gmail.com", + to: email_to, + bcc: email_bcc, + subject: "OE Changelog for " + dateutil.last_week_text(), + body: report + }, + function(error, success) { + console.log("Message " + (success?"sent":"failed")); + } + ); +} + +var run_changelog = function(projects) { + var output = {}; + var count = Object.keys(projects).length; + var lastwk = dateutil.last_week(); + var project; + for (project in projects) { + // function required to preserve the value of project + (function(project) { + console.log('processing: ' + path.join(__dirname, '../', project)); + var repo_dir = path.join(__dirname, '../', project); + child_process.exec('cd ' + repo_dir + '; git fetch', function(error, stdout, stderr) { + git.changelog(repo_dir, lastwk.start, lastwk.end, function(err, changelog) { + if (err !== null) { + console.log('changelog error: ' + err); + } else { + output[project] = changelog; + } + count--; + if (count === 0) { + var r = format_report(projects, output); + process.chdir(path.join(__dirname, '../')); + var f = fs.openSync('weekly-changelog', 'w'); + fs.writeSync(f, r); + fs.closeSync(f); + email_report(r); + } + }); + }); + })(project); + } +} + +git.parse_gitmodules(path.join(__dirname, "../.gitmodules"), function(err, data) { + if (err) { + console.log("Error parsing .gitmodules"); + } else { + run_changelog(data); + } +}); + + -- cgit 1.2.3-korg