diff --git a/.gitignore b/.gitignore deleted file mode 100644 index fecace0..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.pyc -*~ -.venv diff --git a/COPYING b/COPYING deleted file mode 100644 index fe3eb43..0000000 --- a/COPYING +++ /dev/null @@ -1,2 +0,0 @@ -The code in this directory can be distributed under the terms of the GNU -General Public License, version 2. diff --git a/ConfigFile.py b/ConfigFile.py deleted file mode 100644 index 0a942f4..0000000 --- a/ConfigFile.py +++ /dev/null @@ -1,192 +0,0 @@ -# -# Stuff for dealing with configuration files. -# -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import sys, re, datetime, os.path -import database - -# -# Read a line and strip out junk. -# -def ReadConfigLine (file): - line = file.readline () - if not line: - return None - line = line.split('#')[0] # Get rid of any comments - line = line.strip () # and extra white space - if len (line) == 0: # we got rid of everything - return ReadConfigLine (file) - return line - -# -# Give up and die. -# -def croak (message): - sys.stderr.write (message + '\n') - sys.exit (1) - -# -# Read a list of email aliases. -# -def ReadEmailAliases (name): - try: - file = open (name, 'r') - except IOError: - croak ('Unable to open email alias file %s' % (name)) - line = ReadConfigLine (file) - while line: - m = re.match ('^("[^"]+"|\S+)\s+(.+)$', line) - if not m or len (m.groups ()) != 2: - croak ('Funky email alias line "%s"' % (line)) - if m and m.group (2).find ('@') <= 0: - croak ('Non-addresses in email alias "%s"' % (line)) - database.AddEmailAlias (m.group (1).replace ('"', ''), m.group (2)) - line = ReadConfigLine (file) - file.close () - -# -# The Email/Employer map -# -EMMpat = re.compile (r'^([^\s]+)\s+([^<]+)\s*(<\s*(\d+-\d+-\d+)\s*)?$') - -def ReadEmailEmployers (name): - try: - file = open (name, 'r') - except IOError: - croak ('Unable to open email/employer file %s' % (name)) - line = ReadConfigLine (file) - while line: - m = EMMpat.match (line) - if not m: - croak ('Funky email/employer line "%s"' % (line)) - email = m.group (1) - company = m.group (2).strip () - enddate = ParseDate (m.group (4)) - database.AddEmailEmployerMapping (email, company, enddate) - line = ReadConfigLine (file) - file.close () - -def ParseDate (cdate): - if not cdate: - return None - sdate = cdate.split ('-') - return datetime.date (int (sdate[0]), int (sdate[1]), int (sdate[2])) - - -def ReadGroupMap (fname, employer): - try: - file = open (fname, 'r') - except IOError: - croak ('Unable to open group map file %s' % (fname)) - line = ReadConfigLine (file) - while line: - database.AddEmailEmployerMapping (line, employer) - line = ReadConfigLine (file) - file.close () - -# -# Read in a virtual employer description. -# -def ReadVirtual (file, name): - ve = database.VirtualEmployer (name) - line = ReadConfigLine (file) - while line: - sl = line.split (None, 1) - first = sl[0] - if first == 'end': - ve.store () - return - # - # Zap the "%" syntactic sugar if it's there - # - if first[-1] == '%': - first = first[:-1] - try: - percent = int (first) - except ValueError: - croak ('Bad split value "%s" for virtual empl %s' % (first, name)) - if not (0 < percent <= 100): - croak ('Bad split value "%s" for virtual empl %s' % (first, name)) - ve.addsplit (' '.join (sl[1:]), percent/100.0) - line = ReadConfigLine (file) - # - # We should never get here - # - croak ('Missing "end" line for virtual employer %s' % (name)) - -# -# Read file type patterns for more fine graned reports -# -def ReadFileType (filename): - try: - file = open (filename, 'r') - except IOError: - croak ('Unable to open file type mapping file %s' % (filename)) - patterns = {} - order = [] - regex_order = re.compile ('^order\s+(.*)$') - regex_file_type = re.compile ('^filetype\s+(\S+)\s+(.+)$') - line = ReadConfigLine (file) - while line: - o = regex_order.match (line) - if o: - # Consider only the first definition in the config file - elements = o.group(1).replace (' ', '') - order = order or elements.split(',') - line = ReadConfigLine (file) - continue - - m = regex_file_type.match (line) - if not m or len (m.groups ()) != 2: - ConfigFile.croak ('Funky file type line "%s"' % (line)) - if not patterns.has_key (m.group (1)): - patterns[m.group (1)] = [] - if m.group (1) not in order: - print '%s not found, appended to the last order' % m.group (1) - order.append (m.group (1)) - - patterns[m.group (1)].append (re.compile (m.group (2), re.IGNORECASE)) - - line = ReadConfigLine (file) - file.close () - return patterns, order - -# -# Read an overall config file. -# - -def ConfigFile (name, confdir): - try: - file = open (name, 'r') - except IOError: - croak ('Unable to open config file %s' % (name)) - line = ReadConfigLine (file) - while line: - sline = line.split (None, 2) - if len (sline) < 2: - croak ('Funky config line: "%s"' % (line)) - if sline[0] == 'EmailAliases': - ReadEmailAliases (os.path.join (confdir, sline[1])) - elif sline[0] == 'EmailMap': - ReadEmailEmployers (os.path.join (confdir, sline[1])) - elif sline[0] == 'GroupMap': - if len (sline) != 3: - croak ('Funky group map line "%s"' % (line)) - ReadGroupMap (os.path.join (confdir, sline[1]), sline[2]) - elif sline[0] == 'VirtualEmployer': - ReadVirtual (file, ' '.join (sline[1:])) - elif sline[0] == 'FileTypeMap': - patterns, order = ReadFileType (os.path.join (confdir, sline[1])) - database.FileTypes = database.FileType (patterns, order) - else: - croak ('Unrecognized config line: "%s"' % (line)) - line = ReadConfigLine (file) - diff --git a/README b/README deleted file mode 100644 index dab372e..0000000 --- a/README +++ /dev/null @@ -1,213 +0,0 @@ -The code in this directory makes up the "git data miner," a simple hack -which attempts to figure things out from the revision history in a git -repository. - - -INSTALLING GITDM - -gitdm is a python script and doesn't need to be proper installed like other -normal programs. You just have to adjust your PATH variable, pointing it to -the directory of gitdm or alternatively create a symbolic link of the script -inside /usr/bin. - -Before actually run gitdm you may want also to update the configuration file -(gitdm.config) with the needed information. - - -RUNNING GITDM - -Run it like this: - - git log -p -M [details] | gitdm [options] - -Alternatively, you can run with: - - git log --numstat -M [details] | gitdm -n [options] - -The [details] tell git which changesets are of interest; the [options] can -be: - - -a If a patch contains signoff lines from both Andrew Morton - and Linus Torvalds, omit Linus's. - - -b dir Specify the base directory to fetch the configuration files. - - -c file Specify the name of the gitdm configuration file. - By default, "./gitdm.config" is used. - - -d Omit the developer reports, giving employer information - only. - - -D Rather than create the usual statistics, create a file (datelc.csv) - providing lines changed per day, where the first column displays - the changes happened only on that day and the second sums the day it - happnened with the previous ones. This option is suitable for - feeding to a tool like gnuplot. - - -h file Generate HTML output to the given file - - -l num Only list the top entries in each report. - - -n Use --numstat instead of generated patches to get the statistics. - - -o file Write text output to the given file (default is stdout). - - -p prefix Dump out the database categorized by changeset and by file type. - It requires -n, otherwise it is not possible to get separated results. - - -r pat Only generate statistics for changes to files whose - name matches the given regular expression. - - -s Ignore Signed-off-by lines which match the author of - each patch. - - -t Generate a report by type of contribution (code, documentation, etc.). - It requires -n, otherwise this option is ignored silently. - - - -u Group all unknown developers under the "(Unknown)" - employer. - - -x file Export raw statistics as CSV. - - -w Aggregate the data by weeks instead of months in the - CSV file when -x is used. - - -z Dump out the hacker database to "database.dump". - -A typical command line used to generate the "who write 2.6.x" LWN articles -looks like: - - git log -p -M v2.6.19..v2.6.20 | \ - gitdm -u -s -a -o results -h results.html - -or: - - git log --numstat -M v2.6.19..v2.6.20 | \ - gitdm -u -s -a -n -o results -h results.html - -CONFIGURATION FILE - -The main purpose of the configuration file is to direct the mapping of -email addresses onto employers. Please note that the config file parser is -exceptionally stupid and unrobust at this point, but it gets the job done. - -Blank lines and lines beginning with "#" are ignored. Everything else -specifies a file with some sort of mapping: - -EmailAliases file - - Developers often post code under a number of different email - addresses, but it can be desirable to group them all together in - the statistics. An EmailAliases file just contains a bunch of - lines of the form: - - alias@address canonical@address - - Any patches originating from alias@address will be treated as if - they had come from canonical@address. - - It may happen that some people set their git user data in the - following form: "joe.hacker@acme.org ". The - "Joe Hacker" is then considered as the email... but gitdm says - it is a "Funky" email. An alias line in the following form can - be used to alias these commits aliased to the correct email - address: - - "Joe Hacker" joe.hacker@acme.org - - -EmailMap file - - Map email addresses onto employers. These files contain lines - like: - - [user@]domain employer [< yyyy-mm-dd] - - If the "user@" portion is missing, all email from the given domain - will be treated as being associated with the given employer. If a - date is provided, the entry is only valid up to that date; - otherwise it is considered valid into the indefinite future. This - feature can be useful for properly tracking developers' work when - they change employers but do not change email addresses. - - -GroupMap file employer - - This is a variant of EmailMap provided for convenience; it contains - email addresses only, all of which are associated with the given - employer. - -VirtualEmployer name - nn% employer1 - ... -end - - This construct (which appears in the main configuration file) - allows causes the creation of a fake employer with the given - "name". It directs that any contributions attributed to that - employer should be split to other (real) employers using the given - percentages. The functionality works, but is primitive - there is, - for example, no check to ensure that the percentages add up to - something rational. - -FileTypeMap file - - Map file names/extensions onto file types. These files contain lines - like: - - order ,,..., - - filetype - ... - - This construct allows fine graned reports by type of contribution - (build, code, image, multimedia, documentation, etc.) - - Order is important because it is possible to have overlapping between - filenames. For instance, ltmain.sh fits better as 'build' instead of - 'code' (the filename instead of '\.sh$'). The first element in order - has precedence over the next ones. - - -OTHER TOOLS - -A few other tools have been added to this repository: - - treeplot - Reads a set of commits, then generates a graphviz file charting the - flow of patches into the mainline. Needs to be smarter, but, then, - so does everything else in this directory. - - findoldfiles - Simple brute-force crawler which outputs the names of any files - which have not been touched since the original (kernel) commit. - - committags - I needed to be able to quickly associate a given commit with the - major release which contains it. First attempt used - "git tags --contains="; after it ran for a solid week, I concluded - there must be a better way. This tool just reads through the repo, - remembering tags, and creating a Python dictionary containing the - association. The result is an ugly 10mb pickle file, but, even so, - it's still a better way. - - linetags - Crawls through a directory hierarchy, counting how many lines of - code are associated with each major release. Needs the pickle file - from committags to get the job done. - - -NOTES AND CREDITS - -Gitdm was written by Jonathan Corbet; many useful contributions have come -from Greg Kroah-Hartman. - -Please note that this tool is provided in the hope that it will be useful, -but it is not put forward as an example of excellence in design or -implementation. Hacking on gitdm tends to stop the moment it performs -whatever task is required of it at the moment. Patches to make it less -hacky, less ugly, and more robust are welcome. - -Jonathan Corbet -corbet@lwn.net diff --git a/committags b/committags deleted file mode 100755 index 39a532d..0000000 --- a/committags +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/python -# -# Generate a database of commits and major versions they went into. -# -# committags [git-args] -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import sys -import re -import os -import pickle - -git = 'git log --decorate ' -if len(sys.argv) > 1: - git += ' '.join(sys.argv[1:]) -input = os.popen(git, 'r') - -DB = { } -Tag = 'None' - -tagline = re.compile(r'^commit ([\da-f]+) .*tag: (v2\.6\.\d\d)') -commit = re.compile(r'^commit ([\da-f]+)') - -for line in input.readlines(): - if not line.startswith('commit'): - continue # This makes it go faster - m = tagline.search(line) - if m: - DB[m.group(1)] = Tag = m.group(2) - else: - m = commit.search(line) - if m: - DB[m.group(1)] = Tag - -print 'Found %d commits' % (len(DB.keys())) -out = open('committags.db', 'w') -pickle.dump(DB, out) -out.close() diff --git a/csvdump.py b/csvdump.py deleted file mode 100644 index c3f6b5a..0000000 --- a/csvdump.py +++ /dev/null @@ -1,92 +0,0 @@ -# -# aggregate per-month statistics for people -# -import sys, datetime -import csv - -class CSVStat: - def __init__ (self, name, email, employer, date): - self.name = name - self.email = email - self.employer = employer - self.added = self.removed = self.changesets = 0 - self.date = date - def accumulate (self, p): - self.added = self.added + p.added - self.removed = self.removed + p.removed - self.changesets += 1 - -PeriodCommitHash = { } - -def AccumulatePatch (p, Aggregate): - if (Aggregate == 'week'): - date = "%.2d-%.2d"%(p.date.isocalendar()[0], p.date.isocalendar()[1]) - elif (Aggregate == 'year'): - date = "%.2d"%(p.date.year) - else: - date = "%.2d-%.2d-01"%(p.date.year, p.date.month) - authdatekey = "%s-%s"%(p.author.name, date) - if authdatekey not in PeriodCommitHash: - empl = p.author.emailemployer (p.email, p.date) - stat = CSVStat (p.author.name, p.email, empl, date) - PeriodCommitHash[authdatekey] = stat - else: - stat = PeriodCommitHash[authdatekey] - stat.accumulate (p) - -ChangeSets = [] -FileTypes = [] - -def store_patch(patch): - if not patch.merge: - employer = patch.author.emailemployer(patch.email, patch.date) - employer = employer.name.replace('"', '.').replace ('\\', '.') - author = patch.author.name.replace ('"', '.').replace ('\\', '.') - author = patch.author.name.replace ("'", '.') - try: - domain = patch.email.split('@')[1] - except: - domain = patch.email - ChangeSets.append([patch.commit, str(patch.date), - patch.email, domain, author, employer, - patch.added, patch.removed]) - for (filetype, (added, removed)) in patch.filetypes.iteritems(): - FileTypes.append([patch.commit, filetype, added, removed]) - - -def save_csv (prefix='data'): - # Dump the ChangeSets - if len(ChangeSets) > 0: - fd = open('%s-changesets.csv' % prefix, 'w') - writer = csv.writer (fd, quoting=csv.QUOTE_NONNUMERIC) - writer.writerow (['Commit', 'Date', 'Domain', - 'Email', 'Name', 'Affliation', - 'Added', 'Removed']) - for commit in ChangeSets: - writer.writerow(commit) - - # Dump the file types - if len(FileTypes) > 0: - fd = open('%s-filetypes.csv' % prefix, 'w') - writer = csv.writer (fd, quoting=csv.QUOTE_NONNUMERIC) - - writer.writerow (['Commit', 'Type', 'Added', 'Removed']) - for commit in FileTypes: - writer.writerow(commit) - - - -def OutputCSV (file): - if file is None: - return - writer = csv.writer (file, quoting=csv.QUOTE_NONNUMERIC) - writer.writerow (['Name', 'Email', 'Affliation', 'Date', - 'Added', 'Removed', 'Changesets']) - for date, stat in PeriodCommitHash.items(): - # sanitise names " is common and \" sometimes too - empl_name = stat.employer.name.replace ('"', '.').replace ('\\', '.') - author_name = stat.name.replace ('"', '.').replace ('\\', '.') - writer.writerow ([author_name, stat.email, empl_name, stat.date, - stat.added, stat.removed, stat.changesets]) - -__all__ = [ 'AccumulatePatch', 'OutputCSV', 'store_patch' ] diff --git a/database.py b/database.py deleted file mode 100644 index c8f6b49..0000000 --- a/database.py +++ /dev/null @@ -1,325 +0,0 @@ -# -# The "database". -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import sys, datetime - - -class Hacker: - def __init__ (self, name, id, elist, email): - self.name = name - self.id = id - self.employer = [ elist ] - self.email = [ email ] - self.added = self.removed = 0 - self.patches = [ ] - self.signoffs = [ ] - self.reviews = [ ] - self.tested = [ ] - self.reports = [ ] - self.bugsfixed = [ ] - self.testcred = self.repcred = 0 - self.versions = [ ] - - def addemail (self, email, elist): - self.email.append (email) - self.employer.append (elist) - HackersByEmail[email] = self - - def emailemployer (self, email, date): - for i in range (0, len (self.email)): - if self.email[i] == email: - for edate, empl in self.employer[i]: - if edate > date: - return empl - print 'OOPS. ', self.name, self.employer, self.email, email, date - return None # Should not happen - - def addpatch (self, patch): - self.added += patch.added - self.removed += patch.removed - self.patches.append (patch) - - # - # Note that the author is represented in this release. - # - def addversion (self, release): - if release not in self.versions: - self.versions.append (release) - # - # There's got to be a better way. - # - def addsob (self, patch): - self.signoffs.append (patch) - def addreview (self, patch): - self.reviews.append (patch) - def addtested (self, patch): - self.tested.append (patch) - def addreport (self, patch): - self.reports.append (patch) - - def reportcredit (self, patch): - self.repcred += 1 - def testcredit (self, patch): - self.testcred += 1 - - def addbugfixed (self, bug): - self.bugsfixed.append (bug) - -HackersByName = { } -HackersByEmail = { } -HackersByID = { } -MaxID = 0 - -def StoreHacker (name, elist, email): - global MaxID - - id = MaxID - MaxID += 1 - h = Hacker (name, id, elist, email) - HackersByName[name] = h - HackersByEmail[email] = h - HackersByID[id] = h - return h - -def LookupEmail (addr): - try: - return HackersByEmail[addr] - except KeyError: - return None - -def LookupName (name): - try: - return HackersByName[name] - except KeyError: - return None - -def LookupID (id): - try: - return HackersByID[id] - except KeyError: - return None - -def AllHackers (): - return HackersByID.values () -# return [h for h in HackersByID.values ()] # if (h.added + h.removed) > 0] - -def DumpDB (): - out = open ('database.dump', 'w') - names = HackersByName.keys () - names.sort () - for name in names: - h = HackersByName[name] - out.write ('%4d %s %d p (+%d -%d) sob: %d\n' % (h.id, h.name, - len (h.patches), - h.added, h.removed, - len (h.signoffs))) - for i in range (0, len (h.email)): - out.write ('\t%s -> \n' % (h.email[i])) - for date, empl in h.employer[i]: - out.write ('\t\t %d-%d-%d %s\n' % (date.year, date.month, date.day, - empl.name)) - if h.versions: - out.write ('\tVersions: %s\n' % ','.join (h.versions)) - -# -# Hack: The first visible tag comes a ways into the stream; when we see it, -# push it backward through the changes we've already seen. -# -def ApplyFirstTag (tag): - for n in HackersByName.keys (): - if HackersByName[n].versions: - HackersByName[n].versions = [tag] - -# -# Employer info. -# -class Employer: - def __init__ (self, name): - self.name = name - self.added = self.removed = self.count = self.changed = 0 - self.sobs = 0 - self.bugsfixed = [ ] - self.reviews = [ ] - self.hackers = [ ] - - def AddCSet (self, patch): - self.added += patch.added - self.removed += patch.removed - self.changed += max(patch.added, patch.removed) - self.count += 1 - if patch.author not in self.hackers: - self.hackers.append (patch.author) - - def AddSOB (self): - self.sobs += 1 - - def AddBug (self, bug): - self.bugsfixed.append(bug) - if bug.owner not in self.hackers: - self.hackers.append (bug.owner) - - def AddReview (self, reviewer): - self.reviews.append(reviewer) - if reviewer not in self.hackers: - self.hackers.append (reviewer) - -Employers = { } - -def GetEmployer (name): - try: - return Employers[name] - except KeyError: - e = Employer (name) - Employers[name] = e - return e - -def AllEmployers (): - return Employers.values () - -# -# Certain obnoxious developers, who will remain nameless (because we -# would never want to run afoul of Thomas) want their work split among -# multiple companies. Let's try to cope with that. Let's also hope -# this doesn't spread. -# -class VirtualEmployer (Employer): - def __init__ (self, name): - Employer.__init__ (self, name) - self.splits = [ ] - - def addsplit (self, name, fraction): - self.splits.append ((name, fraction)) - - # - # Go through and (destructively) apply our credits to the - # real employer. Only one level of weirdness is supported. - # - def applysplits (self): - for name, fraction in self.splits: - real = GetEmployer (name) - real.added += int (self.added*fraction) - real.removed += int (self.removed*fraction) - real.changed += int (self.changed*fraction) - real.count += int (self.count*fraction) - self.__init__ (name) # Reset counts just in case - - def store (self): - if Employers.has_key (self.name): - print Employers[self.name] - sys.stderr.write ('WARNING: Virtual empl %s overwrites another\n' - % (self.name)) - if len (self.splits) == 0: - sys.stderr.write ('WARNING: Virtual empl %s has no splits\n' - % (self.name)) - # Should check that they add up too, but I'm lazy - Employers[self.name] = self - -class FileType: - def __init__ (self, patterns={}, order=[]): - self.patterns = patterns - self.order = order - - def guess_file_type (self, filename, patterns=None, order=None): - patterns = patterns or self.patterns - order = order or self.order - - for file_type in order: - if patterns.has_key (file_type): - for patt in patterns[file_type]: - if patt.search (filename): - return file_type - - return 'unknown' - -# -# By default we recognize nothing. -# -FileTypes = FileType ({}, []) - -# -# Mix all the virtual employers into their real destinations. -# -def MixVirtuals (): - for empl in AllEmployers (): - if isinstance (empl, VirtualEmployer): - empl.applysplits () - -# -# The email map. -# -EmailAliases = { } - -def AddEmailAlias (variant, canonical): - if EmailAliases.has_key (variant): - sys.stderr.write ('Duplicate email alias for %s\n' % (variant)) - EmailAliases[variant] = canonical - -def RemapEmail (email): - email = email.lower () - try: - return EmailAliases[email] - except KeyError: - return email - -# -# Email-to-employer mapping. -# -EmailToEmployer = { } -nextyear = datetime.date.today () + datetime.timedelta (days = 365) - -def AddEmailEmployerMapping (email, employer, end = nextyear): - if end is None: - end = nextyear - email = email.lower () - empl = GetEmployer (employer) - try: - l = EmailToEmployer[email] - for i in range (0, len(l)): - date, xempl = l[i] - if date == end: # probably both nextyear - print 'WARNING: duplicate email/empl for %s' % (email) - if date > end: - l.insert (i, (end, empl)) - return - l.append ((end, empl)) - except KeyError: - EmailToEmployer[email] = [(end, empl)] - -def MapToEmployer (email, unknown = 0): - # Somebody sometimes does s/@/ at /; let's fix it. - email = email.lower ().replace (' at ', '@') - try: - return EmailToEmployer[email] - except KeyError: - pass - namedom = email.split ('@') - if len (namedom) < 2: - print 'Oops...funky email %s' % email - return [(nextyear, GetEmployer ('Funky'))] - s = namedom[1].split ('.') - for dots in range (len (s) - 2, -1, -1): - addr = '.'.join (s[dots:]) - try: - return EmailToEmployer[addr] - except KeyError: - pass - # - # We don't know who they work for. - # - if unknown: - return [(nextyear, GetEmployer ('(Unknown)'))] - return [(nextyear, GetEmployer (email))] - - -def LookupEmployer (email, mapunknown = 0): - elist = MapToEmployer (email, mapunknown) - return elist # GetEmployer (ename) - diff --git a/do-it.sh b/do-it.sh deleted file mode 100755 index d5e6f74..0000000 --- a/do-it.sh +++ /dev/null @@ -1,152 +0,0 @@ -#!/bin/bash - -GITBASE=~/git/openstack -RELEASE=grizzly -BASEDIR=$(pwd) -CONFIGDIR=$(pwd)/openstack-config -TEMPDIR=${TEMPDIR:-$(mktemp -d $(pwd)/dmtmp-XXXXXX)} -GITLOGARGS="--no-merges --numstat -M --find-copies-harder" - -UPDATE_GIT=${UPDATE_GIT:-y} -GIT_STATS=${GIT_STATS:-y} -LP_STATS=${LP_STATS:-y} -QUERY_LP=${QUERY_LP:-y} -GERRIT_STATS=${GERRIT_STATS:-y} -REMOVE_TEMPDIR=${REMOVE_TEMPDIR:-y} - -if [ ! -d .venv ]; then - echo "Creating a virtualenv" - ./tools/install_venv.sh -fi - -if [ "$UPDATE_GIT" = "y" ]; then - echo "Updating projects from git" - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - cd ${GITBASE}/${project} - git fetch origin 2>/dev/null - done -fi - -if [ "$GIT_STATS" = "y" ] ; then - echo "Generating git commit logs" - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project revisions excludes x; do - cd ${GITBASE}/${project} - git log ${GITLOGARGS} ${revisions} > "${TEMPDIR}/${project}-commits.log" - if [ -n "$excludes" ]; then - awk "/^commit /{ok=1} /^commit ${excludes}/{ok=0} {if(ok) {print}}" \ - < "${TEMPDIR}/${project}-commits.log" > "${TEMPDIR}/${project}-commits.log.new" - mv "${TEMPDIR}/${project}-commits.log.new" "${TEMPDIR}/${project}-commits.log" - fi - done - - echo "Generating git statistics" - cd ${BASEDIR} - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - python gitdm -l 20 -n < "${TEMPDIR}/${project}-commits.log" > "${TEMPDIR}/${project}-git-stats.txt" - done - - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - cat "${TEMPDIR}/${project}-commits.log" >> "${TEMPDIR}/git-commits.log" - done - python gitdm -l 20 -n < "${TEMPDIR}/git-commits.log" > "${TEMPDIR}/git-stats.txt" -fi - -if [ "$LP_STATS" = "y" ] ; then - echo "Generating a list of bugs" - cd ${BASEDIR} - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - if [ ! -f "${TEMPDIR}/${project}-bugs.log" -a "$QUERY_LP" = "y" ]; then - ./tools/with_venv.sh python launchpad/buglist.py ${project} ${RELEASE} > "${TEMPDIR}/${project}-bugs.log" - fi - while read id person date x; do - emails=$(awk "/^$person / {print \$2}" ${CONFIGDIR}/launchpad-ids.txt) - echo $id $person $date $emails - done < "${TEMPDIR}/${project}-bugs.log" > "${TEMPDIR}/${project}-bugs.log.new" - mv "${TEMPDIR}/${project}-bugs.log.new" "${TEMPDIR}/${project}-bugs.log" - done - - echo "Generating launchpad statistics" - cd ${BASEDIR} - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - grep -v '' "${TEMPDIR}/${project}-bugs.log" | - python lpdm -l 20 > "${TEMPDIR}/${project}-lp-stats.txt" - done - - > "${TEMPDIR}/lp-bugs.log" - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - grep -v '' "${TEMPDIR}/${project}-bugs.log" >> "${TEMPDIR}/lp-bugs.log" - done - grep -v '' "${TEMPDIR}/lp-bugs.log" | - python lpdm -l 20 > "${TEMPDIR}/lp-stats.txt" -fi - -if [ "$GERRIT_STATS" = "y" ] ; then - echo "Generating a list of Change-Ids" - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project revisions x; do - cd "${GITBASE}/${project}" - git log ${revisions} | - awk '/^ Change-Id: / { print $2 }' | - split -l 100 -d - "${TEMPDIR}/${project}-${RELEASE}-change-ids-" - done - - cd ${TEMPDIR} - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - > ${project}-${RELEASE}-reviews.json - for f in ${project}-${RELEASE}-change-ids-??; do - echo "Querying gerrit: ${f}" - ssh -p 29418 review.openstack.org \ - gerrit query --all-approvals --format=json \ - $(awk -v ORS=' OR ' '{print}' $f | sed 's/ OR $//') \ - < /dev/null >> "${project}-${RELEASE}-reviews.json" - done - done - - echo "Generating a list of commit IDs" - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project revisions x; do - cd "${GITBASE}/${project}" - git log --pretty=format:%H $revisions > \ - "${TEMPDIR}/${project}-${RELEASE}-commit-ids.txt" - done - - echo "Parsing the gerrit queries" - cd ${BASEDIR} - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - python gerrit/parse-reviews.py \ - "${TEMPDIR}/${project}-${RELEASE}-commit-ids.txt" \ - "${CONFIGDIR}/launchpad-ids.txt" \ - < "${TEMPDIR}/${project}-${RELEASE}-reviews.json" \ - > "${TEMPDIR}/${project}-${RELEASE}-reviewers.txt" - done - - echo "Generating gerrit statistics" - cd ${BASEDIR} - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - python gerritdm -l 20 \ - < "${TEMPDIR}/${project}-${RELEASE}-reviewers.txt" \ - > "${TEMPDIR}/${project}-gerrit-stats.txt" - done - - > "${TEMPDIR}/gerrit-reviewers.txt" - grep -v '^#' ${CONFIGDIR}/${RELEASE} | - while read project x; do - cat "${TEMPDIR}/${project}-${RELEASE}-reviewers.txt" >> "${TEMPDIR}/gerrit-reviewers.txt" - done - python gerritdm -l 20 < "${TEMPDIR}/gerrit-reviewers.txt" > "${TEMPDIR}/gerrit-stats.txt" -fi - -cd ${BASEDIR} -rm -rf ${RELEASE} && mkdir ${RELEASE} -mv ${TEMPDIR}/*stats.txt ${RELEASE} -[ "$REMOVE_TEMPDIR" = "y" ] && rm -rf ${TEMPDIR} || echo "Not removing ${TEMPDIR}" diff --git a/essex/gerrit-stats.txt b/essex/gerrit-stats.txt new file mode 100644 index 0000000..80e77ab --- /dev/null +++ b/essex/gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 7011 review from 149 developers +61 employers found + +Developers with the most reviews (total 7011) +klmitch 544 (7.8%) +vishvananda 522 (7.4%) +bcwaldon 513 (7.3%) +johannes.erdfelt 320 (4.6%) +cbehrens 284 (4.1%) +jaypipes 283 (4.0%) +jk0 251 (3.6%) +devcamcar 227 (3.2%) +anotherjesse 209 (3.0%) +gabriel-hurley 204 (2.9%) +tres 194 (2.8%) +ziad-sawalha 177 (2.5%) +dolph 162 (2.3%) +heckj 154 (2.2%) +blamar 146 (2.1%) +cerberus 143 (2.0%) +dan-prince 130 (1.9%) +jakedahn 127 (1.8%) +rconradharris 125 (1.8%) +markmc 124 (1.8%) +Covers 69.020111% of reviews + +Top reviewers by employer (total 7011) +Rackspace 4777 (68.1%) +Nebula 881 (12.6%) +Red Hat 306 (4.4%) +HP 259 (3.7%) +Nicira 168 (2.4%) +Nimbis Services 79 (1.1%) +Cisco Systems 79 (1.1%) +Piston Cloud 71 (1.0%) +Canonical 59 (0.8%) +Internap 54 (0.8%) +Citrix 42 (0.6%) +Cloudscaling 35 (0.5%) +DreamHost 34 (0.5%) +eNovance 21 (0.3%) +Delta Electronics 12 (0.2%) +La Honda Research 12 (0.2%) +Cisco 9 (0.1%) +Locaweb 8 (0.1%) +Everbread 7 (0.1%) +Managed IT 7 (0.1%) +Covers 98.702040% of reviews diff --git a/essex/git-stats.txt b/essex/git-stats.txt new file mode 100644 index 0000000..681554e --- /dev/null +++ b/essex/git-stats.txt @@ -0,0 +1,141 @@ +Processed 3481 csets from 217 developers +100 employers found +A total of 421695 lines added, 256904 removed (delta 164791) + +Developers with the most changesets +termie 238 (6.8%) +Gabriel Hurley 207 (5.9%) +Brian Waldon 195 (5.6%) +Johannes Erdfelt 146 (4.2%) +Vishvananda Ishaya 116 (3.3%) +Dolph Mathews 98 (2.8%) +Dan Prince 84 (2.4%) +Ziad Sawalha 80 (2.3%) +Jason Kölker 77 (2.2%) +Mark McLoughlin 73 (2.1%) +Jake Dahn 73 (2.1%) +Rick Harris 71 (2.0%) +Alex Meade 70 (2.0%) +Trey Morris 62 (1.8%) +Joe Heck 58 (1.7%) +Chris Behrens 52 (1.5%) +Russell Bryant 50 (1.4%) +Eoghan Glynn 50 (1.4%) +Joe Gordon 47 (1.4%) +Jesse Andrews 46 (1.3%) +Covers 54.380925% of changesets + +Developers with the most changed lines +Gabriel Hurley 78617 (15.4%) +Ziad Sawalha 39251 (7.7%) +Brian Waldon 34090 (6.7%) +jeffjapan 16201 (3.2%) +termie 15882 (3.1%) +Armando Migliaccio 14954 (2.9%) +Jake Dahn 14105 (2.8%) +Joe Heck 13696 (2.7%) +Mark McLoughlin 12523 (2.4%) +Dolph Mathews 11338 (2.2%) +Kevin L. Mitchell 10411 (2.0%) +Chris Behrens 8902 (1.7%) +Vishvananda Ishaya 7448 (1.5%) +Jay Pipes 6966 (1.4%) +gholt 6537 (1.3%) +Hengqing Hu 6334 (1.2%) +Johannes Erdfelt 6120 (1.2%) +Brad Hall 5538 (1.1%) +Alex Meade 5029 (1.0%) +Eoghan Glynn 4639 (0.9%) +Covers 62.286354% of changes + +Developers with the most lines removed +Brian Waldon 17810 (6.9%) +Thierry Carrez 3212 (1.3%) +Julien Danjou 2757 (1.1%) +Sandy Walsh 1385 (0.5%) +Lorin Hochstein 902 (0.4%) +Jesse Andrews 891 (0.3%) +Monty Taylor 369 (0.1%) +Paul McMillan 294 (0.1%) +Yaguang Tang 286 (0.1%) +Ghe Rivero 217 (0.1%) +Dan Wendlandt 199 (0.1%) +Andy Chong 123 (0.0%) +Shevek 89 (0.0%) +John Dickinson 31 (0.0%) +Rohit Agarwalla 17 (0.0%) +Ben McGraw 16 (0.0%) +Felipe Reyes 12 (0.0%) +Ante Karamatić 5 (0.0%) +eperdomo 3 (0.0%) +Kiall Mac Innes 1 (0.0%) +Covers 11.139959% of changes + +Top changeset contributors by employer +Rackspace 1921 (55.2%) +Nebula 348 (10.0%) +Red Hat 275 (7.9%) +HP 101 (2.9%) +Canonical 92 (2.6%) +Citrix 83 (2.4%) +Nicira 78 (2.2%) +Cloudscaling 47 (1.4%) +Delta Electronics 44 (1.3%) +eNovance 41 (1.2%) +SINA 38 (1.1%) +Cisco Systems 25 (0.7%) +Nimbis Services 22 (0.6%) +hudayou@hotmail.com 20 (0.6%) +FathomDB 20 (0.6%) +Everbread 19 (0.5%) +Midokura 19 (0.5%) +Wikimedia Foundation 18 (0.5%) +throughnothing@gmail.com 14 (0.4%) +emmasteimann@gmail.com 14 (0.4%) +Covers 93.047975% of changesets + +Top lines changed by employer +Rackspace 239195 (46.8%) +Nebula 124821 (24.4%) +Red Hat 27591 (5.4%) +Citrix 20403 (4.0%) +Midokura 17331 (3.4%) +HP 13020 (2.5%) +Nicira 8721 (1.7%) +hudayou@hotmail.com 6359 (1.2%) +Cisco Systems 6324 (1.2%) +Delta Electronics 3497 (0.7%) +Canonical 3267 (0.6%) +eNovance 3241 (0.6%) +btorch@gmail.com 3148 (0.6%) +Wikimedia Foundation 2812 (0.5%) +Nimbis Services 2409 (0.5%) +emmasteimann@gmail.com 2288 (0.4%) +mkkang@isi.edu 2008 (0.4%) +StackOps 1944 (0.4%) +SINA 1766 (0.3%) +NetApp 1607 (0.3%) +Covers 96.143334% of changes + +Employers with the most hackers (total 226) +Rackspace 51 (22.6%) +HP 19 (8.4%) +Red Hat 12 (5.3%) +Citrix 9 (4.0%) +Nebula 8 (3.5%) +Cisco Systems 6 (2.7%) +Canonical 6 (2.7%) +Piston Cloud 6 (2.7%) +DreamHost 4 (1.8%) +SUSE 4 (1.8%) +Nicira 3 (1.3%) +Internap 3 (1.3%) +Midokura 2 (0.9%) +eNovance 2 (0.9%) +SINA 2 (0.9%) +Mirantis 2 (0.9%) +Dell 2 (0.9%) +SwiftStack 2 (0.9%) +Yahoo! 2 (0.9%) +hudayou@hotmail.com 1 (0.4%) +Covers 64.601770% of hackers diff --git a/essex/glance-gerrit-stats.txt b/essex/glance-gerrit-stats.txt new file mode 100644 index 0000000..236ed54 --- /dev/null +++ b/essex/glance-gerrit-stats.txt @@ -0,0 +1,41 @@ +Processed 622 review from 48 developers +13 employers found + +Developers with the most reviews (total 622) +jaypipes 203 (32.6%) +klmitch 135 (21.7%) +bcwaldon 94 (15.1%) +dan-prince 31 (5.0%) +eglynn 19 (3.1%) +blamar 18 (2.9%) +p-draigbrady 15 (2.4%) +ttx 12 (1.9%) +rconradharris 12 (1.9%) +jk0 12 (1.9%) +anotherjesse 7 (1.1%) +0x44 4 (0.6%) +mordred 4 (0.6%) +oubiwann 4 (0.6%) +russellb 4 (0.6%) +jason-koelker 4 (0.6%) +annegentle 3 (0.5%) +heckj 3 (0.5%) +johannes.erdfelt 3 (0.5%) +markmc 3 (0.5%) +Covers 94.855305% of reviews + +Top reviewers by employer (total 622) +Rackspace 401 (64.5%) +HP 150 (24.1%) +Red Hat 46 (7.4%) +Nebula 7 (1.1%) +DreamHost 5 (0.8%) +Piston Cloud 4 (0.6%) +eNovance 3 (0.5%) +tribaal@gmail.com 1 (0.2%) +pavan.sss1991@gmail.com 1 (0.2%) +IBM 1 (0.2%) +edouard1.thuleau@orange.com 1 (0.2%) +SolidFire 1 (0.2%) +Canonical 1 (0.2%) +Covers 100.000000% of reviews diff --git a/essex/glance-git-stats.txt b/essex/glance-git-stats.txt new file mode 100644 index 0000000..0a8675a --- /dev/null +++ b/essex/glance-git-stats.txt @@ -0,0 +1,122 @@ +Processed 276 csets from 51 developers +22 employers found +A total of 28620 lines added, 13746 removed (delta 14874) + +Developers with the most changesets +Brian Waldon 55 (19.9%) +Eoghan Glynn 43 (15.6%) +Jay Pipes 30 (10.9%) +Mark McLoughlin 12 (4.3%) +Russell Bryant 11 (4.0%) +Brian Lamar 11 (4.0%) +Dan Prince 10 (3.6%) +Stuart McLaren 10 (3.6%) +Monty Taylor 9 (3.3%) +Rick Harris 9 (3.3%) +Thierry Carrez 6 (2.2%) +Kevin L. Mitchell 5 (1.8%) +James E. Blair 4 (1.4%) +Hengqing Hu 4 (1.4%) +Adam Gandelman 3 (1.1%) +Mark Washenberger 3 (1.1%) +Dean Troyer 3 (1.1%) +Johannes Erdfelt 3 (1.1%) +Ewan Mellor 3 (1.1%) +Alex Meade 3 (1.1%) +Covers 85.869565% of changesets + +Developers with the most changed lines +Jay Pipes 6629 (20.1%) +Brian Waldon 6243 (18.9%) +Eoghan Glynn 4308 (13.1%) +Mark McLoughlin 3309 (10.0%) +Russell Bryant 1529 (4.6%) +Stuart McLaren 1358 (4.1%) +Monty Taylor 1352 (4.1%) +Alex Meade 624 (1.9%) +Brian Lamar 556 (1.7%) +Rick Harris 497 (1.5%) +Josh Durgin 416 (1.3%) +Reynolds Chin 348 (1.1%) +Chris Behrens 328 (1.0%) +Johannes Erdfelt 311 (0.9%) +Justin Santa Barbara 283 (0.9%) +Jason Kölker 267 (0.8%) +Ewan Mellor 212 (0.6%) +Dan Prince 179 (0.5%) +Kevin L. Mitchell 171 (0.5%) +Paul Bourke 156 (0.5%) +Covers 88.090405% of changes + +Developers with the most lines removed +Brian Waldon 1533 (11.2%) +Covers 11.152335% of changes + +Top changeset contributors by employer +Rackspace 134 (48.6%) +Red Hat 76 (27.5%) +HP 33 (12.0%) +Canonical 5 (1.8%) +hudayou@hotmail.com 4 (1.4%) +Citrix 3 (1.1%) +major@mhtx.net 2 (0.7%) +SINA 2 (0.7%) +Internap 2 (0.7%) +FathomDB 2 (0.7%) +Piston Cloud 2 (0.7%) +benzwt@gmail.com 1 (0.4%) +Vertex 1 (0.4%) +heut2008@gmail.com 1 (0.4%) +pavan.sss1991@gmail.com 1 (0.4%) +Cloudscaling 1 (0.4%) +Nimbis Services 1 (0.4%) +DreamHost 1 (0.4%) +Nebula 1 (0.4%) +SUSE 1 (0.4%) +Covers 99.275362% of changesets + +Top lines changed by employer +Rackspace 17709 (53.7%) +Red Hat 9749 (29.5%) +HP 3641 (11.0%) +DreamHost 416 (1.3%) +benzwt@gmail.com 348 (1.1%) +FathomDB 283 (0.9%) +Citrix 212 (0.6%) +hudayou@hotmail.com 144 (0.4%) +Piston Cloud 103 (0.3%) +Nimbis Services 90 (0.3%) +Nebula 58 (0.2%) +Vertex 57 (0.2%) +pavan.sss1991@gmail.com 46 (0.1%) +SINA 45 (0.1%) +Canonical 41 (0.1%) +Internap 35 (0.1%) +andrew@linuxjedi.co.uk 10 (0.0%) +major@mhtx.net 5 (0.0%) +Cloudscaling 5 (0.0%) +Yahoo! 5 (0.0%) +Covers 99.984852% of changes + +Employers with the most hackers (total 55) +Rackspace 18 (32.7%) +Red Hat 7 (12.7%) +HP 7 (12.7%) +Piston Cloud 2 (3.6%) +SINA 2 (3.6%) +Canonical 2 (3.6%) +Internap 2 (3.6%) +DreamHost 1 (1.8%) +benzwt@gmail.com 1 (1.8%) +FathomDB 1 (1.8%) +Citrix 1 (1.8%) +hudayou@hotmail.com 1 (1.8%) +Nimbis Services 1 (1.8%) +Nebula 1 (1.8%) +Vertex 1 (1.8%) +pavan.sss1991@gmail.com 1 (1.8%) +andrew@linuxjedi.co.uk 1 (1.8%) +major@mhtx.net 1 (1.8%) +Cloudscaling 1 (1.8%) +Yahoo! 1 (1.8%) +Covers 96.363636% of hackers diff --git a/essex/glance-lp-stats.txt b/essex/glance-lp-stats.txt new file mode 100644 index 0000000..eaa626f --- /dev/null +++ b/essex/glance-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 183 bugs from 45 developers +20 employers found + +Developers with the most bugs fixed +bcwaldon 34 (18.6%) +jaypipes 29 (15.8%) +eglynn 28 (15.3%) +dan-prince 11 (6.0%) +stuart-mclaren 9 (4.9%) +rconradharris 6 (3.3%) +klmitch 5 (2.7%) +ttx 4 (2.2%) +blamar 4 (2.2%) +gandelman-a 3 (1.6%) +markmc 3 (1.6%) +hudayou 3 (1.6%) +zulcss 3 (1.6%) +dtroyer 2 (1.1%) +justin-fathomdb 2 (1.1%) +derekh 2 (1.1%) +tom-hancock 2 (1.1%) +alex-meade 2 (1.1%) +markwash 2 (1.1%) +russellb 2 (1.1%) +Covers 85.245902% of bugs + +Top bugs fixed by employer +Rackspace 90 (49.2%) +Red Hat 41 (22.4%) +HP 24 (13.1%) +Canonical 6 (3.3%) +hudayou@hotmail.com 3 (1.6%) +major@mhtx.net 2 (1.1%) +SINA 2 (1.1%) +Internap 2 (1.1%) +FathomDB 2 (1.1%) +heut2008@gmail.com 1 (0.5%) +Vertex 1 (0.5%) +edouard1.thuleau@orange.com 1 (0.5%) +Cloudscaling 1 (0.5%) +Nebula 1 (0.5%) +SUSE 1 (0.5%) +Yahoo! 1 (0.5%) +andrew@linuxjedi.co.uk 1 (0.5%) +unknown@hacker.net 1 (0.5%) +Piston Cloud 1 (0.5%) +Citrix 1 (0.5%) +Covers 100.000000% of bugs diff --git a/essex/horizon-gerrit-stats.txt b/essex/horizon-gerrit-stats.txt new file mode 100644 index 0000000..0a9451f --- /dev/null +++ b/essex/horizon-gerrit-stats.txt @@ -0,0 +1,44 @@ +Processed 845 review from 28 developers +16 employers found + +Developers with the most reviews (total 845) +gabriel-hurley 199 (23.6%) +tres 190 (22.5%) +devcamcar 143 (16.9%) +jakedahn 126 (14.9%) +paul-mcmillan 51 (6.0%) +john-postlethwait 28 (3.3%) +heckj 28 (3.3%) +anotherjesse 24 (2.8%) +andycjw 12 (1.4%) +sleepsonthefloor 9 (1.1%) +ttrifonov 7 (0.8%) +jaypipes 5 (0.6%) +ttx 4 (0.5%) +kiall 2 (0.2%) +oubiwann 2 (0.2%) +francois-charlier 2 (0.2%) +mordred 2 (0.2%) +joe-gordon0 1 (0.1%) +thingee 1 (0.1%) +lemonlatte 1 (0.1%) +Covers 99.053254% of reviews + +Top reviewers by employer (total 845) +Nebula 639 (75.6%) +Rackspace 168 (19.9%) +Delta Electronics 12 (1.4%) +Everbread 7 (0.8%) +HP 5 (0.6%) +eNovance 2 (0.2%) +Managed IT 2 (0.2%) +DreamHost 2 (0.2%) +onewheeldrive.net@gmail.com 1 (0.1%) +heut2008@gmail.com 1 (0.1%) +lemonlatte@gmail.com 1 (0.1%) +launchpad@markgius.com 1 (0.1%) +Cloudscaling 1 (0.1%) +thingee@gmail.com 1 (0.1%) +ronald.petty@gmail.com 1 (0.1%) +Canonical 1 (0.1%) +Covers 100.000000% of reviews diff --git a/essex/horizon-git-stats.txt b/essex/horizon-git-stats.txt new file mode 100644 index 0000000..c45a6a6 --- /dev/null +++ b/essex/horizon-git-stats.txt @@ -0,0 +1,129 @@ +Processed 519 csets from 40 developers +27 employers found +A total of 122771 lines added, 99173 removed (delta 23598) + +Developers with the most changesets +Gabriel Hurley 200 (38.5%) +jakedahn 71 (13.7%) +Andy Chong 44 (8.5%) +Tres Henry 29 (5.6%) +Paul McMillan 21 (4.0%) +Tihomir Trifonov 19 (3.7%) +jeffjapan 15 (2.9%) +Emma Steimann 14 (2.7%) +John Postlethwait 12 (2.3%) +Julien Danjou 11 (2.1%) +Joe Heck 10 (1.9%) +Anthony Young 8 (1.5%) +Devin Carlen 7 (1.3%) +Ewan Mellor 6 (1.2%) +Jim Yeh 5 (1.0%) +Jake Zukowski 5 (1.0%) +Neil Johnston 5 (1.0%) +Mike Perez 4 (0.8%) +Andrews Medina 4 (0.8%) +Ionuț Arțăriși 3 (0.6%) +Covers 94.990366% of changesets + +Developers with the most changed lines +Gabriel Hurley 78258 (51.9%) +jeffjapan 16201 (10.7%) +jakedahn 13941 (9.2%) +Andy Chong 2731 (1.8%) +Emma Steimann 2288 (1.5%) +Tres Henry 2102 (1.4%) +Joe Heck 1821 (1.2%) +Jim Yeh 1259 (0.8%) +Tihomir Trifonov 1163 (0.8%) +Paul McMillan 1113 (0.7%) +John Postlethwait 732 (0.5%) +Anthony Young 670 (0.4%) +Mike Perez 324 (0.2%) +Neil Johnston 184 (0.1%) +James E. Blair 149 (0.1%) +Julien Danjou 145 (0.1%) +Andrews Medina 122 (0.1%) +Vishvananda Ishaya 73 (0.0%) +Chuck Short 65 (0.0%) +Cole Robinson 60 (0.0%) +Covers 81.856957% of changes + +Developers with the most lines removed +Anthony Young 362 (0.4%) +Paul McMillan 294 (0.3%) +Andy Chong 123 (0.1%) +Julien Danjou 68 (0.1%) +Chuck Short 65 (0.1%) +Cole Robinson 28 (0.0%) +Jesse Andrews 10 (0.0%) +Dean Troyer 6 (0.0%) +Covers 0.963972% of changes + +Top changeset contributors by employer +Nebula 279 (53.8%) +Rackspace 87 (16.8%) +Delta Electronics 44 (8.5%) +Everbread 19 (3.7%) +Midokura 15 (2.9%) +emmasteimann@gmail.com 14 (2.7%) +eNovance 11 (2.1%) +Citrix 6 (1.2%) +onewheeldrive.net@gmail.com 5 (1.0%) +lemonlatte@gmail.com 5 (1.0%) +jake@ponyloaf.com 5 (1.0%) +SUSE 4 (0.8%) +thingee@gmail.com 4 (0.8%) +andrewsmedina@gmail.com 4 (0.8%) +Red Hat 3 (0.6%) +HP 2 (0.4%) +SINA 2 (0.4%) +hudayou@hotmail.com 1 (0.2%) +StackOps 1 (0.2%) +DreamHost 1 (0.2%) +Covers 98.651252% of changesets + +Top lines changed by employer +Nebula 106863 (70.9%) +Rackspace 17272 (11.5%) +Midokura 17170 (11.4%) +Delta Electronics 3497 (2.3%) +emmasteimann@gmail.com 2288 (1.5%) +lemonlatte@gmail.com 1298 (0.9%) +Everbread 1169 (0.8%) +thingee@gmail.com 324 (0.2%) +onewheeldrive.net@gmail.com 184 (0.1%) +eNovance 166 (0.1%) +andrewsmedina@gmail.com 122 (0.1%) +Red Hat 69 (0.0%) +Canonical 65 (0.0%) +SINA 61 (0.0%) +hudayou@hotmail.com 53 (0.0%) +HP 45 (0.0%) +SUSE 44 (0.0%) +jake@ponyloaf.com 18 (0.0%) +Citrix 15 (0.0%) +Piston Cloud 10 (0.0%) +Covers 99.987397% of changes + +Employers with the most hackers (total 40) +Rackspace 7 (17.5%) +Nebula 6 (15.0%) +HP 2 (5.0%) +SUSE 2 (5.0%) +Midokura 1 (2.5%) +Delta Electronics 1 (2.5%) +emmasteimann@gmail.com 1 (2.5%) +lemonlatte@gmail.com 1 (2.5%) +Everbread 1 (2.5%) +thingee@gmail.com 1 (2.5%) +onewheeldrive.net@gmail.com 1 (2.5%) +eNovance 1 (2.5%) +andrewsmedina@gmail.com 1 (2.5%) +Red Hat 1 (2.5%) +Canonical 1 (2.5%) +SINA 1 (2.5%) +hudayou@hotmail.com 1 (2.5%) +jake@ponyloaf.com 1 (2.5%) +Citrix 1 (2.5%) +Piston Cloud 1 (2.5%) +Covers 82.500000% of hackers diff --git a/essex/horizon-lp-stats.txt b/essex/horizon-lp-stats.txt new file mode 100644 index 0000000..6174efb --- /dev/null +++ b/essex/horizon-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 375 bugs from 31 developers +21 employers found + +Developers with the most bugs fixed +gabriel-hurley 184 (49.1%) +jakedahn 38 (10.1%) +andycjw 34 (9.1%) +tres 18 (4.8%) +ttrifonov 18 (4.8%) +emmasteimann 17 (4.5%) +john-postlethwait 15 (4.0%) +sleepsonthefloor 8 (2.1%) +jakez 5 (1.3%) +Unknown hacker 4 (1.1%) +thingee 4 (1.1%) +jdanjou 3 (0.8%) +paul-mcmillan 3 (0.8%) +njohnston 3 (0.8%) +iartarisi 2 (0.5%) +lemonlatte 2 (0.5%) +lzyeval 2 (0.5%) +ewanmellor 2 (0.5%) +crobinso 1 (0.3%) +andrewsmedina 1 (0.3%) +Covers 97.066667% of bugs + +Top bugs fixed by employer +Nebula 221 (58.9%) +Rackspace 50 (13.3%) +Delta Electronics 34 (9.1%) +Everbread 18 (4.8%) +emmasteimann@gmail.com 17 (4.5%) +jake@ponyloaf.com 5 (1.3%) +thingee@gmail.com 4 (1.1%) +unknown@hacker.net 4 (1.1%) +onewheeldrive.net@gmail.com 3 (0.8%) +eNovance 3 (0.8%) +SUSE 3 (0.8%) +lemonlatte@gmail.com 2 (0.5%) +SINA 2 (0.5%) +Citrix 2 (0.5%) +Red Hat 1 (0.3%) +HP 1 (0.3%) +Managed IT 1 (0.3%) +DreamHost 1 (0.3%) +andrewsmedina@gmail.com 1 (0.3%) +Piston Cloud 1 (0.3%) +Covers 99.733333% of bugs diff --git a/essex/keystone-gerrit-stats.txt b/essex/keystone-gerrit-stats.txt new file mode 100644 index 0000000..5afa988 --- /dev/null +++ b/essex/keystone-gerrit-stats.txt @@ -0,0 +1,44 @@ +Processed 941 review from 53 developers +16 employers found + +Developers with the most reviews (total 941) +ziad-sawalha 177 (18.8%) +dolph 161 (17.1%) +heckj 120 (12.8%) +termie 101 (10.7%) +anotherjesse 92 (9.8%) +yogesh-srikrishnan 54 (5.7%) +bcwaldon 26 (2.8%) +jaypipes 22 (2.3%) +jsavak 22 (2.3%) +ed-leafe 21 (2.2%) +vishvananda 13 (1.4%) +p-draigbrady 13 (1.4%) +ttx 10 (1.1%) +devcamcar 8 (0.9%) +mordred 8 (0.9%) +apevec 7 (0.7%) +chmouel 7 (0.7%) +dan-prince 6 (0.6%) +annegentle 5 (0.5%) +breu 5 (0.5%) +Covers 93.304995% of reviews + +Top reviewers by employer (total 941) +Rackspace 725 (77.0%) +Nebula 133 (14.1%) +HP 31 (3.3%) +Red Hat 23 (2.4%) +apevec@gmail.com 7 (0.7%) +Canonical 7 (0.7%) +jason@cannavale.com 3 (0.3%) +eNovance 2 (0.2%) +DreamHost 2 (0.2%) +Internap 2 (0.2%) +launchpad@anarres.org 1 (0.1%) +Managed IT 1 (0.1%) +StackOps 1 (0.1%) +berendt@b1-systems.de 1 (0.1%) +Cisco 1 (0.1%) +Piston Cloud 1 (0.1%) +Covers 100.000000% of reviews diff --git a/essex/keystone-git-stats.txt b/essex/keystone-git-stats.txt new file mode 100644 index 0000000..057a28d --- /dev/null +++ b/essex/keystone-git-stats.txt @@ -0,0 +1,127 @@ +Processed 741 csets from 65 developers +27 employers found +A total of 100003 lines added, 30127 removed (delta 69876) + +Developers with the most changesets +termie 237 (32.0%) +Dolph Mathews 98 (13.2%) +Ziad Sawalha 79 (10.7%) +Joe Heck 48 (6.5%) +Jesse Andrews 33 (4.5%) +Yogeshwar Srikrishnan 31 (4.2%) +Chmouel Boudjnah 24 (3.2%) +Dan Prince 17 (2.3%) +Brian Waldon 16 (2.2%) +Monty Taylor 12 (1.6%) +Vishvananda Ishaya 8 (1.1%) +Zhongyue Luo 7 (0.9%) +Mark McLoughlin 7 (0.9%) +Brian Lamar 6 (0.8%) +Devin Carlen 6 (0.8%) +Ed Leafe 6 (0.8%) +Julien Danjou 5 (0.7%) +Dean Troyer 5 (0.7%) +Alan Pevec 5 (0.7%) +Gabriel Hurley 5 (0.7%) +Covers 88.394062% of changesets + +Developers with the most changed lines +Ziad Sawalha 39229 (36.2%) +termie 15876 (14.6%) +Joe Heck 11875 (11.0%) +Dolph Mathews 11338 (10.5%) +Yogeshwar Srikrishnan 4171 (3.8%) +Ed Leafe 3473 (3.2%) +Adam Young 1772 (1.6%) +Chmouel Boudjnah 1633 (1.5%) +Monty Taylor 1586 (1.5%) +Brian Waldon 1114 (1.0%) +Jesse Andrews 893 (0.8%) +Vishvananda Ishaya 730 (0.7%) +Guang Yee 650 (0.6%) +Liem Nguyen 582 (0.5%) +Devin Carlen 519 (0.5%) +Akira YOSHIYAMA 505 (0.5%) +Anthony Young 462 (0.4%) +Salvatore Orlando 417 (0.4%) +Adam Gandelman 370 (0.3%) +Brian Lamar 317 (0.3%) +Covers 89.948252% of changes + +Developers with the most lines removed +Vishvananda Ishaya 468 (1.6%) +Shevek 89 (0.3%) +Deepak Garg 40 (0.1%) +Julien Danjou 13 (0.0%) +Kevin L. Mitchell 6 (0.0%) +Jason Cannavale 1 (0.0%) +Covers 2.047997% of changes + +Top changeset contributors by employer +Rackspace 568 (76.7%) +Nebula 60 (8.1%) +Red Hat 38 (5.1%) +HP 20 (2.7%) +Canonical 9 (1.2%) +SINA 8 (1.1%) +eNovance 5 (0.7%) +mbasnight@gmail.com 4 (0.5%) +Citrix 4 (0.5%) +heut2008@gmail.com 3 (0.4%) +SUSE 3 (0.4%) +Internap 3 (0.4%) +FathomDB 2 (0.3%) +akirayoshiyama@gmail.com 1 (0.1%) +hudayou@hotmail.com 1 (0.1%) +IBM 1 (0.1%) +jpipes@uberbox.gateway.2wire.net 1 (0.1%) +yunmao@gmail.com 1 (0.1%) +Managed IT 1 (0.1%) +aloga@ifca.unican.es 1 (0.1%) +Covers 99.055331% of changesets + +Top lines changed by employer +Rackspace 84780 (78.2%) +Nebula 15829 (14.6%) +HP 3041 (2.8%) +Red Hat 2487 (2.3%) +Citrix 545 (0.5%) +akirayoshiyama@gmail.com 505 (0.5%) +Canonical 387 (0.4%) +Internap 268 (0.2%) +SINA 198 (0.2%) +deepakgarg.iitg@gmail.com 72 (0.1%) +IBM 66 (0.1%) +FathomDB 51 (0.0%) +mbasnight@gmail.com 45 (0.0%) +jpipes@uberbox.gateway.2wire.net 32 (0.0%) +eNovance 30 (0.0%) +SUSE 19 (0.0%) +the.william.kelly@gmail.com 13 (0.0%) +hudayou@hotmail.com 9 (0.0%) +heut2008@gmail.com 7 (0.0%) +Managed IT 7 (0.0%) +Covers 99.983396% of changes + +Employers with the most hackers (total 68) +Rackspace 22 (32.4%) +Red Hat 9 (13.2%) +HP 5 (7.4%) +Nebula 4 (5.9%) +Canonical 3 (4.4%) +Citrix 2 (2.9%) +SINA 2 (2.9%) +SUSE 2 (2.9%) +akirayoshiyama@gmail.com 1 (1.5%) +Internap 1 (1.5%) +deepakgarg.iitg@gmail.com 1 (1.5%) +IBM 1 (1.5%) +FathomDB 1 (1.5%) +mbasnight@gmail.com 1 (1.5%) +jpipes@uberbox.gateway.2wire.net 1 (1.5%) +eNovance 1 (1.5%) +the.william.kelly@gmail.com 1 (1.5%) +hudayou@hotmail.com 1 (1.5%) +heut2008@gmail.com 1 (1.5%) +Managed IT 1 (1.5%) +Covers 89.705882% of hackers diff --git a/essex/keystone-lp-stats.txt b/essex/keystone-lp-stats.txt new file mode 100644 index 0000000..5b0baeb --- /dev/null +++ b/essex/keystone-lp-stats.txt @@ -0,0 +1,42 @@ +Processed 287 bugs from 42 developers +14 employers found + +Developers with the most bugs fixed +dolph 66 (23.0%) +yogesh-srikrishnan 28 (9.8%) +ziad-sawalha 26 (9.1%) +dan-prince 17 (5.9%) +dtroyer 15 (5.2%) +bcwaldon 12 (4.2%) +heckj 10 (3.5%) +Unknown hacker 8 (2.8%) +chmouel 8 (2.8%) +anotherjesse 6 (2.1%) +lzyeval 6 (2.1%) +termie 5 (1.7%) +gabriel-hurley 5 (1.7%) +sleepsonthefloor 4 (1.4%) +vishvananda 4 (1.4%) +mordred 4 (1.4%) +ayoung 4 (1.4%) +hubcap 4 (1.4%) +jaypipes 4 (1.4%) +jakedahn 4 (1.4%) +Covers 83.623693% of bugs + +Top bugs fixed by employer +Rackspace 210 (73.2%) +Red Hat 22 (7.7%) +Nebula 16 (5.6%) +unknown@hacker.net 8 (2.8%) +SINA 7 (2.4%) +HP 5 (1.7%) +Citrix 5 (1.7%) +Internap 4 (1.4%) +heut2008@gmail.com 3 (1.0%) +Canonical 3 (1.0%) +akirayoshiyama@gmail.com 1 (0.3%) +aloga@ifca.unican.es 1 (0.3%) +Yahoo! 1 (0.3%) +galthaus@austin.rr.com 1 (0.3%) +Covers 100.000000% of bugs diff --git a/essex/lp-stats.txt b/essex/lp-stats.txt new file mode 100644 index 0000000..0502459 --- /dev/null +++ b/essex/lp-stats.txt @@ -0,0 +1,48 @@ +Processed 1732 bugs from 162 developers +72 employers found + +Developers with the most bugs fixed +gabriel-hurley 191 (11.0%) +bcwaldon 108 (6.2%) +vishvananda 87 (5.0%) +dan-prince 74 (4.3%) +dolph 66 (3.8%) +jakedahn 45 (2.6%) +rconradharris 40 (2.3%) +johannes.erdfelt 36 (2.1%) +danwent 36 (2.1%) +jaypipes 35 (2.0%) +andycjw 34 (2.0%) +sleepsonthefloor 32 (1.8%) +eglynn 32 (1.8%) +dtroyer 31 (1.8%) +russellb 31 (1.8%) +cbehrens 30 (1.7%) +bgh 28 (1.6%) +yogesh-srikrishnan 28 (1.6%) +lzyeval 27 (1.6%) +ziad-sawalha 26 (1.5%) +Covers 58.718245% of bugs + +Top bugs fixed by employer +Rackspace 800 (46.2%) +Nebula 240 (13.9%) +Red Hat 140 (8.1%) +Nicira 69 (4.0%) +Canonical 50 (2.9%) +HP 50 (2.9%) +Citrix 36 (2.1%) +Delta Electronics 34 (2.0%) +SINA 32 (1.8%) +Everbread 18 (1.0%) +unknown@hacker.net 18 (1.0%) +Cisco Systems 17 (1.0%) +emmasteimann@gmail.com 17 (1.0%) +hudayou@hotmail.com 15 (0.9%) +armamig@gmail.com 14 (0.8%) +Internap 13 (0.8%) +eNovance 12 (0.7%) +Cloudscaling 11 (0.6%) +philip.knouff@mailtrust.com 10 (0.6%) +FathomDB 9 (0.5%) +Covers 92.667436% of bugs diff --git a/essex/nova-gerrit-stats.txt b/essex/nova-gerrit-stats.txt new file mode 100644 index 0000000..d756d46 --- /dev/null +++ b/essex/nova-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 4022 review from 98 developers +37 employers found + +Developers with the most reviews (total 4022) +vishvananda 507 (12.6%) +klmitch 406 (10.1%) +bcwaldon 392 (9.7%) +johannes.erdfelt 316 (7.9%) +cbehrens 282 (7.0%) +jk0 239 (5.9%) +cerberus 142 (3.5%) +blamar 123 (3.1%) +markmc 121 (3.0%) +rconradharris 111 (2.8%) +dan-prince 93 (2.3%) +tr3buchet 88 (2.2%) +jason-koelker 85 (2.1%) +anotherjesse 84 (2.1%) +lorinh 79 (2.0%) +devcamcar 76 (1.9%) +markwash 65 (1.6%) +p-draigbrady 59 (1.5%) +0x44 57 (1.4%) +pvo 53 (1.3%) +Covers 83.988066% of reviews + +Top reviewers by employer (total 4022) +Rackspace 3214 (79.9%) +Red Hat 230 (5.7%) +Nebula 101 (2.5%) +Nimbis Services 79 (2.0%) +HP 70 (1.7%) +Piston Cloud 65 (1.6%) +Canonical 49 (1.2%) +Internap 43 (1.1%) +Cloudscaling 34 (0.8%) +Nicira 33 (0.8%) +DreamHost 22 (0.5%) +La Honda Research 12 (0.3%) +eNovance 10 (0.2%) +Cisco 8 (0.2%) +Citrix 7 (0.2%) +Dell 6 (0.1%) +SINA 5 (0.1%) +Managed IT 4 (0.1%) +hudayou@hotmail.com 3 (0.1%) +andrewbogott@gmail.com 3 (0.1%) +Covers 99.403282% of reviews diff --git a/essex/nova-git-stats.txt b/essex/nova-git-stats.txt new file mode 100644 index 0000000..1b30b41 --- /dev/null +++ b/essex/nova-git-stats.txt @@ -0,0 +1,134 @@ +Processed 1703 csets from 137 developers +62 employers found +A total of 141473 lines added, 100179 removed (delta 41294) + +Developers with the most changesets +Johannes Erdfelt 143 (8.4%) +Brian Waldon 124 (7.3%) +Vishvananda Ishaya 106 (6.2%) +Jason Kölker 76 (4.5%) +Alex Meade 67 (3.9%) +Rick Harris 62 (3.6%) +Trey Morris 62 (3.6%) +Dan Prince 57 (3.3%) +Mark McLoughlin 54 (3.2%) +Chris Behrens 51 (3.0%) +Joe Gordon 46 (2.7%) +Naveed Massjouni 43 (2.5%) +Josh Kearney 40 (2.3%) +Russell Bryant 33 (1.9%) +Mark Washenberger 33 (1.9%) +Kevin L. Mitchell 31 (1.8%) +Anthony Young 29 (1.7%) +Michael Still 26 (1.5%) +Sandy Walsh 25 (1.5%) +Pádraig Brady 24 (1.4%) +Covers 66.470934% of changesets + +Developers with the most changed lines +Brian Waldon 27252 (14.9%) +Armando Migliaccio 14954 (8.2%) +Kevin L. Mitchell 10204 (5.6%) +Mark McLoughlin 9014 (4.9%) +Chris Behrens 8574 (4.7%) +Vishvananda Ishaya 7113 (3.9%) +Hengqing Hu 6128 (3.3%) +Johannes Erdfelt 5809 (3.2%) +Alex Meade 4405 (2.4%) +Thierry Carrez 4190 (2.3%) +Jason Kölker 4082 (2.2%) +Sandy Walsh 3887 (2.1%) +Rick Harris 3869 (2.1%) +Trey Morris 3427 (1.9%) +Anthony Young 2902 (1.6%) +Julien Danjou 2876 (1.6%) +Andrew Bogott 2810 (1.5%) +Russell Bryant 2169 (1.2%) +Soren Hansen 2033 (1.1%) +Mikyung Kang 2008 (1.1%) +Covers 69.649967% of changes + +Developers with the most lines removed +Brian Waldon 16796 (16.8%) +Thierry Carrez 3129 (3.1%) +Julien Danjou 2678 (2.7%) +Sandy Walsh 1385 (1.4%) +Jesse Andrews 1220 (1.2%) +Lorin Hochstein 961 (1.0%) +Yaguang Tang 287 (0.3%) +Adam Gandelman 266 (0.3%) +Dan Prince 82 (0.1%) +Ben McGraw 16 (0.0%) +Ante Karamatić 5 (0.0%) +Kiall Mac Innes 2 (0.0%) +Paul Voccio 1 (0.0%) +Covers 26.780064% of changes + +Top changeset contributors by employer +Rackspace 1043 (61.2%) +Red Hat 150 (8.8%) +Canonical 77 (4.5%) +Citrix 60 (3.5%) +Cloudscaling 46 (2.7%) +Nicira 32 (1.9%) +HP 27 (1.6%) +SINA 23 (1.4%) +eNovance 22 (1.3%) +Nimbis Services 21 (1.2%) +Wikimedia Foundation 17 (1.0%) +FathomDB 16 (0.9%) +hudayou@hotmail.com 14 (0.8%) +throughnothing@gmail.com 14 (0.8%) +philip.knouff@mailtrust.com 10 (0.6%) +aloga@ifca.unican.es 9 (0.5%) +DreamHost 8 (0.5%) +Nebula 8 (0.5%) +VA Linux 7 (0.4%) +Piston Cloud 7 (0.4%) +Covers 94.597769% of changesets + +Top lines changed by employer +Rackspace 109663 (59.8%) +Citrix 18341 (10.0%) +Red Hat 14405 (7.9%) +hudayou@hotmail.com 6153 (3.4%) +eNovance 3039 (1.7%) +Wikimedia Foundation 2810 (1.5%) +Canonical 2774 (1.5%) +Nimbis Services 2319 (1.3%) +Nicira 2144 (1.2%) +Nebula 2071 (1.1%) +mkkang@isi.edu 2008 (1.1%) +HP 1968 (1.1%) +NetApp 1607 (0.9%) +Cloudscaling 1553 (0.8%) +SINA 1373 (0.7%) +Mirantis 1354 (0.7%) +DreamHost 910 (0.5%) +masumotok@nttdata.co.jp 804 (0.4%) +Dell 770 (0.4%) +La Honda Research 655 (0.4%) +Covers 96.382408% of changes + +Employers with the most hackers (total 141) +Rackspace 38 (27.0%) +HP 10 (7.1%) +Citrix 9 (6.4%) +Red Hat 8 (5.7%) +Canonical 6 (4.3%) +Piston Cloud 5 (3.5%) +Nicira 3 (2.1%) +DreamHost 3 (2.1%) +eNovance 2 (1.4%) +Nebula 2 (1.4%) +SINA 2 (1.4%) +Mirantis 2 (1.4%) +Dell 2 (1.4%) +hudayou@hotmail.com 1 (0.7%) +Wikimedia Foundation 1 (0.7%) +Nimbis Services 1 (0.7%) +mkkang@isi.edu 1 (0.7%) +NetApp 1 (0.7%) +Cloudscaling 1 (0.7%) +masumotok@nttdata.co.jp 1 (0.7%) +Covers 70.212766% of hackers diff --git a/essex/nova-lp-stats.txt b/essex/nova-lp-stats.txt new file mode 100644 index 0000000..650712d --- /dev/null +++ b/essex/nova-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 762 bugs from 107 developers +52 employers found + +Developers with the most bugs fixed +vishvananda 82 (10.8%) +bcwaldon 62 (8.1%) +dan-prince 46 (6.0%) +rconradharris 34 (4.5%) +johannes.erdfelt 34 (4.5%) +cbehrens 29 (3.8%) +russellb 23 (3.0%) +sleepsonthefloor 20 (2.6%) +alex-meade 19 (2.5%) +jason-koelker 16 (2.1%) +lzyeval 15 (2.0%) +zulcss 14 (1.8%) +ttx 14 (1.8%) +armando-migliaccio 14 (1.8%) +blamar 13 (1.7%) +jk0 13 (1.7%) +markmc 12 (1.6%) +hudayou 12 (1.6%) +gandelman-a 12 (1.6%) +dtroyer 11 (1.4%) +Covers 64.960630% of bugs + +Top bugs fixed by employer +Rackspace 429 (56.3%) +Red Hat 69 (9.1%) +Canonical 41 (5.4%) +Citrix 23 (3.0%) +HP 18 (2.4%) +SINA 17 (2.2%) +Nicira 17 (2.2%) +armamig@gmail.com 14 (1.8%) +hudayou@hotmail.com 12 (1.6%) +Cloudscaling 10 (1.3%) +philip.knouff@mailtrust.com 10 (1.3%) +eNovance 9 (1.2%) +Nimbis Services 8 (1.0%) +FathomDB 7 (0.9%) +aloga@ifca.unican.es 6 (0.8%) +DreamHost 6 (0.8%) +unknown@hacker.net 5 (0.7%) +La Honda Research 4 (0.5%) +Piston Cloud 4 (0.5%) +masumotok@nttdata.co.jp 3 (0.4%) +Covers 93.438320% of bugs diff --git a/essex/quantum-gerrit-stats.txt b/essex/quantum-gerrit-stats.txt new file mode 100644 index 0000000..57ac25c --- /dev/null +++ b/essex/quantum-gerrit-stats.txt @@ -0,0 +1,45 @@ +Processed 299 review from 34 developers +17 employers found + +Developers with the most reviews (total 299) +danwent 60 (20.1%) +bgh 51 (17.1%) +emagana 43 (14.4%) +salvatore-orlando 35 (11.7%) +snaiksat 17 (5.7%) +somikbehera 16 (5.4%) +tylesmit 13 (4.3%) +dlapsley 8 (2.7%) +pothix 8 (2.7%) +aaron-lee 8 (2.7%) +morellon 4 (1.3%) +maru 4 (1.3%) +rkukura 3 (1.0%) +ghe.rivero 3 (1.0%) +dramesh 2 (0.7%) +rohitagarwalla 2 (0.7%) +luiz-ozaki 2 (0.7%) +mordred 2 (0.7%) +oubiwann 2 (0.7%) +yinliu2 2 (0.7%) +Covers 95.317726% of reviews + +Top reviewers by employer (total 299) +Nicira 135 (45.2%) +Cisco Systems 79 (26.4%) +Citrix 35 (11.7%) +Rackspace 14 (4.7%) +Locaweb 8 (2.7%) +morellon@gmail.com 4 (1.3%) +Internap 4 (1.3%) +Red Hat 3 (1.0%) +HP 3 (1.0%) +StackOps 3 (1.0%) +DreamHost 3 (1.0%) +luiz.ozaki@gmail.com 2 (0.7%) +dramesh@gmail.com 2 (0.7%) +eNovance 1 (0.3%) +VA Linux 1 (0.3%) +edouard1.thuleau@orange.com 1 (0.3%) +Canonical 1 (0.3%) +Covers 100.000000% of reviews diff --git a/essex/quantum-git-stats.txt b/essex/quantum-git-stats.txt new file mode 100644 index 0000000..fec505b --- /dev/null +++ b/essex/quantum-git-stats.txt @@ -0,0 +1,117 @@ +Processed 117 csets from 25 developers +16 employers found +A total of 16292 lines added, 10572 removed (delta 5720) + +Developers with the most changesets +Brad Hall 23 (19.7%) +Dan Wendlandt 21 (17.9%) +Salvatore Orlando 10 (8.5%) +Monty Taylor 9 (7.7%) +Sumit Naiksatam 8 (6.8%) +Tyler Smith 8 (6.8%) +Ghe Rivero 6 (5.1%) +Isaku Yamahata 4 (3.4%) +James E. Blair 4 (3.4%) +Bob Kukura 3 (2.6%) +Shweta P 3 (2.6%) +Mark McClain 2 (1.7%) +Dave Lapsley 2 (1.7%) +Major Hayden 2 (1.7%) +Edgar Magana 2 (1.7%) +Thierry Carrez 1 (0.9%) +Peng Yong 1 (0.9%) +Maru Newby 1 (0.9%) +Jesse Andrews 1 (0.9%) +Ionuț Arțăriși 1 (0.9%) +Covers 95.726496% of changesets + +Developers with the most changed lines +Brad Hall 4434 (20.2%) +Monty Taylor 3652 (16.6%) +Sumit Naiksatam 3619 (16.5%) +Ghe Rivero 1902 (8.7%) +Tyler Smith 1403 (6.4%) +Salvatore Orlando 1096 (5.0%) +Isaku Yamahata 1039 (4.7%) +Dan Wendlandt 1015 (4.6%) +Edgar Magana 767 (3.5%) +Dave Lapsley 638 (2.9%) +Bob Kukura 511 (2.3%) +Shweta P 155 (0.7%) +James E. Blair 135 (0.6%) +lzyeval 38 (0.2%) +Peng Yong 34 (0.2%) +Madhav Puri 19 (0.1%) +Rohit Agarwalla 17 (0.1%) +Major Hayden 13 (0.1%) +eperdomo 9 (0.0%) +Mark McClain 3 (0.0%) +Covers 93.308753% of changes + +Developers with the most lines removed +Monty Taylor 3314 (31.3%) +Dan Wendlandt 617 (5.8%) +Ghe Rivero 226 (2.1%) +James E. Blair 36 (0.3%) +Rohit Agarwalla 17 (0.2%) +eperdomo 3 (0.0%) +lzyeval 1 (0.0%) +Major Hayden 1 (0.0%) +Covers 39.869467% of changes + +Top changeset contributors by employer +Nicira 46 (39.3%) +Cisco Systems 22 (18.8%) +HP 11 (9.4%) +Citrix 10 (8.5%) +StackOps 6 (5.1%) +Rackspace 4 (3.4%) +VA Linux 4 (3.4%) +Red Hat 3 (2.6%) +major@mhtx.net 2 (1.7%) +SINA 2 (1.7%) +DreamHost 2 (1.7%) +SUSE 1 (0.9%) +luiz.ozaki@gmail.com 1 (0.9%) +Internap 1 (0.9%) +madhav.puri@gmail.com 1 (0.9%) +rohitagarwalla@gmail.com 1 (0.9%) +Covers 100.000000% of changesets + +Top lines changed by employer +Nicira 6577 (29.9%) +Cisco Systems 6177 (28.1%) +HP 4003 (18.2%) +StackOps 1932 (8.8%) +Citrix 1290 (5.9%) +VA Linux 1058 (4.8%) +Red Hat 789 (3.6%) +SINA 72 (0.3%) +madhav.puri@gmail.com 19 (0.1%) +rohitagarwalla@gmail.com 17 (0.1%) +Rackspace 14 (0.1%) +major@mhtx.net 13 (0.1%) +DreamHost 3 (0.0%) +SUSE 3 (0.0%) +luiz.ozaki@gmail.com 1 (0.0%) +Internap 1 (0.0%) +Covers 100.000000% of changes + +Employers with the most hackers (total 27) +Cisco Systems 5 (18.5%) +Rackspace 4 (14.8%) +Nicira 3 (11.1%) +HP 2 (7.4%) +SINA 2 (7.4%) +StackOps 1 (3.7%) +Citrix 1 (3.7%) +VA Linux 1 (3.7%) +Red Hat 1 (3.7%) +madhav.puri@gmail.com 1 (3.7%) +rohitagarwalla@gmail.com 1 (3.7%) +major@mhtx.net 1 (3.7%) +DreamHost 1 (3.7%) +SUSE 1 (3.7%) +luiz.ozaki@gmail.com 1 (3.7%) +Internap 1 (3.7%) +Covers 100.000000% of hackers diff --git a/essex/quantum-lp-stats.txt b/essex/quantum-lp-stats.txt new file mode 100644 index 0000000..aa0a91e --- /dev/null +++ b/essex/quantum-lp-stats.txt @@ -0,0 +1,36 @@ +Processed 88 bugs from 17 developers +11 employers found + +Developers with the most bugs fixed +danwent 30 (34.1%) +bgh 20 (22.7%) +snaiksat 7 (8.0%) +tylesmit 6 (6.8%) +rkukura 4 (4.5%) +salvatore-orlando 4 (4.5%) +lzyeval 2 (2.3%) +shweta-ap05 2 (2.3%) +madhav-puri 2 (2.3%) +dlapsley 2 (2.3%) +maru 2 (2.3%) +markmcclain 2 (2.3%) +tr3buchet 1 (1.1%) +ppyy 1 (1.1%) +yamahata 1 (1.1%) +rackerhacker 1 (1.1%) +deepak.garg 1 (1.1%) +Covers 100.000000% of bugs + +Top bugs fixed by employer +Nicira 52 (59.1%) +Cisco Systems 15 (17.0%) +Citrix 5 (5.7%) +Red Hat 4 (4.5%) +SINA 3 (3.4%) +DreamHost 2 (2.3%) +Internap 2 (2.3%) +madhav.puri@gmail.com 2 (2.3%) +major@mhtx.net 1 (1.1%) +Rackspace 1 (1.1%) +VA Linux 1 (1.1%) +Covers 100.000000% of bugs diff --git a/essex/swift-gerrit-stats.txt b/essex/swift-gerrit-stats.txt new file mode 100644 index 0000000..26c18cc --- /dev/null +++ b/essex/swift-gerrit-stats.txt @@ -0,0 +1,40 @@ +Processed 282 review from 25 developers +12 employers found + +Developers with the most reviews (total 282) +notmyname 84 (29.8%) +gholt 64 (22.7%) +david-goetz 42 (14.9%) +pandemicsyn 30 (10.6%) +chmouel 15 (5.3%) +5UOzf3BLEHnnEzgp 7 (2.5%) +greglange 6 (2.1%) +maru 5 (1.8%) +jjmartinez 3 (1.1%) +zaitcev 3 (1.1%) +mordred 3 (1.1%) +cthier 3 (1.1%) +anotherjesse 2 (0.7%) +francois-charlier 2 (0.7%) +annegentle 2 (0.7%) +clay-gerrard 2 (0.7%) +ttx 1 (0.4%) +jdanjou 1 (0.4%) +jaypipes 1 (0.4%) +joshua-mckenty 1 (0.4%) +Covers 98.226950% of reviews + +Top reviewers by employer (total 282) +Rackspace 255 (90.4%) +Internap 5 (1.8%) +Red Hat 4 (1.4%) +HP 3 (1.1%) +eNovance 3 (1.1%) +cthier@gmail.com 3 (1.1%) +Memset 3 (1.1%) +clay.gerrard@gmail.com 2 (0.7%) +letterj@gmail.com 1 (0.4%) +Nebula 1 (0.4%) +nick@craig-wood.com 1 (0.4%) +Piston Cloud 1 (0.4%) +Covers 100.000000% of reviews diff --git a/essex/swift-git-stats.txt b/essex/swift-git-stats.txt new file mode 100644 index 0000000..531e8dc --- /dev/null +++ b/essex/swift-git-stats.txt @@ -0,0 +1,118 @@ +Processed 125 csets from 34 developers +18 employers found +A total of 12536 lines added, 3107 removed (delta 9429) + +Developers with the most changesets +gholt 30 (24.0%) +John Dickinson 18 (14.4%) +Chmouel Boudjnah 13 (10.4%) +Florian Hines 9 (7.2%) +David Goetz 7 (5.6%) +Doug Weimer 4 (3.2%) +Thierry Carrez 3 (2.4%) +Samuel Merritt 3 (2.4%) +Julien Danjou 3 (2.4%) +Dragos Manolescu 3 (2.4%) +Mark Gius 3 (2.4%) +Monty Taylor 2 (1.6%) +Dean Troyer 2 (1.6%) +Eamonn O'Toole 2 (1.6%) +Maru Newby 2 (1.6%) +Russell Bryant 2 (1.6%) +Pete Zaitcev 2 (1.6%) +Rainer Toebbicke 1 (0.8%) +Derek Higgins 1 (0.8%) +Jesse Andrews 1 (0.8%) +Covers 88.800000% of changesets + +Developers with the most changed lines +gholt 6537 (46.7%) +Marcelo Martins 3148 (22.5%) +Florian Hines 802 (5.7%) +Chmouel Boudjnah 345 (2.5%) +John Dickinson 325 (2.3%) +Eamonn O'Toole 306 (2.2%) +David Goetz 273 (2.0%) +Mark Gius 147 (1.1%) +Thierry Carrez 105 (0.8%) +Maru Newby 102 (0.7%) +Samuel Merritt 101 (0.7%) +Doug Weimer 100 (0.7%) +Pete Zaitcev 51 (0.4%) +Scott Simpson 51 (0.4%) +Juan J. Martinez 49 (0.4%) +Dean Troyer 37 (0.3%) +Russell Bryant 37 (0.3%) +Jonathan Gonzalez V 30 (0.2%) +Rainer Toebbicke 20 (0.1%) +Felipe Reyes 20 (0.1%) +Covers 89.983556% of changes + +Developers with the most lines removed +Thierry Carrez 94 (3.0%) +John Dickinson 31 (1.0%) +Felipe Reyes 12 (0.4%) +Covers 4.409398% of changes + +Top changeset contributors by employer +Rackspace 85 (68.0%) +HP 8 (6.4%) +Red Hat 5 (4.0%) +SwiftStack 4 (3.2%) +dougw@sdsc.edu 4 (3.2%) +eNovance 3 (2.4%) +launchpad@markgius.com 3 (2.4%) +Internap 3 (2.4%) +btorch@gmail.com 1 (0.8%) +SINA 1 (0.8%) +xyj.asmy@gmail.com 1 (0.8%) +morita.kazutaka@gmail.com 1 (0.8%) +sasimpson@gmail.com 1 (0.8%) +daniele@dvaleriani.net 1 (0.8%) +CERN 1 (0.8%) +Memset 1 (0.8%) +jonathan.abdiel@gmail.com 1 (0.8%) +freyes@tty.cl 1 (0.8%) +Covers 100.000000% of changesets + +Top lines changed by employer +Rackspace 9757 (69.8%) +btorch@gmail.com 3148 (22.5%) +HP 322 (2.3%) +launchpad@markgius.com 147 (1.1%) +SwiftStack 113 (0.8%) +Internap 111 (0.8%) +dougw@sdsc.edu 100 (0.7%) +Red Hat 92 (0.7%) +sasimpson@gmail.com 51 (0.4%) +Memset 49 (0.4%) +jonathan.abdiel@gmail.com 30 (0.2%) +CERN 20 (0.1%) +freyes@tty.cl 20 (0.1%) +SINA 17 (0.1%) +eNovance 6 (0.0%) +xyj.asmy@gmail.com 2 (0.0%) +morita.kazutaka@gmail.com 1 (0.0%) +daniele@dvaleriani.net 1 (0.0%) +Covers 100.000000% of changes + +Employers with the most hackers (total 34) +Rackspace 10 (29.4%) +HP 4 (11.8%) +Red Hat 3 (8.8%) +SwiftStack 2 (5.9%) +Internap 2 (5.9%) +btorch@gmail.com 1 (2.9%) +launchpad@markgius.com 1 (2.9%) +dougw@sdsc.edu 1 (2.9%) +sasimpson@gmail.com 1 (2.9%) +Memset 1 (2.9%) +jonathan.abdiel@gmail.com 1 (2.9%) +CERN 1 (2.9%) +freyes@tty.cl 1 (2.9%) +SINA 1 (2.9%) +eNovance 1 (2.9%) +xyj.asmy@gmail.com 1 (2.9%) +morita.kazutaka@gmail.com 1 (2.9%) +daniele@dvaleriani.net 1 (2.9%) +Covers 100.000000% of hackers diff --git a/essex/swift-lp-stats.txt b/essex/swift-lp-stats.txt new file mode 100644 index 0000000..a00e20e --- /dev/null +++ b/essex/swift-lp-stats.txt @@ -0,0 +1,38 @@ +Processed 37 bugs from 19 developers +11 employers found + +Developers with the most bugs fixed +chmouel 9 (24.3%) +pandemicsyn 3 (8.1%) +dweimer 3 (8.1%) +eamonn-otoole 2 (5.4%) +maru 2 (5.4%) +dtroyer 2 (5.4%) +russellb 2 (5.4%) +ttx 2 (5.4%) +markgius 2 (5.4%) +zaitcev 1 (2.7%) +torgomatic 1 (2.7%) +gholt 1 (2.7%) +jjmartinez 1 (2.7%) +lzyeval 1 (2.7%) +sasimpson 1 (2.7%) +morita-kazutaka 1 (2.7%) +redbo 1 (2.7%) +david-goetz 1 (2.7%) +notmyname 1 (2.7%) +Covers 100.000000% of bugs + +Top bugs fixed by employer +Rackspace 20 (54.1%) +Red Hat 3 (8.1%) +dougw@sdsc.edu 3 (8.1%) +HP 2 (5.4%) +launchpad@markgius.com 2 (5.4%) +Internap 2 (5.4%) +SwiftStack 1 (2.7%) +SINA 1 (2.7%) +morita.kazutaka@gmail.com 1 (2.7%) +sasimpson@gmail.com 1 (2.7%) +Memset 1 (2.7%) +Covers 100.000000% of bugs diff --git a/findoldfiles b/findoldfiles deleted file mode 100755 index 493d5d3..0000000 --- a/findoldfiles +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/python -# -# Another quick hack of a script to find files unchanged -# since a given commit. -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import sys, os - -OriginalSin = '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2' - -def CheckFile(file): - git = os.popen('git log --pretty=oneline -1 ' + file, 'r') - line = git.readline() - if line.startswith(OriginalSin): - print file - git.close() -# -# Here we just plow through all the files. -# -if len(sys.argv) != 2: - sys.stderr.write('Usage: findoldfiles directory\n') - sys.exit(1) - -os.chdir(sys.argv[1]) -files = os.popen('/usr/bin/find . -type f', 'r') -for file in files.readlines(): - if file.find('.git/') < 0: - CheckFile(file[:-1]) diff --git a/folsom/cinder-gerrit-stats.txt b/folsom/cinder-gerrit-stats.txt new file mode 100644 index 0000000..33aed12 --- /dev/null +++ b/folsom/cinder-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 397 review from 37 developers +21 employers found + +Developers with the most reviews (total 397) +john-griffith 152 (38.3%) +vishvananda 59 (14.9%) +clay-gerrard 27 (6.8%) +duncan-thomas 26 (6.5%) +zhiteng-huang 26 (6.5%) +thingee 19 (4.8%) +jdurgin 13 (3.3%) +rnirmal 11 (2.8%) +0x44 10 (2.5%) +mdegerne 9 (2.3%) +zulcss 4 (1.0%) +avishay-il 4 (1.0%) +houshengbo 3 (0.8%) +sdague-b 3 (0.8%) +ttx 2 (0.5%) +zrzhit 2 (0.5%) +None 2 (0.5%) +chalupaul 2 (0.5%) +bswartz 2 (0.5%) +sleepsonthefloor 2 (0.5%) +Covers 95.214106% of reviews + +Top reviewers by employer (total 397) +SolidFire 152 (38.3%) +Rackspace 62 (15.6%) +Nebula 31 (7.8%) +Intel 28 (7.1%) +duncan.thomas@gmail.com 26 (6.5%) +DreamHost 19 (4.8%) +Piston Cloud 19 (4.8%) +Inktank 13 (3.3%) +IBM 13 (3.3%) +rnirmal@gmail.com 11 (2.8%) +Canonical 5 (1.3%) +HP 4 (1.0%) +NetApp 3 (0.8%) +Red Hat 2 (0.5%) +SINA 2 (0.5%) +paul@paulsresume.net 2 (0.5%) +Everbread 1 (0.3%) +Zadara Storage 1 (0.3%) +StackOps 1 (0.3%) +bkerensa@ubuntu.com 1 (0.3%) +Covers 99.748111% of reviews diff --git a/folsom/cinder-git-stats.txt b/folsom/cinder-git-stats.txt new file mode 100644 index 0000000..c754494 --- /dev/null +++ b/folsom/cinder-git-stats.txt @@ -0,0 +1,132 @@ +Processed 187 csets from 42 developers +24 employers found +A total of 26016 lines added, 25913 removed (delta 103) + +Developers with the most changesets +John Griffith 29 (15.5%) +Rongze Zhu 22 (11.8%) +Mark McLoughlin 22 (11.8%) +Russell Bryant 18 (9.6%) +Dan Prince 14 (7.5%) +Zhiteng Huang 7 (3.7%) +Ben Swartzlander 6 (3.2%) +Avishay Traeger 6 (3.2%) +Eoghan Glynn 5 (2.7%) +Josh Durgin 5 (2.7%) +Thierry Carrez 4 (2.1%) +Chuck Short 4 (2.1%) +Chmouel Boudjnah 4 (2.1%) +Vishvananda Ishaya 3 (1.6%) +Mike Perez 3 (1.6%) +Monty Taylor 3 (1.6%) +Joe Gordon 2 (1.1%) +Clay Gerrard 2 (1.1%) +Unmesh Gurjar 2 (1.1%) +Clark Boylan 2 (1.1%) +Covers 87.165775% of changesets + +Developers with the most changed lines +John Griffith 15653 (35.1%) +Avishay Traeger 3721 (8.3%) +Russell Bryant 2749 (6.2%) +Ben Swartzlander 2743 (6.1%) +Mark McLoughlin 2216 (5.0%) +Unmesh Gurjar 1534 (3.4%) +Dan Prince 1189 (2.7%) +Rongze Zhu 1182 (2.6%) +Vladimir Popovski 1096 (2.5%) +Chmouel Boudjnah 1045 (2.3%) +Clay Gerrard 554 (1.2%) +Josh Durgin 449 (1.0%) +Craig Vyvial 401 (0.9%) +Zhiteng Huang 362 (0.8%) +Chuck Short 312 (0.7%) +Eoghan Glynn 309 (0.7%) +Matthew Treinish 266 (0.6%) +Anthony Young 254 (0.6%) +Thierry Carrez 245 (0.5%) +Christopher MacGown 167 (0.4%) +Covers 81.679441% of changes + +Developers with the most lines removed +John Griffith 7947 (30.7%) +Mark McLoughlin 1364 (5.3%) +Rongze Zhu 972 (3.8%) +Dan Prince 453 (1.7%) +Chmouel Boudjnah 184 (0.7%) +Christopher MacGown 162 (0.6%) +Ghe Rivero 33 (0.1%) +Monty Taylor 23 (0.1%) +unicell 5 (0.0%) +Vishvananda Ishaya 4 (0.0%) +MotoKen 2 (0.0%) +Covers 43.024737% of changes + +Top changeset contributors by employer +Red Hat 60 (32.1%) +SolidFire 29 (15.5%) +SINA 25 (13.4%) +Rackspace 13 (7.0%) +Intel 10 (5.3%) +IBM 8 (4.3%) +NetApp 6 (3.2%) +Inktank 5 (2.7%) +Nebula 5 (2.7%) +HP 4 (2.1%) +Canonical 4 (2.1%) +Cloudscaling 3 (1.6%) +DreamHost 3 (1.6%) +NTT 2 (1.1%) +corystone@gmail.com 1 (0.5%) +unicell@gmail.com 1 (0.5%) +duncan.thomas@gmail.com 1 (0.5%) +Zadara Storage 1 (0.5%) +Metacloud 1 (0.5%) +StackOps 1 (0.5%) +Covers 97.860963% of changesets + +Top lines changed by employer +SolidFire 21468 (48.1%) +Red Hat 7438 (16.7%) +IBM 4105 (9.2%) +NetApp 2745 (6.2%) +Rackspace 2350 (5.3%) +NTT 1535 (3.4%) +SINA 1350 (3.0%) +Zadara Storage 1096 (2.5%) +Intel 576 (1.3%) +Inktank 538 (1.2%) +cp16net@gmail.com 401 (0.9%) +Canonical 312 (0.7%) +Nebula 178 (0.4%) +Piston Cloud 167 (0.4%) +HP 107 (0.2%) +julien@danjou.info 94 (0.2%) +StackOps 49 (0.1%) +DreamHost 27 (0.1%) +corystone@gmail.com 27 (0.1%) +unicell@gmail.com 22 (0.0%) +Covers 99.917081% of changes + +Employers with the most hackers (total 42) +Red Hat 5 (11.9%) +Rackspace 5 (11.9%) +SINA 4 (9.5%) +IBM 3 (7.1%) +Intel 3 (7.1%) +Nebula 2 (4.8%) +HP 2 (4.8%) +Cloudscaling 2 (4.8%) +SolidFire 1 (2.4%) +NetApp 1 (2.4%) +NTT 1 (2.4%) +Zadara Storage 1 (2.4%) +Inktank 1 (2.4%) +cp16net@gmail.com 1 (2.4%) +Canonical 1 (2.4%) +Piston Cloud 1 (2.4%) +julien@danjou.info 1 (2.4%) +StackOps 1 (2.4%) +DreamHost 1 (2.4%) +corystone@gmail.com 1 (2.4%) +Covers 90.476190% of hackers diff --git a/folsom/cinder-lp-stats.txt b/folsom/cinder-lp-stats.txt new file mode 100644 index 0000000..8406904 --- /dev/null +++ b/folsom/cinder-lp-stats.txt @@ -0,0 +1,45 @@ +Processed 66 bugs from 24 developers +17 employers found + +Developers with the most bugs fixed +john-griffith 20 (30.3%) +zrzhit 7 (10.6%) +Unknown hacker 4 (6.1%) +dan-prince 4 (6.1%) +eglynn 4 (6.1%) +bswartz 3 (4.5%) +avishay-il 2 (3.0%) +zulcss 2 (3.0%) +russellb 2 (3.0%) +zhiteng-huang 2 (3.0%) +vishvananda 2 (3.0%) +clay-gerrard 2 (3.0%) +sleepsonthefloor 1 (1.5%) +ttx 1 (1.5%) +jdanjou 1 (1.5%) +motokentsai 1 (1.5%) +markmc 1 (1.5%) +yosef-4 1 (1.5%) +rnirmal 1 (1.5%) +thingee 1 (1.5%) +Covers 93.939394% of bugs + +Top bugs fixed by employer +SolidFire 20 (30.3%) +Red Hat 11 (16.7%) +SINA 7 (10.6%) +Rackspace 4 (6.1%) +unknown@hacker.net 4 (6.1%) +Nebula 3 (4.5%) +IBM 3 (4.5%) +NetApp 3 (4.5%) +Intel 2 (3.0%) +Canonical 2 (3.0%) +unicell@gmail.com 1 (1.5%) +Cloudscaling 1 (1.5%) +motokentsai@gmail.com 1 (1.5%) +DreamHost 1 (1.5%) +eNovance 1 (1.5%) +rnirmal@gmail.com 1 (1.5%) +NTT 1 (1.5%) +Covers 100.000000% of bugs diff --git a/folsom/gerrit-stats.txt b/folsom/gerrit-stats.txt new file mode 100644 index 0000000..bec74ad --- /dev/null +++ b/folsom/gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 8536 review from 224 developers +91 employers found + +Developers with the most reviews (total 8536) +vishvananda 775 (9.1%) +klmitch 428 (5.0%) +johannes.erdfelt 337 (3.9%) +bcwaldon 321 (3.8%) +mikalstill 294 (3.4%) +russellb 269 (3.2%) +jk0 264 (3.1%) +jaypipes 245 (2.9%) +markmc 235 (2.8%) +cerberus 227 (2.7%) +john-griffith 201 (2.4%) +markwash 190 (2.2%) +cbehrens 184 (2.2%) +john-postlethwait 177 (2.1%) +heckj 170 (2.0%) +gabriel-hurley 168 (2.0%) +garyk 168 (2.0%) +dan-prince 160 (1.9%) +devcamcar 154 (1.8%) +p-draigbrady 143 (1.7%) +Covers 59.864105% of reviews + +Top reviewers by employer (total 8536) +Rackspace 3269 (38.3%) +Nebula 1263 (14.8%) +Red Hat 1226 (14.4%) +Canonical 359 (4.2%) +Nicira 330 (3.9%) +AT&T 261 (3.1%) +SolidFire 201 (2.4%) +IBM 193 (2.3%) +HP 173 (2.0%) +Piston Cloud 125 (1.5%) +Cisco Systems 119 (1.4%) +Cloudscaling 113 (1.3%) +SwiftStack 93 (1.1%) +DreamHost 88 (1.0%) +Everbread 85 (1.0%) +Internap 72 (0.8%) +Intel 64 (0.7%) +Locaweb 60 (0.7%) +SUSE 54 (0.6%) +launchpad@chmouel.com 46 (0.5%) +Covers 95.993440% of reviews diff --git a/folsom/git-stats.txt b/folsom/git-stats.txt new file mode 100644 index 0000000..f70a4ca --- /dev/null +++ b/folsom/git-stats.txt @@ -0,0 +1,141 @@ +Processed 3110 csets from 291 developers +132 employers found +A total of 350046 lines added, 275491 removed (delta 74555) + +Developers with the most changesets +Russell Bryant 160 (5.1%) +Brian Waldon 160 (5.1%) +Dan Prince 154 (5.0%) +Gabriel Hurley 124 (4.0%) +Mark McLoughlin 118 (3.8%) +Johannes Erdfelt 113 (3.6%) +Vishvananda Ishaya 92 (3.0%) +Joe Gordon 85 (2.7%) +Michael Still 71 (2.3%) +Eoghan Glynn 70 (2.3%) +Rick Harris 59 (1.9%) +Gary Kotton 58 (1.9%) +Dolph Mathews 55 (1.8%) +Yun Mao 50 (1.6%) +John Griffith 45 (1.4%) +Daniel P. Berrange 45 (1.4%) +Dan Wendlandt 43 (1.4%) +gholt 40 (1.3%) +Rongze Zhu 39 (1.3%) +Alex Meade 39 (1.3%) +Covers 52.090032% of changesets + +Developers with the most changed lines +Gabriel Hurley 57750 (12.2%) +Joe Gordon 34925 (7.4%) +OpenStack Jenkins 33004 (7.0%) +John Griffith 16252 (3.4%) +Brian Waldon 15340 (3.2%) +Dan Prince 12409 (2.6%) +John Postlethwait 10751 (2.3%) +Dan Wendlandt 9970 (2.1%) +Russell Bryant 9013 (1.9%) +Mark McLoughlin 8129 (1.7%) +Gary Kotton 8023 (1.7%) +gholt 7307 (1.5%) +Kevin L. Mitchell 6931 (1.5%) +Vishvananda Ishaya 6889 (1.5%) +Avishay Traeger 6240 (1.3%) +Mark McClain 6164 (1.3%) +Chmouel Boudjnah 5862 (1.2%) +Ben Swartzlander 5582 (1.2%) +Akihiro MOTOKI 5473 (1.2%) +Maru Newby 5394 (1.1%) +Covers 57.494873% of changes + +Developers with the most lines removed +Joe Gordon 32224 (11.7%) +OpenStack Jenkins 8498 (3.1%) +Dan Prince 7336 (2.7%) +Dan Wendlandt 5017 (1.8%) +John Griffith 4556 (1.7%) +annegentle 3999 (1.5%) +Chmouel Boudjnah 3930 (1.4%) +Brian Waldon 3284 (1.2%) +Mark McLoughlin 1216 (0.4%) +Rongze Zhu 878 (0.3%) +Monty Taylor 576 (0.2%) +James E. Blair 350 (0.1%) +Stanislaw Pitucha 306 (0.1%) +Christopher MacGown 162 (0.1%) +Andrew Bogott 94 (0.0%) +Harsh Prasad 92 (0.0%) +Ghe Rivero 66 (0.0%) +Yuriy Taraday 30 (0.0%) +Robert Collins 27 (0.0%) +Erwan Gallen 25 (0.0%) +Covers 26.376905% of changes + +Top changeset contributors by employer +Rackspace 806 (25.9%) +Red Hat 688 (22.1%) +Nebula 266 (8.6%) +SINA 147 (4.7%) +Canonical 116 (3.7%) +IBM 109 (3.5%) +Cloudscaling 102 (3.3%) +HP 86 (2.8%) +Nicira 83 (2.7%) +AT&T 58 (1.9%) +SUSE 53 (1.7%) +SolidFire 45 (1.4%) +NTT 45 (1.4%) +Intel 40 (1.3%) +DreamHost 33 (1.1%) +SwiftStack 31 (1.0%) +Everbread 29 (0.9%) +NEC 21 (0.7%) +Internap 21 (0.7%) +Citrix 21 (0.7%) +Covers 90.032154% of changesets + +Top lines changed by employer +Rackspace 96370 (20.4%) +Nebula 80402 (17.0%) +Red Hat 62151 (13.2%) +Cloudscaling 38226 (8.1%) +jenkins@openstack.org 33157 (7.0%) +SolidFire 25458 (5.4%) +Nicira 20242 (4.3%) +IBM 18951 (4.0%) +SINA 11787 (2.5%) +NEC 8293 (1.8%) +DreamHost 6914 (1.5%) +Canonical 6602 (1.4%) +NTT 6446 (1.4%) +Internap 5597 (1.2%) +NetApp 5584 (1.2%) +HP 4884 (1.0%) +SwiftStack 3885 (0.8%) +Cisco Systems 3141 (0.7%) +Cloudbase Solutions 3095 (0.7%) +Citrix 2638 (0.6%) +Covers 94.019142% of changes + +Employers with the most hackers (total 302) +Rackspace 44 (14.6%) +SINA 18 (6.0%) +HP 18 (6.0%) +IBM 16 (5.3%) +Red Hat 14 (4.6%) +Nebula 10 (3.3%) +SUSE 9 (3.0%) +Intel 8 (2.6%) +NTT 6 (2.0%) +DreamHost 5 (1.7%) +Canonical 5 (1.7%) +Mirantis 5 (1.7%) +Cloudscaling 4 (1.3%) +Internap 4 (1.3%) +Cisco Systems 4 (1.3%) +Nicira 3 (1.0%) +SwiftStack 3 (1.0%) +Citrix 3 (1.0%) +AT&T 3 (1.0%) +Grid Dynamics 3 (1.0%) +Covers 61.258278% of hackers diff --git a/folsom/glance-gerrit-stats.txt b/folsom/glance-gerrit-stats.txt new file mode 100644 index 0000000..6d5ed8a --- /dev/null +++ b/folsom/glance-gerrit-stats.txt @@ -0,0 +1,43 @@ +Processed 810 review from 49 developers +15 employers found + +Developers with the most reviews (total 810) +bcwaldon 235 (29.0%) +markwash 141 (17.4%) +jaypipes 120 (14.8%) +eglynn 66 (8.1%) +klmitch 56 (6.9%) +jk0 37 (4.6%) +dan-prince 30 (3.7%) +blamar 22 (2.7%) +alex-meade 18 (2.2%) +iccha-sethi 17 (2.1%) +ttx 8 (1.0%) +p-draigbrady 7 (0.9%) +stuart-mclaren 3 (0.4%) +mordred 3 (0.4%) +nikhil-komawar 3 (0.4%) +rconradharris 3 (0.4%) +maru 3 (0.4%) +ubuntubmw 3 (0.4%) +vishvananda 2 (0.2%) +chmouel 2 (0.2%) +Covers 96.172840% of reviews + +Top reviewers by employer (total 810) +Rackspace 545 (67.3%) +Red Hat 107 (13.2%) +HP 71 (8.8%) +AT&T 56 (6.9%) +Internap 6 (0.7%) +SUSE 5 (0.6%) +Nebula 4 (0.5%) +Grid Dynamics 4 (0.5%) +Canonical 3 (0.4%) +DreamHost 2 (0.2%) +Intel 2 (0.2%) +launchpad@chmouel.com 2 (0.2%) +aloga@ifca.unican.es 1 (0.1%) +linlin.cqu@gmail.com 1 (0.1%) +Yahoo! 1 (0.1%) +Covers 100.000000% of reviews diff --git a/folsom/glance-git-stats.txt b/folsom/glance-git-stats.txt new file mode 100644 index 0000000..39a5df8 --- /dev/null +++ b/folsom/glance-git-stats.txt @@ -0,0 +1,129 @@ +Processed 366 csets from 60 developers +24 employers found +A total of 24592 lines added, 14936 removed (delta 9656) + +Developers with the most changesets +Brian Waldon 125 (34.2%) +Eoghan Glynn 34 (9.3%) +Dan Prince 34 (9.3%) +Alex Meade 18 (4.9%) +Mark McLoughlin 18 (4.9%) +Mark Washenberger 14 (3.8%) +isethi 11 (3.0%) +Stuart McLaren 9 (2.5%) +Monty Taylor 9 (2.5%) +Michael Still 8 (2.2%) +Tom Hancock 4 (1.1%) +Nikhil Komawar 4 (1.1%) +Zhongyue Luo 4 (1.1%) +Russell Bryant 3 (0.8%) +Vincent Untz 3 (0.8%) +Clark Boylan 3 (0.8%) +Brian Elliott 3 (0.8%) +Josh Kearney 3 (0.8%) +Jay Pipes 3 (0.8%) +Thierry Carrez 3 (0.8%) +Covers 85.519126% of changesets + +Developers with the most changed lines +Brian Waldon 10549 (35.7%) +Mark McLoughlin 2193 (7.4%) +Mark Washenberger 1473 (5.0%) +Dan Prince 1230 (4.2%) +Eoghan Glynn 1105 (3.7%) +Alex Meade 1051 (3.6%) +Michael Still 980 (3.3%) +isethi 917 (3.1%) +Nikhil Komawar 749 (2.5%) +Monty Taylor 469 (1.6%) +Zhongyue Luo 463 (1.6%) +Kevin L. Mitchell 378 (1.3%) +Josh Kearney 366 (1.2%) +jakedahn 333 (1.1%) +Maru Newby 251 (0.8%) +Joshua Harlow 238 (0.8%) +Stuart McLaren 227 (0.8%) +Josh Durgin 150 (0.5%) +Eddie Sheffield 143 (0.5%) +Brian Elliott 139 (0.5%) +Covers 79.115678% of changes + +Developers with the most lines removed +Bhuvan Arumugam 113 (0.8%) +Mark McLoughlin 112 (0.7%) +Zhongyue Luo 77 (0.5%) +Chuck Short 28 (0.2%) +Josh Kearney 22 (0.1%) +Joe Gordon 19 (0.1%) +Rongze Zhu 10 (0.1%) +Duncan McGreggor 1 (0.0%) +Covers 2.557579% of changes + +Top changeset contributors by employer +Rackspace 192 (52.5%) +Red Hat 91 (24.9%) +HP 29 (7.9%) +Canonical 12 (3.3%) +SUSE 8 (2.2%) +SINA 7 (1.9%) +IBM 4 (1.1%) +Intel 4 (1.1%) +Nebula 2 (0.5%) +patrick@mezard.eu 2 (0.5%) +NTT 2 (0.5%) +Inktank 1 (0.3%) +Internap 1 (0.3%) +matthias@sigxcpu.org 1 (0.3%) +bdelliott@gmail.com 1 (0.3%) +Cloudscaling 1 (0.3%) +AT&T 1 (0.3%) +Nimbis Services 1 (0.3%) +DreamHost 1 (0.3%) +Cloudbase Solutions 1 (0.3%) +Covers 98.907104% of changesets + +Top lines changed by employer +Rackspace 20248 (68.4%) +Red Hat 4999 (16.9%) +HP 1413 (4.8%) +Canonical 1068 (3.6%) +SINA 432 (1.5%) +Internap 251 (0.8%) +Yahoo! 238 (0.8%) +IBM 234 (0.8%) +Inktank 150 (0.5%) +SUSE 121 (0.4%) +Nebula 107 (0.4%) +Intel 76 (0.3%) +NTT 68 (0.2%) +Piston Cloud 43 (0.1%) +patrick@mezard.eu 29 (0.1%) +Grid Dynamics 28 (0.1%) +Cloudscaling 22 (0.1%) +Nimbis Services 22 (0.1%) +University of Melbourne 16 (0.1%) +bdelliott@gmail.com 5 (0.0%) +Covers 99.959435% of changes + +Employers with the most hackers (total 63) +Rackspace 16 (25.4%) +HP 7 (11.1%) +Red Hat 6 (9.5%) +SUSE 5 (7.9%) +SINA 4 (6.3%) +Canonical 3 (4.8%) +IBM 3 (4.8%) +Nebula 2 (3.2%) +Intel 2 (3.2%) +Internap 1 (1.6%) +Yahoo! 1 (1.6%) +Inktank 1 (1.6%) +NTT 1 (1.6%) +Piston Cloud 1 (1.6%) +patrick@mezard.eu 1 (1.6%) +Grid Dynamics 1 (1.6%) +Cloudscaling 1 (1.6%) +Nimbis Services 1 (1.6%) +University of Melbourne 1 (1.6%) +bdelliott@gmail.com 1 (1.6%) +Covers 93.650794% of hackers diff --git a/folsom/glance-lp-stats.txt b/folsom/glance-lp-stats.txt new file mode 100644 index 0000000..161c725 --- /dev/null +++ b/folsom/glance-lp-stats.txt @@ -0,0 +1,46 @@ +Processed 172 bugs from 44 developers +18 employers found + +Developers with the most bugs fixed +bcwaldon 40 (23.3%) +dan-prince 21 (12.2%) +eglynn 16 (9.3%) +alex-meade 12 (7.0%) +iccha-sethi 8 (4.7%) +markwash 6 (3.5%) +stuart-mclaren 6 (3.5%) +Unknown hacker 5 (2.9%) +tom-hancock 4 (2.3%) +jaypipes 3 (1.7%) +ttx 3 (1.7%) +mikalstill 3 (1.7%) +nikhil-komawar 3 (1.7%) +cboylan 2 (1.2%) +gandelman-a 2 (1.2%) +chmouel 2 (1.2%) +russellb 2 (1.2%) +vuntz 2 (1.2%) +sulochan-acharya 2 (1.2%) +pauldbourke 2 (1.2%) +Covers 83.720930% of bugs + +Top bugs fixed by employer +Rackspace 82 (47.7%) +Red Hat 42 (24.4%) +HP 16 (9.3%) +unknown@hacker.net 5 (2.9%) +Canonical 5 (2.9%) +SUSE 4 (2.3%) +IBM 3 (1.7%) +SINA 3 (1.7%) +Intel 3 (1.7%) +Nebula 1 (0.6%) +Internap 1 (0.6%) +AT&T 1 (0.6%) +DreamHost 1 (0.6%) +Cloudbase Solutions 1 (0.6%) +NTT 1 (0.6%) +Grid Dynamics 1 (0.6%) +Piston Cloud 1 (0.6%) +University of Melbourne 1 (0.6%) +Covers 100.000000% of bugs diff --git a/folsom/horizon-gerrit-stats.txt b/folsom/horizon-gerrit-stats.txt new file mode 100644 index 0000000..2412e31 --- /dev/null +++ b/folsom/horizon-gerrit-stats.txt @@ -0,0 +1,39 @@ +Processed 733 review from 31 developers +11 employers found + +Developers with the most reviews (total 733) +john-postlethwait 177 (24.1%) +gabriel-hurley 165 (22.5%) +tres 112 (15.3%) +ttrifonov 84 (11.5%) +devcamcar 81 (11.1%) +jakedahn 32 (4.4%) +paul-mcmillan 24 (3.3%) +ke-wu 11 (1.5%) +heckj 6 (0.8%) +andycjw 6 (0.8%) +corvus 4 (0.5%) +kelsey-tripp 4 (0.5%) +ttx 3 (0.4%) +lin-hua-cheng 3 (0.4%) +garyk 2 (0.3%) +mapleoin 2 (0.3%) +zhang-hare 2 (0.3%) +mordred 2 (0.3%) +cboylan 1 (0.1%) +arosen 1 (0.1%) +Covers 98.499318% of reviews + +Top reviewers by employer (total 733) +Nebula 613 (83.6%) +Everbread 84 (11.5%) +HP 10 (1.4%) +Delta Electronics 6 (0.8%) +SUSE 5 (0.7%) +IBM 4 (0.5%) +Rackspace 4 (0.5%) +Red Hat 2 (0.3%) +Cloudscaling 2 (0.3%) +Nicira 2 (0.3%) +Intel 1 (0.1%) +Covers 100.000000% of reviews diff --git a/folsom/horizon-git-stats.txt b/folsom/horizon-git-stats.txt new file mode 100644 index 0000000..6278152 --- /dev/null +++ b/folsom/horizon-git-stats.txt @@ -0,0 +1,125 @@ +Processed 309 csets from 45 developers +26 employers found +A total of 82955 lines added, 52450 removed (delta 30505) + +Developers with the most changesets +Gabriel Hurley 122 (39.5%) +Tihomir Trifonov 29 (9.4%) +John Postlethwait 27 (8.7%) +Kelsey Tripp 16 (5.2%) +Andy Chong 16 (5.2%) +Ke Wu 10 (3.2%) +Tres Henry 10 (3.2%) +Matt Joyce 7 (2.3%) +jakedahn 6 (1.9%) +Akihiro MOTOKI 5 (1.6%) +Brian Waldon 4 (1.3%) +Thierry Carrez 4 (1.3%) +Monty Taylor 4 (1.3%) +Clark Boylan 3 (1.0%) +Paul McMillan 3 (1.0%) +Lin Hua Cheng 3 (1.0%) +Sam Morrison 3 (1.0%) +Emma Steimann 3 (1.0%) +Jim Yeh 3 (1.0%) +Anton V. Yanchenko 2 (0.6%) +Covers 90.614887% of changesets + +Developers with the most changed lines +Gabriel Hurley 57645 (68.4%) +John Postlethwait 10751 (12.8%) +Akihiro MOTOKI 4849 (5.8%) +Kelsey Tripp 2492 (3.0%) +Tihomir Trifonov 2235 (2.7%) +Ke Wu 1510 (1.8%) +Jim Yeh 613 (0.7%) +Erwan Gallen 598 (0.7%) +zhang-hare 515 (0.6%) +Tres Henry 374 (0.4%) +Monty Taylor 290 (0.3%) +Andy Chong 187 (0.2%) +Zhongyue Luo 149 (0.2%) +Sascha Peilicke 129 (0.2%) +jakedahn 102 (0.1%) +Paul McMillan 82 (0.1%) +Matt Joyce 69 (0.1%) +Julie Pichon 62 (0.1%) +Lin Hua Cheng 36 (0.0%) +Ionuț Arțăriși 32 (0.0%) +Covers 98.107121% of changes + +Developers with the most lines removed +Erwan Gallen 25 (0.0%) +Adam Gandelman 3 (0.0%) +lrqrun 1 (0.0%) +Alessio Ababilov 1 (0.0%) +Covers 0.057197% of changes + +Top changeset contributors by employer +Nebula 192 (62.1%) +Everbread 29 (9.4%) +Delta Electronics 16 (5.2%) +Rackspace 13 (4.2%) +HP 8 (2.6%) +SUSE 8 (2.6%) +Cloudscaling 7 (2.3%) +NEC 5 (1.6%) +University of Melbourne 4 (1.3%) +lemonlatte@gmail.com 3 (1.0%) +SINA 3 (1.0%) +Intel 3 (1.0%) +emmasteimann@gmail.com 3 (1.0%) +julie.pichon@gmail.com 2 (0.6%) +Mirantis 2 (0.6%) +Red Hat 1 (0.3%) +IBM 1 (0.3%) +Metacloud 1 (0.3%) +AT&T 1 (0.3%) +dev@zinux.com 1 (0.3%) +Covers 98.058252% of changesets + +Top lines changed by employer +Nebula 74160 (88.0%) +NEC 4849 (5.8%) +Everbread 2235 (2.7%) +lemonlatte@gmail.com 613 (0.7%) +dev@zinux.com 598 (0.7%) +IBM 515 (0.6%) +HP 346 (0.4%) +Delta Electronics 262 (0.3%) +SINA 184 (0.2%) +SUSE 178 (0.2%) +Rackspace 103 (0.1%) +Cloudscaling 70 (0.1%) +julie.pichon@gmail.com 62 (0.1%) +Intel 31 (0.0%) +University of Melbourne 30 (0.0%) +emmasteimann@gmail.com 28 (0.0%) +eNovance 25 (0.0%) +Mirantis 8 (0.0%) +DreamHost 5 (0.0%) +AT&T 4 (0.0%) +Covers 99.988140% of changes + +Employers with the most hackers (total 46) +Nebula 9 (19.6%) +SUSE 5 (10.9%) +Rackspace 4 (8.7%) +HP 3 (6.5%) +SINA 3 (6.5%) +University of Melbourne 2 (4.3%) +NEC 1 (2.2%) +Everbread 1 (2.2%) +lemonlatte@gmail.com 1 (2.2%) +dev@zinux.com 1 (2.2%) +IBM 1 (2.2%) +Delta Electronics 1 (2.2%) +Cloudscaling 1 (2.2%) +julie.pichon@gmail.com 1 (2.2%) +Intel 1 (2.2%) +emmasteimann@gmail.com 1 (2.2%) +eNovance 1 (2.2%) +Mirantis 1 (2.2%) +DreamHost 1 (2.2%) +AT&T 1 (2.2%) +Covers 86.956522% of hackers diff --git a/folsom/horizon-lp-stats.txt b/folsom/horizon-lp-stats.txt new file mode 100644 index 0000000..170b9b6 --- /dev/null +++ b/folsom/horizon-lp-stats.txt @@ -0,0 +1,42 @@ +Processed 178 bugs from 23 developers +14 employers found + +Developers with the most bugs fixed +gabriel-hurley 80 (44.9%) +ttrifonov 23 (12.9%) +john-postlethwait 12 (6.7%) +kelsey-tripp 11 (6.2%) +Unknown hacker 8 (4.5%) +tres 8 (4.5%) +ke-wu 8 (4.5%) +lin-hua-cheng 4 (2.2%) +jakedahn 4 (2.2%) +sorrison 3 (1.7%) +amotoki 3 (1.7%) +jpichon 2 (1.1%) +simplylizz 2 (1.1%) +paul-mcmillan 1 (0.6%) +bcwaldon 1 (0.6%) +heckj 1 (0.6%) +jaypipes 1 (0.6%) +devcamcar 1 (0.6%) +ttx 1 (0.6%) +emmasteimann 1 (0.6%) +Covers 98.314607% of bugs + +Top bugs fixed by employer +Nebula 125 (70.2%) +Everbread 23 (12.9%) +unknown@hacker.net 8 (4.5%) +HP 4 (2.2%) +NEC 3 (1.7%) +Rackspace 3 (1.7%) +University of Melbourne 3 (1.7%) +julie.pichon@gmail.com 2 (1.1%) +Mirantis 2 (1.1%) +Red Hat 1 (0.6%) +IBM 1 (0.6%) +Metacloud 1 (0.6%) +AT&T 1 (0.6%) +emmasteimann@gmail.com 1 (0.6%) +Covers 100.000000% of bugs diff --git a/folsom/keystone-gerrit-stats.txt b/folsom/keystone-gerrit-stats.txt new file mode 100644 index 0000000..2c172a3 --- /dev/null +++ b/folsom/keystone-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 544 review from 49 developers +21 employers found + +Developers with the most reviews (total 544) +heckj 160 (29.4%) +dolph 134 (24.6%) +ayoung 61 (11.2%) +termie 50 (9.2%) +devcamcar 19 (3.5%) +chmouel 16 (2.9%) +jaypipes 12 (2.2%) +maru 9 (1.7%) +bcwaldon 5 (0.9%) +mordred 5 (0.9%) +guang-yee 5 (0.9%) +p-draigbrady 4 (0.7%) +apevec 4 (0.7%) +lin-hua-cheng 4 (0.7%) +mapleoin 4 (0.7%) +vishvananda 3 (0.6%) +liemmn 3 (0.6%) +zyluo 3 (0.6%) +anotherjesse 3 (0.6%) +cthiel-suse 2 (0.4%) +Covers 93.014706% of reviews + +Top reviewers by employer (total 544) +Rackspace 202 (37.1%) +Nebula 180 (33.1%) +Red Hat 70 (12.9%) +HP 25 (4.6%) +launchpad@chmouel.com 16 (2.9%) +Internap 9 (1.7%) +AT&T 8 (1.5%) +SUSE 7 (1.3%) +IBM 4 (0.7%) +apevec@gmail.com 4 (0.7%) +Cloudscaling 3 (0.6%) +Intel 3 (0.6%) +darren.birkett@gmail.com 2 (0.4%) +Grid Dynamics 2 (0.4%) +University of Melbourne 2 (0.4%) +haneefmlist@gmail.com 2 (0.4%) +BVox 1 (0.2%) +DreamHost 1 (0.2%) +razique.mahroua@gmail.com 1 (0.2%) +NTT 1 (0.2%) +Covers 99.816176% of reviews diff --git a/folsom/keystone-git-stats.txt b/folsom/keystone-git-stats.txt new file mode 100644 index 0000000..9845e37 --- /dev/null +++ b/folsom/keystone-git-stats.txt @@ -0,0 +1,126 @@ +Processed 208 csets from 52 developers +27 employers found +A total of 9336 lines added, 3346 removed (delta 5990) + +Developers with the most changesets +Dolph Mathews 55 (26.4%) +Adam Young 20 (9.6%) +Mark McLoughlin 17 (8.2%) +Chmouel Boudjnah 10 (4.8%) +Maru Newby 8 (3.8%) +Joe Heck 7 (3.4%) +Dan Prince 7 (3.4%) +Bhuvan Arumugam 6 (2.9%) +Derek Higgins 6 (2.9%) +Zhongyue Luo 6 (2.9%) +Alan Pevec 5 (2.4%) +Vincent Untz 4 (1.9%) +Rafael Durán Castañeda 4 (1.9%) +Ionuț Arțăriși 3 (1.4%) +monsterxx03 3 (1.4%) +Rongze Zhu 3 (1.4%) +Unmesh Gurjar 3 (1.4%) +Monty Taylor 3 (1.4%) +Derek Yarnell 2 (1.0%) +Dmitry Khovyakov 2 (1.0%) +Covers 83.653846% of changesets + +Developers with the most changed lines +Dolph Mathews 2661 (27.2%) +Adam Young 1300 (13.3%) +Mark McLoughlin 1063 (10.9%) +Maru Newby 899 (9.2%) +Derek Higgins 482 (4.9%) +Zhongyue Luo 464 (4.7%) +Liem Nguyen 442 (4.5%) +jakedahn 333 (3.4%) +Bhuvan Arumugam 228 (2.3%) +Joe Heck 216 (2.2%) +Alan Pevec 202 (2.1%) +Unmesh Gurjar 197 (2.0%) +Chmouel Boudjnah 196 (2.0%) +Rafael Durán Castañeda 90 (0.9%) +Dan Prince 88 (0.9%) +J. Daniel Schmidt 54 (0.6%) +Pádraig Brady 53 (0.5%) +Vincent Untz 48 (0.5%) +Derek Yarnell 44 (0.4%) +Robert Collins 39 (0.4%) +Covers 92.970267% of changes + +Developers with the most lines removed +Robert Collins 27 (0.8%) +Monty Taylor 14 (0.4%) +Joe Gordon 6 (0.2%) +Rongze Zhu 5 (0.1%) +Ray Chen 1 (0.0%) +Covers 1.583981% of changes + +Top changeset contributors by employer +Rackspace 75 (36.1%) +Red Hat 57 (27.4%) +SINA 13 (6.2%) +SUSE 9 (4.3%) +Nebula 8 (3.8%) +Internap 8 (3.8%) +IBM 6 (2.9%) +HP 5 (2.4%) +BVox 4 (1.9%) +NTT 3 (1.4%) +derek@umiacs.umd.edu 2 (1.0%) +Intel 2 (1.0%) +Canonical 2 (1.0%) +everett.toews@gmail.com 1 (0.5%) +ron@pedde.com 1 (0.5%) +robertc@robertcollins.net 1 (0.5%) +VexxHost 1 (0.5%) +Cloudscaling 1 (0.5%) +AT&T 1 (0.5%) +Wikimedia Foundation 1 (0.5%) +Covers 96.634615% of changesets + +Top lines changed by employer +Rackspace 3338 (34.1%) +Red Hat 3278 (33.5%) +Internap 962 (9.8%) +SINA 460 (4.7%) +liem.m.nguyen@gmail.com 442 (4.5%) +IBM 381 (3.9%) +Nebula 223 (2.3%) +NTT 197 (2.0%) +SUSE 119 (1.2%) +BVox 91 (0.9%) +derek@umiacs.umd.edu 44 (0.4%) +HP 42 (0.4%) +robertc@robertcollins.net 39 (0.4%) +VexxHost 38 (0.4%) +Intel 28 (0.3%) +Canonical 20 (0.2%) +Grid Dynamics 19 (0.2%) +everett.toews@gmail.com 18 (0.2%) +Yahoo! 15 (0.2%) +Wikimedia Foundation 10 (0.1%) +Covers 99.764994% of changes + +Employers with the most hackers (total 54) +Rackspace 11 (20.4%) +Red Hat 7 (13.0%) +SINA 5 (9.3%) +SUSE 4 (7.4%) +HP 3 (5.6%) +Nebula 2 (3.7%) +Intel 2 (3.7%) +Internap 1 (1.9%) +liem.m.nguyen@gmail.com 1 (1.9%) +IBM 1 (1.9%) +NTT 1 (1.9%) +BVox 1 (1.9%) +derek@umiacs.umd.edu 1 (1.9%) +robertc@robertcollins.net 1 (1.9%) +VexxHost 1 (1.9%) +Canonical 1 (1.9%) +Grid Dynamics 1 (1.9%) +everett.toews@gmail.com 1 (1.9%) +Yahoo! 1 (1.9%) +Wikimedia Foundation 1 (1.9%) +Covers 87.037037% of hackers diff --git a/folsom/keystone-lp-stats.txt b/folsom/keystone-lp-stats.txt new file mode 100644 index 0000000..6493151 --- /dev/null +++ b/folsom/keystone-lp-stats.txt @@ -0,0 +1,46 @@ +Processed 110 bugs from 31 developers +18 employers found + +Developers with the most bugs fixed +dolph 35 (31.8%) +ayoung 10 (9.1%) +dan-prince 7 (6.4%) +derekh 5 (4.5%) +chmouel 5 (4.5%) +heckj 4 (3.6%) +bhuvan 4 (3.6%) +rafadurancastaneda 4 (3.6%) +unmesh-gurjar 3 (2.7%) +maru 3 (2.7%) +markmc 3 (2.7%) +zyluo 3 (2.7%) +ubuntubmw 3 (2.7%) +ttx 2 (1.8%) +apevec 2 (1.8%) +vuntz 2 (1.8%) +Unknown hacker 1 (0.9%) +gandelman-a 1 (0.9%) +mordred 1 (0.9%) +sorrison 1 (0.9%) +Covers 90.000000% of bugs + +Top bugs fixed by employer +Rackspace 44 (40.0%) +Red Hat 28 (25.5%) +SUSE 6 (5.5%) +Nebula 4 (3.6%) +IBM 4 (3.6%) +BVox 4 (3.6%) +Internap 3 (2.7%) +SINA 3 (2.7%) +NTT 3 (2.7%) +HP 2 (1.8%) +Intel 2 (1.8%) +VexxHost 1 (0.9%) +AT&T 1 (0.9%) +Wikimedia Foundation 1 (0.9%) +Yahoo! 1 (0.9%) +unknown@hacker.net 1 (0.9%) +University of Melbourne 1 (0.9%) +Canonical 1 (0.9%) +Covers 100.000000% of bugs diff --git a/folsom/lp-stats.txt b/folsom/lp-stats.txt new file mode 100644 index 0000000..988be85 --- /dev/null +++ b/folsom/lp-stats.txt @@ -0,0 +1,48 @@ +Processed 1483 bugs from 161 developers +60 employers found + +Developers with the most bugs fixed +dan-prince 103 (6.9%) +gabriel-hurley 81 (5.5%) +Unknown hacker 60 (4.0%) +vishvananda 54 (3.6%) +bcwaldon 52 (3.5%) +garyk 51 (3.4%) +eglynn 44 (3.0%) +danwent 35 (2.4%) +dolph 35 (2.4%) +john-griffith 32 (2.2%) +cbehrens 29 (2.0%) +salvatore-orlando 28 (1.9%) +alex-meade 27 (1.8%) +zyluo 26 (1.8%) +johannes.erdfelt 25 (1.7%) +markmc 23 (1.6%) +ttrifonov 23 (1.6%) +joe-gordon0 21 (1.4%) +amotoki 21 (1.4%) +mikalstill 20 (1.3%) +Covers 53.270398% of bugs + +Top bugs fixed by employer +Rackspace 321 (21.6%) +Red Hat 239 (16.1%) +Nebula 173 (11.7%) +SINA 74 (5.0%) +unknown@hacker.net 60 (4.0%) +IBM 51 (3.4%) +Radware 51 (3.4%) +Nicira 49 (3.3%) +Canonical 42 (2.8%) +Citrix 40 (2.7%) +NTT 36 (2.4%) +HP 35 (2.4%) +SolidFire 32 (2.2%) +Everbread 23 (1.6%) +Cloudscaling 23 (1.6%) +DreamHost 22 (1.5%) +NEC 21 (1.4%) +AT&T 21 (1.4%) +SUSE 18 (1.2%) +Intel 13 (0.9%) +Covers 90.627107% of bugs diff --git a/folsom/nova-gerrit-stats.txt b/folsom/nova-gerrit-stats.txt new file mode 100644 index 0000000..ad82f0c --- /dev/null +++ b/folsom/nova-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 4669 review from 147 developers +63 employers found + +Developers with the most reviews (total 4669) +vishvananda 711 (15.2%) +klmitch 371 (7.9%) +johannes.erdfelt 336 (7.2%) +mikalstill 293 (6.3%) +russellb 266 (5.7%) +markmc 230 (4.9%) +jk0 227 (4.9%) +cerberus 217 (4.6%) +cbehrens 184 (3.9%) +p-draigbrady 131 (2.8%) +dan-prince 126 (2.7%) +yunmao 115 (2.5%) +jaypipes 113 (2.4%) +0x44 106 (2.3%) +rconradharris 103 (2.2%) +bcwaldon 80 (1.7%) +tr3buchet 77 (1.6%) +joe-gordon0 73 (1.6%) +devcamcar 54 (1.2%) +sdague-b 51 (1.1%) +Covers 82.758621% of reviews + +Top reviewers by employer (total 4669) +Rackspace 2152 (46.1%) +Red Hat 832 (17.8%) +Nebula 433 (9.3%) +Canonical 350 (7.5%) +AT&T 197 (4.2%) +Cloudscaling 108 (2.3%) +Piston Cloud 106 (2.3%) +IBM 99 (2.1%) +HP 64 (1.4%) +SolidFire 49 (1.0%) +SUSE 36 (0.8%) +Intel 29 (0.6%) +DreamHost 20 (0.4%) +bdelliott@gmail.com 16 (0.3%) +linlin.cqu@gmail.com 16 (0.3%) +Citrix 16 (0.3%) +NTT 15 (0.3%) +Nicira 13 (0.3%) +Cisco 12 (0.3%) +Internap 11 (0.2%) +Covers 97.965303% of reviews diff --git a/folsom/nova-git-stats.txt b/folsom/nova-git-stats.txt new file mode 100644 index 0000000..a2ebecd --- /dev/null +++ b/folsom/nova-git-stats.txt @@ -0,0 +1,141 @@ +Processed 1548 csets from 194 developers +84 employers found +A total of 130244 lines added, 135213 removed (delta -4969) + +Developers with the most changesets +Russell Bryant 138 (8.9%) +Johannes Erdfelt 112 (7.2%) +Dan Prince 97 (6.3%) +Vishvananda Ishaya 88 (5.7%) +Joe Gordon 81 (5.2%) +Michael Still 63 (4.1%) +Mark McLoughlin 60 (3.9%) +Rick Harris 58 (3.7%) +Yun Mao 50 (3.2%) +Daniel P. Berrange 45 (2.9%) +Chris Behrens 36 (2.3%) +Eoghan Glynn 31 (2.0%) +Brian Waldon 29 (1.9%) +Pádraig Brady 26 (1.7%) +Chuck Short 25 (1.6%) +Sean Dague 23 (1.5%) +Alex Meade 21 (1.4%) +Brian Elliott 18 (1.2%) +Kevin L. Mitchell 18 (1.2%) +Zhongyue Luo 17 (1.1%) +Covers 66.925065% of changesets + +Developers with the most changed lines +Joe Gordon 34893 (16.9%) +OpenStack Jenkins 33004 (16.0%) +Dan Prince 10805 (5.2%) +Brian Waldon 7173 (3.5%) +Vishvananda Ishaya 6845 (3.3%) +Russell Bryant 6519 (3.2%) +Kevin L. Mitchell 5755 (2.8%) +Johannes Erdfelt 4104 (2.0%) +annegentle 4005 (1.9%) +John Griffith 3990 (1.9%) +Brian Elliott 3869 (1.9%) +Rick Harris 3392 (1.6%) +Michael Still 3343 (1.6%) +Mark McLoughlin 3289 (1.6%) +Alessandro Pilotti 3088 (1.5%) +Zhongyue Luo 3021 (1.5%) +Daniel P. Berrange 2921 (1.4%) +Dan Wendlandt 2876 (1.4%) +Ben Swartzlander 2839 (1.4%) +Eoghan Glynn 2581 (1.3%) +Covers 71.999612% of changes + +Developers with the most lines removed +Joe Gordon 32199 (23.8%) +OpenStack Jenkins 8498 (6.3%) +Dan Prince 7797 (5.8%) +Brian Waldon 5678 (4.2%) +annegentle 3999 (3.0%) +Dan Wendlandt 2560 (1.9%) +Monty Taylor 660 (0.5%) +Mark McLoughlin 375 (0.3%) +James E. Blair 354 (0.3%) +Stanislaw Pitucha 306 (0.2%) +Russell Bryant 281 (0.2%) +Andrew Bogott 104 (0.1%) +Ghe Rivero 33 (0.0%) +Yuriy Taraday 30 (0.0%) +Jay Pipes 21 (0.0%) +Mikyung Kang 14 (0.0%) +Mandell Degerness 13 (0.0%) +Russell Sim 8 (0.0%) +Alessandro Tagliapietra 3 (0.0%) +Sean M. Collins 2 (0.0%) +Covers 46.545081% of changes + +Top changeset contributors by employer +Rackspace 413 (26.7%) +Red Hat 403 (26.0%) +Canonical 96 (6.2%) +Cloudscaling 90 (5.8%) +IBM 70 (4.5%) +SINA 63 (4.1%) +Nebula 58 (3.7%) +AT&T 55 (3.6%) +HP 36 (2.3%) +Citrix 21 (1.4%) +SUSE 18 (1.2%) +NTT 17 (1.1%) +SolidFire 16 (1.0%) +Intel 15 (1.0%) +Grid Dynamics 14 (0.9%) +Wikimedia Foundation 13 (0.8%) +motokentsai@gmail.com 11 (0.7%) +Nicira 9 (0.6%) +Mirantis 9 (0.6%) +eNovance 6 (0.4%) +Covers 92.571059% of changesets + +Top lines changed by employer +Rackspace 39956 (19.4%) +Cloudscaling 38114 (18.5%) +Red Hat 34355 (16.7%) +jenkins@openstack.org 33157 (16.1%) +IBM 10884 (5.3%) +Nebula 5655 (2.7%) +Canonical 5192 (2.5%) +SINA 4411 (2.1%) +SolidFire 3990 (1.9%) +Nicira 3108 (1.5%) +Cloudbase Solutions 3094 (1.5%) +NetApp 2839 (1.4%) +HP 2821 (1.4%) +Citrix 2638 (1.3%) +Wikimedia Foundation 1861 (0.9%) +NTT 1569 (0.8%) +AT&T 1442 (0.7%) +Grid Dynamics 1337 (0.6%) +kylin7.sg@gmail.com 1289 (0.6%) +Intel 1213 (0.6%) +Covers 96.570222% of changes + +Employers with the most hackers (total 199) +Rackspace 33 (16.6%) +IBM 15 (7.5%) +SINA 13 (6.5%) +HP 12 (6.0%) +Red Hat 8 (4.0%) +Intel 8 (4.0%) +SUSE 8 (4.0%) +Nebula 5 (2.5%) +Canonical 5 (2.5%) +Cloudscaling 4 (2.0%) +Nicira 3 (1.5%) +Citrix 3 (1.5%) +NTT 3 (1.5%) +Mirantis 3 (1.5%) +Cisco Systems 3 (1.5%) +AT&T 2 (1.0%) +Grid Dynamics 2 (1.0%) +DreamHost 2 (1.0%) +Internap 2 (1.0%) +jenkins@openstack.org 1 (0.5%) +Covers 67.839196% of hackers diff --git a/folsom/nova-lp-stats.txt b/folsom/nova-lp-stats.txt new file mode 100644 index 0000000..70e66b5 --- /dev/null +++ b/folsom/nova-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 655 bugs from 106 developers +46 employers found + +Developers with the most bugs fixed +dan-prince 67 (10.2%) +vishvananda 52 (7.9%) +Unknown hacker 33 (5.0%) +cbehrens 28 (4.3%) +johannes.erdfelt 24 (3.7%) +eglynn 24 (3.7%) +joe-gordon0 21 (3.2%) +mikalstill 17 (2.6%) +markmc 17 (2.6%) +zulcss 15 (2.3%) +russellb 15 (2.3%) +rconradharris 15 (2.3%) +alex-meade 15 (2.3%) +zyluo 15 (2.3%) +yunmao 13 (2.0%) +p-draigbrady 12 (1.8%) +john-griffith 12 (1.8%) +heut2008 11 (1.7%) +bcwaldon 10 (1.5%) +belliott 9 (1.4%) +Covers 64.885496% of bugs + +Top bugs fixed by employer +Rackspace 172 (26.3%) +Red Hat 140 (21.4%) +SINA 46 (7.0%) +Nebula 40 (6.1%) +unknown@hacker.net 33 (5.0%) +Canonical 33 (5.0%) +IBM 24 (3.7%) +Cloudscaling 22 (3.4%) +AT&T 18 (2.7%) +Citrix 14 (2.1%) +NTT 12 (1.8%) +SolidFire 12 (1.8%) +HP 11 (1.7%) +motokentsai@gmail.com 9 (1.4%) +Grid Dynamics 8 (1.2%) +Nicira 7 (1.1%) +Metacloud 5 (0.8%) +VexxHost 4 (0.6%) +jsuh@isi.edu 3 (0.5%) +aloga@ifca.unican.es 3 (0.5%) +Covers 94.045802% of bugs diff --git a/folsom/quantum-gerrit-stats.txt b/folsom/quantum-gerrit-stats.txt new file mode 100644 index 0000000..217c93c --- /dev/null +++ b/folsom/quantum-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 982 review from 46 developers +21 employers found + +Developers with the most reviews (total 982) +garyk 162 (16.5%) +danwent 133 (13.5%) +salvatore-orlando 113 (11.5%) +gongysh 72 (7.3%) +snaiksat 54 (5.5%) +emagana 52 (5.3%) +markmcclain 44 (4.5%) +maru 43 (4.4%) +rkukura 38 (3.9%) +arosen 36 (3.7%) +pothix 34 (3.5%) +somikbehera 28 (2.9%) +nati-ueno 25 (2.5%) +ncode 25 (2.5%) +ttx 23 (2.3%) +amotoki 22 (2.2%) +jason-koelker 22 (2.2%) +cerberus 10 (1.0%) +rohitagarwalla 7 (0.7%) +morellon 7 (0.7%) +Covers 96.741344% of reviews + +Top reviewers by employer (total 982) +Nicira 316 (32.2%) +Red Hat 205 (20.9%) +Cisco Systems 114 (11.6%) +IBM 73 (7.4%) +Locaweb 59 (6.0%) +Rackspace 57 (5.8%) +DreamHost 45 (4.6%) +Internap 44 (4.5%) +NTT 28 (2.9%) +NEC 22 (2.2%) +morellon@gmail.com 7 (0.7%) +prasad.tanay@gmail.com 2 (0.2%) +veryhua2006@gmail.com 2 (0.2%) +HP 1 (0.1%) +muharem@lbox.cc 1 (0.1%) +SINA 1 (0.1%) +Intel 1 (0.1%) +deepakgarg.iitg@gmail.com 1 (0.1%) +chrisw@sous-sol.org 1 (0.1%) +apevec@gmail.com 1 (0.1%) +Covers 99.898167% of reviews diff --git a/folsom/quantum-git-stats.txt b/folsom/quantum-git-stats.txt new file mode 100644 index 0000000..3b20931 --- /dev/null +++ b/folsom/quantum-git-stats.txt @@ -0,0 +1,126 @@ +Processed 322 csets from 49 developers +30 employers found +A total of 54514 lines added, 25070 removed (delta 29444) + +Developers with the most changesets +Gary Kotton 58 (18.0%) +Dan Wendlandt 35 (10.9%) +Salvatore Orlando 26 (8.1%) +Mark McClain 23 (7.1%) +Nachi Ueno 18 (5.6%) +gongysh 18 (5.6%) +Akihiro MOTOKI 12 (3.7%) +Aaron Rosen 12 (3.7%) +siyingchun 12 (3.7%) +Bob Kukura 11 (3.4%) +Jiajun Liu 8 (2.5%) +Zhongyue Luo 8 (2.5%) +Juliano Martinez 8 (2.5%) +Sumit Naiksatam 7 (2.2%) +Yoshihiro Kaneko 5 (1.6%) +Maru Newby 5 (1.6%) +Kevin L. Mitchell 4 (1.2%) +Jason Kölker 4 (1.2%) +Rohit Agarwalla 3 (0.9%) +Edgar Magana 3 (0.9%) +Covers 86.956522% of changesets + +Developers with the most changed lines +Gary Kotton 8023 (12.5%) +Dan Wendlandt 7093 (11.1%) +Mark McClain 6164 (9.6%) +Maru Newby 4184 (6.5%) +Yaguang Tang 4008 (6.2%) +Bob Kukura 3332 (5.2%) +Salvatore Orlando 3091 (4.8%) +Nachi Ueno 2964 (4.6%) +Ryota MIBU 2812 (4.4%) +gongysh 2592 (4.0%) +Jason Kölker 2260 (3.5%) +Aaron Rosen 2251 (3.5%) +Juliano Martinez 1983 (3.1%) +Sumit Naiksatam 1802 (2.8%) +Kevin L. Mitchell 798 (1.2%) +xchenum 615 (1.0%) +Zhongyue Luo 535 (0.8%) +Rohit Agarwalla 519 (0.8%) +John Dunning 488 (0.8%) +Akihiro MOTOKI 458 (0.7%) +Covers 87.229997% of changes + +Developers with the most lines removed +Dan Wendlandt 2457 (9.8%) +Harsh Prasad 92 (0.4%) +siyingchun 19 (0.1%) +Edgar Magana 9 (0.0%) +RongzeZhu 1 (0.0%) +Covers 10.283207% of changes + +Top changeset contributors by employer +Nicira 73 (22.7%) +Red Hat 70 (21.7%) +SINA 31 (9.6%) +DreamHost 23 (7.1%) +NTT 20 (6.2%) +IBM 19 (5.9%) +NEC 13 (4.0%) +Rackspace 11 (3.4%) +Cisco Systems 10 (3.1%) +Locaweb 8 (2.5%) +Internap 7 (2.2%) +ykaneko0929@gmail.com 5 (1.6%) +Intel 5 (1.6%) +HP 3 (0.9%) +prasad.tanay@gmail.com 3 (0.9%) +emagana@gmail.com 3 (0.9%) +Mirantis 2 (0.6%) +VA Linux 2 (0.6%) +xchenum@gmail.com 2 (0.6%) +mathieu.rohon@gmail.com 2 (0.6%) +Covers 96.894410% of changesets + +Top lines changed by employer +Nicira 17133 (26.7%) +Red Hat 11917 (18.6%) +DreamHost 6693 (10.4%) +SINA 4816 (7.5%) +Internap 4244 (6.6%) +NEC 3278 (5.1%) +Cisco Systems 3120 (4.9%) +Rackspace 3087 (4.8%) +NTT 3057 (4.8%) +IBM 2830 (4.4%) +Locaweb 2012 (3.1%) +xchenum@gmail.com 615 (1.0%) +jrd@jrd.org 488 (0.8%) +ykaneko0929@gmail.com 171 (0.3%) +HP 122 (0.2%) +VA Linux 117 (0.2%) +prasad.tanay@gmail.com 107 (0.2%) +root@opnstck-compute2.(none) 105 (0.2%) +Intel 67 (0.1%) +emagana@gmail.com 56 (0.1%) +Covers 99.795842% of changes + +Employers with the most hackers (total 51) +SINA 6 (11.8%) +Rackspace 4 (7.8%) +Nicira 3 (5.9%) +Red Hat 3 (5.9%) +Internap 3 (5.9%) +NTT 3 (5.9%) +NEC 2 (3.9%) +Cisco Systems 2 (3.9%) +IBM 2 (3.9%) +Intel 2 (3.9%) +Mirantis 2 (3.9%) +DreamHost 1 (2.0%) +Locaweb 1 (2.0%) +xchenum@gmail.com 1 (2.0%) +jrd@jrd.org 1 (2.0%) +ykaneko0929@gmail.com 1 (2.0%) +HP 1 (2.0%) +VA Linux 1 (2.0%) +prasad.tanay@gmail.com 1 (2.0%) +root@opnstck-compute2.(none) 1 (2.0%) +Covers 80.392157% of hackers diff --git a/folsom/quantum-lp-stats.txt b/folsom/quantum-lp-stats.txt new file mode 100644 index 0000000..1a8ca58 --- /dev/null +++ b/folsom/quantum-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 263 bugs from 32 developers +22 employers found + +Developers with the most bugs fixed +garyk 51 (19.4%) +danwent 30 (11.4%) +salvatore-orlando 26 (9.9%) +markmcclain 18 (6.8%) +amotoki 16 (6.1%) +nati-ueno 16 (6.1%) +gongysh 15 (5.7%) +arosen 12 (4.6%) +rkukura 11 (4.2%) +ljjjustin 7 (2.7%) +snaiksat 7 (2.7%) +maru 6 (2.3%) +ncode 6 (2.3%) +zyluo 6 (2.3%) +Unknown hacker 5 (1.9%) +ykaneko0929 4 (1.5%) +heut2008 3 (1.1%) +prasad-tanay 3 (1.1%) +rohitagarwalla 2 (0.8%) +mordred 2 (0.8%) +Covers 93.536122% of bugs + +Top bugs fixed by employer +Radware 51 (19.4%) +Nicira 42 (16.0%) +Citrix 26 (9.9%) +NTT 19 (7.2%) +DreamHost 18 (6.8%) +NEC 16 (6.1%) +IBM 16 (6.1%) +SINA 13 (4.9%) +Red Hat 12 (4.6%) +Cisco Systems 12 (4.6%) +Locaweb 6 (2.3%) +Internap 6 (2.3%) +unknown@hacker.net 5 (1.9%) +ykaneko0929@gmail.com 4 (1.5%) +Rackspace 3 (1.1%) +prasad.tanay@gmail.com 3 (1.1%) +Intel 3 (1.1%) +HP 2 (0.8%) +VA Linux 2 (0.8%) +mathieu.rohon@gmail.com 2 (0.8%) +Covers 99.239544% of bugs diff --git a/folsom/swift-gerrit-stats.txt b/folsom/swift-gerrit-stats.txt new file mode 100644 index 0000000..a6d3c8e --- /dev/null +++ b/folsom/swift-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 401 review from 31 developers +20 employers found + +Developers with the most reviews (total 401) +notmyname 71 (17.7%) +gholt 69 (17.2%) +pandemicsyn 50 (12.5%) +greglange 48 (12.0%) +torgomatic 41 (10.2%) +chmouel 28 (7.0%) +david-goetz 24 (6.0%) +redbo 18 (4.5%) +darrellb 16 (4.0%) +zaitcev 6 (1.5%) +jjmartinez 5 (1.2%) +alexyang 2 (0.5%) +btorch 2 (0.5%) +cweidenkeller 2 (0.5%) +maru 2 (0.5%) +adriansmith 2 (0.5%) +cthiel-suse 1 (0.2%) +jcolp 1 (0.2%) +linlin-cqu 1 (0.2%) +heckj 1 (0.2%) +Covers 97.256858% of reviews + +Top reviewers by employer (total 401) +Rackspace 247 (61.6%) +SwiftStack 93 (23.2%) +launchpad@chmouel.com 28 (7.0%) +Red Hat 8 (2.0%) +Memset 5 (1.2%) +btorch@gmail.com 2 (0.5%) +Nebula 2 (0.5%) +Internap 2 (0.5%) +adrian@17od.com 2 (0.5%) +SINA 2 (0.5%) +HP 1 (0.2%) +dan.dillinger@sonian.net 1 (0.2%) +DreamHost 1 (0.2%) +SUSE 1 (0.2%) +cthier@gmail.com 1 (0.2%) +jcolp@joshua-colp.com 1 (0.2%) +linlin.cqu@gmail.com 1 (0.2%) +launchpad@markgius.com 1 (0.2%) +Nexenta 1 (0.2%) +loic@dachary.org 1 (0.2%) +Covers 100.000000% of reviews diff --git a/folsom/swift-git-stats.txt b/folsom/swift-git-stats.txt new file mode 100644 index 0000000..a76180a --- /dev/null +++ b/folsom/swift-git-stats.txt @@ -0,0 +1,125 @@ +Processed 170 csets from 37 developers +23 employers found +A total of 22389 lines added, 18563 removed (delta 3826) + +Developers with the most changesets +gholt 40 (23.5%) +John Dickinson 27 (15.9%) +Darrell Bishop 10 (5.9%) +Samuel Merritt 9 (5.3%) +Florian Hines 8 (4.7%) +David Goetz 7 (4.1%) +Michael Barton 6 (3.5%) +Victor Rodionov 6 (3.5%) +Greg Lange 6 (3.5%) +Vincent Untz 5 (2.9%) +Ionuț Arțăriși 5 (2.9%) +Chmouel Boudjnah 4 (2.4%) +Pete Zaitcev 4 (2.4%) +Alex Yang 3 (1.8%) +MORITA Kazutaka 3 (1.8%) +Iryoung Jeong 3 (1.8%) +Julien Danjou 3 (1.8%) +Dan Prince 2 (1.2%) +lrqrun 1 (0.6%) +Constantine Peresypkin 1 (0.6%) +Covers 90.000000% of changesets + +Developers with the most changed lines +gholt 7307 (21.8%) +Chmouel Boudjnah 4676 (13.9%) +Michael Barton 2961 (8.8%) +Darrell Bishop 2396 (7.1%) +Greg Lange 1848 (5.5%) +Florian Hines 1840 (5.5%) +John Dickinson 1682 (5.0%) +Samuel Merritt 1210 (3.6%) +Victor Rodionov 544 (1.6%) +Marcelo Martins 400 (1.2%) +Iryoung Jeong 316 (0.9%) +Vincent Untz 260 (0.8%) +Ionuț Arțăriși 208 (0.6%) +Dan Prince 117 (0.3%) +Dan Dillinger 101 (0.3%) +lrqrun 83 (0.2%) +Paul McMillan 79 (0.2%) +David Goetz 75 (0.2%) +Constantine Peresypkin 67 (0.2%) +Alex Yang 49 (0.1%) +Covers 78.048998% of changes + +Developers with the most lines removed +Chmouel Boudjnah 3900 (21.0%) +Dan Prince 106 (0.6%) +Josh Kearney 12 (0.1%) +Monty Taylor 10 (0.1%) +Covers 21.699079% of changes + +Top changeset contributors by employer +Rackspace 89 (52.4%) +SwiftStack 31 (18.2%) +SUSE 10 (5.9%) +Red Hat 6 (3.5%) +SINA 5 (2.9%) +Nexenta 5 (2.9%) +eNovance 4 (2.4%) +morita.kazutaka@gmail.com 3 (1.8%) +iryoung@gmail.com 3 (1.8%) +btorch@gmail.com 1 (0.6%) +HP 1 (0.6%) +Nebula 1 (0.6%) +Internap 1 (0.6%) +vito.ordaz@gmail.com 1 (0.6%) +IBM 1 (0.6%) +dan.dillinger@sonian.net 1 (0.6%) +Dell 1 (0.6%) +Intel 1 (0.6%) +sasimpson@gmail.com 1 (0.6%) +constantine@litestack.com 1 (0.6%) +Covers 98.235294% of changesets + +Top lines changed by employer +Rackspace 27288 (81.2%) +SwiftStack 3885 (11.6%) +SUSE 477 (1.4%) +btorch@gmail.com 400 (1.2%) +vito.ordaz@gmail.com 397 (1.2%) +iryoung@gmail.com 316 (0.9%) +Red Hat 161 (0.5%) +Nexenta 147 (0.4%) +SINA 134 (0.4%) +dan.dillinger@sonian.net 101 (0.3%) +Nebula 79 (0.2%) +constantine@litestack.com 67 (0.2%) +HP 33 (0.1%) +NTT 20 (0.1%) +eNovance 19 (0.1%) +University of Melbourne 17 (0.1%) +Dell 16 (0.0%) +morita.kazutaka@gmail.com 15 (0.0%) +Internap 9 (0.0%) +ning@zmanda.com 7 (0.0%) +Covers 99.985116% of changes + +Employers with the most hackers (total 39) +Rackspace 10 (25.6%) +SwiftStack 3 (7.7%) +SINA 3 (7.7%) +SUSE 2 (5.1%) +Red Hat 2 (5.1%) +eNovance 2 (5.1%) +btorch@gmail.com 1 (2.6%) +vito.ordaz@gmail.com 1 (2.6%) +iryoung@gmail.com 1 (2.6%) +Nexenta 1 (2.6%) +dan.dillinger@sonian.net 1 (2.6%) +Nebula 1 (2.6%) +constantine@litestack.com 1 (2.6%) +HP 1 (2.6%) +NTT 1 (2.6%) +University of Melbourne 1 (2.6%) +Dell 1 (2.6%) +morita.kazutaka@gmail.com 1 (2.6%) +Internap 1 (2.6%) +ning@zmanda.com 1 (2.6%) +Covers 92.307692% of hackers diff --git a/folsom/swift-lp-stats.txt b/folsom/swift-lp-stats.txt new file mode 100644 index 0000000..8a7b534 --- /dev/null +++ b/folsom/swift-lp-stats.txt @@ -0,0 +1,34 @@ +Processed 39 bugs from 17 developers +9 employers found + +Developers with the most bugs fixed +Unknown hacker 4 (10.3%) +gholt 4 (10.3%) +dan-prince 4 (10.3%) +pandemicsyn 4 (10.3%) +morita-kazutaka 3 (7.7%) +iryoung 3 (7.7%) +mapleoin 3 (7.7%) +darrellb 2 (5.1%) +alexyang 2 (5.1%) +vuntz 2 (5.1%) +ttx 2 (5.1%) +notmyname 1 (2.6%) +greglange 1 (2.6%) +chmouel 1 (2.6%) +francois-charlier 1 (2.6%) +annegentle 1 (2.6%) +zaitcev 1 (2.6%) +Covers 100.000000% of bugs + +Top bugs fixed by employer +Rackspace 13 (33.3%) +Red Hat 5 (12.8%) +SUSE 5 (12.8%) +unknown@hacker.net 4 (10.3%) +SwiftStack 3 (7.7%) +morita.kazutaka@gmail.com 3 (7.7%) +iryoung@gmail.com 3 (7.7%) +SINA 2 (5.1%) +eNovance 1 (2.6%) +Covers 100.000000% of bugs diff --git a/gerrit/parse-reviews.py b/gerrit/parse-reviews.py deleted file mode 100644 index 064b853..0000000 --- a/gerrit/parse-reviews.py +++ /dev/null @@ -1,100 +0,0 @@ -import argparse -import json -import sys -import time - -# -# List reviewers for a set of git commits -# -# python buglist.py essex-commits.txt openstack-config/launchpad-ids.txt < gerrit.json -# - -parser = argparse.ArgumentParser(description='List reviewers in gerrit') - -parser.add_argument('commits', help='path to list of commits to consider') -parser.add_argument('usermap', help='path to username to email map') - -args = parser.parse_args() - -username_to_email_map = {} -for l in open(args.usermap, 'r'): - (username, email) = l.split() - username_to_email_map.setdefault(username, email) - -commits = [l.strip() for l in open(args.commits, 'r')] - -class Reviewer: - def __init__(self, username, name, email): - self.username = username - self.name = name - self.email = email if email else username_to_email_map.get(self.username) - - @classmethod - def parse(cls, r): - return cls(r.get('username'), r.get('name'), r.get('email')) - -class Approval: - CodeReviewed, Approved, Submitted, Verified = range(4) - - type_map = { - 'CRVW': CodeReviewed, - 'APRV': Approved, - 'SUBM': Submitted, - 'VRIF': Verified, - } - - def __init__(self, type, value, date, by): - self.type = type - self.value = value - self.date = date - self.by = by - - @classmethod - def parse(cls, a): - return cls(cls.type_map[a['type']], - int(a['value']), - time.gmtime(int(a['grantedOn'])), - Reviewer.parse(a['by'])) - -class PatchSet: - def __init__(self, revision, approvals): - self.revision = revision - self.approvals = approvals - - @classmethod - def parse(cls, ps): - return cls(ps['revision'], - [Approval.parse(a) for a in ps.get('approvals', [])]) - -class Review: - def __init__(self, id, patchsets): - self.id = id - self.patchsets = patchsets - - @classmethod - def parse(cls, r): - return cls(r['id'], - [PatchSet.parse(ps) for ps in r['patchSets']]) - -reviews = [Review.parse(json.loads(l)) for l in sys.stdin if not 'runTimeMilliseconds' in l] - -def reviewers(review): - ret = {} - for ps in r.patchsets: - for a in ps.approvals: - if a.type == Approval.CodeReviewed and a.value: - ret.setdefault(a.by.username, (a.by, a.date)) - return ret.values() - -def interesting(review): - for ps in r.patchsets: - if ps.revision in commits: - return True - return False - -for r in reviews: - if not interesting(r): - continue - for reviewer, date in reviewers(r): - if reviewer.email: - print time.strftime('%Y-%m-%d', date), reviewer.username, reviewer.email diff --git a/gerritdm b/gerritdm deleted file mode 100755 index 2d0adaa..0000000 --- a/gerritdm +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/pypy -#-*- coding:utf-8 -*- -# - -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# Copyright 2011 Germán Póo-Caamaño -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. - - -import database, ConfigFile, reports -import getopt, datetime -import sys - -Today = datetime.date.today() - -# -# Control options. -# -MapUnknown = 0 -DevReports = 1 -DumpDB = 0 -CFName = 'gitdm.config' -DirName = '' - -# -# Options: -# -# -b dir Specify the base directory to fetch the configuration files -# -c cfile Specify a configuration file -# -d Output individual developer stats -# -h hfile HTML output to hfile -# -l count Maximum length for output lists -# -o file File for text output -# -p prefix Prefix for CSV output -# -s Ignore author SOB lines -# -u Map unknown employers to '(Unknown)' -# -z Dump out the hacker database at completion - -def ParseOpts (): - global MapUnknown, DevReports - global DumpDB - global CFName, DirName, Aggregate - - opts, rest = getopt.getopt (sys.argv[1:], 'b:dc:h:l:o:uz') - for opt in opts: - if opt[0] == '-b': - DirName = opt[1] - elif opt[0] == '-c': - CFName = opt[1] - elif opt[0] == '-d': - DevReports = 0 - elif opt[0] == '-h': - reports.SetHTMLOutput (open (opt[1], 'w')) - elif opt[0] == '-l': - reports.SetMaxList (int (opt[1])) - elif opt[0] == '-o': - reports.SetOutput (open (opt[1], 'w')) - elif opt[0] == '-u': - MapUnknown = 1 - elif opt[0] == '-z': - DumpDB = 1 - -def LookupStoreHacker (date, name, email): - email = database.RemapEmail (email) - h = database.LookupEmail (email) - if h: # already there - return date, h - elist = database.LookupEmployer (email, MapUnknown) - h = database.LookupName (name) - if h: # new email - h.addemail (email, elist) - return date, h - return date, database.StoreHacker(name, elist, email) - -# -# Here starts the real program. -# -ParseOpts () - -# -# Read the config files. -# -ConfigFile.ConfigFile (CFName, DirName) - -reviews = [LookupStoreHacker(*l.split()[:3]) for l in sys.stdin] - -for date, reviewer in reviews: - reviewer.addreview(reviewer) - empl = reviewer.emailemployer(reviewer.email[0], ConfigFile.ParseDate(date)) - empl.AddReview(reviewer) - -if DumpDB: - database.DumpDB () -database.MixVirtuals () - -# -# Say something -# -hlist = database.AllHackers () -elist = database.AllEmployers () -ndev = nempl = 0 -for h in hlist: - if len(h.reviews) > 0: - ndev += 1 -for e in elist: - if len(e.reviews) > 0: - nempl += 1 -reports.Write ('Processed %d review from %d developers\n' % (len(reviews), ndev)) -reports.Write ('%d employers found\n' % (nempl)) - -if DevReports: - reports.DevReviews (hlist, len(reviews)) -reports.EmplReviews (elist, len(reviews)) diff --git a/gitdm b/gitdm deleted file mode 100755 index 25ffafb..0000000 --- a/gitdm +++ /dev/null @@ -1,504 +0,0 @@ -#!/usr/bin/pypy -#-*- coding:utf-8 -*- -# - -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-12 Eklektix, Inc. -# Copyright 2007-12 Jonathan Corbet -# Copyright 2011 Germán Póo-Caamaño -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. - - -import database, csvdump, ConfigFile, reports -import getopt, datetime -import os, re, sys, rfc822, string -import logparser -from patterns import patterns - -Today = datetime.date.today() - -# -# Remember author names we have griped about. -# -GripedAuthorNames = [ ] - -# -# Control options. -# -MapUnknown = 0 -DevReports = 1 -DateStats = 0 -AuthorSOBs = 1 -FileFilter = None -CSVFile = None -CSVPrefix = None -AkpmOverLt = 0 -DumpDB = 0 -CFName = 'gitdm.config' -DirName = '' -Aggregate = 'month' -Numstat = 0 -ReportByFileType = 0 -ReportUnknowns = False - -# -# Options: -# -# -a Andrew Morton's signoffs shadow Linus's -# -b dir Specify the base directory to fetch the configuration files -# -c cfile Specify a configuration file -# -d Output individual developer stats -# -D Output date statistics -# -h hfile HTML output to hfile -# -l count Maximum length for output lists -# -n Use numstats instead of generated patch from git log -# -o file File for text output -# -p prefix Prefix for CSV output -# -r pattern Restrict to files matching pattern -# -s Ignore author SOB lines -# -u Map unknown employers to '(Unknown)' -# -U Dump unknown hackers in report -# -x file.csv Export raw statistics as CSV -# -w Aggregrate the raw statistics by weeks instead of months -# -y Aggregrate the raw statistics by years instead of months -# -z Dump out the hacker database at completion - -def ParseOpts (): - global MapUnknown, DevReports - global DateStats, AuthorSOBs, FileFilter, AkpmOverLt, DumpDB - global CFName, CSVFile, CSVPrefix,DirName, Aggregate, Numstat - global ReportByFileType, ReportUnknowns - - opts, rest = getopt.getopt (sys.argv[1:], 'ab:dc:Dh:l:no:p:r:stUuwx:yz') - for opt in opts: - if opt[0] == '-a': - AkpmOverLt = 1 - elif opt[0] == '-b': - DirName = opt[1] - elif opt[0] == '-c': - CFName = opt[1] - elif opt[0] == '-d': - DevReports = 0 - elif opt[0] == '-D': - DateStats = 1 - elif opt[0] == '-h': - reports.SetHTMLOutput (open (opt[1], 'w')) - elif opt[0] == '-l': - reports.SetMaxList (int (opt[1])) - elif opt[0] == '-n': - Numstat = 1 - elif opt[0] == '-o': - reports.SetOutput (open (opt[1], 'w')) - elif opt[0] == '-p': - CSVPrefix = opt[1] - elif opt[0] == '-r': - print 'Filter on "%s"' % (opt[1]) - FileFilter = re.compile (opt[1]) - elif opt[0] == '-s': - AuthorSOBs = 0 - elif opt[0] == '-t': - ReportByFileType = 1 - elif opt[0] == '-u': - MapUnknown = 1 - elif opt[0] == '-U': - ReportUnknowns = True - elif opt[0] == '-x': - CSVFile = open (opt[1], 'w') - print "open output file " + opt[1] + "\n" - elif opt [0] == '-w': - Aggregate = 'week' - elif opt [0] == '-y': - Aggregate = 'year' - elif opt[0] == '-z': - DumpDB = 1 - - - -def LookupStoreHacker (name, email): - email = database.RemapEmail (email) - h = database.LookupEmail (email) - if h: # already there - return h - elist = database.LookupEmployer (email, MapUnknown) - h = database.LookupName (name) - if h: # new email - h.addemail (email, elist) - return h - return database.StoreHacker(name, elist, email) - -# -# Date tracking. -# - -DateMap = { } - -def AddDateLines(date, lines): - if lines > 1000000: - print 'Skip big patch (%d)' % lines - return - try: - DateMap[date] += lines - except KeyError: - DateMap[date] = lines - -def PrintDateStats(): - dates = DateMap.keys () - dates.sort () - total = 0 - datef = open ('datelc.csv', 'w') - datef.write('Date,Changed,Total Changed\n') - for date in dates: - total += DateMap[date] - datef.write ('%d/%02d/%02d,%d,%d\n' % (date.year, date.month, date.day, - DateMap[date], total)) - - -# -# Let's slowly try to move some smarts into this class. -# -class patch: - (ADDED, REMOVED) = range (2) - - def __init__ (self, commit): - self.commit = commit - self.merge = self.added = self.removed = 0 - self.author = LookupStoreHacker('Unknown hacker', 'unknown@hacker.net') - self.email = 'unknown@hacker.net' - self.sobs = [ ] - self.reviews = [ ] - self.testers = [ ] - self.reports = [ ] - self.filetypes = {} - - def addreviewer (self, reviewer): - self.reviews.append (reviewer) - - def addtester (self, tester): - self.testers.append (tester) - - def addreporter (self, reporter): - self.reports.append (reporter) - - def addfiletype (self, filetype, added, removed): - if self.filetypes.has_key (filetype): - self.filetypes[filetype][self.ADDED] += added - self.filetypes[filetype][self.REMOVED] += removed - else: - self.filetypes[filetype] = [added, removed] - -def parse_numstat(line, file_filter): - """ - Receive a line of text, determine if fits a numstat line and - parse the added and removed lines as well as the file type. - """ - m = patterns['numstat'].match (line) - if m: - filename = m.group (3) - # If we have a file filter, check for file lines. - if file_filter and not file_filter.search (filename): - return None, None, None, None - - try: - added = int (m.group (1)) - removed = int (m.group (2)) - except ValueError: - # A binary file (image, etc.) is marked with '-' - added = removed = 0 - - m = patterns['rename'].match (filename) - if m: - filename = '%s%s%s' % (m.group (1), m.group (3), m.group (4)) - - filetype = database.FileTypes.guess_file_type (os.path.basename(filename)) - return filename, filetype, added, removed - else: - return None, None, None, None - -# -# The core hack for grabbing the information about a changeset. -# -def grabpatch(logpatch): - m = patterns['commit'].match (logpatch[0]) - if not m: - return None - - p = patch(m.group (1)) - ignore = (FileFilter is not None) - for Line in logpatch[1:]: - # - # Maybe it's an author line? - # - m = patterns['author'].match (Line) - if m: - p.email = database.RemapEmail (m.group (2)) - p.author = LookupStoreHacker(m.group (1), p.email) - continue - # - # Could be a signed-off-by: - # - m = patterns['signed-off-by'].match (Line) - if m: - email = database.RemapEmail (m.group (2)) - sobber = LookupStoreHacker(m.group (1), email) - if sobber != p.author or AuthorSOBs: - p.sobs.append ((email, LookupStoreHacker(m.group (1), m.group (2)))) - continue - # - # Various other tags of interest. - # - m = patterns['reviewed-by'].match (Line) - if m: - email = database.RemapEmail (m.group (2)) - p.addreviewer (LookupStoreHacker(m.group (1), email)) - continue - m = patterns['tested-by'].match (Line) - if m: - email = database.RemapEmail (m.group (2)) - p.addtester (LookupStoreHacker (m.group (1), email)) - p.author.testcredit (patch) - continue - # Reported-by: - m = patterns['reported-by'].match (Line) - if m: - email = database.RemapEmail (m.group (2)) - p.addreporter (LookupStoreHacker (m.group (1), email)) - p.author.reportcredit (patch) - continue - # Reported-and-tested-by: - m = patterns['reported-and-tested-by'].match (Line) - if m: - email = database.RemapEmail (m.group (2)) - h = LookupStoreHacker (m.group (1), email) - p.addreporter (h) - p.addtester (h) - p.author.reportcredit (patch) - p.author.testcredit (patch) - continue - # - # If this one is a merge, make note of the fact. - # - m = patterns['merge'].match (Line) - if m: - p.merge = 1 - continue - # - # See if it's the date. - # - m = patterns['date'].match (Line) - if m: - dt = rfc822.parsedate(m.group (2)) - p.date = datetime.date (dt[0], dt[1], dt[2]) - if p.date > Today: - sys.stderr.write ('Funky date: %s\n' % p.date) - p.date = Today - continue - if not Numstat: - # - # If we have a file filter, check for file lines. - # - if FileFilter: - ignore = ApplyFileFilter (Line, ignore) - # - # OK, maybe it's part of the diff itself. - # - if not ignore: - if patterns['add'].match (Line): - p.added += 1 - continue - if patterns['rem'].match (Line): - p.removed += 1 - else: - # Get the statistics (lines added/removes) using numstats - # and without requiring a diff (--numstat instead -p) - (filename, filetype, added, removed) = parse_numstat (Line, FileFilter) - if filename: - p.added += added - p.removed += removed - p.addfiletype (filetype, added, removed) - - if '@' in p.author.name: - GripeAboutAuthorName (p.author.name) - - return p - -def GripeAboutAuthorName (name): - if name in GripedAuthorNames: - return - GripedAuthorNames.append (name) - print '%s is an author name, probably not what you want' % (name) - -def ApplyFileFilter (line, ignore): - # - # If this is the first file line (--- a/), set ignore one way - # or the other. - # - m = patterns['filea'].match (line) - if m: - file = m.group (1) - if FileFilter.search (file): - return 0 - return 1 - # - # For the second line, we can turn ignore off, but not on - # - m = patterns['fileb'].match (line) - if m: - file = m.group (1) - if FileFilter.search (file): - return 0 - return ignore - -def is_svntag(logpatch): - """ - This is a workaround for a bug on the migration to Git - from Subversion found in GNOME. It may happen in other - repositories as well. - """ - - for Line in logpatch: - m = patterns['svn-tag'].match(Line.strip()) - if m: - sys.stderr.write ('(W) detected a commit on a svn tag: %s\n' % - (m.group (0),)) - return True - - return False - -# -# If this patch is signed off by both Andrew Morton and Linus Torvalds, -# remove the (redundant) Linus signoff. -# -def TrimLTSOBs (p): - if AkpmOverLt == 1 and Linus in p.sobs and Akpm in p.sobs: - p.sobs.remove (Linus) - - -# -# Here starts the real program. -# -ParseOpts () - -# -# Read the config files. -# -ConfigFile.ConfigFile (CFName, DirName) - -# -# Let's pre-seed the database with a couple of hackers -# we want to remember. -# -if AkpmOverLt == 1: - Linus = ('torvalds@linux-foundation.org', - LookupStoreHacker ('Linus Torvalds', 'torvalds@linux-foundation.org')) - Akpm = ('akpm@linux-foundation.org', - LookupStoreHacker ('Andrew Morton', 'akpm@linux-foundation.org')) - -TotalChanged = TotalAdded = TotalRemoved = 0 - -# -# Snarf changesets. -# -print >> sys.stderr, 'Grabbing changesets...\r', - -patches = logparser.LogPatchSplitter(sys.stdin) -printcount = CSCount = 0 - -for logpatch in patches: - if (printcount % 50) == 0: - print >> sys.stderr, 'Grabbing changesets...%d\r' % printcount, - printcount += 1 - - # We want to ignore commits on svn tags since in Subversion - # thats mean a copy of the whole repository, which leads to - # wrong results. Some migrations from Subversion to Git does - # not catch all this tags/copy and import them just as a new - # big changeset. - if is_svntag(logpatch): - continue - - p = grabpatch(logpatch) - if not p: - break -# if p.added > 100000 or p.removed > 100000: -# print 'Skipping massive add', p.commit -# continue - if FileFilter and p.added == 0 and p.removed == 0: - continue - - # - # Record some global information - but only if this patch had - # stuff which wasn't ignored. - # - if ((p.added + p.removed) > 0 or not FileFilter) and not p.merge: - TotalAdded += p.added - TotalRemoved += p.removed - TotalChanged += max (p.added, p.removed) - AddDateLines (p.date, max (p.added, p.removed)) - empl = p.author.emailemployer (p.email, p.date) - empl.AddCSet (p) - if AkpmOverLt: - TrimLTSOBs (p) - for sobemail, sobber in p.sobs: - empl = sobber.emailemployer (sobemail, p.date) - empl.AddSOB() - - if not p.merge: - p.author.addpatch (p) - for sobemail, sob in p.sobs: - sob.addsob (p) - for hacker in p.reviews: - hacker.addreview (p) - for hacker in p.testers: - hacker.addtested (p) - for hacker in p.reports: - hacker.addreport (p) - CSCount += 1 - csvdump.AccumulatePatch (p, Aggregate) - csvdump.store_patch (p) -print >> sys.stderr, 'Grabbing changesets...done ' - -if DumpDB: - database.DumpDB () -database.MixVirtuals () - -# -# Say something -# -hlist = database.AllHackers () -elist = database.AllEmployers () -ndev = nempl = 0 -for h in hlist: - if len (h.patches) > 0: - ndev += 1 -for e in elist: - if e.count > 0: - nempl += 1 -reports.Write ('Processed %d csets from %d developers\n' % (CSCount, - ndev)) -reports.Write ('%d employers found\n' % (nempl)) -reports.Write ('A total of %d lines added, %d removed (delta %d)\n' % - (TotalAdded, TotalRemoved, TotalAdded - TotalRemoved)) -if TotalChanged == 0: - TotalChanged = 1 # HACK to avoid div by zero -if DateStats: - PrintDateStats () - -if CSVPrefix: - csvdump.save_csv (CSVPrefix) - -if CSVFile: - csvdump.OutputCSV (CSVFile) - CSVFile.close () - -if DevReports: - reports.DevReports (hlist, TotalChanged, CSCount, TotalRemoved) -if ReportUnknowns: - reports.ReportUnknowns(hlist, CSCount) -reports.EmplReports (elist, TotalChanged, CSCount) - -if ReportByFileType and Numstat: - reports.ReportByFileType (hlist) diff --git a/gitdm.config b/gitdm.config deleted file mode 100644 index ee71278..0000000 --- a/gitdm.config +++ /dev/null @@ -1,53 +0,0 @@ -# -# This is a gitdm configuration file for OpenStack -# - -# -# EmailAliases lets us cope with developers who use more -# than one address. -# -EmailAliases openstack-config/aliases - -# -# EmailMap does the main work of mapping addresses onto -# employers. -# -EmailMap openstack-config/domain-map -EmailMap openstack-config/email-map - -# -# Use GroupMap to map a file full of addresses to the -# same employer -# -# GroupMap sample-config/illuminati The Illuminati -# -GroupMap openstack-config/groups/att AT&T -GroupMap openstack-config/groups/bvox BVox -GroupMap openstack-config/groups/canonical Canonical -GroupMap openstack-config/groups/cloudbase Cloudbase Solutions -GroupMap openstack-config/groups/dell Dell -GroupMap openstack-config/groups/delta Delta Electronics -GroupMap openstack-config/groups/dreamhost DreamHost -GroupMap openstack-config/groups/everbread Everbread -GroupMap openstack-config/groups/ibm IBM -GroupMap openstack-config/groups/internap Internap -GroupMap openstack-config/groups/intel Intel -GroupMap openstack-config/groups/locaweb Locaweb -GroupMap openstack-config/groups/midokura Midokura -GroupMap openstack-config/groups/mirantis Mirantis -GroupMap openstack-config/groups/nebula Nebula -GroupMap openstack-config/groups/netapp NetApp -GroupMap openstack-config/groups/nicira Nicira -GroupMap openstack-config/groups/ntt NTT -GroupMap openstack-config/groups/piston Piston Cloud -GroupMap openstack-config/groups/rackspace Rackspace -GroupMap openstack-config/groups/redhat Red Hat -GroupMap openstack-config/groups/sina SINA -GroupMap openstack-config/groups/stackops StackOps -GroupMap openstack-config/groups/unimelb University of Melbourne - -# -# Use FileTypeMap to map a file types to file names using regular -# regular expressions. -# -FileTypeMap sample-config/filetypes.txt diff --git a/grizzly/cinder-gerrit-stats.txt b/grizzly/cinder-gerrit-stats.txt new file mode 100644 index 0000000..0e4fc03 --- /dev/null +++ b/grizzly/cinder-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 921 review from 55 developers +27 employers found + +Developers with the most reviews (total 921) +john-griffith 291 (31.6%) +thingee 97 (10.5%) +zhiteng-huang 94 (10.2%) +avishay-il 64 (6.9%) +duncan-thomas 55 (6.0%) +rushiagr 43 (4.7%) +eharney 27 (2.9%) +kurt-f-martin 20 (2.2%) +russellb 20 (2.2%) +clay-gerrard 19 (2.1%) +xing-yang 17 (1.8%) +vishvananda 16 (1.7%) +jdurgin 14 (1.5%) +ttx 13 (1.4%) +walter-boring 13 (1.4%) +zulcss 12 (1.3%) +bswartz 12 (1.3%) +houshengbo 11 (1.2%) +rnirmal 8 (0.9%) +oliver-leahy-l 7 (0.8%) +Covers 92.616721% of reviews + +Top reviewers by employer (total 921) +SolidFire 291 (31.6%) +DreamHost 99 (10.7%) +HP 98 (10.6%) +Intel 95 (10.3%) +IBM 87 (9.4%) +Red Hat 66 (7.2%) +NetApp 56 (6.1%) +Rackspace 45 (4.9%) +EMC 17 (1.8%) +Nebula 17 (1.8%) +Inktank 14 (1.5%) +Canonical 12 (1.3%) +Piston Cloud 5 (0.5%) +Citrix 5 (0.5%) +mbasnight@gmail.com 2 (0.2%) +thrawn01@gmail.com 1 (0.1%) +pednape@gmail.com 1 (0.1%) +SwiftStack 1 (0.1%) +james@agentultra.com 1 (0.1%) +brent.roskos@cloudtp.com 1 (0.1%) +Covers 99.239957% of reviews diff --git a/grizzly/cinder-git-stats.txt b/grizzly/cinder-git-stats.txt new file mode 100644 index 0000000..9830a02 --- /dev/null +++ b/grizzly/cinder-git-stats.txt @@ -0,0 +1,133 @@ +Processed 331 csets from 77 developers +41 employers found +A total of 48412 lines added, 55122 removed (delta -6710) + +Developers with the most changesets +John Griffith 54 (16.3%) +Mike Perez 20 (6.0%) +Zhiteng Huang 17 (5.1%) +Eric Harney 15 (4.5%) +Avishay Traeger 15 (4.5%) +Dan Prince 12 (3.6%) +Sean Dague 11 (3.3%) +Mate Lakat 11 (3.3%) +Vishvananda Ishaya 8 (2.4%) +Walter A. Boring IV 8 (2.4%) +clayg 8 (2.4%) +Xing Yang 7 (2.1%) +Matthew Treinish 7 (2.1%) +Rushi Agrawal 7 (2.1%) +Chuck Short 7 (2.1%) +Stephen Mulcahy 5 (1.5%) +Zhongyue Luo 5 (1.5%) +Nirmal Ranganathan 5 (1.5%) +Jean-Baptiste RANSY 4 (1.2%) +Kurt Martin 4 (1.2%) +Covers 69.486405% of changesets + +Developers with the most changed lines +Tom Fifield 32302 (36.5%) +John Griffith 6922 (7.8%) +Zhiteng Huang 5552 (6.3%) +Navneet Singh 3744 (4.2%) +Avishay Traeger 3235 (3.7%) +Xing Yang 3211 (3.6%) +Duncan Thomas 3127 (3.5%) +zhangchao010 2308 (2.6%) +Mark McLoughlin 2192 (2.5%) +Walter A. Boring IV 2139 (2.4%) +Mike Perez 1983 (2.2%) +John Garbutt 1761 (2.0%) +Eric Harney 1675 (1.9%) +Nirmal Ranganathan 1672 (1.9%) +Mate Lakat 1488 (1.7%) +Michael J Fork 1358 (1.5%) +clayg 1064 (1.2%) +Pedro Navarro Perez 949 (1.1%) +Michael Basnight 837 (0.9%) +Kurt Martin 817 (0.9%) +Covers 88.452288% of changes + +Developers with the most lines removed +Tom Fifield 32302 (58.6%) +Mark McLoughlin 1924 (3.5%) +John Garbutt 1761 (3.2%) +Monty Taylor 377 (0.7%) +Michael Still 79 (0.1%) +Russell Bryant 71 (0.1%) +Julien Danjou 52 (0.1%) +Brian Waldon 32 (0.1%) +Joe Gordon 7 (0.0%) +Mehdi Abaakouk 6 (0.0%) +Eoghan Glynn 6 (0.0%) +MotoKen 2 (0.0%) +Covers 66.432640% of changes + +Top changeset contributors by employer +SolidFire 54 (16.3%) +IBM 46 (13.9%) +Red Hat 40 (12.1%) +HP 25 (7.6%) +DreamHost 23 (6.9%) +Intel 23 (6.9%) +Rackspace 21 (6.3%) +NetApp 14 (4.2%) +Citrix 12 (3.6%) +Nebula 9 (2.7%) +Canonical 9 (2.7%) +EMC 7 (2.1%) +julien@danjou.info 4 (1.2%) +jean-baptiste.ransy@alyseo.com 4 (1.2%) +Inktank 3 (0.9%) +zhangchao010@huawei.com 3 (0.9%) +mbasnight@gmail.com 3 (0.9%) +zrzhit@gmail.com 3 (0.9%) +University of Melbourne 3 (0.9%) +Cloudscaling 2 (0.6%) +Covers 93.051360% of changesets + +Top lines changed by employer +University of Melbourne 32387 (36.6%) +SolidFire 8900 (10.0%) +HP 7250 (8.2%) +IBM 6838 (7.7%) +Intel 5781 (6.5%) +Red Hat 4723 (5.3%) +NetApp 3862 (4.4%) +Rackspace 3570 (4.0%) +Citrix 3250 (3.7%) +EMC 3211 (3.6%) +zhangchao010@huawei.com 2313 (2.6%) +DreamHost 2082 (2.4%) +pednape@gmail.com 949 (1.1%) +mbasnight@gmail.com 837 (0.9%) +jean-baptiste.ransy@alyseo.com 702 (0.8%) +jean.marc.saffroy@scality.com 464 (0.5%) +julien@danjou.info 221 (0.2%) +Canonical 178 (0.2%) +yugsuo@gmail.com 168 (0.2%) +Inktank 165 (0.2%) +Covers 99.196053% of changes + +Employers with the most hackers (total 77) +IBM 9 (11.7%) +HP 7 (9.1%) +Red Hat 7 (9.1%) +Rackspace 5 (6.5%) +Intel 3 (3.9%) +NetApp 3 (3.9%) +Canonical 3 (3.9%) +University of Melbourne 2 (2.6%) +Citrix 2 (2.6%) +DreamHost 2 (2.6%) +Nebula 2 (2.6%) +NTT 2 (2.6%) +Cloudscaling 2 (2.6%) +SolidFire 1 (1.3%) +EMC 1 (1.3%) +zhangchao010@huawei.com 1 (1.3%) +pednape@gmail.com 1 (1.3%) +mbasnight@gmail.com 1 (1.3%) +jean-baptiste.ransy@alyseo.com 1 (1.3%) +jean.marc.saffroy@scality.com 1 (1.3%) +Covers 72.727273% of hackers diff --git a/grizzly/cinder-lp-stats.txt b/grizzly/cinder-lp-stats.txt new file mode 100644 index 0000000..3fc473d --- /dev/null +++ b/grizzly/cinder-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 145 bugs from 45 developers +24 employers found + +Developers with the most bugs fixed +john-griffith 27 (18.6%) +Unknown hacker 14 (9.7%) +avishay-il 12 (8.3%) +mate-lakat 6 (4.1%) +walter-boring 5 (3.4%) +stephen-mulcahy 5 (3.4%) +rushiagr 5 (3.4%) +thingee 4 (2.8%) +zhiteng-huang 4 (2.8%) +dan-prince 4 (2.8%) +clay-gerrard 4 (2.8%) +treinish 3 (2.1%) +zhangchao010 3 (2.1%) +eharney 3 (2.1%) +sdague 3 (2.1%) +singn 3 (2.1%) +bswartz 3 (2.1%) +vishvananda 2 (1.4%) +flwang 2 (1.4%) +markmc 2 (1.4%) +Covers 78.620690% of bugs + +Top bugs fixed by employer +SolidFire 27 (18.6%) +IBM 23 (15.9%) +unknown@hacker.net 14 (9.7%) +Red Hat 11 (7.6%) +HP 11 (7.6%) +Rackspace 11 (7.6%) +NetApp 11 (7.6%) +DreamHost 6 (4.1%) +Citrix 6 (4.1%) +Intel 5 (3.4%) +Nebula 3 (2.1%) +zhangchao010@huawei.com 3 (2.1%) +zrzhit@gmail.com 2 (1.4%) +University of Melbourne 2 (1.4%) +xuwenhao2008@gmail.com 1 (0.7%) +corystone@gmail.com 1 (0.7%) +Internap 1 (0.7%) +yugsuo@gmail.com 1 (0.7%) +cgoncalves@av.it.pt 1 (0.7%) +Metacloud 1 (0.7%) +Covers 97.241379% of bugs diff --git a/grizzly/gerrit-stats.txt b/grizzly/gerrit-stats.txt new file mode 100644 index 0000000..63ba4d0 --- /dev/null +++ b/grizzly/gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 12346 review from 305 developers +117 employers found + +Developers with the most reviews (total 12346) +mikalstill 586 (4.7%) +russellb 555 (4.5%) +sdague 548 (4.4%) +klmitch 547 (4.4%) +vishvananda 472 (3.8%) +garyk 357 (2.9%) +danms 334 (2.7%) +markmcclain 332 (2.7%) +john-griffith 308 (2.5%) +jogo 288 (2.3%) +jk0 270 (2.2%) +cerberus 254 (2.1%) +dims-v 216 (1.7%) +dolph 208 (1.7%) +cbehrens 200 (1.6%) +danwent 193 (1.6%) +ayoung 188 (1.5%) +maurosr 183 (1.5%) +bcwaldon 178 (1.4%) +markmc 176 (1.4%) +Covers 51.781954% of reviews + +Top reviewers by employer (total 12346) +Rackspace 2896 (23.5%) +IBM 2066 (16.7%) +Red Hat 2030 (16.4%) +Nebula 839 (6.8%) +Canonical 747 (6.1%) +HP 481 (3.9%) +Nicira 451 (3.7%) +DreamHost 443 (3.6%) +SolidFire 308 (2.5%) +Cloudscaling 304 (2.5%) +SwiftStack 299 (2.4%) +Intel 204 (1.7%) +NEC 168 (1.4%) +AT&T 151 (1.2%) +Big Switch Networks 83 (0.7%) +NTT 73 (0.6%) +PLUMgrid 66 (0.5%) +Cisco Systems 63 (0.5%) +Metacloud 59 (0.5%) +NetApp 57 (0.5%) +Covers 95.480318% of reviews diff --git a/grizzly/git-stats.txt b/grizzly/git-stats.txt new file mode 100644 index 0000000..5350f68 --- /dev/null +++ b/grizzly/git-stats.txt @@ -0,0 +1,141 @@ +Processed 3864 csets from 408 developers +173 employers found +A total of 442076 lines added, 304352 removed (delta 137724) + +Developers with the most changesets +Mark McLoughlin 124 (3.2%) +Dan Smith 115 (3.0%) +Gary Kotton 110 (2.8%) +Dan Prince 105 (2.7%) +Zhongyue Luo 103 (2.7%) +Joe Gordon 100 (2.6%) +Vishvananda Ishaya 97 (2.5%) +Russell Bryant 95 (2.5%) +Chris Behrens 75 (1.9%) +Daniel P. Berrange 73 (1.9%) +Dolph Mathews 72 (1.9%) +Aaron Rosen 70 (1.8%) +Brian Waldon 63 (1.6%) +Michael Still 59 (1.5%) +Sean Dague 56 (1.4%) +Matthew Treinish 56 (1.4%) +John Griffith 56 (1.4%) +Davanum Srinivas 52 (1.3%) +Devananda van der Veen 46 (1.2%) +Adam Young 46 (1.2%) +Covers 40.709110% of changesets + +Developers with the most changed lines +Gabriel Hurley 115107 (20.5%) +Tom Fifield 34580 (6.2%) +Vishvananda Ishaya 20388 (3.6%) +Mark McLoughlin 17298 (3.1%) +Chris Behrens 12655 (2.3%) +Aaron Rosen 8153 (1.5%) +Salvatore Orlando 7879 (1.4%) +Nachi Ueno 7561 (1.3%) +Dolph Mathews 7453 (1.3%) +Dan Smith 7365 (1.3%) +Dan Prince 7118 (1.3%) +John Griffith 6952 (1.2%) +Akihiro MOTOKI 6823 (1.2%) +Daniel P. Berrange 6813 (1.2%) +Mark McClain 6629 (1.2%) +Brian Waldon 6509 (1.2%) +Arvind Somya 6505 (1.2%) +Alessandro Pilotti 6463 (1.2%) +gongysh 6291 (1.1%) +Edgar Magana 6047 (1.1%) +Covers 54.264534% of changes + +Developers with the most lines removed +Tom Fifield 34021 (11.2%) +Vishvananda Ishaya 15846 (5.2%) +Mark McLoughlin 7859 (2.6%) +Arvind Somya 5998 (2.0%) +Edgar Magana 5416 (1.8%) +Dan Prince 4812 (1.6%) +Brian Waldon 3727 (1.2%) +Joe Gordon 2770 (0.9%) +John Garbutt 1761 (0.6%) +Monty Taylor 613 (0.2%) +Chmouel Boudjnah 370 (0.1%) +Yuriy Taraday 311 (0.1%) +Pete Zaitcev 104 (0.0%) +Steven Hardy 78 (0.0%) +Ivan Kolodyazhny 71 (0.0%) +Lorin Hochstein 65 (0.0%) +Yaguang Tang 50 (0.0%) +Dae S. Kim 48 (0.0%) +Mark Washenberger 47 (0.0%) +Chuck Short 45 (0.0%) +Covers 27.603564% of changes + +Top changeset contributors by employer +Red Hat 701 (18.1%) +Rackspace 575 (14.9%) +IBM 550 (14.2%) +HP 236 (6.1%) +Intel 160 (4.1%) +Nebula 145 (3.8%) +Nicira 132 (3.4%) +Canonical 122 (3.2%) +Cloudscaling 110 (2.8%) +SwiftStack 78 (2.0%) +DreamHost 68 (1.8%) +SolidFire 56 (1.4%) +NTT 51 (1.3%) +Mirantis 49 (1.3%) +NEC 48 (1.2%) +Citrix 36 (0.9%) +SUSE 35 (0.9%) +Metacloud 35 (0.9%) +University of Melbourne 32 (0.8%) +boris@pavlovic.me 30 (0.8%) +Covers 84.083851% of changesets + +Top lines changed by employer +Nebula 142037 (25.3%) +Rackspace 67647 (12.1%) +Red Hat 58199 (10.4%) +IBM 56496 (10.1%) +University of Melbourne 36293 (6.5%) +HP 25489 (4.5%) +Nicira 17162 (3.1%) +Intel 11102 (2.0%) +NTT 9715 (1.7%) +DreamHost 9530 (1.7%) +SolidFire 8930 (1.6%) +Cisco Systems 8096 (1.4%) +NEC 7399 (1.3%) +Cloudscaling 7036 (1.3%) +Cloudbase Solutions 6815 (1.2%) +PLUMgrid 6651 (1.2%) +Canonical 6248 (1.1%) +SwiftStack 5758 (1.0%) +Citrix 4624 (0.8%) +ISI 4504 (0.8%) +Covers 89.030365% of changes + +Employers with the most hackers (total 417) +Rackspace 47 (11.3%) +IBM 36 (8.6%) +HP 35 (8.4%) +Red Hat 31 (7.4%) +Intel 10 (2.4%) +NTT 10 (2.4%) +Canonical 10 (2.4%) +Mirantis 10 (2.4%) +Cisco Systems 9 (2.2%) +Nebula 8 (1.9%) +Yahoo! 8 (1.9%) +DreamHost 5 (1.2%) +NEC 5 (1.2%) +Cloudscaling 4 (1.0%) +SwiftStack 4 (1.0%) +Metacloud 4 (1.0%) +Internap 4 (1.0%) +SUSE 4 (1.0%) +University of Melbourne 3 (0.7%) +Nicira 3 (0.7%) +Covers 59.952038% of hackers diff --git a/grizzly/glance-gerrit-stats.txt b/grizzly/glance-gerrit-stats.txt new file mode 100644 index 0000000..57b9627 --- /dev/null +++ b/grizzly/glance-gerrit-stats.txt @@ -0,0 +1,43 @@ +Processed 717 review from 44 developers +15 employers found + +Developers with the most reviews (total 717) +bcwaldon 171 (23.8%) +markwash 147 (20.5%) +iccha-sethi 109 (15.2%) +jk0 63 (8.8%) +alex-meade 57 (7.9%) +flaper87 41 (5.7%) +nikhil-komawar 28 (3.9%) +jbresnah 19 (2.6%) +dan-prince 12 (1.7%) +treinish 8 (1.1%) +eglynn 6 (0.8%) +ttx 5 (0.7%) +jaypipes 4 (0.6%) +zulcss 4 (0.6%) +rconradharris 3 (0.4%) +stuart-mclaren 3 (0.4%) +doug-hellmann 3 (0.4%) +dripton 3 (0.4%) +berrange 2 (0.3%) +markmc 2 (0.3%) +Covers 96.234310% of reviews + +Top reviewers by employer (total 717) +Rackspace 585 (81.6%) +Red Hat 90 (12.6%) +IBM 14 (2.0%) +HP 6 (0.8%) +Canonical 5 (0.7%) +AT&T 4 (0.6%) +DreamHost 3 (0.4%) +Nebula 2 (0.3%) +Intel 2 (0.3%) +Cloudscaling 1 (0.1%) +me@jaybuff.com 1 (0.1%) +Yahoo! 1 (0.1%) +lzy.dev@gmail.com 1 (0.1%) +NTT 1 (0.1%) +Grid Dynamics 1 (0.1%) +Covers 100.000000% of reviews diff --git a/grizzly/glance-git-stats.txt b/grizzly/glance-git-stats.txt new file mode 100644 index 0000000..dd04ad1 --- /dev/null +++ b/grizzly/glance-git-stats.txt @@ -0,0 +1,134 @@ +Processed 276 csets from 64 developers +23 employers found +A total of 15967 lines added, 14021 removed (delta 1946) + +Developers with the most changesets +Brian Waldon 46 (16.7%) +Mark J. Washenberger 29 (10.5%) +Matthew Treinish 17 (6.2%) +Dan Prince 15 (5.4%) +Mark Washenberger 13 (4.7%) +Eoghan Glynn 12 (4.3%) +Stuart McLaren 11 (4.0%) +isethi 10 (3.6%) +Zhongyue Luo 10 (3.6%) +Monty Taylor 9 (3.3%) +Mark McLoughlin 7 (2.5%) +John Bresnahan 6 (2.2%) +Unmesh Gurjar 6 (2.2%) +Michael Still 6 (2.2%) +Paul Bourke 5 (1.8%) +Sascha Peilicke 5 (1.8%) +Brian Rosmaita 4 (1.4%) +Tom Hancock 3 (1.1%) +Michael J Fork 3 (1.1%) +Alessio Ababilov 3 (1.1%) +Covers 79.710145% of changesets + +Developers with the most changed lines +Brian Waldon 6062 (25.4%) +Mark J. Washenberger 4256 (17.8%) +Mark McLoughlin 2327 (9.7%) +isethi 1833 (7.7%) +Matthew Treinish 1059 (4.4%) +Zhongyue Luo 1035 (4.3%) +Kevin L. Mitchell 727 (3.0%) +Monty Taylor 657 (2.7%) +Mark Washenberger 642 (2.7%) +Michael Still 420 (1.8%) +Paul Bourke 386 (1.6%) +Eoghan Glynn 292 (1.2%) +Alex Meade 270 (1.1%) +Brian Rosmaita 254 (1.1%) +Stuart McLaren 208 (0.9%) +Unmesh Gurjar 177 (0.7%) +John Bresnahan 166 (0.7%) +Therese McHale 126 (0.5%) +Andrew Melton 102 (0.4%) +Dan Prince 84 (0.4%) +Covers 88.217080% of changes + +Developers with the most lines removed +Brian Waldon 3687 (26.3%) +Mark McLoughlin 1717 (12.2%) +Monty Taylor 371 (2.6%) +Mark Washenberger 66 (0.5%) +Tim Daly, Jr 21 (0.1%) +Zhiteng Huang 13 (0.1%) +Julien Danjou 10 (0.1%) +shrutiranade38 3 (0.0%) +Yaguang Tang 2 (0.0%) +Avinash Prasad 2 (0.0%) +Rainya Mosher 1 (0.0%) +Robert Collins 1 (0.0%) +Toan Nguyen 1 (0.0%) +Covers 42.044077% of changes + +Top changeset contributors by employer +Rackspace 118 (42.8%) +Red Hat 46 (16.7%) +HP 32 (11.6%) +IBM 26 (9.4%) +Intel 11 (4.0%) +NTT 7 (2.5%) +Canonical 7 (2.5%) +SUSE 5 (1.8%) +Yahoo! 5 (1.8%) +Nebula 3 (1.1%) +julien@danjou.info 2 (0.7%) +DreamHost 2 (0.7%) +flaper87@gmail.com 2 (0.7%) +Inktank 1 (0.4%) +heut2008@gmail.com 1 (0.4%) +SwiftStack 1 (0.4%) +Cloudscaling 1 (0.4%) +shrutiranade38@gmail.com 1 (0.4%) +akuno@lavabit.com 1 (0.4%) +leam.hall@mailtrust.com 1 (0.4%) +Covers 98.913043% of changesets + +Top lines changed by employer +Rackspace 15906 (66.6%) +Red Hat 3125 (13.1%) +HP 1467 (6.1%) +IBM 1361 (5.7%) +Intel 1075 (4.5%) +Canonical 470 (2.0%) +NTT 179 (0.7%) +DreamHost 62 (0.3%) +flaper87@gmail.com 57 (0.2%) +Yahoo! 50 (0.2%) +Inktank 41 (0.2%) +Nebula 39 (0.2%) +julien@danjou.info 18 (0.1%) +SUSE 14 (0.1%) +yueli.m@gmail.com 10 (0.0%) +nathanael.i.burton.work@gmail.com 7 (0.0%) +heut2008@gmail.com 5 (0.0%) +leam.hall@mailtrust.com 4 (0.0%) +shrutiranade38@gmail.com 3 (0.0%) +Cloudscaling 2 (0.0%) +Covers 99.983263% of changes + +Employers with the most hackers (total 65) +Rackspace 18 (27.7%) +Red Hat 8 (12.3%) +HP 7 (10.8%) +IBM 6 (9.2%) +Yahoo! 4 (6.2%) +Intel 2 (3.1%) +Canonical 2 (3.1%) +NTT 2 (3.1%) +Nebula 2 (3.1%) +DreamHost 1 (1.5%) +flaper87@gmail.com 1 (1.5%) +Inktank 1 (1.5%) +julien@danjou.info 1 (1.5%) +SUSE 1 (1.5%) +yueli.m@gmail.com 1 (1.5%) +nathanael.i.burton.work@gmail.com 1 (1.5%) +heut2008@gmail.com 1 (1.5%) +leam.hall@mailtrust.com 1 (1.5%) +shrutiranade38@gmail.com 1 (1.5%) +Cloudscaling 1 (1.5%) +Covers 95.384615% of hackers diff --git a/grizzly/glance-lp-stats.txt b/grizzly/glance-lp-stats.txt new file mode 100644 index 0000000..3009ea0 --- /dev/null +++ b/grizzly/glance-lp-stats.txt @@ -0,0 +1,46 @@ +Processed 110 bugs from 37 developers +18 employers found + +Developers with the most bugs fixed +markwash 20 (18.2%) +bcwaldon 11 (10.0%) +stuart-mclaren 11 (10.0%) +eglynn 6 (5.5%) +Unknown hacker 5 (4.5%) +unmesh-gurjar 5 (4.5%) +jbresnah 4 (3.6%) +dan-prince 4 (3.6%) +treinish 3 (2.7%) +tom-hancock 3 (2.7%) +iccha-sethi 3 (2.7%) +flaper87 2 (1.8%) +markmc 2 (1.8%) +mjfork 2 (1.8%) +pauldbourke 2 (1.8%) +russellb 2 (1.8%) +zyluo 2 (1.8%) +saschpe 2 (1.8%) +nikhil-komawar 2 (1.8%) +sathish-nagappan 2 (1.8%) +Covers 84.545455% of bugs + +Top bugs fixed by employer +Rackspace 38 (34.5%) +Red Hat 19 (17.3%) +HP 18 (16.4%) +IBM 8 (7.3%) +unknown@hacker.net 5 (4.5%) +NTT 5 (4.5%) +Nebula 3 (2.7%) +SUSE 2 (1.8%) +Intel 2 (1.8%) +flaper87@gmail.com 2 (1.8%) +Cloudscaling 1 (0.9%) +DreamHost 1 (0.9%) +eNovance 1 (0.9%) +akuno@lavabit.com 1 (0.9%) +Yahoo! 1 (0.9%) +Grid Dynamics 1 (0.9%) +nathanael.i.burton.work@gmail.com 1 (0.9%) +Canonical 1 (0.9%) +Covers 100.000000% of bugs diff --git a/grizzly/horizon-gerrit-stats.txt b/grizzly/horizon-gerrit-stats.txt new file mode 100644 index 0000000..b88a993 --- /dev/null +++ b/grizzly/horizon-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 491 review from 39 developers +23 employers found + +Developers with the most reviews (total 491) +gabriel-hurley 156 (31.8%) +mrunge 88 (17.9%) +lin-hua-cheng 45 (9.2%) +ttrifonov 32 (6.5%) +kspear 31 (6.3%) +john-postlethwait 27 (5.5%) +jpichon 26 (5.3%) +tres 15 (3.1%) +vickymsee 11 (2.2%) +david-lyle 10 (2.0%) +amotoki 10 (2.0%) +ttx 4 (0.8%) +nicolas.simonds 3 (0.6%) +ericpeterson-l 2 (0.4%) +fungi 2 (0.4%) +dlenwell 2 (0.4%) +yufang521247 2 (0.4%) +eglynn 2 (0.4%) +rkhardalian 2 (0.4%) +paul-mcmillan 2 (0.4%) +Covers 96.130346% of reviews + +Top reviewers by employer (total 491) +Nebula 200 (40.7%) +Red Hat 119 (24.2%) +HP 59 (12.0%) +Everbread 32 (6.5%) +University of Melbourne 31 (6.3%) +vickymsee@gmail.com 11 (2.2%) +NEC 10 (2.0%) +Rackspace 6 (1.2%) +Metacloud 6 (1.2%) +dlenwell@gmail.com 2 (0.4%) +yufang521247@gmail.com 2 (0.4%) +SUSE 2 (0.4%) +IBM 1 (0.2%) +masayuki.igawa@gmail.com 1 (0.2%) +sammiestoel@gmail.com 1 (0.2%) +boris@pavlovic.me 1 (0.2%) +vbannai@gmail.com 1 (0.2%) +loic@dachary.org 1 (0.2%) +izbyshev@ispras.ru 1 (0.2%) +NTT 1 (0.2%) +Covers 99.389002% of reviews diff --git a/grizzly/horizon-git-stats.txt b/grizzly/horizon-git-stats.txt new file mode 100644 index 0000000..28610c0 --- /dev/null +++ b/grizzly/horizon-git-stats.txt @@ -0,0 +1,128 @@ +Processed 185 csets from 48 developers +32 employers found +A total of 129850 lines added, 94002 removed (delta 35848) + +Developers with the most changesets +Gabriel Hurley 31 (16.8%) +Kieran Spear 21 (11.4%) +Julie Pichon 19 (10.3%) +Lin Hua Cheng 13 (7.0%) +Brian Waldon 10 (5.4%) +Tihomir Trifonov 8 (4.3%) +Akihiro MOTOKI 7 (3.8%) +Matthias Runge 7 (3.8%) +Victoria Martínez de la Cruz 7 (3.8%) +David Lyle 5 (2.7%) +Nicolas Simonds 5 (2.7%) +Wu Wenxiang 3 (1.6%) +Alexey Izbyshev 3 (1.6%) +Toshiyuki Hayashi 3 (1.6%) +Jesse Pretorius 3 (1.6%) +Aaron Rosen 2 (1.1%) +Nachi Ueno 2 (1.1%) +Cody A.W. Somerville 2 (1.1%) +Brooklyn Chen 2 (1.1%) +Ionuț Arțăriși 2 (1.1%) +Covers 83.783784% of changesets + +Developers with the most changed lines +Gabriel Hurley 115106 (85.7%) +Akihiro MOTOKI 3814 (2.8%) +Nachi Ueno 2309 (1.7%) +KC Wang 2268 (1.7%) +Kieran Spear 1457 (1.1%) +Julie Pichon 900 (0.7%) +Tihomir Trifonov 621 (0.5%) +Malini Bhandaru 585 (0.4%) +Sam Stoelinga 578 (0.4%) +Toshiyuki Hayashi 418 (0.3%) +Michael Still 209 (0.2%) +Lin Hua Cheng 189 (0.1%) +Monty Taylor 189 (0.1%) +Matthias Runge 170 (0.1%) +Victoria Martínez de la Cruz 169 (0.1%) +Cody A.W. Somerville 156 (0.1%) +Nathan Reller 136 (0.1%) +Brian Waldon 135 (0.1%) +Daniel P. Berrange 130 (0.1%) +Wu Wenxiang 118 (0.1%) +Covers 96.490366% of changes + +Developers with the most lines removed +Brian Waldon 47 (0.0%) +Flavio Percoco 33 (0.0%) +David Lyle 11 (0.0%) +Alexey Izbyshev 5 (0.0%) +Ionuț Arțăriși 5 (0.0%) +Zhongyue Luo 5 (0.0%) +Rafi Khardalian 5 (0.0%) +Covers 0.118083% of changes + +Top changeset contributors by employer +Nebula 33 (17.8%) +Red Hat 29 (15.7%) +HP 22 (11.9%) +University of Melbourne 21 (11.4%) +Rackspace 11 (5.9%) +NEC 8 (4.3%) +Everbread 8 (4.3%) +vickymsee@gmail.com 7 (3.8%) +Metacloud 6 (3.2%) +NTT 5 (2.7%) +jesse.pretorius@gmail.com 3 (1.6%) +wu.wenxiang@99cloud.net 3 (1.6%) +SUSE 3 (1.6%) +Intel 3 (1.6%) +izbyshev@ispras.ru 3 (1.6%) +Canonical 3 (1.6%) +Nicira 2 (1.1%) +IBM 1 (0.5%) +sammiestoel@gmail.com 1 (0.5%) +OpenStack Foundation 1 (0.5%) +Covers 93.513514% of changesets + +Top lines changed by employer +Nebula 119163 (88.7%) +NEC 4107 (3.1%) +NTT 2727 (2.0%) +kc.wang@bigswitch.com 2268 (1.7%) +University of Melbourne 1459 (1.1%) +Red Hat 1260 (0.9%) +Everbread 632 (0.5%) +Intel 593 (0.4%) +sammiestoel@gmail.com 578 (0.4%) +HP 573 (0.4%) +Canonical 217 (0.2%) +Rackspace 169 (0.1%) +vickymsee@gmail.com 169 (0.1%) +nathan.reller@jhuapl.edu 136 (0.1%) +wu.wenxiang@99cloud.net 125 (0.1%) +izbyshev@ispras.ru 43 (0.0%) +Metacloud 37 (0.0%) +jesse.pretorius@gmail.com 30 (0.0%) +berendt@b1-systems.de 22 (0.0%) +SUSE 17 (0.0%) +Covers 99.964279% of changes + +Employers with the most hackers (total 48) +HP 5 (10.4%) +Red Hat 4 (8.3%) +Nebula 3 (6.2%) +NEC 2 (4.2%) +NTT 2 (4.2%) +Intel 2 (4.2%) +Canonical 2 (4.2%) +Rackspace 2 (4.2%) +Metacloud 2 (4.2%) +SUSE 2 (4.2%) +kc.wang@bigswitch.com 1 (2.1%) +University of Melbourne 1 (2.1%) +Everbread 1 (2.1%) +sammiestoel@gmail.com 1 (2.1%) +vickymsee@gmail.com 1 (2.1%) +nathan.reller@jhuapl.edu 1 (2.1%) +wu.wenxiang@99cloud.net 1 (2.1%) +izbyshev@ispras.ru 1 (2.1%) +jesse.pretorius@gmail.com 1 (2.1%) +berendt@b1-systems.de 1 (2.1%) +Covers 75.000000% of hackers diff --git a/grizzly/horizon-lp-stats.txt b/grizzly/horizon-lp-stats.txt new file mode 100644 index 0000000..a2339e1 --- /dev/null +++ b/grizzly/horizon-lp-stats.txt @@ -0,0 +1,47 @@ +Processed 129 bugs from 24 developers +19 employers found + +Developers with the most bugs fixed +gabriel-hurley 23 (17.8%) +Unknown hacker 15 (11.6%) +jpichon 14 (10.9%) +kspear 14 (10.9%) +lin-hua-cheng 12 (9.3%) +ttrifonov 8 (6.2%) +mrunge 7 (5.4%) +vickymsee 7 (5.4%) +amotoki 5 (3.9%) +david-lyle 5 (3.9%) +arosen 2 (1.6%) +izbyshev 2 (1.6%) +ericpeterson-l 2 (1.6%) +irsxyp 2 (1.6%) +bcwaldon 2 (1.6%) +nati-ueno 1 (0.8%) +sammiestoel 1 (0.8%) +hayashi 1 (0.8%) +rkhardalian 1 (0.8%) +nakamura-h 1 (0.8%) +Covers 96.899225% of bugs + +Top bugs fixed by employer +Nebula 23 (17.8%) +Red Hat 21 (16.3%) +HP 19 (14.7%) +unknown@hacker.net 15 (11.6%) +University of Melbourne 14 (10.9%) +Everbread 8 (6.2%) +vickymsee@gmail.com 7 (5.4%) +NEC 6 (4.7%) +irsxyp@gmail.com 2 (1.6%) +Rackspace 2 (1.6%) +Nicira 2 (1.6%) +izbyshev@ispras.ru 2 (1.6%) +NTT 2 (1.6%) +sammiestoel@gmail.com 1 (0.8%) +jiangyong.hn@gmail.com 1 (0.8%) +Metacloud 1 (0.8%) +Cloudscaling 1 (0.8%) +flaper87@gmail.com 1 (0.8%) +academicgareth@gmail.com 1 (0.8%) +Covers 100.000000% of bugs diff --git a/grizzly/keystone-gerrit-stats.txt b/grizzly/keystone-gerrit-stats.txt new file mode 100644 index 0000000..9b53213 --- /dev/null +++ b/grizzly/keystone-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 949 review from 60 developers +28 employers found + +Developers with the most reviews (total 949) +dolph 208 (21.9%) +ayoung 185 (19.5%) +heckj 157 (16.5%) +guang-yee 88 (9.3%) +blk-u 63 (6.6%) +henry-nash 45 (4.7%) +btopol 33 (3.5%) +chungg 21 (2.2%) +spzala 19 (2.0%) +nachiappan-veerappan-nachiappan 12 (1.3%) +mapleoin 10 (1.1%) +apevec 8 (0.8%) +malini-k-bhandaru 6 (0.6%) +aloga 6 (0.6%) +mordred 6 (0.6%) +yorik-sar 5 (0.5%) +chmouel 4 (0.4%) +dripton 4 (0.4%) +ttx 3 (0.3%) +markmc 3 (0.3%) +Covers 93.361433% of reviews + +Top reviewers by employer (total 949) +Rackspace 218 (23.0%) +Red Hat 206 (21.7%) +IBM 191 (20.1%) +Nebula 164 (17.3%) +HP 107 (11.3%) +SUSE 11 (1.2%) +Intel 7 (0.7%) +aloga@ifca.unican.es 6 (0.6%) +Mirantis 5 (0.5%) +eNovance 4 (0.4%) +Cloudscaling 3 (0.3%) +CERN 3 (0.3%) +University of Melbourne 3 (0.3%) +Canonical 3 (0.3%) +Internap 2 (0.2%) +endre.karlson@gmail.com 2 (0.2%) +AT&T 2 (0.2%) +roampune@gmail.com 2 (0.2%) +allanfeid@gmail.com 1 (0.1%) +dirk@dmllr.de 1 (0.1%) +Covers 99.157007% of reviews diff --git a/grizzly/keystone-git-stats.txt b/grizzly/keystone-git-stats.txt new file mode 100644 index 0000000..3b713c9 --- /dev/null +++ b/grizzly/keystone-git-stats.txt @@ -0,0 +1,131 @@ +Processed 311 csets from 73 developers +34 employers found +A total of 28493 lines added, 17951 removed (delta 10542) + +Developers with the most changesets +Dolph Mathews 72 (23.2%) +Adam Young 46 (14.8%) +Ionuț Arțăriși 16 (5.1%) +Yuriy Taraday 13 (4.2%) +Henry Nash 12 (3.9%) +Dan Prince 12 (3.9%) +Jose Castro Leon 10 (3.2%) +Guang Yee 9 (2.9%) +Joe Heck 7 (2.3%) +Mark McLoughlin 6 (1.9%) +Gordon Chung 6 (1.9%) +Chuck Short 5 (1.6%) +Alvaro Lopez Garcia 5 (1.6%) +Alan Pevec 4 (1.3%) +Allan Feid 3 (1.0%) +David Höppner 3 (1.0%) +Monty Taylor 3 (1.0%) +Zhongyue Luo 3 (1.0%) +Vishvananda Ishaya 3 (1.0%) +long-wang 3 (1.0%) +Covers 77.491961% of changesets + +Developers with the most changed lines +Dolph Mathews 7453 (19.9%) +Henry Nash 5822 (15.5%) +Adam Young 4625 (12.3%) +Guang Yee 3316 (8.8%) +Mark McLoughlin 2188 (5.8%) +Tom Fifield 1462 (3.9%) +Gordon Chung 917 (2.4%) +Jose Castro Leon 811 (2.2%) +Chmouel Boudjnah 689 (1.8%) +Alvaro Lopez Garcia 583 (1.6%) +Monty Taylor 536 (1.4%) +Yuriy Taraday 445 (1.2%) +Sahdev Zala 292 (0.8%) +Dan Prince 273 (0.7%) +Matthew Treinish 267 (0.7%) +Michael Still 242 (0.6%) +Allan Feid 238 (0.6%) +Jason Cannavale 236 (0.6%) +Ionuț Arțăriși 210 (0.6%) +alatynskaya 195 (0.5%) +Covers 82.072053% of changes + +Developers with the most lines removed +Mark McLoughlin 1761 (9.8%) +Tom Fifield 1461 (8.1%) +Chmouel Boudjnah 633 (3.5%) +Yuriy Taraday 325 (1.8%) +Monty Taylor 256 (1.4%) +Steven Hardy 78 (0.4%) +Ionuț Arțăriși 11 (0.1%) +Joe Gordon 7 (0.0%) +Tim Simpson 1 (0.0%) +Gabriel Hurley 1 (0.0%) +Covers 25.257646% of changes + +Top changeset contributors by employer +Rackspace 81 (26.0%) +Red Hat 75 (24.1%) +IBM 30 (9.6%) +SUSE 19 (6.1%) +Mirantis 15 (4.8%) +HP 14 (4.5%) +Nebula 14 (4.5%) +CERN 10 (3.2%) +Canonical 7 (2.3%) +aloga@ifca.unican.es 5 (1.6%) +Intel 4 (1.3%) +allanfeid@gmail.com 3 (1.0%) +0xffea@gmail.com 3 (1.0%) +NTT 3 (1.0%) +long.wang@bj.cs2c.com.cn 3 (1.0%) +dirk@dmllr.de 2 (0.6%) +Cloudscaling 2 (0.6%) +DreamHost 2 (0.6%) +eNovance 2 (0.6%) +nathanael.i.burton.work@gmail.com 2 (0.6%) +Covers 95.176849% of changesets + +Top lines changed by employer +Rackspace 9606 (25.6%) +Red Hat 8912 (23.7%) +IBM 8507 (22.7%) +HP 4000 (10.7%) +University of Melbourne 1462 (3.9%) +CERN 811 (2.2%) +eNovance 743 (2.0%) +Mirantis 673 (1.8%) +aloga@ifca.unican.es 584 (1.6%) +Canonical 313 (0.8%) +Nebula 295 (0.8%) +SUSE 292 (0.8%) +allanfeid@gmail.com 243 (0.6%) +0xffea@gmail.com 238 (0.6%) +NTT 170 (0.5%) +Intel 153 (0.4%) +niuwl586@gmail.com 94 (0.3%) +nathanael.i.burton.work@gmail.com 68 (0.2%) +Internap 68 (0.2%) +dirk@dmllr.de 65 (0.2%) +Covers 99.384460% of changes + +Employers with the most hackers (total 74) +Red Hat 11 (14.9%) +IBM 10 (13.5%) +Rackspace 8 (10.8%) +Nebula 6 (8.1%) +HP 3 (4.1%) +Canonical 3 (4.1%) +SUSE 3 (4.1%) +Mirantis 2 (2.7%) +NTT 2 (2.7%) +Intel 2 (2.7%) +University of Melbourne 1 (1.4%) +CERN 1 (1.4%) +eNovance 1 (1.4%) +aloga@ifca.unican.es 1 (1.4%) +allanfeid@gmail.com 1 (1.4%) +0xffea@gmail.com 1 (1.4%) +niuwl586@gmail.com 1 (1.4%) +nathanael.i.burton.work@gmail.com 1 (1.4%) +Internap 1 (1.4%) +dirk@dmllr.de 1 (1.4%) +Covers 81.081081% of hackers diff --git a/grizzly/keystone-lp-stats.txt b/grizzly/keystone-lp-stats.txt new file mode 100644 index 0000000..fa206c6 --- /dev/null +++ b/grizzly/keystone-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 169 bugs from 43 developers +24 employers found + +Developers with the most bugs fixed +dolph 39 (23.1%) +henry-nash 21 (12.4%) +ayoung 16 (9.5%) +jose-castro-leon 10 (5.9%) +Unknown hacker 9 (5.3%) +guang-yee 8 (4.7%) +chungg 6 (3.6%) +mapleoin 6 (3.6%) +dan-prince 5 (3.0%) +0xffea 3 (1.8%) +nachiappan-veerappan-nachiappan 3 (1.8%) +btopol 3 (1.8%) +vishvananda 3 (1.8%) +heckj 3 (1.8%) +russellb 2 (1.2%) +markmc 2 (1.2%) +dmllr 2 (1.2%) +jshepher 2 (1.2%) +unmesh-gurjar 2 (1.2%) +the-william-kelly 1 (0.6%) +Covers 86.390533% of bugs + +Top bugs fixed by employer +Rackspace 43 (25.4%) +IBM 32 (18.9%) +Red Hat 27 (16.0%) +HP 11 (6.5%) +CERN 10 (5.9%) +unknown@hacker.net 9 (5.3%) +Nebula 8 (4.7%) +SUSE 7 (4.1%) +0xffea@gmail.com 3 (1.8%) +NTT 3 (1.8%) +dirk@dmllr.de 2 (1.2%) +eNovance 2 (1.2%) +Internap 1 (0.6%) +heut2008@gmail.com 1 (0.6%) +Mirantis 1 (0.6%) +russell@nimbula.com 1 (0.6%) +DreamHost 1 (0.6%) +epatro@gmail.com 1 (0.6%) +the.william.kelly@gmail.com 1 (0.6%) +Yahoo! 1 (0.6%) +Covers 97.633136% of bugs diff --git a/grizzly/lp-stats.txt b/grizzly/lp-stats.txt new file mode 100644 index 0000000..b4a690c --- /dev/null +++ b/grizzly/lp-stats.txt @@ -0,0 +1,48 @@ +Processed 1760 bugs from 242 developers +90 employers found + +Developers with the most bugs fixed +Unknown hacker 114 (6.5%) +garyk 81 (4.6%) +arosen 54 (3.1%) +dan-prince 45 (2.6%) +vishvananda 44 (2.5%) +dims-v 44 (2.5%) +dolph 39 (2.2%) +cbehrens 35 (2.0%) +amotoki 35 (2.0%) +mikalstill 33 (1.9%) +zyluo 33 (1.9%) +john-griffith 28 (1.6%) +russellb 27 (1.5%) +danms 27 (1.5%) +salvatore-orlando 26 (1.5%) +jogo 24 (1.4%) +lauria 24 (1.4%) +gabriel-hurley 23 (1.3%) +markmcclain 22 (1.2%) +gongysh 22 (1.2%) +Covers 44.318182% of bugs + +Top bugs fixed by employer +IBM 268 (15.2%) +Rackspace 201 (11.4%) +Red Hat 182 (10.3%) +unknown@hacker.net 114 (6.5%) +HP 89 (5.1%) +Radware 85 (4.8%) +Nebula 76 (4.3%) +Nicira 70 (4.0%) +Canonical 52 (3.0%) +NEC 41 (2.3%) +Citrix 40 (2.3%) +Intel 39 (2.2%) +NTT 39 (2.2%) +DreamHost 31 (1.8%) +SolidFire 28 (1.6%) +Cloudscaling 26 (1.5%) +Metacloud 22 (1.2%) +University of Melbourne 20 (1.1%) +Cloudbase Solutions 20 (1.1%) +SwiftStack 18 (1.0%) +Covers 83.011364% of bugs diff --git a/grizzly/nova-gerrit-stats.txt b/grizzly/nova-gerrit-stats.txt new file mode 100644 index 0000000..facbd50 --- /dev/null +++ b/grizzly/nova-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 6710 review from 178 developers +69 employers found + +Developers with the most reviews (total 6710) +mikalstill 585 (8.7%) +klmitch 547 (8.2%) +sdague 538 (8.0%) +russellb 533 (7.9%) +vishvananda 453 (6.8%) +danms 334 (5.0%) +jogo 284 (4.2%) +cerberus 252 (3.8%) +dims-v 207 (3.1%) +jk0 207 (3.1%) +cbehrens 199 (3.0%) +maurosr 182 (2.7%) +markmc 166 (2.5%) +johannes.erdfelt 162 (2.4%) +alaski 153 (2.3%) +yunmao 142 (2.1%) +p-draigbrady 139 (2.1%) +dan-prince 108 (1.6%) +devananda 88 (1.3%) +zulcss 81 (1.2%) +Covers 79.880775% of reviews + +Top reviewers by employer (total 6710) +Rackspace 1805 (26.9%) +IBM 1550 (23.1%) +Red Hat 1136 (16.9%) +Canonical 725 (10.8%) +Nebula 456 (6.8%) +Cloudscaling 299 (4.5%) +HP 204 (3.0%) +AT&T 145 (2.2%) +Metacloud 53 (0.8%) +Intel 34 (0.5%) +boris@pavlovic.me 32 (0.5%) +Citrix 24 (0.4%) +msherborne+openstack@gmail.com 22 (0.3%) +Nicira 22 (0.3%) +VirtualTech 20 (0.3%) +SolidFire 16 (0.2%) +NetEase 14 (0.2%) +NEC 12 (0.2%) +Cisco Systems 11 (0.2%) +Cloudbase Solutions 11 (0.2%) +Covers 98.226528% of reviews diff --git a/grizzly/nova-git-stats.txt b/grizzly/nova-git-stats.txt new file mode 100644 index 0000000..84c6dbc --- /dev/null +++ b/grizzly/nova-git-stats.txt @@ -0,0 +1,141 @@ +Processed 1877 csets from 217 developers +101 employers found +A total of 127898 lines added, 79370 removed (delta 48528) + +Developers with the most changesets +Dan Smith 115 (6.1%) +Mark McLoughlin 100 (5.3%) +Joe Gordon 95 (5.1%) +Russell Bryant 87 (4.6%) +Vishvananda Ishaya 85 (4.5%) +Chris Behrens 75 (4.0%) +Daniel P. Berrange 72 (3.8%) +Michael Still 49 (2.6%) +Dan Prince 47 (2.5%) +Devananda van der Veen 46 (2.5%) +Sean Dague 43 (2.3%) +Davanum Srinivas 42 (2.2%) +Rick Harris 34 (1.8%) +Brian Elliott 30 (1.6%) +Boris Pavlovic 30 (1.6%) +Johannes Erdfelt 30 (1.6%) +Mauro S. M. Rodrigues 29 (1.5%) +Matthew Treinish 28 (1.5%) +Giampaolo Lauria 25 (1.3%) +Alessandro Pilotti 24 (1.3%) +Covers 57.858284% of changesets + +Developers with the most changed lines +Vishvananda Ishaya 20283 (12.2%) +Chris Behrens 12655 (7.6%) +Mark McLoughlin 8476 (5.1%) +Dan Smith 7365 (4.4%) +Daniel P. Berrange 6683 (4.0%) +Dan Prince 6549 (3.9%) +Joe Gordon 5275 (3.2%) +Alessandro Pilotti 4435 (2.7%) +Mikyung Kang 4275 (2.6%) +Brian Elliott 4036 (2.4%) +Devananda van der Veen 3914 (2.4%) +Michael Still 3348 (2.0%) +Russell Bryant 3037 (1.8%) +Andrew Laski 2617 (1.6%) +Sean Chen 2239 (1.3%) +Sean Dague 2227 (1.3%) +Aaron Rosen 2137 (1.3%) +Boris Pavlovic 2100 (1.3%) +Giampaolo Lauria 2044 (1.2%) +Matthew Treinish 1941 (1.2%) +Covers 63.647264% of changes + +Developers with the most lines removed +Vishvananda Ishaya 15882 (20.0%) +Dan Prince 5241 (6.6%) +Joe Gordon 2759 (3.5%) +Mark McLoughlin 605 (0.8%) +Tom Fifield 375 (0.5%) +Chuck Short 111 (0.1%) +Zhiteng Huang 103 (0.1%) +Yaguang Tang 102 (0.1%) +Lorin Hochstein 65 (0.1%) +Sean Dague 48 (0.1%) +Zhongyue Luo 19 (0.0%) +Julien Danjou 14 (0.0%) +Spencer Krum 11 (0.0%) +Johannes Erdfelt 9 (0.0%) +unicell 9 (0.0%) +Trey Morris 6 (0.0%) +Hengqing Hu 5 (0.0%) +Hendrik Volkmer 5 (0.0%) +annegentle 3 (0.0%) +James E. Blair 3 (0.0%) +Covers 31.970518% of changes + +Top changeset contributors by employer +Red Hat 374 (19.9%) +IBM 366 (19.5%) +Rackspace 250 (13.3%) +HP 127 (6.8%) +Cloudscaling 102 (5.4%) +Canonical 92 (4.9%) +Nebula 86 (4.6%) +Intel 42 (2.2%) +boris@pavlovic.me 30 (1.6%) +Metacloud 28 (1.5%) +Nicira 24 (1.3%) +Cloudbase Solutions 24 (1.3%) +Citrix 24 (1.3%) +AT&T 20 (1.1%) +hanlind@kth.se 20 (1.1%) +VirtualTech 20 (1.1%) +NetEase 16 (0.9%) +NTT 11 (0.6%) +ISI 10 (0.5%) +Yahoo! 10 (0.5%) +Covers 89.291422% of changesets + +Top lines changed by employer +Red Hat 30576 (18.4%) +Rackspace 29041 (17.5%) +IBM 27043 (16.3%) +Nebula 22449 (13.5%) +HP 10115 (6.1%) +Cloudscaling 6838 (4.1%) +Canonical 4877 (2.9%) +Cloudbase Solutions 4718 (2.8%) +ISI 4504 (2.7%) +VMware 2242 (1.4%) +boris@pavlovic.me 2204 (1.3%) +Nicira 2162 (1.3%) +Metacloud 2049 (1.2%) +Citrix 1374 (0.8%) +VirtualTech 1255 (0.8%) +Intel 1114 (0.7%) +hanlind@kth.se 912 (0.5%) +AT&T 777 (0.5%) +nobodycam@gmail.com 708 (0.4%) +NEC 668 (0.4%) +Covers 93.766983% of changes + +Employers with the most hackers (total 223) +Rackspace 28 (12.6%) +IBM 24 (10.8%) +Red Hat 17 (7.6%) +HP 17 (7.6%) +Canonical 8 (3.6%) +Intel 5 (2.2%) +Cloudscaling 4 (1.8%) +NEC 4 (1.8%) +NTT 4 (1.8%) +ISI 3 (1.3%) +Metacloud 3 (1.3%) +Citrix 3 (1.3%) +Yahoo! 3 (1.3%) +University of Melbourne 3 (1.3%) +NetEase 3 (1.3%) +Internap 3 (1.3%) +Nebula 2 (0.9%) +Nicira 2 (0.9%) +AT&T 2 (0.9%) +Grid Dynamics 2 (0.9%) +Covers 62.780269% of hackers diff --git a/grizzly/nova-lp-stats.txt b/grizzly/nova-lp-stats.txt new file mode 100644 index 0000000..0d84c7c --- /dev/null +++ b/grizzly/nova-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 760 bugs from 128 developers +59 employers found + +Developers with the most bugs fixed +Unknown hacker 48 (6.3%) +dims-v 39 (5.1%) +vishvananda 38 (5.0%) +cbehrens 35 (4.6%) +mikalstill 32 (4.2%) +danms 27 (3.6%) +dan-prince 24 (3.2%) +lauria 24 (3.2%) +russellb 23 (3.0%) +jogo 23 (3.0%) +alexpilotti 17 (2.2%) +arosen 14 (1.8%) +rkhardalian 14 (1.8%) +hanlind 14 (1.8%) +rconradharris 12 (1.6%) +markmc 12 (1.6%) +maurosr 12 (1.6%) +sdague 11 (1.4%) +belliott 11 (1.4%) +alaski 11 (1.4%) +Covers 58.026316% of bugs + +Top bugs fixed by employer +IBM 153 (20.1%) +Rackspace 98 (12.9%) +Red Hat 89 (11.7%) +unknown@hacker.net 48 (6.3%) +Canonical 48 (6.3%) +Nebula 39 (5.1%) +HP 27 (3.6%) +Cloudscaling 24 (3.2%) +Metacloud 20 (2.6%) +Cloudbase Solutions 17 (2.2%) +Nicira 16 (2.1%) +hanlind@kth.se 14 (1.8%) +NetEase 13 (1.7%) +wenjianhn@gmail.com 11 (1.4%) +heut2008@gmail.com 9 (1.2%) +edouard1.thuleau@orange.com 9 (1.2%) +Citrix 8 (1.1%) +NEC 7 (0.9%) +NTT 7 (0.9%) +Radware 7 (0.9%) +Covers 87.368421% of bugs diff --git a/grizzly/quantum-gerrit-stats.txt b/grizzly/quantum-gerrit-stats.txt new file mode 100644 index 0000000..c0c7910 --- /dev/null +++ b/grizzly/quantum-gerrit-stats.txt @@ -0,0 +1,48 @@ +Processed 1929 review from 74 developers +32 employers found + +Developers with the most reviews (total 1929) +garyk 339 (17.6%) +markmcclain 329 (17.1%) +danwent 179 (9.3%) +amotoki 146 (7.6%) +arosen 144 (7.5%) +gongysh 139 (7.2%) +salvatore-orlando 106 (5.5%) +snaiksat 82 (4.3%) +nati-ueno 70 (3.6%) +xuhj 66 (3.4%) +zyluo 65 (3.4%) +emagana 64 (3.3%) +mestery 27 (1.4%) +rkukura 25 (1.3%) +maru 9 (0.5%) +e0ne 9 (0.5%) +enikanorov 7 (0.4%) +pritkoth 7 (0.4%) +ljjjustin 7 (0.4%) +dan-prince 6 (0.3%) +Covers 94.660446% of reviews + +Top reviewers by employer (total 1929) +Nicira 429 (22.2%) +Red Hat 386 (20.0%) +DreamHost 333 (17.3%) +IBM 218 (11.3%) +NEC 146 (7.6%) +Big Switch Networks 81 (4.2%) +NTT 70 (3.6%) +Intel 65 (3.4%) +PLUMgrid 64 (3.3%) +Cisco Systems 52 (2.7%) +Mirantis 25 (1.3%) +Rackspace 12 (0.6%) +Yahoo! 7 (0.4%) +iamljj@gmail.com 7 (0.4%) +sthakkar@vmware.com 5 (0.3%) +HP 4 (0.2%) +lcui@vmware.com 4 (0.2%) +VA Linux 3 (0.2%) +ykaneko0929@gmail.com 2 (0.1%) +sharis@brocade.com 2 (0.1%) +Covers 99.274235% of reviews diff --git a/grizzly/quantum-git-stats.txt b/grizzly/quantum-git-stats.txt new file mode 100644 index 0000000..872575d --- /dev/null +++ b/grizzly/quantum-git-stats.txt @@ -0,0 +1,132 @@ +Processed 614 csets from 78 developers +41 employers found +A total of 71820 lines added, 36843 removed (delta 34977) + +Developers with the most changesets +Gary Kotton 97 (15.8%) +Zhongyue Luo 71 (11.6%) +Aaron Rosen 46 (7.5%) +Salvatore Orlando 36 (5.9%) +Akihiro MOTOKI 31 (5.0%) +He Jie Xu 30 (4.9%) +gongysh 28 (4.6%) +Mark McClain 27 (4.4%) +Dan Wendlandt 24 (3.9%) +Dan Prince 16 (2.6%) +Nachi Ueno 15 (2.4%) +Sumit Naiksatam 9 (1.5%) +OpenStack Jenkins 8 (1.3%) +Isaku Yamahata 8 (1.3%) +Ivan Kolodyazhny 8 (1.3%) +Eugene Nikanorov 7 (1.1%) +Oleg Bondarev 7 (1.1%) +Alessio Ababilov 7 (1.1%) +Mark McLoughlin 7 (1.1%) +Zhesen 7 (1.1%) +Covers 79.641694% of changesets + +Developers with the most changed lines +Salvatore Orlando 7879 (8.7%) +Arvind Somya 6505 (7.2%) +gongysh 6291 (6.9%) +Mark McClain 6291 (6.9%) +Edgar Magana 6047 (6.7%) +Aaron Rosen 6014 (6.6%) +Gary Kotton 5446 (6.0%) +Nachi Ueno 5252 (5.8%) +He Jie Xu 4492 (5.0%) +Tomoe Sugihara 2674 (3.0%) +Akihiro MOTOKI 2521 (2.8%) +Sumit Naiksatam 2217 (2.4%) +Mark McLoughlin 2115 (2.3%) +Zhongyue Luo 2090 (2.3%) +Alessandro Pilotti 2022 (2.2%) +Leon Cui 1822 (2.0%) +Shiv Haris 1776 (2.0%) +Oleg Bondarev 1626 (1.8%) +Monty Taylor 1509 (1.7%) +Yoshihiro Kaneko 1336 (1.5%) +Covers 83.859816% of changes + +Developers with the most lines removed +Arvind Somya 5998 (16.3%) +Edgar Magana 5416 (14.7%) +Mark McLoughlin 1852 (5.0%) +Michael Still 76 (0.2%) +Ivan Kolodyazhny 71 (0.2%) +Iryoung Jeong 36 (0.1%) +Isaku Yamahata 35 (0.1%) +Sascha Peilicke 21 (0.1%) +Baodong (Robert) Li 17 (0.0%) +Matt Dietz 3 (0.0%) +siyingchun 1 (0.0%) +Covers 36.712537% of changes + +Top changeset contributors by employer +Red Hat 126 (20.5%) +Nicira 106 (17.3%) +Intel 71 (11.6%) +IBM 66 (10.7%) +DreamHost 32 (5.2%) +NEC 31 (5.0%) +Mirantis 28 (4.6%) +Cisco Systems 22 (3.6%) +NTT 22 (3.6%) +HP 9 (1.5%) +Yahoo! 9 (1.5%) +VA Linux 8 (1.3%) +jenkins@openstack.org 8 (1.3%) +ykaneko0929@gmail.com 7 (1.1%) +iamljj@gmail.com 7 (1.1%) +Internap 5 (0.8%) +Rackspace 5 (0.8%) +iryoung@gmail.com 5 (0.8%) +Big Switch Networks 5 (0.8%) +Midokura 4 (0.7%) +Covers 93.811075% of changesets + +Top lines changed by employer +Nicira 14998 (16.6%) +IBM 11686 (12.9%) +Red Hat 9039 (10.0%) +Cisco Systems 8094 (8.9%) +DreamHost 7021 (7.8%) +PLUMgrid 6651 (7.3%) +NTT 5918 (6.5%) +Mirantis 2763 (3.1%) +Midokura 2677 (3.0%) +NEC 2624 (2.9%) +Intel 2284 (2.5%) +Big Switch Networks 2159 (2.4%) +Cloudbase Solutions 2091 (2.3%) +lcui@vmware.com 1822 (2.0%) +HP 1780 (2.0%) +sharis@brocade.com 1776 (2.0%) +Yahoo! 1530 (1.7%) +ykaneko0929@gmail.com 1416 (1.6%) +fank@vmware.com 929 (1.0%) +Rackspace 837 (0.9%) +Covers 97.301685% of changes + +Employers with the most hackers (total 80) +Cisco Systems 8 (10.0%) +Red Hat 7 (8.8%) +IBM 6 (7.5%) +Mirantis 6 (7.5%) +DreamHost 4 (5.0%) +Rackspace 4 (5.0%) +Nicira 3 (3.8%) +HP 3 (3.8%) +Yahoo! 3 (3.8%) +Canonical 3 (3.8%) +NTT 2 (2.5%) +Midokura 2 (2.5%) +PLUMgrid 1 (1.2%) +NEC 1 (1.2%) +Intel 1 (1.2%) +Big Switch Networks 1 (1.2%) +Cloudbase Solutions 1 (1.2%) +lcui@vmware.com 1 (1.2%) +sharis@brocade.com 1 (1.2%) +ykaneko0929@gmail.com 1 (1.2%) +Covers 73.750000% of hackers diff --git a/grizzly/quantum-lp-stats.txt b/grizzly/quantum-lp-stats.txt new file mode 100644 index 0000000..2a103e3 --- /dev/null +++ b/grizzly/quantum-lp-stats.txt @@ -0,0 +1,48 @@ +Processed 381 bugs from 49 developers +26 employers found + +Developers with the most bugs fixed +garyk 74 (19.4%) +arosen 38 (10.0%) +amotoki 28 (7.3%) +zyluo 27 (7.1%) +salvatore-orlando 26 (6.8%) +gongysh 22 (5.8%) +markmcclain 19 (5.0%) +xuhj 17 (4.5%) +nati-ueno 14 (3.7%) +danwent 13 (3.4%) +Unknown hacker 12 (3.1%) +zzs 7 (1.8%) +dan-prince 7 (1.8%) +yamahata 6 (1.6%) +obondarev 5 (1.3%) +ykaneko0929 5 (1.3%) +avishayb 4 (1.0%) +aababilov 4 (1.0%) +ljjjustin 4 (1.0%) +baoli 3 (0.8%) +Covers 87.926509% of bugs + +Top bugs fixed by employer +Radware 78 (20.5%) +Nicira 52 (13.6%) +IBM 43 (11.3%) +NEC 28 (7.3%) +Intel 27 (7.1%) +Citrix 26 (6.8%) +NTT 21 (5.5%) +DreamHost 19 (5.0%) +Cisco Systems 15 (3.9%) +Red Hat 12 (3.1%) +unknown@hacker.net 12 (3.1%) +Mirantis 10 (2.6%) +VA Linux 6 (1.6%) +ykaneko0929@gmail.com 5 (1.3%) +iamljj@gmail.com 4 (1.0%) +Grid Dynamics 4 (1.0%) +Midokura 3 (0.8%) +Rackspace 3 (0.8%) +eNovance 3 (0.8%) +iryoung@gmail.com 3 (0.8%) +Covers 98.162730% of bugs diff --git a/grizzly/swift-gerrit-stats.txt b/grizzly/swift-gerrit-stats.txt new file mode 100644 index 0000000..ab852d1 --- /dev/null +++ b/grizzly/swift-gerrit-stats.txt @@ -0,0 +1,46 @@ +Processed 629 review from 37 developers +18 employers found + +Developers with the most reviews (total 629) +torgomatic 111 (17.6%) +darrellb 104 (16.5%) +notmyname 83 (13.2%) +gholt 80 (12.7%) +redbo 43 (6.8%) +chmouel 38 (6.0%) +david-goetz 32 (5.1%) +cthier 27 (4.3%) +pandemicsyn 23 (3.7%) +zaitcev 18 (2.9%) +clay-gerrard 15 (2.4%) +peter-a-portante 13 (2.1%) +flaper87 6 (1.0%) +greglange 5 (0.8%) +litong01 4 (0.6%) +adriansmith 3 (0.5%) +alexyang 3 (0.5%) +iryoung 2 (0.3%) +academicgareth 1 (0.2%) +gelbuhos 1 (0.2%) +Covers 97.297297% of reviews + +Top reviewers by employer (total 629) +SwiftStack 298 (47.4%) +Rackspace 225 (35.8%) +eNovance 41 (6.5%) +Red Hat 27 (4.3%) +peter.a.portante@gmail.com 13 (2.1%) +IBM 5 (0.8%) +HP 4 (0.6%) +adrian@17od.com 3 (0.5%) +alex890714@gmail.com 3 (0.5%) +iryoung@gmail.com 2 (0.3%) +btorch@gmail.com 1 (0.2%) +Mirantis 1 (0.2%) +julien@danjou.info 1 (0.2%) +SUSE 1 (0.2%) +Intel 1 (0.2%) +academicgareth@gmail.com 1 (0.2%) +Memset 1 (0.2%) +NTT 1 (0.2%) +Covers 100.000000% of reviews diff --git a/grizzly/swift-git-stats.txt b/grizzly/swift-git-stats.txt new file mode 100644 index 0000000..b2fbd3b --- /dev/null +++ b/grizzly/swift-git-stats.txt @@ -0,0 +1,127 @@ +Processed 270 csets from 63 developers +37 employers found +A total of 19636 lines added, 7043 removed (delta 12593) + +Developers with the most changesets +Samuel Merritt 35 (13.0%) +gholt 29 (10.7%) +John Dickinson 28 (10.4%) +David Goetz 19 (7.0%) +Michael Barton 19 (7.0%) +Darrell Bishop 13 (4.8%) +Chmouel Boudjnah 10 (3.7%) +David Hadas 9 (3.3%) +tong li 6 (2.2%) +Kun Huang 6 (2.2%) +Florian Hines 6 (2.2%) +dk647 6 (2.2%) +Chuck Thier 5 (1.9%) +clayg 5 (1.9%) +Victor Rodionov 5 (1.9%) +Peter Portante 4 (1.5%) +Pete Zaitcev 3 (1.1%) +Greg Lange 3 (1.1%) +Dan Prince 3 (1.1%) +Brian Cline 3 (1.1%) +Covers 80.370370% of changesets + +Developers with the most changed lines +David Goetz 2764 (13.5%) +Michael Barton 2748 (13.4%) +Samuel Merritt 2455 (12.0%) +gholt 1727 (8.5%) +Darrell Bishop 1545 (7.6%) +John Dickinson 1534 (7.5%) +tong li 561 (2.7%) +Tom Fifield 557 (2.7%) +Leah Klearman 532 (2.6%) +David Hadas 495 (2.4%) +Florian Hines 470 (2.3%) +Adrian Smith 447 (2.2%) +dk647 423 (2.1%) +Sergey Lukjanov 367 (1.8%) +Chmouel Boudjnah 349 (1.7%) +Scott Simpson 341 (1.7%) +Greg Lange 328 (1.6%) +Christian Schwede 299 (1.5%) +Dan Prince 205 (1.0%) +Pete Zaitcev 198 (1.0%) +Covers 89.785630% of changes + +Developers with the most lines removed +Pete Zaitcev 104 (1.5%) +Dae S. Kim 48 (0.7%) +Constantine Peresypkin 28 (0.4%) +Monty Taylor 15 (0.2%) +Yee 14 (0.2%) +Clark Boylan 2 (0.0%) +Covers 2.995882% of changes + +Top changeset contributors by employer +Rackspace 89 (33.0%) +SwiftStack 77 (28.5%) +IBM 15 (5.6%) +Red Hat 11 (4.1%) +eNovance 11 (4.1%) +HP 7 (2.6%) +Intel 6 (2.2%) +academicgareth@gmail.com 6 (2.2%) +meizu647@gmail.com 6 (2.2%) +vito.ordaz@gmail.com 5 (1.9%) +bcline@softlayer.com 3 (1.1%) +Mirantis 2 (0.7%) +liquid@kt.com 2 (0.7%) +julien@danjou.info 2 (0.7%) +info@cschwede.de 2 (0.7%) +lklrmn@gmail.com 2 (0.7%) +constantine@litestack.com 2 (0.7%) +University of Melbourne 2 (0.7%) +alex890714@gmail.com 2 (0.7%) +ekirpichov@gmail.com 1 (0.4%) +Covers 93.703704% of changesets + +Top lines changed by employer +Rackspace 8518 (41.7%) +SwiftStack 5757 (28.2%) +IBM 1060 (5.2%) +Red Hat 564 (2.8%) +University of Melbourne 557 (2.7%) +lklrmn@gmail.com 532 (2.6%) +Dell 447 (2.2%) +meizu647@gmail.com 423 (2.1%) +Mirantis 371 (1.8%) +eNovance 370 (1.8%) +sasimpson@gmail.com 341 (1.7%) +HP 304 (1.5%) +info@cschwede.de 299 (1.5%) +academicgareth@gmail.com 151 (0.7%) +Intel 102 (0.5%) +liquid@kt.com 95 (0.5%) +constantine@litestack.com 78 (0.4%) +SUSE 60 (0.3%) +bcline@softlayer.com 54 (0.3%) +julien@danjou.info 53 (0.3%) +Covers 98.551292% of changes + +Employers with the most hackers (total 63) +Rackspace 10 (15.9%) +HP 5 (7.9%) +Intel 5 (7.9%) +SwiftStack 4 (6.3%) +Red Hat 4 (6.3%) +IBM 2 (3.2%) +Mirantis 2 (3.2%) +eNovance 2 (3.2%) +University of Melbourne 1 (1.6%) +lklrmn@gmail.com 1 (1.6%) +Dell 1 (1.6%) +meizu647@gmail.com 1 (1.6%) +sasimpson@gmail.com 1 (1.6%) +info@cschwede.de 1 (1.6%) +academicgareth@gmail.com 1 (1.6%) +liquid@kt.com 1 (1.6%) +constantine@litestack.com 1 (1.6%) +SUSE 1 (1.6%) +bcline@softlayer.com 1 (1.6%) +julien@danjou.info 1 (1.6%) +Covers 73.015873% of hackers diff --git a/grizzly/swift-lp-stats.txt b/grizzly/swift-lp-stats.txt new file mode 100644 index 0000000..6a6d178 --- /dev/null +++ b/grizzly/swift-lp-stats.txt @@ -0,0 +1,41 @@ +Processed 66 bugs from 24 developers +13 employers found + +Developers with the most bugs fixed +torgomatic 12 (18.2%) +Unknown hacker 11 (16.7%) +david-hadas 6 (9.1%) +academicgareth 6 (9.1%) +darrellb 5 (7.6%) +litong01 3 (4.5%) +david-goetz 3 (4.5%) +chmouel 3 (4.5%) +jola-mirecka 2 (3.0%) +donagh-mccabe 1 (1.5%) +cthier 1 (1.5%) +adriansmith 1 (1.5%) +zyluo 1 (1.5%) +yuan-zhou 1 (1.5%) +ywang19 1 (1.5%) +gholt 1 (1.5%) +peter-a-portante 1 (1.5%) +annegentle 1 (1.5%) +soren 1 (1.5%) +broskos 1 (1.5%) +Covers 93.939394% of bugs + +Top bugs fixed by employer +SwiftStack 18 (27.3%) +unknown@hacker.net 11 (16.7%) +IBM 9 (13.6%) +Rackspace 6 (9.1%) +academicgareth@gmail.com 6 (9.1%) +Red Hat 3 (4.5%) +HP 3 (4.5%) +eNovance 3 (4.5%) +Intel 3 (4.5%) +Internap 1 (1.5%) +Dell 1 (1.5%) +Cisco Systems 1 (1.5%) +University of Melbourne 1 (1.5%) +Covers 100.000000% of bugs diff --git a/launchpad/buglist.py b/launchpad/buglist.py deleted file mode 100644 index 0cc7190..0000000 --- a/launchpad/buglist.py +++ /dev/null @@ -1,27 +0,0 @@ - -# -# List all bugs marked as 'Fix Released' on a given series -# -# python buglist.py glance essex - -import argparse - -parser = argparse.ArgumentParser(description='List fixed bugs for a series') - -parser.add_argument('project', help='the project to act on') -parser.add_argument('series', help='the series to list fixed bugs for') - -args = parser.parse_args() - -from launchpadlib.launchpad import Launchpad - -launchpad = Launchpad.login_with('openstack-dm', 'production') - -project = launchpad.projects[args.project] -series = project.getSeries(name=args.series) - -for milestone in series.all_milestones: - for task in milestone.searchTasks(status='Fix Released'): - assignee = task.assignee.name if task.assignee else '' - date = task.date_fix_committed or task.date_fix_released - print task.bug.id, assignee, date.date() diff --git a/launchpad/map-email-to-lp-name.py b/launchpad/map-email-to-lp-name.py deleted file mode 100644 index d73d4e9..0000000 --- a/launchpad/map-email-to-lp-name.py +++ /dev/null @@ -1,26 +0,0 @@ - -# -# Attempt to find a launchpad name for every email address supplied: -# -# python map-email-to-lp-name.py foo@bar.com blaa@foo.com - -import argparse - -parser = argparse.ArgumentParser(description='List fixed bugs for a series') - -parser.add_argument('emails', metavar='EMAIL', nargs='+', - help='An email address to query') - -args = parser.parse_args() - -from launchpadlib.launchpad import Launchpad - -launchpad = Launchpad.login_with('openstack-dm', 'production') - -for email in args.emails: - try: - person = launchpad.people.getByEmail(email=email) - if person: - print person.name, email - except: - continue diff --git a/linetags b/linetags deleted file mode 100755 index 2051b57..0000000 --- a/linetags +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/python -# -# Find out how many lines were introduced in each major release. -# -# linetags -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import sys, re, os, pickle - -CommitLines = { } - -commitpat = re.compile(r'^([\da-f][\da-f]+) ') - -def GetCommitLines(file): - print file - blame = os.popen('git blame -p ' + file, 'r') - for line in blame.readlines(): - m = commitpat.search(line) - # - # All-zero commits mean we got fed a file that git doesn't - # know about. We could throw an exception and abort processing - # now, or we can just silently ignore it... - # - if not m or m.group(1) == '0000000000000000000000000000000000000000': - continue - try: - CommitLines[m.group(1)] += 1 - except KeyError: - CommitLines[m.group(1)] = 1 - blame.close() - -# -# Try to figure out which tag is the first to contain each commit. -# -refpat = re.compile(r'^(v2\.6\.\d\d).*$') -def CommitToTag(commit): - try: - return DB[commit] - except KeyError: - print 'Missing commit %s' % (commit) - return 'WTF?' - -TagLines = { } -def MapCommits(): - print 'Mapping tags...' - for commit in CommitLines.keys(): - tag = CommitToTag(commit) - try: - TagLines[tag] += CommitLines[commit] - except KeyError: - TagLines[tag] = CommitLines[commit] - -# -# Here we just plow through all the files. -# -if len(sys.argv) != 2: - sys.stderr.write('Usage: linetags directory\n') - sys.exit(1) -# -# Grab the tags/version database. -# -dbf = open('committags.db', 'r') -DB = pickle.load(dbf) -dbf.close() - -out = open('linetags.out', 'w') -os.chdir(sys.argv[1]) -files = os.popen('/usr/bin/find . -type f', 'r') -for file in files.readlines(): - if file.find('.git/') < 0: - GetCommitLines(file[:-1]) -MapCommits() -# print TagLines -tags = TagLines.keys() -tags.sort() -for tag in tags: - out.write('%s %d\n' % (tag, TagLines[tag])) -out.close() diff --git a/logparser.py b/logparser.py deleted file mode 100644 index b375034..0000000 --- a/logparser.py +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env python -#-*- coding:utf-8 -*- -# -# Copyright © 2009 Germán Póo-Caamaño -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - -import sys -from patterns import patterns - -class LogPatchSplitter: - """ - LogPatchSplitters provides a iterator to extract every - changeset from a git log output. - - Typical use case: - - patches = LogPatchSplitter(sys.stdin) - - for patch in patches: - parse_patch(patch) - """ - - def __init__(self, fd): - self.fd = fd - self.buffer = None - self.patch = [] - - def __iter__(self): - return self - - def next(self): - patch = self.__grab_patch__() - if not patch: - raise StopIteration - return patch - - def __grab_patch__(self): - """ - Extract a patch from the file descriptor and the - patch is returned as a list of lines. - """ - - patch = [] - line = self.buffer or self.fd.readline() - - while line: - m = patterns['commit'].match(line) - if m: - patch = [line] - break - line = self.fd.readline() - - if not line: - return None - - line = self.fd.readline() - while line: - # If this line starts a new commit, drop out. - m = patterns['commit'].match(line) - if m: - self.buffer = line - break - - patch.append(line) - self.buffer = None - line = self.fd.readline() - - return patch - - -if __name__ == '__main__': - patches = LogPatchSplitter(sys.stdin) - - for patch in patches: - print '---------- NEW PATCH ----------' - for line in patch: - print line, diff --git a/lpdm b/lpdm deleted file mode 100755 index b9c6afd..0000000 --- a/lpdm +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/pypy -#-*- coding:utf-8 -*- -# - -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# Copyright 2011 Germán Póo-Caamaño -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. - - -import database, ConfigFile, reports -import getopt, datetime -import sys - -Today = datetime.date.today() - -# -# Control options. -# -MapUnknown = 0 -DevReports = 1 -DumpDB = 0 -CFName = 'gitdm.config' -DirName = '' - -# -# Options: -# -# -b dir Specify the base directory to fetch the configuration files -# -c cfile Specify a configuration file -# -d Output individual developer stats -# -h hfile HTML output to hfile -# -l count Maximum length for output lists -# -o file File for text output -# -p prefix Prefix for CSV output -# -s Ignore author SOB lines -# -u Map unknown employers to '(Unknown)' -# -z Dump out the hacker database at completion - -def ParseOpts (): - global MapUnknown, DevReports - global DumpDB - global CFName, DirName, Aggregate - - opts, rest = getopt.getopt (sys.argv[1:], 'b:dc:h:l:o:uz') - for opt in opts: - if opt[0] == '-b': - DirName = opt[1] - elif opt[0] == '-c': - CFName = opt[1] - elif opt[0] == '-d': - DevReports = 0 - elif opt[0] == '-h': - reports.SetHTMLOutput (open (opt[1], 'w')) - elif opt[0] == '-l': - reports.SetMaxList (int (opt[1])) - elif opt[0] == '-o': - reports.SetOutput (open (opt[1], 'w')) - elif opt[0] == '-u': - MapUnknown = 1 - elif opt[0] == '-z': - DumpDB = 1 - -def LookupStoreHacker (name, email): - email = database.RemapEmail (email) - h = database.LookupEmail (email) - if h: # already there - return h - elist = database.LookupEmployer (email, MapUnknown) - h = database.LookupName (name) - if h: # new email - h.addemail (email, elist) - return h - return database.StoreHacker(name, elist, email) - -class Bug: - def __init__(self, id, owner, date, emails): - self.id = id - self.owner = LookupStoreHacker('Unknown hacker', 'unknown@hacker.net') - self.date = date - for email in emails: - self.owner = LookupStoreHacker(owner, email) - - @classmethod - def parse(cls, line): - split = line.split() - return cls(split[0], split[1], split[2], split[3:]) - -# -# Here starts the real program. -# -ParseOpts () - -# -# Read the config files. -# -ConfigFile.ConfigFile (CFName, DirName) - -bugs = [Bug.parse(l) for l in sys.stdin] - -for bug in bugs: - bug.owner.addbugfixed(bug) - empl = bug.owner.emailemployer(bug.owner.email[0], ConfigFile.ParseDate(bug.date)) - empl.AddBug(bug) - -if DumpDB: - database.DumpDB () -database.MixVirtuals () - -# -# Say something -# -hlist = database.AllHackers () -elist = database.AllEmployers () -ndev = nempl = 0 -for h in hlist: - if len (h.bugsfixed) > 0: - ndev += 1 -for e in elist: - if len(e.bugsfixed) > 0: - nempl += 1 -reports.Write ('Processed %d bugs from %d developers\n' % (len(bugs), ndev)) -reports.Write ('%d employers found\n' % (nempl)) - -if DevReports: - reports.DevBugReports (hlist, len(bugs)) -reports.EmplBugReports (elist, len(bugs)) diff --git a/openstack-config/README b/openstack-config/README deleted file mode 100644 index dd1595f..0000000 --- a/openstack-config/README +++ /dev/null @@ -1,110 +0,0 @@ -To generate the log used for input: - - $> grep -v '^#' openstack-config/essex | \ - while read project revisions; do \ - (cd ~/git/openstack/$project; \ - git fetch origin 2>/dev/null; \ - git log --no-merges --numstat -M --find-copies-harder $revisions); \ - done > log.txt - -I then manually deleted the translation imports from the -'OpenStack Jenkins' user. - -The EmailAliases file was created with this horror: - - $> for p in nova glance swift horizon; do cat ~/git/openstack/$p/.mailmap; done | \ - grep -v '^#' | sed 's/^[^<]*<\([^>]*\)>/\1/' | \ - grep '<.*>' | sed -e 's/[<>]/ /g' | \ - awk '{if ($3 != "") { print $3" "$1 } else {print $2" "$1}}' | \ - sort | uniq > aliases - -with the only exception that I've tweaked Soren's canonical -email address to be is linux2go one, to fix a git-dm traceback. - -To generate the stats I did: - - $> python ./gitdm -l 20 -n < log.txt - -== Launchpad == - -To get every email address we know about: - - $> grep -v '^#' openstack-config/essex | \ - while read project revisions; do \ - cd ~/git/openstack/$project; \ - git log | awk -F '[<>]' '/^Author:/ {print $2}'; \ - done | sort | uniq | grep -v '\((none)\|\.local\)$' > tmp - $> sed 's/ /\n/' < openstack-config/aliases >> tmp - $> sed 's/ /\n/' < openstack-config/other-aliases >> tmp - $> (sort | uniq | grep -v '\((none)\|\.local\)$') < tmp > emails.txt - -To map those to launchpad names: - - $> ./tools/with_venv.sh python launchpad/map-email-to-lp-name.py \ - $(cat emails.txt) > openstack-config/launchpad-ids.txt - -To generate a list of bugs: - - $> grep -v '^#' openstack-config/essex | \ - while read project revisions; do \ - ./tools/with_venv.sh python ./launchpad/buglist.py $project essex; \ - done > buglist.txt - -Then to include the email addresses in the buglist: - - $> while read id $date person; do \ - emails=$(awk "/^$person / {print \$2}" openstack-config/launchpad-ids.txt); \ - echo $id $person $date $emails; \ - done < buglist.txt > buglist-full.txt - -To generate the stats, I did: - - $> grep -v '' buglist-full.txt | python ./lpdm -l 20 - -Launchpad API docs are here: - - https://launchpad.net/+apidoc/1.0.html - https://help.launchpad.net/API/launchpadlib - -== Gerrit == - -First, generate a list of Change-Ids: - - $> grep -v '^#' openstack-config/essex | \ - while read project revisions; do \ - (cd ~/git/openstack/$project; \ - git fetch origin 2>/dev/null; \ - git log $revisions); \ - done | \ - awk '/^ Change-Id: / { print $2 }' | \ - split -l 100 -d - essex-change-ids- - -The output is split across files of 100 lines each because gerrit's -query will only return 500 results at a time. - -Now, we generate a raw json query result: - - $> for f in essex-change-ids-??; do - ssh -p 29418 review.openstack.org \ - gerrit query --all-approvals --format=json \ - $(awk -v ORS=" OR " '{print}' $f | sed 's/ OR $//') ; \ - done > essex-reviews.txt - -Next, generate a list of commits: - - $> grep -v '^#' openstack-config/essex | \ - while read project revisions; do \ - (cd ~/git/openstack/$project; \ - git fetch origin 2>/dev/null; \ - git log --pretty=format:%H $revisions); \ - done > essex-commits.txt - -Now parse the json into a list of reviewers: - - $> python gerrit/parse-reviews.py \ - essex-commits.txt openstack-config/launchpad-ids.txt \ - < essex-reviews.txt > essex-reviewers.txt - -Finally, generate the stats with: - - $> python ./gerritdm -l 20 < essex-reviewers.txt diff --git a/openstack-config/aliases b/openstack-config/aliases deleted file mode 100644 index 6fcf0a1..0000000 --- a/openstack-config/aliases +++ /dev/null @@ -1,132 +0,0 @@ -# -# This is the email aliases file, mapping secondary addresses -# onto a single, canonical address. -# -DaveWalker@ubuntu.com Dave.Walker@canonical.com -adamg@canonical.com adam.gandelman@canonical.com -admin@jakedahn.com jake@ansolabs.com -amesserl@rackspace.com ant@openstack.org -andrew@cloudscaling.com acs@parvuscaptus.com -anne.gentle@rackspace.com anne@openstack.org -apevec@gmail.com apevec@redhat.com -armando.migliaccio@citrix.com armando.migliaccio@eu.citrix.com -bcwaldon@gmail.com brian.waldon@rackspace.com -bfschott@gmail.com bschott@isi.edu -brian.lamar@gmail.com brian.lamar@rackspace.com -cbehrens+gerrit@codestud.com cbehrens@codestud.com -chiradeep@chiradeep-lt2 chiradeep@cloud.com -chris.behrens@rackspace.com cbehrens@codestud.com -chris@slicehost.com chris@pistoncloud.com -chuck.short@canonical.com zulcss@ubuntu.com -clay.gerrard@gmail.com clay.gerrard@gmail.com -clay.gerrard@rackspace.com clay.gerrard@gmail.com -clayg@clayg-desktop clay.gerrard@gmail.com -corvus@gnu.org jeblair@openstack.org -corvus@inaugust.com jeblair@openstack.org -cory.wright@rackspace.com corywright@gmail.com -dan.prince@rackspace.com dprince@redhat.com -danwent@dan-xs3-cs dan@nicira.com -danwent@gmail.com dan@nicira.com -davanum@gmail.com dims@linux.vnet.ibm.com -david.goetz@gmail.com david.goetz@rackspace.com -david.hadas@gmail.com davidh@il.ibm.com -devcamcar@illian.local devin.carlen@gmail.com -devin@openstack.org devin.carlen@gmail.com -devnull@brim.net gholt@rackspace.com -doug.hellmann@gmail.com doug.hellmann@dreamhost.com -dpgoetz@gmail.com david.goetz@rackspace.com -emagana@gmail.com emagana@plumgrid.com -emellor@silver ewan.mellor@citrix.com -enugaev@griddynamics.com reldan@oscloud.ru -gaurav@gluster.com gaurav@gluster.com -ghe.rivero@gmail.com ghe@debian.org -ghe.rivero@stackops.com ghe@debian.org -gholt@brim.net gholt@rackspace.com -github@anarkystic.com code@term.ie -glange@rackspace.com greglange@gmail.com -greglange+launchpad@gmail.com greglange@gmail.com -gregory.holt+launchpad.net@gmail.com gholt@rackspace.com -higginsd@gmail.com derekh@redhat.com -ialekseev@griddynamics.com ilyaalekseyev@acm.org -ilya@oscloud.ru ilyaalekseyev@acm.org -itoumsn@shayol itoumsn@nttdata.co.jp -jake@markupisart.com jake@ansolabs.com -james.blair@rackspace.com jeblair@openstack.org -jeblair@hp.com jeblair@openstack.org -jesse@aire.local anotherjesse@gmail.com -jesse@dancelamb anotherjesse@gmail.com -jesse@gigantor.local anotherjesse@gmail.com -jesse@ubuntu anotherjesse@gmail.com -jmckenty@joshua-mckentys-macbook-pro.local jmckenty@gmail.com -jmckenty@yyj-dhcp171.corp.flock.com jmckenty@gmail.com -joe@cloudscaling.com joe@swiftstack.com -johannes@compute3.221.st johannes.erdfelt@rackspace.com -johannes@erdfelt.com johannes.erdfelt@rackspace.com -john.dickinson@rackspace.com me@not.mn -john.garbutt@citrix.com john@johngarbutt.com -josh.kearney@rackspace.com josh@jk0.org -joshua.mckenty@nasa.gov jmckenty@gmail.com -joshua@pistoncloud.com jmckenty@gmail.com -jpipes@serialcoder jaypipes@gmail.com -jsuh@bespin jsuh@isi.edu -juliano@martinez.io juliano.martinez@locaweb.com.br -justinsb@justinsb-desktop justin@fathomdb.com -kapil.foss@gmail.com kapil.foss@gmail.com -ken.pepple@rabbityard.com ken.pepple@gmail.com -kshileev@griddynamics.com kshileev@gmail.com -laner@controller rlane@wikimedia.org -lorin@isi.edu lorin@nimbisservices.com -lzyeval@gmail.com lzyeval@gmail.com -major@mhtx.net major.hayden@rackspace.com -marcelo.martins@rackspace.com btorch@gmail.com -masumotok@nttdata.co.jp masumotok@nttdata.co.jp -matthewdietz@Matthew-Dietzs-MacBook-Pro.local matt.dietz@rackspace.com -mdietz@openstack matt.dietz@rackspace.com -mgius7096@gmail.com launchpad@markgius.com -michael.barton@rackspace.com mike@weirdlooking.com -michael.still@canonical.com mikal@stillhq.com -mike-launchpad@weirdlooking.com mike@weirdlooking.com -mordred@hudson mordred@inaugust.com -nachi@nttmcl.com ueno.nachi@lab.ntt.co.jp -nati.ueno@gmail.com ueno.nachi@lab.ntt.co.jp -naveed.massjouni@rackspace.com naveedm9@gmail.com -nelson@nelson-laptop russ@crynwr.com -nirmal.ranganathan@rackspace.com rnirmal@gmail.com -nirmal.ranganathan@rackspace.coom rnirmal@gmail.com -nova@u4 ueno.nachi@lab.ntt.co.jp -nsokolov@griddynamics.net nsokolov@griddynamics.com -openstack@lab.ntt.co.jp ueno.nachi@lab.ntt.co.jp -paul.voccio@rackspace.com paul@openstack.org -paul@substation9.com paul@openstack.org -pekowski@gmail.com raymond_pekowski@dell.com -pvoccio@castor.local paul@openstack.org -rclark@chat-blanc rick@openstack.org -rick.harris@rackspace.com rconradharris@gmail.com -rick@quasar.racklabs.com rconradharris@gmail.com -root@mirror.nasanebula.net vishvananda@gmail.com -root@openstack2-api masumotok@nttdata.co.jp -root@tonbuntu sleepsonthefloor@gmail.com -root@ubuntu vishvananda@gmail.com -sandy@sandywalsh.com sandy.walsh@rackspace.com -soren.hansen@rackspace.com soren@linux2go.dk -soren@openstack.org soren@linux2go.dk -soren@ubuntu.com soren@linux2go.dk -spam@andcheese.org sam@swiftstack.com -sulochan@gmail.com sulochan.acharya@rackspace.co.uk -superstack@superstack.org justin@fathomdb.com -termie@preciousroy.local code@term.ie -thuleau@gmail.com edouard1.thuleau@orange.com -tim.simpson4@gmail.com tim.simpson@rackspace.com -todd@lapex todd@ansolabs.com -todd@rubidine.com todd@ansolabs.com -tpatil@vertex.co.in tushar.vitthal.patil@gmail.com -treyemorris@gmail.com trey.morris@rackspace.com -ttcl@mac.com troy.toman@rackspace.com -vishvananda@yahoo.com vishvananda@gmail.com -will.wolf@rackspace.com throughnothing@gmail.com -wwkeyboard@gmail.com aaron.lee@rackspace.com -xtoddx@gmail.com todd@ansolabs.com -xyj.asmy@gmail.com xyj.asmy@gmail.com -yorik@ytaraday yorik.sar@gmail.com -z-github@brim.net gholt@rackspace.com -z-launchpad@brim.net gholt@rackspace.com diff --git a/openstack-config/domain-map b/openstack-config/domain-map deleted file mode 100644 index 6b892ef..0000000 --- a/openstack-config/domain-map +++ /dev/null @@ -1,73 +0,0 @@ -# domain employer [< yyyy-mm-dd] -ansolabs.com Rackspace < 2012-07-20 -ansolabs.com Nebula -atomia.com Atomia -att.com AT&T -attinteractive.com AT&T -au1.ibm.com IBM -ca.ibm.com IBM -canonical.com Canonical -cern.ch CERN -cisco.com Cisco Systems -citrix.com Citrix -cloud.com Citrix Systems -cloudscaling.com Cloudscaling -cn.ibm.com IBM -dell.com Dell -denali-systems.com Denali Systems -dreamhost.com DreamHost -emc.com EMC -enovance.com eNovance -fathomdb.com FathomDB -gluster.com Red Hat -griddynamics.com Grid Dynamics -hp.com HP -ibm.com IBM -il.ibm.com IBM -inktank.com Inktank -intel.com Intel -internap.com Internap -isi.edu ISI -linux.vnet.ibm.com IBM -locaweb.com.br Locaweb -lahondaresearch.org La Honda Research -managedit.ie Managed IT -memset.com Memset -metacloud.com Metacloud -midokura.com Midokura -mirantis.com Mirantis -nebula.com Nebula -corp.netease.com NetEase -nexenta.com Nexenta -cq.jp.nec.com NEC -da.jp.nec.com NEC -nec.co.jp NEC -netapp.com NetApp -nicira.com Nicira -nimbisservices.com Nimbis Services -ntt.co.jp NTT -ntt.com NTT -nttdata.com NTT -nttdata.co.jp NTT -nttmcl.com NTT -pistoncloud.com Piston Cloud -plumgrid.com PLUMgrid -rackspace.co.uk Rackspace -rackspace.com Rackspace -radware.com Radware -redhat.com Red Hat -software.dell.com Dell -solidfire.com SolidFire -suse.de SUSE -suse.com SUSE -suse.cz SUSE -swiftstack.com SwiftStack -unimelb.edu.au University of Melbourne -us.ibm.com IBM -valinux.co.jp VA Linux -vertex.co.in NTT -vexxhost.com VexxHost -virtualtech.jp VirtualTech -wikimedia.org Wikimedia Foundation -yahoo-inc.com Yahoo! -zadarastorage.com Zadara Storage diff --git a/openstack-config/email-map b/openstack-config/email-map deleted file mode 100644 index e85a831..0000000 --- a/openstack-config/email-map +++ /dev/null @@ -1,58 +0,0 @@ -# [user@]domain employer [< yyyy-mm-dd] -andrew@linuxjedi.co.uk HP -anotherjesse@gmail.com Nebula -anotherjesse@gmail.com Rackspace < 2012-07-20 -armando.migliaccio@eu.citrix.com Citrix < 2012-03-02 -armando.migliaccio@citrix.com Citrix < 2012-03-02 -bcwaldon@gmail.com Nebula -bcwaldon@gmail.com Rackspace < 2012-07-20 -bdelliott@gmail.com Rackspace -chmouel@chmouel.com eNovance -chmouel@chmouel.com Rackspace < 2012-10-01 -code@term.ie Nebula -code@term.ie Rackspace < 2012-07-20 -dprince@redhat.com Red Hat -dprince@redhat.com Rackspace < 2012-02-03 -duncan.thomas@gmail.com HP -emagana@gmail.com Cisco Systems -fungi@yuggoth.org HP -github@anarkystic.com Nebula -github@anarkystic.com Rackspace < 2012-07-20 -hashar@free.fr Wikimedia Foundation -jake@ansolabs.com Nebula -jake@ansolabs.com Rackspace < 2012-07-20 -jaypipes@gmail.com AT&T -jaypipes@gmail.com HP < 2012-06-04 -jaypipes@gmail.com Rackspace < 2011-12-01 -jeblair@openstack.org OpenStack Foundation -jeblair@openstack.org HP < 2012-12-08 -jeblair@opensack.org Rackspace < 2011-12-01 -john@johngarbutt.com Rackspace -john@johngarbutt.com Citrix < 2013-02-01 -kiall@managedit.ie HP -kiall@managedit.ie managedit.ie < 2013-01-07 -kispear@gmail.com University of Melbourne -lzyeval@gmail.com Intel -lzyeval@gmail.com SINA < 2012-06-19 -me@not.mn SwiftStack -me@not.mn Rackspace < 2012-06-19 -mordred@inaugust.com HP -mordred@inaugust.com Rackspace < 2011-12-01 -reldan@oscloud.ru Grid Dynamics -robertc@robertcollins.net HP -sleepsonthefloor@gmail.com Nebula -sleepsonthefloor@gmail.com Rackspace < 2012-07-20 -soren@linux2go.dk Cisco Systems -soren@linux2go.dk Nebula < 2012-01-01 -usrleon@gmail.com Mirantis -vishvananda@gmail.com Nebula -vishvananda@gmail.com Rackspace < 2012-07-20 -dtroyer@gmail.com Nebula -dtroyer@gmail.com Rackspace < 2012-07-20 -devananda.vdv@gmail.com HP -devananda.vdv@gmail.com Percona < 2012-03-01 -sumitnaiksatam@gmail.com Big Switch Networks -sumitnaiksatam@gmail.com Cisco Systems < 2012-10-01 -xuchenx@gmail.com VMware -zhongyue.luo@gmail.com Intel -zaro0508@gmail.com HP diff --git a/openstack-config/essex b/openstack-config/essex deleted file mode 100644 index 005f270..0000000 --- a/openstack-config/essex +++ /dev/null @@ -1,7 +0,0 @@ -# project revisions -nova 2011.3..2012.1 (b541794|cb78efa|68c140d|a0ab483|dc6de5d|5abbbd8|771286e|615087d|20b4172|83c3ee9|2199f45|7ab28c4|4cf898b) -glance 2011.3..2012.1 -swift 1.4.3..1.4.8 -keystone 2011.3..2012.1 -horizon 2011.3..2012.1 -quantum 2011.3..2012.1 diff --git a/openstack-config/folsom b/openstack-config/folsom deleted file mode 100644 index a32b360..0000000 --- a/openstack-config/folsom +++ /dev/null @@ -1,8 +0,0 @@ -# project revisions -nova 2012.1..2012.2 (706502a|66073a4|b1ece76|1001a5f|60625ce|fb8dff3|0a2c40b) -glance 2012.1..2012.2 -swift 1.4.8..1.7.4 -keystone 2012.1..2012.2 -horizon 2012.1..2012.2 -quantum 2012.1..2012.2 -cinder 4c20252..2012.2 diff --git a/openstack-config/folsom-with-libs b/openstack-config/folsom-with-libs deleted file mode 100644 index cf0bf08..0000000 --- a/openstack-config/folsom-with-libs +++ /dev/null @@ -1,15 +0,0 @@ -# project revisions -nova 2012.1..folsom-rc3 (706502a|66073a4|b1ece76|1001a5f|60625ce|fb8dff3|0a2c40b) -glance 2012.1..folsom-rc3 -swift 1.4.8..1.7.4 -keystone 2012.1..folsom-rc2 -horizon 2012.1..folsom-rc2 -quantum 2012.1..folsom-rc3 -cinder 4c20252..folsom-rc3 -openstack-common 13ed881..origin/stable/folsom -python-novaclient 2012.1..origin/master -python-glanceclient 972677f..origin/master -python-swiftclient b55acc3..origin/master -python-keystoneclient 2012.1..origin/master -python-quantumclient 2012.1..origin/master -python-cinderclient 471704d..origin/master diff --git a/openstack-config/grizzly b/openstack-config/grizzly deleted file mode 100644 index ccc0847..0000000 --- a/openstack-config/grizzly +++ /dev/null @@ -1,8 +0,0 @@ -# project revisions -nova 2012.2..2013.1.rc2 (a701771|b7a561d|5b73dae|8c96d09|83989d8|cd68b5c|ad9bd5e|8563ee1|45627a2|a9fdb38|5fc5c6a|4fbb245|5997c4e|6aa3447|56b7d18|cd4b218|9fd0b65|3793b06|33ede1c|a171033|f9883ce|97d49f9|b8b8f20|758cba0|5f08221|a52af4a|c7becb1|1dc9d73|1a7a0e1|18817c7|6078226|0698242|08e6149|816a63f|8ee5f9c|85438ab|601c147|a54d10a|4237e66|1bf79e1|67b8e3e|125319e|c5a8401|bd186aa|cfc6d00|8862c87|cb1d2bd|e14110e|7a0d4c2|bff0ee6|9c2925d|991bb35|e100cb1|c724964|6b16fdf|13f6b3c|338fae4|5d9a5d1) -glance 2012.2..2013.1.rc2 -swift 1.7.4..1.8.0.rc2 -keystone 2012.2..2013.1.rc2 (bec8b31|0bc423a|617b700|76af49f|e093e81|3779c67|a92b1da|23bb7ec) -horizon 2012.2..2013.1.rc2 -quantum 2012.2..2013.1.rc2 (9f55912|cf00be0|e6b5148|1001685|ebd2445|36d5755|9a23e10|810334e|5865916|c300aad|d59c0aa|1eb6894|642b7e2|549afdb|2975e29|919976a|5655d53|e096581|acb2686|dca47b1|2842653|267d3c1|cc72d0a|7ecf6eb|c19b4f3|b70e2c0|202fb6e|92a044e|5e1f7ad|39bee34|25878ca|1586b24|7caf323|dc1c36f|5c1c23d|5da83e5|2caed82|1056245|02fbf7d) -cinder 2012.2..2013.1.rc3 diff --git a/openstack-config/groups/att b/openstack-config/groups/att deleted file mode 100644 index 4192610..0000000 --- a/openstack-config/groups/att +++ /dev/null @@ -1 +0,0 @@ -yunmao@gmail.com diff --git a/openstack-config/groups/bvox b/openstack-config/groups/bvox deleted file mode 100644 index 88bd002..0000000 --- a/openstack-config/groups/bvox +++ /dev/null @@ -1 +0,0 @@ -rafadurancastaneda@gmail.com diff --git a/openstack-config/groups/canonical b/openstack-config/groups/canonical deleted file mode 100644 index 5151190..0000000 --- a/openstack-config/groups/canonical +++ /dev/null @@ -1,3 +0,0 @@ -mikal@stillhq.com -smoser@ubuntu.com -zulcss@ubuntu.com diff --git a/openstack-config/groups/cloudbase b/openstack-config/groups/cloudbase deleted file mode 100644 index 4293f2b..0000000 --- a/openstack-config/groups/cloudbase +++ /dev/null @@ -1 +0,0 @@ -ap@pilotti.it diff --git a/openstack-config/groups/dell b/openstack-config/groups/dell deleted file mode 100644 index 528bbdc..0000000 --- a/openstack-config/groups/dell +++ /dev/null @@ -1 +0,0 @@ -pekowski@gmail.com diff --git a/openstack-config/groups/delta b/openstack-config/groups/delta deleted file mode 100644 index 4f2a5d2..0000000 --- a/openstack-config/groups/delta +++ /dev/null @@ -1 +0,0 @@ -andycjw@gmail.com diff --git a/openstack-config/groups/dreamhost b/openstack-config/groups/dreamhost deleted file mode 100644 index 9c0b040..0000000 --- a/openstack-config/groups/dreamhost +++ /dev/null @@ -1 +0,0 @@ -thingee@gmail.com diff --git a/openstack-config/groups/everbread b/openstack-config/groups/everbread deleted file mode 100644 index 7893c42..0000000 --- a/openstack-config/groups/everbread +++ /dev/null @@ -1 +0,0 @@ -t.trifonov@gmail.com diff --git a/openstack-config/groups/foundation b/openstack-config/groups/foundation deleted file mode 100644 index dcf6ed1..0000000 --- a/openstack-config/groups/foundation +++ /dev/null @@ -1 +0,0 @@ -jeblair@openstack.org diff --git a/openstack-config/groups/ibm b/openstack-config/groups/ibm deleted file mode 100644 index 9578936..0000000 --- a/openstack-config/groups/ibm +++ /dev/null @@ -1,5 +0,0 @@ -bhuvan@apache.org -cbkyeoh@gmail.com -daisy.ycguo@gmail.com -dms@danplanet.com -sean@dague.net diff --git a/openstack-config/groups/intel b/openstack-config/groups/intel deleted file mode 100644 index 89ce4ed..0000000 --- a/openstack-config/groups/intel +++ /dev/null @@ -1 +0,0 @@ -clark.boylan@gmail.com diff --git a/openstack-config/groups/internap b/openstack-config/groups/internap deleted file mode 100644 index fe0e970..0000000 --- a/openstack-config/groups/internap +++ /dev/null @@ -1,2 +0,0 @@ -ken.pepple@gmail.com -amigliaccio@internap.com diff --git a/openstack-config/groups/locaweb b/openstack-config/groups/locaweb deleted file mode 100644 index a35bb9e..0000000 --- a/openstack-config/groups/locaweb +++ /dev/null @@ -1 +0,0 @@ -pothix@pothix.com diff --git a/openstack-config/groups/midokura b/openstack-config/groups/midokura deleted file mode 100644 index d8cdea2..0000000 --- a/openstack-config/groups/midokura +++ /dev/null @@ -1 +0,0 @@ -jeffjapan@gmail.com diff --git a/openstack-config/groups/mirantis b/openstack-config/groups/mirantis deleted file mode 100644 index c6545bb..0000000 --- a/openstack-config/groups/mirantis +++ /dev/null @@ -1,3 +0,0 @@ -simplylizz@gmail.com -yorik.sar@gmail.com -e0ne@e0ne.info diff --git a/openstack-config/groups/nebula b/openstack-config/groups/nebula deleted file mode 100644 index c832a56..0000000 --- a/openstack-config/groups/nebula +++ /dev/null @@ -1,5 +0,0 @@ -devin.carlen@gmail.com -gabriel@strikeawe.com -heckj@mac.com -ke.wu@ibeca.me -tres@treshenry.net diff --git a/openstack-config/groups/netapp b/openstack-config/groups/netapp deleted file mode 100644 index 79c38b1..0000000 --- a/openstack-config/groups/netapp +++ /dev/null @@ -1 +0,0 @@ -rushi.agr@gmail.com diff --git a/openstack-config/groups/nicira b/openstack-config/groups/nicira deleted file mode 100644 index 06eb193..0000000 --- a/openstack-config/groups/nicira +++ /dev/null @@ -1 +0,0 @@ -salv.orlando@gmail.com diff --git a/openstack-config/groups/ntt b/openstack-config/groups/ntt deleted file mode 100644 index 37745a9..0000000 --- a/openstack-config/groups/ntt +++ /dev/null @@ -1,2 +0,0 @@ -tushar.vitthal.patil@gmail.com -morita.kazutaka@gmail.com diff --git a/openstack-config/groups/piston b/openstack-config/groups/piston deleted file mode 100644 index a30c21a..0000000 --- a/openstack-config/groups/piston +++ /dev/null @@ -1 +0,0 @@ -jmckenty@gmail.com diff --git a/openstack-config/groups/rackspace b/openstack-config/groups/rackspace deleted file mode 100644 index c0b88b8..0000000 --- a/openstack-config/groups/rackspace +++ /dev/null @@ -1,26 +0,0 @@ -anne@openstack.org -breu@breu.org -cbehrens@codestud.com -clay.gerrard@gmail.com -corywright@gmail.com -cthier@gmail.com -dolph.mathews@gmail.com -ed@leafe.com -eday@oddments.org -florian.hines@gmail.com -github@highbridgellc.com -greglange@gmail.com -jason@koelker.net -josh@jk0.org -mike@weirdlooking.com -msherborne@gmail.com -naveedm9@gmail.com -paul@openstack.org -philip.knouff@mailtrust.com -rnirmal@gmail.com -rconradharris@gmail.com -syn@ronin.io -thierry@openstack.org -throughnothing@gmail.com -yoga80@yahoo.com -mark.washenberger@markwash.net diff --git a/openstack-config/groups/redhat b/openstack-config/groups/redhat deleted file mode 100644 index ab9dae8..0000000 --- a/openstack-config/groups/redhat +++ /dev/null @@ -1,4 +0,0 @@ -P@draigBrady.com -zaitcev@kotori.zaitcev.us -julie.pichon@gmail.com -mnewby@thesprawl.net diff --git a/openstack-config/groups/sina b/openstack-config/groups/sina deleted file mode 100644 index e5f56c9..0000000 --- a/openstack-config/groups/sina +++ /dev/null @@ -1,3 +0,0 @@ -learnerever@gmail.com -pengyuwei@gmail.com -siyingchun@sina.com diff --git a/openstack-config/groups/stackops b/openstack-config/groups/stackops deleted file mode 100644 index cd1ede0..0000000 --- a/openstack-config/groups/stackops +++ /dev/null @@ -1 +0,0 @@ -ghe@debian.org diff --git a/openstack-config/groups/unimelb b/openstack-config/groups/unimelb deleted file mode 100644 index 75dd5bd..0000000 --- a/openstack-config/groups/unimelb +++ /dev/null @@ -1 +0,0 @@ -sorrison@gmail.com diff --git a/openstack-config/groups/unitedstack b/openstack-config/groups/unitedstack deleted file mode 100644 index daf7e69..0000000 --- a/openstack-config/groups/unitedstack +++ /dev/null @@ -1,9 +0,0 @@ -alex890714@gmail.com -freedomhui@gmail.com -iamljj@gmail.com -jiangwt100@gmail.com -xyj.asmy@gmail.com -yuxcer@126.com -zrzhit@gmail.com -yugsuo@gmail.com -yeluaiesec@gmail.com diff --git a/openstack-config/launchpad-ids.txt b/openstack-config/launchpad-ids.txt deleted file mode 100644 index df98716..0000000 --- a/openstack-config/launchpad-ids.txt +++ /dev/null @@ -1,498 +0,0 @@ -0xffea 0xffea@gmail.com -9-sa sa@hydre.org -aababilov aababilov@griddynamics.com -aaron-lee aaron.lee@rackspace.com -abrindeyev abrindeyev@griddynamics.com -academicgareth academicgareth@gmail.com -adalbas adalbas@linux.vnet.ibm.com -adjohn adjohn@gmail.com -adriansmith adrian_f_smith@dell.com -ahmad-hassan-q ahmad.hassan@hp.com -akuno akuno@lavabit.com -alaski andrew.laski@rackspace.com -alekibango David.Pravec@danix.org -alex-meade alex.meade@rackspace.com -alexpilotti ap@pilotti.it -alexyang alex890714@gmail.com -aloga aloga@ifca.unican.es -amotoki motoki@da.jp.nec.com -andrewbogott ABogott@WikiMedia.org -andrewbogott abogott@wikimedia.org -andrewsmedina andrewsmedina@gmail.com -andy-southgate andy.southgate@citrix.com -andycjw andycjw@gmail.com -annegentle anne@openstack.org -anotherjesse anotherjesse@gmail.com -antonym amesserl@rackspace.com -apevec apevec@redhat.com -arata776 notsu@virtualtech.jp -armando-migliaccio armamig@gmail.com -arosen arosen@nicira.com -asakhnov asakhnov@mirantis.com -asbjorn-sannes asbjorn.sannes@interhost.no -asomya asomya@cisco.com -avishay-il avishay@il.ibm.com -avishayb avishayb@radware.com -ayoung ayoung@redhat.com -b-maguire B_Maguire@Dell.com -baoli baoli@cisco.com -bartos nick@pistoncloud.com -bcwaldon bcwaldon@gmail.com -bcwaldon brian.waldon@rackspace.com -beagles beagles@redhat.com -belliott brian.elliott@rackspace.com -berendt berendt@b1-systems.de -berrange berrange@redhat.com -bfilippov bfilippov@griddynamics.com -bfschott bfschott@gmail.com -bgh bhall@nicira.com -bgh brad@nicira.com -bhuvan bhuvan@apache.org -bilalakhtar bilalakhtar@ubuntu.com -bkjones bkjones@gmail.com -blamar brian.lamar@rackspace.com -boris-42 boris@pavlovic.me -breu breu@breu.org -brian-haley brian.haley@hp.com -brian-lamar brian.lamar@gmail.com -broskos broskos@internap.com -bswartz bswartz@netapp.com -btopol btopol@us.ibm.com -btorch marcelo.martins@rackspace.com -carlos-marin-d carlos.marin@rackspace.com -cbehrens cbehrens@codestud.com -cbehrens chris.behrens@rackspace.com -cboylan clark.boylan@gmail.com -cerberus matt.dietz@rackspace.com -cfb-n cfb@metacloud.com -cgoncalves cgoncalves@av.it.pt -chemikadze nsokolov@griddynamics.com -chiradeep chiradeep@cloud.com -chmouel chmouel@chmouel.com -chris-fattarsi chris.fattarsi@pistoncloud.com -chungg chungg@ca.ibm.com -clay-gerrard clay.gerrard@gmail.com -clay-gerrard clay.gerrard@rackspace.com -cleverdevil jonathan@cleverdevil.org -colin-nicholson colin.nicholson@iomart.com -corcornelisse cor@hyves.nl -corvus corvus@gnu.org -corvus corvus@inaugust.com -corystone corystone@gmail.com -corywright cory.wright@rackspace.com -corywright corywright@gmail.com -cp16net cp16net@gmail.com -cp16net-gmail cp16net@gmail.com -crobinso crobinso@redhat.com -ctennis caleb.tennis@gmail.com -cthier cthier@gmail.com -cwedgwood cw@f00f.org -cweidenkeller conrad.weidenkeller@rackspace.com -cyeoh-0 cbkyeoh@gmail.com -daisy-ycguo daisy.ycguo@gmail.com -dan-prince dprince@redhat.com -danms danms@us.ibm.com -danwent dan@nicira.com -danwent danwent@gmail.com -darrellb darrell@swiftstack.com -dave-mcnally dave.mcnally@hp.com -davewalker Dave.Walker@canonical.com -davewalker DaveWalker@ubuntu.com -david-goetz david.goetz@rackspace.com -david-hadas davidh@il.ibm.com -david-lyle david.lyle@hp.com -david-perez5 david.perez5@hp.com -david-thingbag david.cramer@rackspace.com -debo dedutta@cisco.com -deepak.garg deepak.garg@citrix.com -deepak.garg deepakgarg.iitg@gmail.com -dendrobates rick@openstack.org -derekh derekh@redhat.com -derekh higginsd@gmail.com -devananda devananda.vdv@gmail.com -devcamcar devin.carlen@gmail.com -devdeep-singh devdeep.singh@citrix.com -dims-v dims@linux.vnet.ibm.com -diopter diopter@gmail.com -divakar-padiyar-nandavar divakar.padiyar-nandavar@hp.com -dkang dkang@isi.edu -dlapsley dlapsley@nicira.com -dmllr dirk@dmllr.de -dmodium dmodium@isi.edu -dolph dolph.mathews@gmail.com -dolph dolph.mathews@rackspace.com -donagh-mccabe donagh.mccabe@hp.com -donal-lafferty donal.lafferty@citrix.com -doug-hellmann doug.hellmann@dreamhost.com -doug-hellmann doug.hellmann@gmail.com -dougdoan dougdoan@gmail.com -dperaza dperaza@linux.vnet.ibm.com -dradez dradez@redhat.com -dragosm dragosm@hp.com -dripton dripton@redhat.com -dtroyer dtroyer@gmail.com -dvaleriani daniele@dvaleriani.net -dweimer dougw@sdsc.edu -dweimer dweimer@gmail.com -e0ne e0ne@e0ne.info -e9x-siq-j81 sam@swiftstack.com -eamonn-otoole eamonn.otoole@hp.com -ed-leafe ed@leafe.com -eday eday@oddments.org -eddie-sheffield eddie.sheffield@rackspace.com -eglynn eglynn@redhat.com -eharney eharney@redhat.com -ekirpichov ekirpichov@gmail.com -emagana eperdomo@cisco.com -emmasteimann emmasteimann@gmail.com -endeepak deepak.n@thoughtworks.com -enikanorov enikanorov@mirantis.com -epatro epatro@gmail.com -ericpeterson-l ericpeterson@hp.com -esker esker@netapp.com -ethuleau edouard1.thuleau@orange.com -ewanmellor ewan.mellor@citrix.com -ewindisch eric@cloudscaling.com -fifieldt fifieldt@unimelb.edu.au -flaper87 flaper87@gmail.com -flwang flwang@cn.ibm.com -francois-charlier francois.charlier@enovance.com -freyes freyes@tty.cl -fujita-tomonori-lab fujita.tomonori@lab.ntt.co.jp -fungi fungi@yuggoth.org -gabriel-hurley gabriel@strikeawe.com -gandelman-a adam.gandelman@canonical.com -gandelman-a adamg@canonical.com -garyk garyk@radware.com -geekinutah geekinutah@gmail.com -gessau gessau@cisco.com -ghe.rivero ghe.rivero@gmail.com -ghe.rivero ghe.rivero@stackops.com -ghe.rivero ghe@debian.org -gholt devnull@brim.net -glikson glikson@il.ibm.com -gongysh gongysh@cn.ibm.com -greglange greglange+launchpad@gmail.com -greglange greglange@gmail.com -gregory-althaus galthaus@austin.rr.com -gtt116 gtt116@126.com -guang-yee guang.yee@hp.com -gundlach michael.gundlach@rackspace.com -hanlind hanlind@kth.se -harlowja harlowja@yahoo-inc.com -hayashi hayashi@nttmcl.com -hazmat kapil.foss@gmail.com -heckj heckj@mac.com -henry-nash henryn@linux.vnet.ibm.com -heut2008 heut2008@gmail.com -hisaki hisaki.ohara@intel.com -hubcap mbasnigh@rackspace.com -hubcap mbasnight@gmail.com -hudayou hudayou@hotmail.com -hzguanqiang hzguanqiang@corp.netease.com -hzwangpan hzwangpan@corp.netease.com -hzzhoushaoyu hzzhoushaoyu@corp.netease.com -iartarisi iartarisi@suse.cz -iccha-sethi iccha.sethi@rackspace.com -iida-koji iida.koji@lab.ntt.co.jp -ilyaalekseyev ilyaalekseyev@acm.org -ironcamel naveedm9@gmail.com -irsxyp irsxyp@gmail.com -iryoung iryoung@gmail.com -ishii-hisaharu ishii.hisaharu@lab.ntt.co.jp -itoumsn itoumsn@nttdata.co.jp -ivan-zhu bozhu@linux.vnet.ibm.com -ivoks ivoks@ubuntu.com -izbyshev izbyshev@ispras.ru -jake-hyperboledesign admin@jakedahn.com -jakedahn jake@ansolabs.com -jakedahn jake@markupisart.com -jakez jake@ponyloaf.com -jason-koelker jason@koelker.net -jaypipes jaypipes@gmail.com -jbrendel jbrendel@cisco.com -jbresnah jbresnah@redhat.com -jbryce jbryce@jbryce.com -jcannava jason.cannavale@rackspace.com -jcannava jason@cannavale.com -jdanjou julien.danjou@enovance.com -jdsn jdsn@suse.de -jdurgin josh.durgin@dreamhost.com -jdurgin joshd@hq.newdream.net -jeffjapan jeffjapan@gmail.com -jemartin jcmartin@ebaysf.com -jiangy jiangyong.hn@gmail.com -jimmy-sigint jimmy@sigint.se -jjmartinez juan@memset.com -jk0 josh@jk0.org -jking-6 jking@internap.com -jkleinpeter josh@kleinpeter.org -joe-arnold joe@swiftstack.com -joe-gordon0 jogo@cloudscaling.com -jogo jogo@cloudscaling.com -johannes.erdfelt johannes.erdfelt@rackspace.com -john-eo john.eo@rackspace.com -john-griffith john.griffith@solidfire.com -john-m-kennedy john.m.kennedy@intel.com -john-postlethwait john.postlethwait@nebula.com -johngarbutt john.garbutt@citrix.com -jola-mirecka jola.mirecka@hp.com -jonathan-abdiel jonathan.abdiel@gmail.com -jordanrinke jordan@openstack.org -jorgew jorge.williams@rackspace.com -jose-castro-leon jose.castro.leon@cern.ch -joshua-mckenty jmckenty@gmail.com -joshua-mckenty joshua.mckenty@nasa.gov -joshua-mckenty joshua@pistoncloud.com -jpichon julie.pichon@gmail.com -jsavak joe.savak@rackspace.com -jshepher jshepher@rackspace.com -jsuh jsuh@isi.edu -jtaylor jtaylor@ubuntu.com -jtran jtran@attinteractive.com -juergh juerg.haefliger@hp.com -justin-fathomdb justin@fathomdb.com -kbringard kbringard@attinteractive.com -ke-wu ke.wu@ibeca.me -kelsey-tripp kelsey.tripp@nebula.com -ken-pepple ken.pepple@gmail.com -ken-pepple ken.pepple@rabbityard.com -khussein khaled.hussein@gmail.com -khussein khaled.hussein@rackspace.com -kiall kiall@managedit.ie -klmitch kevin.mitchell@rackspace.com -kost-isi kost@isi.edu -krt krt@yahoo-inc.com -krtaylor krtaylor@us.ibm.com -kshileev kshileev@gmail.com -kspear kispear@gmail.com -lauria lauria@us.ibm.com -ldbragst ldbragst@us.ibm.com -lemonlatte lemonlatte@gmail.com -letterj letterj@racklabs.com -liam-kelleher liam.kelleher@hp.com -liemmn liem.m.nguyen@hp.com -liemmn liem_m_nguyen@hp.com -lifeless robertc@robertcollins.net -likitha-shetty likitha.shetty@citrix.com -lin-hua-cheng lin-hua.cheng@hp.com -linuxjedi andrew@linuxjedi.co.uk -litong01 litong01@us.ibm.com -littleidea acs@parvuscaptus.com -littleidea andrew@cloudscaling.com -ljjjustin iamljj@gmail.com -locke105 mrodden@us.ibm.com -long-wang long.wang@bj.cs2c.com.cn -lorinh lorin@isi.edu -lorinh lorin@nimbisservices.com -luis-fernandez-alvarez luis.fernandez.alvarez@cern.ch -lzyeval lzyeval@gmail.com -madhav-puri madhav.puri@gmail.com -mandarvaze mandar.vaze@vertex.co.in -mapleoin iartarisi@suse.cz -markgius launchpad@markgius.com -markmc markmc@redhat.com -markmcclain mark.mcclain@dreamhost.com -markwash mark.washenberger@rackspace.com -maru mnewby@internap.com -masumotok masumotok@nttdata.co.jp -mate-lakat mate.lakat@citrix.com -mathieu-rohon mathieu.rohon@gmail.com -mathrock nathanael.i.burton.work@gmail.com -mattstep mattstep@mattstep.net -maurosr maurosr@linux.vnet.ibm.com -mcgrue ben@pistoncloud.com -mdegerne mdegerne@gmail.com -mdragon mdragon@rackspace.com -melwitt melwitt@yahoo-inc.com -mestery kmestery@cisco.com -mgius7096 mgius7096@gmail.com -mihgen mihgen@gmail.com -mikalstill michael.still@canonical.com -mikalstill mikal@stillhq.com -mikeyp-3 mikeyp@LaHondaResearch.org -milner mike.milner@canonical.com -mjfork mjfork@us.ibm.com -mkkang mkkang@isi.edu -mnaser mnaser@vexxhost.com -mordred mordred@inaugust.com -morita-kazutaka morita.kazutaka@gmail.com -motokentsai motokentsai@gmail.com -mrunge mrunge@redhat.com -mszilagyi mszilagyi@gmail.com -nachiappan-veerappan-nachiappan nachiappan.veerappan-nachiappan@hp.com -nakamura-h nakamura-h@mxd.nes.nec.co.jp -nati-ueno nachi@nttmcl.com -nati-ueno-s nati.ueno@gmail.com -ncode juliano.martinez@locaweb.com.br -ndipanov ndipanov@redhat.com -nikhil-komawar nikhil.komawar@rackspace.com -njohnston onewheeldrive.net@gmail.com -nobodycam nobodycam@gmail.com -noguchimn noguchimn@nttdata.co.jp -notmyname john.dickinson@rackspace.com -notmyname me@not.mn -novas0x2a mike@pistoncloud.com -obondarev obondarev@mirantis.com -oliver-leahy-l oliver.leahy@hp.com -oomichi oomichi@mxs.nes.nec.co.jp -oubiwann duncan@dreamhost.com -p-draigbrady P@draigBrady.com -p-draigbrady pbrady@redhat.com -pabelanger paul.belanger@polybeacon.com -pandemicsyn florian.hines@gmail.com -parthipan parthipan@hp.com -paul-mcmillan paul.mcmillan@nebula.com -pauldbourke paul-david.bourke@hp.com -pcm pcm@cisco.com -pednape pednape@gmail.com -peter-a-portante pportant@redhat.com -philip-day philip.day@hp.com -philip-knouff philip.knouff@mailtrust.com -pjz pj@place.org -pksunkara pavan.sss1991@gmail.com -ppyy ppyy@pubyun.com -prasad-tanay prasad.tanay@gmail.com -pvo paul.voccio@rackspace.com -r-thorsten thorsten@atomia.com -rackerhacker major@mhtx.net -rafadurancastaneda rafadurancastaneda@gmail.com -rajarammallya rajarammallya@gmail.com -rcc emaildericky@gmail.com -rconradharris rconradharris@gmail.com -rconradharris rick.harris@rackspace.com -redbo mike-launchpad@weirdlooking.com -redbo mike@weirdlooking.com -reese-sm reese.sm@gmail.com -reldan reldan@oscloud.ru -renukaapte renuka.apte@citrix.com -retr0h john@dewey.ws -reynolds.chin benzwt@gmail.com -rhafer rhafer@suse.de -rjuvvadi rjuvvadi@hcl.com -rkhardalian rafi@metacloud.com -rkukura rkukura@redhat.com -rlane rlane@wikimedia.org -rlucio rlucio@internap.com -rnirmal rnirmal@gmail.com -robin-norwood robin.norwood@gmail.com -rohitagarwalla roagarwa@cisco.com -rpodolyaka rpodolyaka@mirantis.com -rushiagr rushi.agr@gmail.com -russell russell@nimbula.com -russell-sim russell.sim@gmail.com -russellb rbryant@redhat.com -ryu-midokura ryu@midokura.jp -salvatore-orlando salvatore.orlando@eu.citrix.com -sammiestoel sammiestoel@gmail.com -sandy-sandywalsh sandy@sandywalsh.com -sandy-walsh sandy.walsh@rackspace.com -santhoshkumar santhom@thoughtworks.com -saschpe saschpe@suse.de -sasimpson sasimpson@gmail.com -sateesh-chodapuneedi sateesh.chodapuneedi@citrix.com -sathish-nagappan sathish.nagappan@nebula.com -sdague sdague@linux.vnet.ibm.com -sdague-b sdague@linux.vnet.ibm.com -sdake sdake@redhat.com -shakhat ishakhat@mirantis.com -shweta-ap05 shpadubi@cisco.com -shweta-ap05 shweta.ap05@gmail.com -simplylizz simplylizz@gmail.com -singn singn@netapp.com -sirish-bitra-gmail sirish.bitra@gmail.com -sirisha-devineni sirisha_devineni@persistent.co.in -skosyrev skosyrev@griddynamics.com -sleepsonthefloor sleepsonthefloor@gmail.com -smoser smoser@ubuntu.com -snaiksat snaiksat@cisco.com -sogabe sogabe@iij.ad.jp -somikbehera somik@nicira.com -soren soren@linux2go.dk -soren soren@openstack.org -sorrison sorrison@gmail.com -spzala spzala@us.ibm.com -stanislaw-pitucha stanislaw.pitucha@hp.com -stephen-mulcahy stephen.mulcahy@hp.com -stevemar stevemar@ca.ibm.com -stuart-mclaren stuart.mclaren@hp.com -sulochan-acharya sulochan@gmail.com -tagami-keisuke tagami.keisuke@lab.ntt.co.jp -tamura-yoshiaki yoshi@midokura.jp -termie code@term.ie -termie github@anarkystic.com -tfukushima tfukushima@dcl.info.waseda.ac.jp -the-william-kelly the.william.kelly@gmail.com -thingee thingee@gmail.com -throughnothing throughnothing@gmail.com -throughnothing will.wolf@rackspace.com -tim-simpson tim.simpson@rackspace.com -tmello tmello@linux.vnet.ibm.com -tom-hancock tom.hancock@hp.com -tomoe tomoe@midokura.com -torgomatic spam@andcheese.org -tpatil tpatil@vertex.co.in -tr3buchet trey.morris@rackspace.com -treinish treinish@linux.vnet.ibm.com -tres tres@treshenry.net -troy-toman troy.toman@rackspace.com -truijllo truijllo@crs4.it -ttrifonov t.trifonov@gmail.com -ttx thierry@openstack.org -tylesmit tylesmit@cisco.com -tzn tomasz@napierala.org -ubuntubmw bwiedemann@suse.com -unicell unicell@gmail.com -unmesh-gurjar unmesh.gurjar@vertex.co.in -usrleon usrleon@gmail.com -vash-vasiliyshlykov vash@vasiliyshlykov.org -vasichkin-gmail vkhomenko@griddynamics.com -vickymsee vickymsee@gmail.com -vijaya-erukala vijaya_erukala@persistent.co.in -vinkeshb vinkeshb@thoughtworks.com -vishvananda vishvananda@gmail.com -vishvananda vishvananda@yahoo.com -vladimir.p vladimir@zadarastorage.com -vuntz vuntz@suse.com -w-root-ubuntu root@ubuntu -walter-boring walter.boring@hp.com -wayne-walls wayne.walls@rackspace.com -wenhao-x xuwenhao2008@gmail.com -wenjianhn wenjianhn@gmail.com -westmaas gabe.westmaas@rackspace.com -xtoddx todd@ansolabs.com -xtoddx xtoddx@gmail.com -xu-haiwei xu-haiwei@mxw.nes.nec.co.jp -xuhj xuhj@linux.vnet.ibm.com -xychu2008 xychu2008@gmail.com -xyj-asmy xyj.asmy@gmail.com -yamahata yamahata@valinux.co.jp -yinliu2 yinliu2@cisco.com -ykaneko0929 ykaneko0929@gmail.com -yogesh-srikrishnan yogesh.srikrishnan@rackspace.com -yolanda.robla yolanda.robla@canonical.com -yorik-sar yorik.sar@gmail.com -yosef-4 yosef@cloudscaling.com -yosshy akirayoshiyama@gmail.com -yuan-zhou yuan.zhou@intel.com -yufang521247 yufang521247@gmail.com -yugsuo yugsuo@gmail.com -yunmao yunmao@gmail.com -yunshen Yun.Shen@hp.com -yusuke yusuke@nttmcl.com -yuyuehill yuyuehill@gmail.com -ywang19 yaguang.wang@intel.com -zaitcev zaitcev@kotori.zaitcev.us -zaneb zbitter@redhat.com -zedshaw zedshaw@zedshaw.com -zhang-hare zhuadl@cn.ibm.com -zhangchao010 zhangchao010@huawei.com -zhhuabj zhhuabj@cn.ibm.com -zhiteng-huang zhiteng.huang@intel.com -zhoudongshu zhoudshu@gmail.com -ziad-sawalha ziad.sawalha@rackspace.com -zrzhit zrzhit@gmail.com -zulcss chuck.short@canonical.com -zulcss zulcss@ubuntu.com -zyluo lzyeval@gmail.com -zzs zhesen@nttmcl.com diff --git a/openstack-config/other-aliases b/openstack-config/other-aliases deleted file mode 100644 index a57db59..0000000 --- a/openstack-config/other-aliases +++ /dev/null @@ -1,3 +0,0 @@ -# these are aliases of launchpad email to git email -armamig@gmail.com Armando.Migliaccio@eu.citrix.com -yogesh.srikrishnan@rackspace.com yogesh.srikrishnan@rackspace.com diff --git a/patterns.py b/patterns.py deleted file mode 100644 index 4d4a347..0000000 --- a/patterns.py +++ /dev/null @@ -1,52 +0,0 @@ -# -# -*- coding:utf-8 -*- -# Pull together regular expressions used in multiple places. -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# Copyright 2011 Germán Póo-Caamaño -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import re - -# -# Some people, when confronted with a problem, think "I know, I'll use regular -# expressions." Now they have two problems. -# -- Jamie Zawinski -# -_pemail = r'\s+"?([^<"]+)"?\s<([^>]+)>' # just email addr + name - -patterns = { - 'tagcommit': re.compile (r'^commit ([\da-f]+) .*tag: (v[23]\.\d(\.\d\d?)?)'), - 'commit': re.compile (r'^commit ([0-9a-f ]+)'), - 'author': re.compile (r'^Author:' + _pemail + '$'), - 'signed-off-by': re.compile (r'^\s+Signed-off-by:' + _pemail + '.*$'), - 'merge': re.compile (r'^Merge:.*$'), - 'add': re.compile (r'^\+[^+].*$'), - 'rem': re.compile (r'^-[^-].*$'), - 'date': re.compile (r'^(Commit)?Date:\s+(.*)$'), - # filea, fileb are used only in 'parche mode' (-p) - 'filea': re.compile (r'^---\s+(.*)$'), - 'fileb': re.compile (r'^\+\+\+\s+(.*)$'), - 'reviewed-by': re.compile (r'^\s+Reviewed-by:' + _pemail+ '.*$'), - 'tested-by': re.compile (r'^\s+tested-by:' + _pemail + '.*$', re.I), - 'reported-by': re.compile (r'^\s+Reported-by:' + _pemail + '.*$'), - 'reported-and-tested-by': re.compile (r'^\s+reported-and-tested-by:' + _pemail + '.*$', re.I), - # - # Merges are described with a variety of lines. - # - 'ExtMerge': re.compile(r'^ +Merge( branch .* of)? ([^ ]+:[^ ]+)\n$'), - 'IntMerge': re.compile(r'^ +(Merge|Pull) .* into .*$'), - # PIntMerge2 = re.compile(r"^ +Merge branch(es)? '.*$"), - 'IntMerge2': re.compile(r"^ +Merge .*$"), - # Another way to get the statistics (per file). - # It implies --numstat - 'numstat': re.compile('^(\d+|-)\s+(\d+|-)\s+(.*)$'), - 'rename' : re.compile('(.*)\{(.*) => (.*)\}(.*)'), - # Detect errors on svn conversions - 'svn-tag': re.compile("^svn path=/tags/(.*)/?; revision=([0-9]+)$"), -} diff --git a/reports.py b/reports.py deleted file mode 100644 index 70fb7fc..0000000 --- a/reports.py +++ /dev/null @@ -1,535 +0,0 @@ -# -# A new home for the reporting code. -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-12 Eklektix, Inc. -# Copyright 2007-12 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# - -import sys - -Outfile = sys.stdout -HTMLfile = None -ListCount = 999999 - - -def SetOutput (file): - global Outfile - Outfile = file - -def SetHTMLOutput (file): - global HTMLfile - HTMLfile = file - -def SetMaxList (max): - global ListCount - ListCount = max - - -def Write (stuff): - Outfile.write (stuff) - - -def Pct(a, b): - if b == 0: - return 0.0 - else: - return (a*100.0)/b - -# -# HTML output support stuff. -# -HTMLclass = 0 -HClasses = ['Even', 'Odd'] - -THead = '''

- - -''' - -def BeginReport (title): - global HTMLclass - - Outfile.write ('\n%s\n' % title) - if HTMLfile: - HTMLfile.write (THead % title) - HTMLclass = 0 - -TRow = ''' - -''' - -TRowStr = ''' - -''' - -def ReportLine (text, count, pct): - global HTMLclass - if count == 0: - return - Outfile.write ('%-25s %4d (%.1f%%)\n' % (text, count, pct)) - if HTMLfile: - HTMLfile.write (TRow % (HClasses[HTMLclass], text, count, pct)) - HTMLclass ^= 1 - -def ReportLineStr (text, count, extra): - global HTMLclass - if count == 0: - return - Outfile.write ('%-25s %4d %s\n' % (text, count, extra)) - if HTMLfile: - HTMLfile.write (TRowStr % (HClasses[HTMLclass], text, count, extra)) - HTMLclass ^= 1 - -def EndReport (text=None): - if text: - Outfile.write ('%s\n' % (text, )) - if HTMLfile: - HTMLfile.write ('
%s
%s%d%.1f%%
%s%d%s
\n\n') - -# -# Comparison and report generation functions. -# -def ComparePCount (h1, h2): - return len (h2.patches) - len (h1.patches) - -def ReportByPCount (hlist, cscount): - hlist.sort (ComparePCount) - count = reported = 0 - BeginReport ('Developers with the most changesets') - for h in hlist: - pcount = len (h.patches) - changed = max(h.added, h.removed) - delta = h.added - h.removed - if pcount > 0: - ReportLine (h.name, pcount, Pct(pcount, cscount)) - reported += pcount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of changesets' % (Pct(reported, cscount), )) - -def CompareBCount (h1, h2): - return len (h2.bugsfixed) - len (h1.bugsfixed) - -def ReportByBCount (hlist, totalbugs): - hlist.sort (CompareBCount) - count = reported = 0 - BeginReport ('Developers with the most bugs fixed') - for h in hlist: - bcount = len (h.bugsfixed) - if bcount > 0: - ReportLine (h.name, bcount, Pct(bcount, totalbugs)) - reported += bcount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of bugs' % Pct(reported, totalbugs)) - -def CompareLChanged (h1, h2): - return max(h2.added, h2.removed) - max(h1.added, h1.removed) - -def ReportByLChanged (hlist, totalchanged): - hlist.sort (CompareLChanged) - count = reported = 0 - BeginReport ('Developers with the most changed lines') - for h in hlist: - pcount = len (h.patches) - changed = max(h.added, h.removed) - delta = h.added - h.removed - if (h.added + h.removed) > 0: - ReportLine (h.name, changed, Pct(changed, totalchanged)) - reported += changed - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of changes' % (Pct(reported, totalchanged), )) - -def CompareLRemoved (h1, h2): - return (h2.removed - h2.added) - (h1.removed - h1.added) - -def ReportByLRemoved (hlist, totalremoved): - hlist.sort (CompareLRemoved) - count = reported = 0 - BeginReport ('Developers with the most lines removed') - for h in hlist: - pcount = len (h.patches) - changed = max(h.added, h.removed) - delta = h.added - h.removed - if delta < 0: - ReportLine (h.name, -delta, Pct(-delta, totalremoved)) - reported += -delta - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of changes' % (Pct(reported, totalremoved), )) - -def CompareEPCount (e1, e2): - return e2.count - e1.count - -def ReportByPCEmpl (elist, cscount): - elist.sort (CompareEPCount) - count = total_pcount = 0 - BeginReport ('Top changeset contributors by employer') - for e in elist: - if e.count != 0: - ReportLine (e.name, e.count, Pct(e.count, cscount)) - total_pcount += e.count - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of changesets' % (Pct(total_pcount, cscount), )) - -def CompareEBCount (e1, e2): - return len (e2.bugsfixed) - len (e1.bugsfixed) - -def ReportByBCEmpl (elist, totalbugs): - elist.sort (CompareEBCount) - count = reported = 0 - BeginReport ('Top bugs fixed by employer') - for e in elist: - if len(e.bugsfixed) != 0: - ReportLine (e.name, len(e.bugsfixed), Pct(len(e.bugsfixed), totalbugs)) - reported += len(e.bugsfixed) - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of bugs' % (Pct(reported, totalbugs, ))) - -def CompareELChanged (e1, e2): - return e2.changed - e1.changed - -def ReportByELChanged (elist, totalchanged): - elist.sort (CompareELChanged) - count = reported = 0 - BeginReport ('Top lines changed by employer') - for e in elist: - if e.changed != 0: - ReportLine (e.name, e.changed, Pct(e.changed, totalchanged)) - reported += e.changed - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of changes' % (Pct(reported, totalchanged), )) - - - -def CompareSOBs (h1, h2): - return len (h2.signoffs) - len (h1.signoffs) - -def ReportBySOBs (hlist): - hlist.sort (CompareSOBs) - totalsobs = 0 - for h in hlist: - totalsobs += len (h.signoffs) - count = reported = 0 - BeginReport ('Developers with the most signoffs (total %d)' % totalsobs) - for h in hlist: - scount = len (h.signoffs) - if scount > 0: - ReportLine (h.name, scount, Pct(scount, totalsobs)) - reported += scount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of signoffs' % (Pct(reported, totalsobs), )) - -# -# Reviewer reporting. -# -def CompareRevs (h1, h2): - return len (h2.reviews) - len (h1.reviews) - -def ReportByRevs (hlist): - hlist.sort (CompareRevs) - totalrevs = 0 - for h in hlist: - totalrevs += len (h.reviews) - count = reported = 0 - BeginReport ('Developers with the most reviews (total %d)' % totalrevs) - for h in hlist: - scount = len (h.reviews) - if scount > 0: - ReportLine (h.name, scount, Pct(scount, totalrevs)) - reported += scount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of reviews' % (Pct(reported, totalrevs), )) - -def CompareRevsEmpl (e1, e2): - return len (e2.reviews) - len (e1.reviews) - -def ReportByRevsEmpl (elist): - elist.sort (CompareRevsEmpl) - totalrevs = 0 - for e in elist: - totalrevs += len (e.reviews) - count = reported = 0 - BeginReport ('Top reviewers by employer (total %d)' % totalrevs) - for e in elist: - scount = len (e.reviews) - if scount > 0: - ReportLine (e.name, scount, Pct(scount, totalrevs)) - reported += scount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of reviews' % (Pct(reported, totalrevs), )) - -# -# tester reporting. -# -def CompareTests (h1, h2): - return len (h2.tested) - len (h1.tested) - -def ReportByTests (hlist): - hlist.sort (CompareTests) - totaltests = 0 - for h in hlist: - totaltests += len (h.tested) - count = reported = 0 - BeginReport ('Developers with the most test credits (total %d)' % totaltests) - for h in hlist: - scount = len (h.tested) - if scount > 0: - ReportLine (h.name, scount, Pct(scount, totaltests)) - reported += scount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of test credits' % (Pct(reported, totaltests), )) - -def CompareTestCred (h1, h2): - return h2.testcred - h1.testcred - -def ReportByTestCreds (hlist): - hlist.sort (CompareTestCred) - totaltests = 0 - for h in hlist: - totaltests += h.testcred - count = reported = 0 - BeginReport ('Developers who gave the most tested-by credits (total %d)' % totaltests) - for h in hlist: - if h.testcred > 0: - ReportLine (h.name, h.testcred, Pct(h.testcred, totaltests)) - reported += h.testcred - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of test credits' % (Pct(reported, totaltests), )) - - - -# -# Reporter reporting. -# -def CompareReports (h1, h2): - return len (h2.reports) - len (h1.reports) - -def ReportByReports (hlist): - hlist.sort (CompareReports) - totalreps = 0 - for h in hlist: - totalreps += len (h.reports) - count = reported = 0 - BeginReport ('Developers with the most report credits (total %d)' % totalreps) - for h in hlist: - scount = len (h.reports) - if scount > 0: - ReportLine (h.name, scount, Pct(scount, totalreps)) - report += scount - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of report credits' % (Pct(reported, totalreps), )) - -def CompareRepCred (h1, h2): - return h2.repcred - h1.repcred - -def ReportByRepCreds (hlist): - hlist.sort (CompareRepCred) - totalreps = 0 - for h in hlist: - totalreps += h.repcred - count = reported = 0 - BeginReport ('Developers who gave the most report credits (total %d)' % totalreps) - for h in hlist: - if h.repcred > 0: - ReportLine (h.name, h.repcred, Pct(h.repcred, totalreps)) - reported += h.repcred - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of report credits' % (Pct(reported, totalreps), )) - -# -# Versions. -# -def CompareVersionCounts (h1, h2): - if h1.versions and h2.versions: - return len (h2.versions) - len (h1.versions) - if h2.versions: - return 1 - if h1.versions: - return -1 - return 0 - -def MissedVersions (hv, allv): - missed = [v for v in allv if v not in hv] - missed.reverse () - return ' '.join (missed) - -def ReportVersions (hlist): - hlist.sort (CompareVersionCounts) - BeginReport ('Developers represented in the most kernel versions') - count = 0 - allversions = hlist[0].versions - for h in hlist: - ReportLineStr (h.name, len (h.versions), MissedVersions (h.versions, allversions)) - count += 1 - if count >= ListCount: - break - EndReport () - - -def CompareESOBs (e1, e2): - return e2.sobs - e1.sobs - -def ReportByESOBs (elist): - elist.sort (CompareESOBs) - totalsobs = 0 - for e in elist: - totalsobs += e.sobs - count = reported = 0 - BeginReport ('Employers with the most signoffs (total %d)' % totalsobs) - for e in elist: - if e.sobs > 0: - ReportLine (e.name, e.sobs, Pct(e.sobs, totalsobs)) - reported += e.sobs - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of signoffs' % (Pct(reported, totalsobs), )) - -def CompareHackers (e1, e2): - return len (e2.hackers) - len (e1.hackers) - -def ReportByEHackers (elist): - elist.sort (CompareHackers) - totalhackers = 0 - for e in elist: - totalhackers += len (e.hackers) - count = reported = 0 - BeginReport ('Employers with the most hackers (total %d)' % totalhackers) - for e in elist: - nhackers = len (e.hackers) - if nhackers > 0: - ReportLine (e.name, nhackers, Pct(nhackers, totalhackers)) - reported += nhackers - count += 1 - if count >= ListCount: - break - EndReport ('Covers %f%% of hackers' % (Pct(reported, totalhackers), )) - - -def DevReports (hlist, totalchanged, cscount, totalremoved): - ReportByPCount (hlist, cscount) - ReportByLChanged (hlist, totalchanged) - ReportByLRemoved (hlist, totalremoved) - #ReportBySOBs (hlist) - #ReportByRevs (hlist) - #ReportByTests (hlist) - #ReportByTestCreds (hlist) - #ReportByReports (hlist) - #ReportByRepCreds (hlist) - -def EmplReports (elist, totalchanged, cscount): - ReportByPCEmpl (elist, cscount) - ReportByELChanged (elist, totalchanged) - #ReportByESOBs (elist) - ReportByEHackers (elist) - -def DevBugReports (hlist, totalbugs): - ReportByBCount (hlist, totalbugs) - -def EmplBugReports (elist, totalbugs): - ReportByBCEmpl (elist, totalbugs) - -def DevReviews (hlist, totalreviews): - ReportByRevs (hlist) - -def EmplReviews (elist, totalreviews): - ReportByRevsEmpl (elist) - -# -# Who are the unknown hackers? -# -def IsUnknown(h): - empl = h.employer[0][0][1].name - return h.email[0] == empl or empl == '(Unknown)' - -def ReportUnknowns(hlist, cscount): - # - # Trim the list to just the unknowns; try to work properly whether - # mapping to (Unknown) is happening or not. - # - ulist = [ h for h in hlist if IsUnknown(h) ] - ulist.sort(ComparePCount) - count = 0 - BeginReport('Developers with unknown affiliation') - for h in ulist: - pcount = len(h.patches) - if pcount > 0: - ReportLine(h.name, pcount, (pcount*100.0)/cscount) - count += 1 - if count >= ListCount: - break - EndReport() - -def ReportByFileType (hacker_list): - total = {} - total_by_hacker = {} - - BeginReport ('Developer contributions by type') - for h in hacker_list: - by_hacker = {} - for patch in h.patches: - # Get a summary by hacker - for (filetype, (added, removed)) in patch.filetypes.iteritems(): - if by_hacker.has_key(filetype): - by_hacker[filetype][patch.ADDED] += added - by_hacker[filetype][patch.REMOVED] += removed - else: - by_hacker[filetype] = [added, removed] - - # Update the totals - if total.has_key(filetype): - total[filetype][patch.ADDED] += added - total[filetype][patch.REMOVED] += removed - else: - total[filetype] = [added, removed, []] - - # Print a summary by hacker - print h.name - for filetype, counters in by_hacker.iteritems(): - print '\t', filetype, counters - h_added = by_hacker[filetype][patch.ADDED] - h_removed = by_hacker[filetype][patch.REMOVED] - total[filetype][2].append ([h.name, h_added, h_removed]) - - # Print the global summary - BeginReport ('Contributions by type and developers') - for filetype, (added, removed, hackers) in total.iteritems(): - print filetype, added, removed - for h, h_added, h_removed in hackers: - print '\t%s: [%d, %d]' % (h, h_added, h_removed) - - # Print the very global summary - BeginReport ('General contributions by type') - for filetype, (added, removed, hackers) in total.iteritems(): - print filetype, added, removed diff --git a/sample-config/aliases b/sample-config/aliases deleted file mode 100644 index 8cd50db..0000000 --- a/sample-config/aliases +++ /dev/null @@ -1,5 +0,0 @@ -# -# This is the email aliases file, mapping secondary addresses -# onto a single, canonical address. -# -corbet@eklektix.com corbet@lwn.net diff --git a/sample-config/domain-map b/sample-config/domain-map deleted file mode 100644 index 28ff88a..0000000 --- a/sample-config/domain-map +++ /dev/null @@ -1,308 +0,0 @@ -# -# Here is a set of mappings of domain names onto employer names. -# -5etech.eu 5e Technologies -8d.com 8D Technologies -aconex.com Aconex -adaptec.com Adaptec -addi-data.com ADDI-DATA GmbH -aist.go.jp National Institute of Advanced Industrial Science and Technology -akamai.com Akamai Technologies -amd.com AMD -am.sony.com Sony -anagramm.de Anagramm GmbH -analog.com Analog Devices -android.com Google -arastra.com Arastra Inc -areca.com.tw Areca -arm.com ARM -artecdesign.ee Artec Design -arvoo.nl ARVOO Engineering -atmel.com Atmel -atomide.com Atomide -avtrex.com Avtrex -axis.com Axis Communications -azingo.com Azingo -balabit.com BalaBit -balabit.hu BalaBit -baslerweb.com Basler Vision Technologies -bay.ws Bay -bitwagon.com BitWagon Software -bivio.net Bivio Networking -bluegiga.com Bluegiga -bluehost.com Bluehost -bluewatersys.com Bluewater Systems -boeing.com Boeing -boundarydevices.com Boundary Devices -broadcom.com Broadcom -brontes3d.com Brontes Technologies -bull.net Bull SAS -cam.ac.uk University of Cambridge -ccur.com Concurrent Computer Corporation -cdi.cz CDI.CZ -celestrius.com Celestrius -celunite.com Azingo -centtech.com Centaur Technology -chelsio.com Chelsio -cisco.com Cisco -citi.umich.edu Univ. of Michigan CITI -citrix.com Citrix -clustcom.com Cluster Computing -clusterfs.com Sun -cn.fujitsu.com Fujitsu -compulab.co.il CompuLab -computergmbh.de CC Computer Consultants -comx.dk ComX Networks -conectiva.com.br Mandriva -coraid.com Coraid -cosmosbay.com Cosmosbay~Vectis -cozybit.com cozybit -cray.com Cray -cse-semaphore.com CSE Semaphore -csr.com CSR -cyberguard.com Secure Computing -cybernetics.com Cybernetics -data.slu.se Uppsala University -dave.eu Dave S.r.l. -de.bosch.com Bosch -dell.com Dell -denx.de DENX Software Engineering -devicescape.com Devicescape -digi.com Digi International -dti2.net DTI2 - Desarrollo de la tecnologia de las comunicaciones -edesix.com Edesix Ltd -einstruction.com eInstruction -eke.fi EKE-Electronics -elandigitalsystems.com Elan Digital Systems -elpa.it ELPA -embeddedalley.com Embedded Alley Solutions -emcraft.com EmCraft Systems -empirix.com Empirix -emulex.com Emulex -endrelia.com Endrelia -enea.com ENEA AB -ericsson.com Ericsson -escient.com Escient -esd-electronics.com ESD Electronics -esd.eu ESD Electronics -fastmail.fm FastMail.FM -fixstars.com Fixstars Technologies -free-electrons.com Free Electrons -freescale.com Freescale -fujitsu.com Fujitsu -gaisler.com Gaisler Research -gefanuc.com GE Fanuc -geomatys.fr Geomatys -google.com Google -gvs.co.yu GVS -hansenpartnership.com Hansen Partnership -harris.com Harris Corporation -hauppauge.com Hauppauge -hermes-softlab.com HERMES SoftLab -hevs.ch HES-SO Valais Wallis -highpoint-tech.com HighPoint Technologies -hitachi.co.jp Hitachi -hitachi.com Hitachi -hitachisoft.jp Hitachi -hp.com HP -huawei.com Huawei Technologies -hvsistemas.es HV Sistemas -ibm.com IBM -ibp.de ipb (uk) Ltd. -icplus.com.tw IC Plus -igel.co.jp igel -indt.org.br INdT -indt.org INdT -inl.fr INL -inria.fr INRIA -intel.com Intel -intellitree.com IntelliTree Solutions -intra2net.com Intra2net AG -iram.es IRAM -jmicron.com jmicron.com -jp.fujitsu.com Fujitsu -katalix.com Katalix Systems -keyspan.com InnoSys -laptop.org OLPC -laurelnetworks.com ECI Telecom -linutronix.de linutronix -linuxant.com Linuxant -linux-foundation.org Linux Foundation -linx.net London Internet Exchange -lippert-at.de LiPPERT Embedded Computers GmbH -lippertembedded.de LiPPERT Embedded Computers GmbH -llnl.gov Lawrence Livermore National Laboratory -lnxi.com Linux Networx -logitech.com Logitech -lsi.com LSI Logic -lsil.com LSI Logic -lwn.net LWN.net -macqel.be Macq Electronique -macqel.com Macq Electronique -mandriva.com Mandriva -mandriva.com.br Mandriva -marvell.com Marvell -mellanox.co.il Mellanox -melware.de Cytronics & Melware -mev.co.uk MEV Limited -microgate.com MicroGate Systems -mips.com MIPS -miraclelinux.com Miracle Linux -mn-solutions.de M&N Solutions -moreton.com.au Secure Computing -motorola.com Motorola -movial.fi Movial -mpc-data.co.uk MPC Data -msi.com.tw Micro-Star International -mvista.com MontaVista -myri.com Myricom -namesys.com NameSys -nec.co.jp NEC -nec.com NEC -netapp.com NetApp -neteffect.com NetEffect -neterion.com Neterion -netxen.com NetXen -niasdigital.com Nias Digital -niif.hu NIIF Institute -nokia.com Nokia -nomadgs.com Nomad Global Solutions -nortel.com Nortel -novell.com Novell -nrl.navy.mil U.S. Naval Research Laboratory -ntt.co.jp NTT -ntts.co.jp NTT -nuovasystems.com Nuova Systems -nvidia.com NVidia -nvtl.com Novatel Wireless -obsidianresearch.com Obsidian Research -oce.com Océ Technologies -octant-fr.com Octant Informatique -onelan.co.uk ONELAN -onstor.com Onstor -openedhand.com OpenedHand -opengridcomputing.com Open Grid Computing -openmoko.org OpenMoko -openvz.org Parallels -oracle.com Oracle -ornl.gov Oak Ridge National Laboratory -osdl.org Linux Foundation -ozlabs.org IBM -panasas.com Panasas -panasonic.com Panasonic -papercut.bz PaperCut Software -papercut.com PaperCut Software -parallels.com Parallels -pasemi.com PA Semi Corporation -pcs.de PCS Systemtechnik -pengutronix.de Pengutronix -pheonix.com Phoeonix -philosys.de Philosys Software -pikatech.com PIKA Technologies -pikron.com PiKRON s.r.o -pmc-sierra.com PMC-Sierra -profusion.mobi ProFUSION -promise.com Promise Technology -promwad.com Promwad -protei.ru Protei ltd -qlogic.com QLogic -qumranet.com Qumranet -rdc.com.tw RDC Semiconductor -realtek.com.tw Realtek -redhat.com Red Hat -reliablesolutions.de reliablesolutions -renesas.com Renesas Technology -road.de ROAD -rockwell.com Rockwell -rojant.com Rajant -rowland.harvard.edu Rowland Institute, Harvard -rtr.ca Real-Time Remedies -sagem.com Sagem Defense Sécurité -samsung.com Samsung -sanpeople.com SANPeople -savantav.com Savant Systems -secretlab.ca Secretlab -securecomputing.com Secure Computing -semihalf.com Semihalf Embedded Systems -sf-tec.de Science Fiction Technologies -sgi.com SGI -sicortex.com Sicortex -siemens.com Siemens -sierrawireless.com Sierra Wireless -sigma-chemnitz.de SIGMA Chemnitz -snapgear.com Snapgear -softwarefreedom.org Software Freedom Law Center -solarflare.com Solarflare Communications -solidboot.com Solid Boot Ltd. -sony.co.jp Sony -sonycom.com Sony -sony.com Sony -southpole.se South Pole AB -spidernet.net SpiderNet Services -starentnetworks.com Starent Networks -st.com ST Microelectronics -steeleye.com SteelEye -stlinux.com ST Microelectronics -sun.com Sun -suse.com Novell -suse.cz Novell -suse.de Novell -sw.ru Parallels -swsoft.com Parallels -tapsys.com Tapestry Systems -taskit.de taskit -telargo.com Telargo -teleca.com Teleca -tensilica.com Tensilica -terascala.com Terascala -thinktube.com Thinktube -thot-soft.com Thot-Soft 2002 -ti.com Texas Instruments -til-technologies.fr TIL Technologies -tls.msk.ru Telecom-Service -toptica.com TOPTICA Photonics -toshiba.co.jp Toshiba -total-knowledge.com Total Knowledge -towertech.it Tower Technologies -tpi.com TriplePoint -transitive.com Transitive -transmode.se Transmode Systems -tresys.com Tresys -trinnov.com Trinnov Audio -tripeaks.co.jp Tripeaks -trustedcs.com Trusted Computer Solutions -tundra.com Tundra Semiconductor -tungstengraphics.com Tungsten Graphics -tycho.nsa.gov US National Security Agency -ubuntu.com Canonical -uhulinux.hu UHU-Linux -unicontrol.de Unicontrol Systemtechnik -unisys.com Unisys -uq.edu.au University of Queensland -us.ibm.com IBM -valinux.co.jp VA Linux Systems Japan -verismonetworks.com Verismo -veritas.com Veritas -vernier.com Vernier Software and Technology -via.com.tw Via -vivecode.com Vivecode -vmware.com VMWare -volkswagen.de Volkswagen -voltaire.com Voltaire -vpop.net vpop.net -vt.edu Virginia Tech -vyatta.com Vyatta -wabtec.com Wabtec Railway Electronics -wacom.com Wacom -winbond.com Winbond Electronics -winbond.com.tw Winbond Electronics -wincor-nixdorf.com Wincor Nixdorf -windriver.com Wind River -wipro.com Wipro -wolfsonmicro.com Wolfson Microelectronics -xensource.com XenSource -xes-inc.com Extreme Engineering Solutions -xilinx.com Xilinx -xiv.co.il XIV Information Systems -xivstorage.com XIV Information Systems -yahoo-inc.com Yahoo diff --git a/sample-config/filetypes.txt b/sample-config/filetypes.txt deleted file mode 100644 index e24c396..0000000 --- a/sample-config/filetypes.txt +++ /dev/null @@ -1,362 +0,0 @@ -# -*- coding:utf-8 -*- -# Copyright (C) 2006 Libresoft -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# Authors : Gregorio Robles -# Authors : Germán Póo-Caamaño -# -# This file contains associations parameters regarding filetypes -# (documentation, develompent, multimedia, images...) -# -# format: -# filetype [] -# -# Order: -# The list should keep an order, so filetypes can be counted properly. -# ie. we want ltmain.sh -> 'build' instead of 'code'. -# -# If there is an filetype which is not in order but has values, it will -# be added at the end. -# -order image,translation,ui,multimedia,package,build,code,documentation,devel-doc -# -# -# Code files (headers and the like included -# (most common languages first -# -filetype code \.c$ # C -filetype code \.pc$ # C -filetype code \.ec$ # C -filetype code \.ecp$ # C -filetype code \.C$ # C++ -filetype code \.cpp$ # C++ -filetype code \.c\+\+$ # C++ -filetype code \.cxx$ # C++ -filetype code \.cc$ # C++ -filetype code \.pcc$ # C++ -filetype code \.cpy$ # C++ -filetype code \.h$ # C or C++ header -filetype code \.hh$ # C++ header -filetype code \.hpp$ # C++ header -filetype code \.hxx$ # C++ header -filetype code \.sh$ # Shell -filetype code \.pl$ # Perl -filetype code \.pm$ # Perl -filetype code \.pod$ # Perl -filetype code \.perl$ # Perl -filetype code \.cgi$ # CGI -filetype code \.php$ # PHP -filetype code \.php3$ # PHP -filetype code \.php4$ # PHP -filetype code \.inc$ # PHP -filetype code \.py$ # Python -filetype code \.java$ # Java -filetype code \.class$ # Java Class (or at least a class in some OOPL -filetype code \.ada$ # ADA -filetype code \.ads$ # ADA -filetype code \.adb$ # ADA -filetype code \.pad$ # ADA -filetype code \.s$ # Assembly -filetype code \.S$ # Assembly -filetype code \.asm$ # Assembly -filetype code \.awk$ # awk -filetype code \.cs$ # C# -filetype code \.csh$ # CShell (including tcsh -filetype code \.cob$ # COBOL -filetype code \.cbl$ # COBOL -filetype code \.COB$ # COBOL -filetype code \.CBL$ # COBOL -filetype code \.exp$ # Expect -filetype code \.l$ # (F lex -filetype code \.ll$ # (F lex -filetype code \.lex$ # (F lex -filetype code \.f$ # Fortran -filetype code \.f77$ # Fortran -filetype code \.F$ # Fortran -filetype code \.hs$ # Haskell -filetype code \.lhs$ # Not preprocessed Haskell -filetype code \.el$ # LISP (including Scheme -filetype code \.scm$ # LISP (including Scheme -filetype code \.lsp$ # LISP (including Scheme -filetype code \.jl$ # LISP (including Scheme -filetype code \.ml$ # ML -filetype code \.ml3$ # ML -filetype code \.m3$ # Modula3 -filetype code \.i3$ # Modula3 -filetype code \.m$ # Objective-C -filetype code \.p$ # Pascal -filetype code \.pas$ # Pascal -filetype code \.rb$ # Ruby -filetype code \.sed$ # sed -filetype code \.tcl$ # TCL -filetype code \.tk$ # TCL -filetype code \.itk$ # TCL -filetype code \.y$ # Yacc -filetype code \.yy$ # Yacc -filetype code \.idl$ # CORBA IDL -filetype code \.gnorba$ # GNOME CORBA IDL -filetype code \.oafinfo$ # GNOME OAF -filetype code \.mcopclass$ # MCOP IDL compiler generated class -filetype code \.autoforms$ # Autoform -filetype code \.atf$ # Autoform -filetype code \.gnuplot$ -filetype code \.xs$ # Shared library? Seen a lot of them in gnome-perl -filetype code \.js$ # JavaScript (and who knows, maybe more -filetype code \.patch$ -filetype code \.diff$ # Sometimes patches appear this way -filetype code \.ids$ # Not really sure what this means -filetype code \.upd$ # ¿¿¿??? (from Kcontrol -filetype code $.ad$ # ¿¿¿??? (from Kdisplay and mc -filetype code $.i$ # Appears in the kbindings for Qt -filetype code $.pri$ # from Qt -filetype code \.schema$ # Not really sure what this means -filetype code \.fd$ # Something to do with latex -filetype code \.cls$ # Something to do with latex -filetype code \.pro$ # Postscript generation -filetype code \.ppd$ # PDF generation -filetype code \.dlg$ # Not really sure what this means -filetype code \.plugin$ # Plug-in file -filetype code \.dsp # Microsoft Developer Studio Project File -filetype code \.vim$ # vim syntax file -filetype code \.trm$ # gnuplot term file -filetype code \.font$ # Font mapping -filetype code \.ccg$ # C++ files - Found in gtkmm* -filetype code \.hg$ # C++ headers - Found in gtkmm* -filetype code \.dtd # XML Document Type Definition -filetype code \.bat # DOS batch files -filetype code \.vala # Vala -filetype code \.py\.in$ -filetype code \.rhtml$ # eRuby -filetype code \.sql$ # SQL script -# -# -# Development documentation files (for hacking generally -# -filetype devel-doc ^readme.*$ -filetype devel-doc ^changelog.* -filetype devel-doc ^todo.*$ -filetype devel-doc ^credits.*$ -filetype devel-doc ^authors.*$ -filetype devel-doc ^changes.*$ -filetype devel-doc ^news.*$ -filetype devel-doc ^install.*$ -filetype devel-doc ^hacking.*$ -filetype devel-doc ^copyright.*$ -filetype devel-doc ^licen(s|c)e.*$ -filetype devel-doc ^copying.*$ -filetype devel-doc manifest$ -filetype devel-doc faq$ -filetype devel-doc building$ -filetype devel-doc howto$ -filetype devel-doc design$ -filetype devel-doc \.files$ -filetype devel-doc files$ -filetype devel-doc subdirs$ -filetype devel-doc maintainers$ -filetype devel-doc developers$ -filetype devel-doc contributors$ -filetype devel-doc thanks$ -filetype devel-doc releasing$ -filetype devel-doc test$ -filetype devel-doc testing$ -filetype devel-doc build$ -filetype devel-doc comments?$ -filetype devel-doc bugs$ -filetype devel-doc buglist$ -filetype devel-doc problems$ -filetype devel-doc debug$ -filetype devel-doc hacks$ -filetype devel-doc hacking$ -filetype devel-doc versions?$ -filetype devel-doc mappings$ -filetype devel-doc tips$ -filetype devel-doc ideas?$ -filetype devel-doc spec$ -filetype devel-doc compiling$ -filetype devel-doc notes$ -filetype devel-doc missing$ -filetype devel-doc done$ -filetype devel-doc \.omf$ # XML-based format used in GNOME -filetype devel-doc \.lsm$ -filetype devel-doc ^doxyfile$ -filetype devel-doc \.kdevprj$ -filetype devel-doc \.directory$ -filetype devel-doc \.dox$ -filetype devel-doc \.doap$ -# -# -# Building, compiling, configuration and CVS admin files -# -filetype build \.in.*$ -filetype build configure.*$ -filetype build makefile.*$ -filetype build config\.sub$ -filetype build config\.guess$ -filetype build config\.status$ -filetype build ltmain\.sh$ -filetype build autogen\.sh$ -filetype build config$ -filetype build conf$ -filetype build cvsignore$ -filetype build \.cfg$ -filetype build \.m4$ -filetype build \.mk$ -filetype build \.mak$ -filetype build \.make$ -filetype build \.mbx$ -filetype build \.protocol$ -filetype build \.version$ -filetype build mkinstalldirs$ -filetype build install-sh$ -filetype build rules$ -filetype build \.kdelnk$ -filetype build \.menu$ -filetype build linguas$ # Build translations -filetype build potfiles.*$ # Build translations -filetype build \.shlibs$ # Shared libraries -# filetype build %debian% -# filetype build %specs/% -filetype build \.spec$ # It seems theyre necessary for RPM build -filetype build \.def$ # build bootstrap for DLLs on win32 -# -# -# Documentation files -# -# filetype documentation doc/% -# filetype documentation %HOWTO% -filetype documentation \.html$ -filetype documentation \.txt$ -filetype documentation \.ps(\.gz|\.bz2)?$ -filetype documentation \.dvi(\.gz|\.bz2)?$ -filetype documentation \.lyx$ -filetype documentation \.tex$ -filetype documentation \.texi$ -filetype documentation \.pdf(\.gz|\.bz2)?$ -filetype documentation \.djvu$ -filetype documentation \.epub$ -filetype documentation \.sgml$ -filetype documentation \.docbook$ -filetype documentation \.wml$ -filetype documentation \.xhtml$ -filetype documentation \.phtml$ -filetype documentation \.shtml$ -filetype documentation \.htm$ -filetype documentation \.rdf$ -filetype documentation \.phtm$ -filetype documentation \.tmpl$ -filetype documentation \.ref$ # References -filetype documentation \.css$ -# filetype documentation %tutorial% -filetype documentation \.templates$ -filetype documentation \.dsl$ -filetype documentation \.ent$ -filetype documentation \.xml$ -filetype documentation \.xmi$ -filetype documentation \.xsl$ -filetype documentation \.entities$ -filetype documentation \.[1-7]$ # Man pages -filetype documentation \.man$ -filetype documentation \.manpages$ -filetype documentation \.doc$ -filetype documentation \.rtf$ -filetype documentation \.wpd$ -filetype documentation \.qt3$ -filetype documentation man\d?/.*\.\d$ -filetype documentation \.docs$ -filetype documentation \.sdw$ # OpenOffice.org Writer document -filetype documentation \.odt$ # OpenOffice.org document -filetype documentation \.en$ # Files in English language -filetype documentation \.de$ # Files in German -filetype documentation \.es$ # Files in Spanish -filetype documentation \.fr$ # Files in French -filetype documentation \.it$ # Files in Italian -filetype documentation \.cz$ # Files in Czech -filetype documentation \.page$ # Mallard -filetype documentation \.page.stub$ # Mallard stub -# -# -# Images -# -filetype image \.png$ -filetype image \.jpg$ -filetype image \.jpeg$ -filetype image \.bmp$ -filetype image \.gif$ -filetype image \.xbm$ -filetype image \.eps$ -filetype image \.mng$ -filetype image \.pnm$ -filetype image \.pbm$ -filetype image \.ppm$ -filetype image \.pgm$ -filetype image \.gbr$ -filetype image \.svg$ -filetype image \.fig$ -filetype image \.tif$ -filetype image \.swf$ -filetype image \.svgz$ -filetype image \.shape$ # XML files used for shapes for instance in Kivio -filetype image \.sml$ # XML files used for shapes for instance in Kivio -filetype image \.bdf$ # vfontcap - Vector Font Capability Database (VFlib Version 2 -filetype image \.ico$ -filetype image \.dia$ # We consider .dia as images, I dont want them in unknown -# -# -# Translation files -# -filetype translation \.po$ -filetype translation \.pot$ -filetype translation \.charset$ -filetype translation \.mo$ -# -# -# User interface files -# -filetype ui \.desktop$ -filetype ui \.ui$ -filetype ui \.xpm$ -filetype ui \.xcf$ -filetype ui \.3ds$ -filetype ui \.theme$ -filetype ui \.kimap$ -filetype ui \.glade$ -filetype ui \.gtkbuilder$ -filetype ui rc$ -# -# -# Sound files -# -filetype multimedia \.mp3$ -filetype multimedia \.ogg$ -filetype multimedia \.wav$ -filetype multimedia \.au$ -filetype multimedia \.mid$ -filetype multimedia \.vorbis$ -filetype multimedia \.midi$ -filetype multimedia \.arts$ -# -# -# Packages (yes, there are people who upload packages to the repo) -# -filetype package \.tar$ -filetype package \.tar.gz$ -filetype package \.tar.bz2$ -filetype package \.tar.xz$ -filetype package \.tgz$ -filetype package \.deb$ -filetype package \.rpm$ -filetype package \.srpm$ -filetype package \.ebuild$ diff --git a/sample-config/xorg/gitdm.config-xserver b/sample-config/xorg/gitdm.config-xserver deleted file mode 100644 index 1a3526c..0000000 --- a/sample-config/xorg/gitdm.config-xserver +++ /dev/null @@ -1,23 +0,0 @@ -# -# This is a sample gitdm configuration file for X.org xserver -# - -# -# EmailAliases lets us cope with developers who use more -# than one address. -# -EmailAliases sample-config/aliases - -# -# EmailMap does the main work of mapping addresses onto -# employers. -# -EmailMap sample-config/domain-map - -# -# Use GroupMap to map a file full of addresses to the -# same employer -# -GroupMap sample-config/xorg/group-map-intel Intel -GroupMap sample-config/xorg/group-map-redhat Red Hat -GroupMap sample-config/xorg/group-map-apple Apple diff --git a/sample-config/xorg/group-map-apple b/sample-config/xorg/group-map-apple deleted file mode 100644 index 46e1f04..0000000 --- a/sample-config/xorg/group-map-apple +++ /dev/null @@ -1 +0,0 @@ -jeremyhu@apple.com diff --git a/sample-config/xorg/group-map-intel b/sample-config/xorg/group-map-intel deleted file mode 100644 index 4a2a098..0000000 --- a/sample-config/xorg/group-map-intel +++ /dev/null @@ -1,4 +0,0 @@ -keithp@keithp.com -krh@bitplanet.net -jbarnes@virtuousgeek.org -chris@chris-wilson.co.uk diff --git a/sample-config/xorg/group-map-redhat b/sample-config/xorg/group-map-redhat deleted file mode 100644 index c71b3fd..0000000 --- a/sample-config/xorg/group-map-redhat +++ /dev/null @@ -1 +0,0 @@ -peter.hutterer@who-t.net diff --git a/tests/expected-datelc b/tests/expected-datelc deleted file mode 100644 index f65ea92..0000000 --- a/tests/expected-datelc +++ /dev/null @@ -1,2 +0,0 @@ -2009/12/03 27 27 -2009/12/15 14 41 diff --git a/tests/expected-results.txt b/tests/expected-results.txt deleted file mode 100644 index 049f887..0000000 --- a/tests/expected-results.txt +++ /dev/null @@ -1,46 +0,0 @@ -Processed 10 csets from 4 developers -4 employers found -A total of 24 lines added, 24 removed (delta 0) - -Developers with the most changesets -Martin Nordholts 6 (60.0%) -Random Joe 2 (20.0%) -Line Remover 1 (10.0%) -Punk Rocker 1 (10.0%) - -Developers with the most changed lines -Line Remover 14 (34.1%) -Random Joe 13 (31.7%) -Martin Nordholts 10 (24.4%) -Punk Rocker 1 (2.4%) - -Developers with the most lines removed -Line Remover 14 (58.3%) - -Developers with the most signoffs (total 2) -Martin Nordholts 2 (100.0%) - -Developers with the most reviews (total 0) - -Developers with the most test credits (total 0) - -Developers who gave the most tested-by credits (total 0) - -Developers with the most report credits (total 0) - -Developers who gave the most report credits (total 0) - -Top changeset contributors by employer -enselic@gmail.com 6 (60.0%) -random.joe@example.com 2 (20.0%) -line.remover@bogus.bo 1 (10.0%) -punk.rocker@example.com 1 (10.0%) - -Top lines changed by employer -line.remover@bogus.bo 14 (34.1%) -enselic@gmail.com 13 (31.7%) -random.joe@example.com 13 (31.7%) -punk.rocker@example.com 1 (2.4%) - -Employers with the most signoffs (total 2) -enselic@gmail.com 2 (100.0%) diff --git a/tests/gitdm-tests.py b/tests/gitdm-tests.py deleted file mode 100755 index a68003e..0000000 --- a/tests/gitdm-tests.py +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/python -# - -# -# This code is part of the LWN git data miner. -# -# Copyright 2009 Martin Nordholts -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. - -import unittest, subprocess, os - -class GitdmTests(unittest.TestCase): - - ## - # Setup test fixture. - # - def setUp(self): - self.srcdir = os.getcwd () - self.git_dir = os.path.join (self.srcdir, "tests/testrepo") - if not os.path.exists (self.git_dir): - self.fail ("'" + self.git_dir + "' didn't exist, you probably "+ - "didn't run the test with the source root as the working directory.") - - - ## - # Makes sure that the statistics collected for the test repository - # is the expected statistics. Note that the test must be run with - # the working directory as the source root and with git in the - # PATH. - # - def testResultOutputRegressionTest(self): - - # Build paths - actual_results_path = os.path.join (self.srcdir, "tests/actual-results.txt") - expected_results_path = os.path.join (self.srcdir, "tests/expected-results.txt") - - # Run actual test - self.runOutputFileRegressionTest (expected_results_path, - actual_results_path, - ["-o", actual_results_path]) - - - ## - # Does a regression test on the datelc (data line count) file - # - def testDateLineCountOutputRegressionTest(self): - - # Build paths - actual_datelc_path = os.path.join (self.srcdir, "datelc") - expected_datelc_path = os.path.join (self.srcdir, "tests/expected-datelc") - - # Run actual test - self.runOutputFileRegressionTest (expected_datelc_path, - actual_datelc_path, - ["-D"]) - - - ## - # Run a test, passing path to file with expected output, path to - # file which will countain the actual output, and arguments to - # pass to gitdm. We both make sure the file where the result will - # be put when gitdm is run does not exist beforehand, and we clean - # up after we are done. - # - def runOutputFileRegressionTest(self, expected_output_path, actual_output_path, arguments): - - # Make sure we can safely run the test - self.ensureFileDoesNotExist (actual_output_path) - - try: - # Collect statistics - self.runGitdm (arguments) - - # Make sure we got the result we expected - self.assertFilesEqual (expected_output_path, actual_output_path) - - finally: - # Remove any file we created, also if test fails - self.purgeFile (actual_output_path) - - - ## - # If passed file exists, delete it. - # - def purgeFile(self, filename): - if os.path.exists (filename): - os.remove (filename) - - - ## - # Make sure the file does not exist so we don't risk overwriting - # an important file. - # - def ensureFileDoesNotExist(self, filename): - if os.path.exists (filename): - self.fail ("The file '" + filename + "' exists, failing " - "test to avoid overwriting file.") - - - ## - # Run gitdm on the test repository with the passed arguments. - # - def runGitdm(self, arguments): - git_log_process = subprocess.Popen (["git", "--git-dir", self.git_dir, "log", "-p", "-M"], - stdout=subprocess.PIPE) - gitdm_process = subprocess.Popen (["./gitdm"] + arguments, - stdin=git_log_process.stdout) - gitdm_process.communicate () - - - ## - # Makes sure the files have the same content. - # - def assertFilesEqual(self, file1, file2): - f = open (file1, 'r') - file1_contents = f.read () - f.close () - f = open (file2, 'r') - file2_contents = f.read () - f.close () - self.assertEqual (file1_contents, file2_contents, - "The files '" + file1 + "' and '" + - file2 + "' were not equal!") - - -if __name__ == '__main__': - unittest.main () diff --git a/tests/testrepo/HEAD b/tests/testrepo/HEAD deleted file mode 100644 index cb089cd..0000000 --- a/tests/testrepo/HEAD +++ /dev/null @@ -1 +0,0 @@ -ref: refs/heads/master diff --git a/tests/testrepo/config b/tests/testrepo/config deleted file mode 100644 index 96ecd44..0000000 --- a/tests/testrepo/config +++ /dev/null @@ -1,6 +0,0 @@ -[core] - repositoryformatversion = 0 - filemode = true - bare = true -[gc] - pruneexpire = now diff --git a/tests/testrepo/info/refs b/tests/testrepo/info/refs deleted file mode 100644 index 84de6b6..0000000 --- a/tests/testrepo/info/refs +++ /dev/null @@ -1 +0,0 @@ -2a3beb7042492ce6a0dc88ed59d04633b08b7bbc refs/heads/master diff --git a/tests/testrepo/objects/info/packs b/tests/testrepo/objects/info/packs deleted file mode 100644 index 8638101..0000000 --- a/tests/testrepo/objects/info/packs +++ /dev/null @@ -1,2 +0,0 @@ -P pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.pack - diff --git a/tests/testrepo/objects/pack/pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.idx b/tests/testrepo/objects/pack/pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.idx deleted file mode 100644 index 09c1099..0000000 Binary files a/tests/testrepo/objects/pack/pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.idx and /dev/null differ diff --git a/tests/testrepo/objects/pack/pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.pack b/tests/testrepo/objects/pack/pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.pack deleted file mode 100644 index 14ab4db..0000000 Binary files a/tests/testrepo/objects/pack/pack-f62fb949b32db1bccdc300fc13de20bca92b4c01.pack and /dev/null differ diff --git a/tests/testrepo/packed-refs b/tests/testrepo/packed-refs deleted file mode 100644 index b62e86f..0000000 --- a/tests/testrepo/packed-refs +++ /dev/null @@ -1,2 +0,0 @@ -# pack-refs with: peeled -2a3beb7042492ce6a0dc88ed59d04633b08b7bbc refs/heads/master diff --git a/tools/install_venv.sh b/tools/install_venv.sh deleted file mode 100755 index 70da52f..0000000 --- a/tools/install_venv.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -virtualenv .venv -./tools/with_venv.sh pip install --upgrade -r tools/pip-requires diff --git a/tools/pip-requires b/tools/pip-requires deleted file mode 100644 index 9dc228f..0000000 --- a/tools/pip-requires +++ /dev/null @@ -1 +0,0 @@ -launchpadlib diff --git a/tools/with_venv.sh b/tools/with_venv.sh deleted file mode 100755 index c8d2940..0000000 --- a/tools/with_venv.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -TOOLS=`dirname $0` -VENV=$TOOLS/../.venv -source $VENV/bin/activate && $@ diff --git a/treeplot b/treeplot deleted file mode 100755 index 616d7da..0000000 --- a/treeplot +++ /dev/null @@ -1,333 +0,0 @@ -#!/usr/bin/python -# -# Create a graph of patch flow into the mainline. -# -# This code is part of the LWN git data miner. -# -# Copyright 2007-11 Eklektix, Inc. -# Copyright 2007-11 Jonathan Corbet -# -# This file may be distributed under the terms of the GNU General -# Public License, version 2. -# -import sys -from patterns import patterns - -# -# The various types of commit we understand. -# -class Commit: - def __init__(self, id, parent): - self.id = id - self.parent = parent - self.ismerge = 0 - self.treepriority = 0 -# -# Merges are special -# -class Merge (Commit): - def __init__(self, id, parent): - Commit.__init__(self, id, parent) - self.ismerge = 1 - self.internal = 1 # Two branches within a repo? - self.parents = [ parent ] - - def addparent(self, parentid): - self.parents.append(parentid) - - def addtree(self, tree): - self.tree = tree - self.internal = 0 - -# -# Trees: where the commits come from. -# -class Tree: - def __init__(self, name, url): - self.name = name - self.url = url - self.inputs = [ ] - self.commits = [ ] - - def addcommit(self, id): - self.commits.append(id) - - def addinput(self, tree): - if tree not in self.inputs: - self.inputs.append(tree) - # print '%s -> %s' % (tree.name, self.name) - -Mainline = Tree('Mainline', - 'git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git') -KnownTrees = { Mainline.url: Mainline } - -def NormalizeURL(url): - if url[:4] == 'git:': - return url - if url == '../net-2.6/': - url = 'git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6' - url = url.replace('master.kernel.org:', 'git://git.kernel.org') - if url[-18:] == 'torvalds/linux-2.6': - url += '.git' - if url[:8] == '/pub/scm': - url = 'git://git.kernel.org' + url - return url - -def LookupTree(url): - url = NormalizeURL(url) - try: - return KnownTrees[url] - except KeyError: - tree = Tree(url, url) - KnownTrees[url] = tree - return tree - -# -# We track which tree every commit belongs to. -# -CommitTrees = { } -class CTEntry: - def __init__ (self, tree, priority, path): - self.tree = tree - self.priority = priority - self.path = path - -def AddCommitTree(id, entry): -# print 'add: ', id, '[', -# for tree in entry.path: -# print tree.name, -# print ']' - try: - oldentry = CommitTrees[id] - if entry.priority < oldentry.priority: - CommitTrees[id] = entry - except KeyError: - CommitTrees[id] = entry - - -def LookupCommitTree(id): - try: - return CommitTrees[id] - except KeyError: - print 'Unfound commit %s' % (id) - return CTEntry (Mainline, 0, []) - -# -# Input handling with one-line pushback. -# -SavedLine = None -Input = sys.stdin - -def GetLine(): - global SavedLine - if SavedLine: - ret = SavedLine - SavedLine = None - return ret - return Input.readline() - -def SaveLine(line): - global SavedLine - SavedLine = line - -# -# Pull in a commit and see what it is. -# -def GetCommit(): - # - # Skip junk up to the next commit. - # - while 1: - line = GetLine() - if not line: - return None - m = patterns['commit'].match(line) - if m: - break - - # - # Look at the commit and see how many parents we have. - # - ids = m.group(1).split() - if len(ids) <= 1: - if len(CommitTrees.values()) > 0: - print 'No-Parent commit:', ids[0] - return GetCommit() - print 'Did you run git with --parents?' - print ids - sys.exit(1) - if len(ids) == 2: # Simple commit - return Commit(ids[0], ids[1]) - # - # OK, we have a merge. - # - merge = Merge(ids[0], ids[1]) - for id in ids[2:]: - merge.addparent(id) - # - # We need to figure out what kind of merge it is, so read through the - # descriptive text to the merge line. - # - while 1: - line = GetLine() - if not line: - print 'EOF looking for merge line' - return None - # - # Maybe it's an external merge? - # - m = patterns['ExtMerge'].match(line) - if m: - merge.addtree(LookupTree(m.group(2))) - return merge - # - # OK, maybe it's internal - # - if patterns['IntMerge'].match(line) or patterns['IntMerge2'].match(line): - #print 'Internal:', line[:-1] - merge.internal = 1 - return merge - m = patterns['commit'].match(line) - if m: - print 'Hit next commit (%s) looking for merge line' % (m.group(1)) - SaveLine(line) - return GetCommit() - -# -# Print out a tree and its inputs -# -def PrintTree(tree, indent = ''): - print '%s%4d %s' % (indent, len(tree.commits), tree.name) - for input in tree.inputs: - PrintTree(input, indent + ' ') - -# -# Let's try to build a data structure giving the patch flows. -# -class FlowNode: - def __init__(self, tree): - self.tree = tree - self.inputs = { } - self.commits = 0 - -def BuildFlowTree(): - rootnode = FlowNode(Mainline) - notree = Tree('[No tree]', '') - for centry in CommitTrees.values(): - path = centry.path - if not path: - path = [ notree ] - FillFlowPath(path, rootnode) - return rootnode - -def FillFlowPath(path, node): - node.commits += 1 - if len(path) == 0: - return - next, rest = path[0], path[1:] - try: - nextnode = node.inputs[next.name] - except KeyError: - nextnode = node.inputs[next.name] = FlowNode(next) - return FillFlowPath(rest, nextnode) - -def PrintFlowTree(ftree, indent = ''): - print '%s%3d %s' % (indent, ftree.commits, ftree.tree.name) - inputs = ftree.inputs.values() - inputs.sort(GVSort) - for input in inputs: - PrintFlowTree(input, indent + ' ') - -# -# Something for graphviz -# -GVHeader = '''digraph "runtree" { -graph [ label = "Patch flow into the mainline", - concentrate = true, - nodesep = 0.1, - rankdir = LR ]; -node [shape = polygon, - sides = 4, - height = 0.3 - fontsize = 8]; -''' - - -MainlineCommits = 0 - -def GVTree(ftree): - global MainlineCommits - MainlineCommits = ftree.commits - gvf = open('runtree.gv', 'w') - gvf.write(GVHeader) - inputs = ftree.inputs.values() - inputs.sort(GVSort) - for input in inputs: - GVPrintNode(gvf, input, 'Mainline') - gvf.write('}\n') - -def GVNodeName(treename): - sname = treename.split('/') - if treename.find('kernel.org') >= 0: - return '%s/%s' % (sname[-2], sname[-1]) - sep = treename.find ('://') - if sep > 0: - return treename[sep+3:] - return treename - -def GVSort(n1, n2): - return n2.commits - n1.commits - -def GVPrintNode(gvf, node, parent): - name = GVNodeName(node.tree.name) - gvf.write ('"%s" -> "%s" [taillabel = "%d", labelfontsize = 8' % (name, parent, node.commits)) - gvf.write (', arrowsize = 0.5') - if MainlineCommits/node.commits < 20: - gvf.write(', color = red') - elif MainlineCommits/node.commits < 100: - gvf.write(', color = orange'); - gvf.write(']\n') - inputs = node.inputs.values() - if inputs: - inputs.sort(GVSort) - for input in inputs: - GVPrintNode(gvf, input, name) - -# -# Main code. -# -commit = GetCommit() -ncommits = 0 -while commit: - ncommits += 1 - entry = LookupCommitTree(commit.id) - tree = entry.tree - priority = entry.priority - tree.addcommit(commit.id) - # - # For regular commits, just remember the tree involved - # - if not commit.ismerge: - AddCommitTree(commit.parent, entry) - # - # For merges we have to deal with all the parents. - # - else: - AddCommitTree(commit.parents[0], CTEntry (tree, priority, entry.path)) - if commit.internal: - for p in commit.parents[1:]: - path = entry.path + [tree] - AddCommitTree(p, CTEntry (tree, priority, entry.path)) - else: - for p in commit.parents[1:]: - path = entry.path + [commit.tree] - AddCommitTree(p, CTEntry (commit.tree, priority + 1, path)) - if commit.tree is not Mainline: - tree.addinput(commit.tree) - commit = GetCommit() - -#PrintTree(Mainline) -ftree = BuildFlowTree() -PrintFlowTree(ftree) -GVTree(ftree) -print '%d commits total, %d trees' % (MainlineCommits, len (KnownTrees.keys()))