qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v2] contrib: add a basic gitdm config


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [RFC PATCH v2] contrib: add a basic gitdm config
Date: Fri, 14 Dec 2018 11:51:43 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1

On 12/12/18 11:25 AM, Alex Bennée wrote:
> This is a QEMU specific version of a gitdm config for generating
> reports on the contributor base of the project. I've added enough
> group maps and domain aliases to ensure the current top ten is as
> reflective as it can be. As of this commit running:
> 
>   git log --numstat --since "Last Year" | gitdm -n -l 10
> 
> Reports:
> 
>   Top changeset contributors by employer
>   Red Hat                   3126 (44.0%)
>   Linaro                    1166 (16.4%)
>   (None)                     684 (9.6%)
>   IBM                        348 (4.9%)
>   Virtuozzo                  168 (2.4%)
>   Xilinx                     102 (1.4%)
>   Wave Computing             101 (1.4%)
>   Igalia                      93 (1.3%)
>   Cadence Design Systems      88 (1.2%)
>   SiFive                      59 (0.8%)
> 
>   Top lines changed by employer
>   Red Hat                   143166 (27.9%)
>   Cadence Design Systems    126554 (24.6%)
>   Linaro                    78845 (15.3%)
>   Wave Computing            32263 (6.3%)
>   (None)                    21789 (4.2%)
>   SiFive                    14392 (2.8%)
>   IBM                       12219 (2.4%)
>   Virtuozzo                 10445 (2.0%)
>   CodeWeavers               9179 (1.8%)
>   Xilinx                    4572 (0.9%)
> 
> Signed-off-by: Alex Bennée <address@hidden>
> 
> ---
> v2
>   - use aliases instead of .mailmap
>   - add more companies to domainmap
>   - add more groups to cover non-corporate email
>   - add an individuals group-map for (None)
>   - limit the stats to top ten
> ---
>  contrib/gitdm/aliases               |  27 +++
>  contrib/gitdm/domain-map            |  18 ++
>  contrib/gitdm/filetypes.txt         | 362 ++++++++++++++++++++++++++++
>  contrib/gitdm/group-map-cadence     |   3 +
>  contrib/gitdm/group-map-codeweavers |   1 +
>  contrib/gitdm/group-map-ibm         |   6 +
>  contrib/gitdm/group-map-redhat      |   7 +
>  contrib/gitdm/group-map-wavecomp    |   9 +
>  gitdm.config                        |  48 ++++
>  9 files changed, 481 insertions(+)
>  create mode 100644 contrib/gitdm/aliases
>  create mode 100644 contrib/gitdm/domain-map
>  create mode 100644 contrib/gitdm/filetypes.txt
>  create mode 100644 contrib/gitdm/group-map-cadence
>  create mode 100644 contrib/gitdm/group-map-codeweavers
>  create mode 100644 contrib/gitdm/group-map-ibm
>  create mode 100644 contrib/gitdm/group-map-redhat
>  create mode 100644 contrib/gitdm/group-map-wavecomp
>  create mode 100644 gitdm.config
> 
> diff --git a/contrib/gitdm/aliases b/contrib/gitdm/aliases
> new file mode 100644
> index 0000000000..07fd3391a5
> --- /dev/null
> +++ b/contrib/gitdm/aliases
> @@ -0,0 +1,27 @@
> +#
> +# This is the email aliases file, mapping secondary addresses
> +# onto a single, canonical address. Duplicates some info from .mailmap
> +#
> +
> +# weird commits
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> address@hidden address@hidden
> +
> +# There is also a:
> +#    (no author) <(no author)@c046a42c-6fe2-441c-8c8c-71466251a162>
> +# for the cvs2svn initialization commit e63c3dc74bf.
> +
> +# Next, translate a few commits where mailman rewrote the From: line due
> +# to strict SPF, although we prefer to avoid adding more entries like that.
> +"Ed Swierk via Qemu-devel" address@hidden
> +"Ian McKellar via Qemu-devel" address@hidden
> +"Julia Suvorova via Qemu-devel" address@hidden
> +"Justin Terry (VM) via Qemu-devel" address@hidden
> diff --git a/contrib/gitdm/domain-map b/contrib/gitdm/domain-map
> new file mode 100644
> index 0000000000..7caf7c6332
> --- /dev/null
> +++ b/contrib/gitdm/domain-map
> @@ -0,0 +1,18 @@
> +#
> +# QEMU gitdm domain-map
> +#
> +# This maps email domains to nice easy to read company names
> +#
> +
> +amd.com         AMD
> +ibm.com         IBM
> +igalia.com      Igalia
> +ispras.ru       Institute for System Programming of RAS
> +linaro.org      Linaro
> +oracle.com      Oracle
> +redhat.com      Red Hat
> +siemens.com     Siemens
> +sifive.com      SiFive
> +suse.de         SUSE
> +virtuozzo.com   Virtuozzo
> +xilinx.com      Xilinx
> diff --git a/contrib/gitdm/filetypes.txt b/contrib/gitdm/filetypes.txt
> new file mode 100644
> index 0000000000..e24c396b48
> --- /dev/null
> +++ b/contrib/gitdm/filetypes.txt
> @@ -0,0 +1,362 @@
> +# -*- 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 <address@hidden>
> +# Authors : Germán Póo-Caamaño <address@hidden>
> +#
> +# This file contains associations parameters regarding filetypes
> +# (documentation, develompent, multimedia, images...)
> +#
> +# format:
> +# filetype <type> <regex> [<comment>]
> +#
> +# 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/contrib/gitdm/group-map-cadence b/contrib/gitdm/group-map-cadence
> new file mode 100644
> index 0000000000..ab97dd2fc3
> --- /dev/null
> +++ b/contrib/gitdm/group-map-cadence
> @@ -0,0 +1,3 @@
> +# Cadence Design Systems
> +
> address@hidden
> diff --git a/contrib/gitdm/group-map-codeweavers 
> b/contrib/gitdm/group-map-codeweavers
> new file mode 100644
> index 0000000000..c4803489e2
> --- /dev/null
> +++ b/contrib/gitdm/group-map-codeweavers
> @@ -0,0 +1 @@
> address@hidden
> diff --git a/contrib/gitdm/group-map-ibm b/contrib/gitdm/group-map-ibm
> new file mode 100644
> index 0000000000..b66db5f4a8
> --- /dev/null
> +++ b/contrib/gitdm/group-map-ibm
> @@ -0,0 +1,6 @@
> +#
> +# Some IBM contributors submit via another domain
> +#
> +
> address@hidden
> address@hidden
> diff --git a/contrib/gitdm/group-map-redhat b/contrib/gitdm/group-map-redhat
> new file mode 100644
> index 0000000000..252742d131
> --- /dev/null
> +++ b/contrib/gitdm/group-map-redhat
> @@ -0,0 +1,7 @@
> +#
> +# RedHat contributors using non-corporate email
> +#
> +
> address@hidden
> address@hidden

Cc'ing Laurent, I understood he manages the commit signed under his
personal email during his hobbyist time.

> address@hidden
> diff --git a/contrib/gitdm/group-map-wavecomp 
> b/contrib/gitdm/group-map-wavecomp
> new file mode 100644
> index 0000000000..772856bca8
> --- /dev/null
> +++ b/contrib/gitdm/group-map-wavecomp
> @@ -0,0 +1,9 @@
> +#
> +# Wave Computing acquired MIPS in June 2018 from imgtec
> +#
> +
> address@hidden
> address@hidden
> address@hidden
> address@hidden
> address@hidden
> diff --git a/gitdm.config b/gitdm.config
> new file mode 100644
> index 0000000000..69e5223d90
> --- /dev/null
> +++ b/gitdm.config
> @@ -0,0 +1,48 @@
> +#
> +# This is the gitdm configuration file for QEMU.
> +#
> +# It is to be used with LWN's git dataminer tool for generating
> +# reports about development activity in the QEMU repo. The LWN gitdm
> +# tool can be found at:
> +#
> +#   git://git.lwn.net/gitdm.git
> +#
> +# A run to generate a report for the last year of activity would be
> +#
> +#     $ git-log --numstat -M v2.12.0..v3.0.0 | gitdm -n -l 16
> +#
> +
> +# EmailAliases lets us cope with developers who use more
> +# than one address or have changed addresses. This duplicates some of
> +# the information in the existing .mailmap but in a slightly different
> +# form.
> +#
> +EmailAliases contrib/gitdm/aliases
> +
> +#
> +# EmailMap does the main work of mapping addresses onto
> +# employers.
> +#
> +EmailMap contrib/gitdm/domain-map
> +
> +#
> +# Use GroupMap to map a file full of addresses to the
> +# same employer. This is used for people that don't post from easily
> +# identifiable corportate emails.
> +#
> +
> +GroupMap contrib/gitdm/group-map-redhat Red Hat
> +GroupMap contrib/gitdm/group-map-wavecomp Wave Computing
> +GroupMap contrib/gitdm/group-map-cadence Cadence Design Systems
> +GroupMap contrib/gitdm/group-map-codeweavers CodeWeavers
> +GroupMap contrib/gitdm/group-map-ibm IBM
> +
> +# Also group together our prolific individual contributors
> +GroupMap contrib/gitdm/group-map-individuals (None)
> +
> +#
> +#
> +# Use FileTypeMap to map a file types to file names using regular
> +# regular expressions.
> +#
> +FileTypeMap contrib/gitdm/filetypes.txt
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]