[PATCH 3 of 8] scripts: extract contributor data out of update-copyrights.py
Thomas De Schampheleire
patrickdepinguin at gmail.com
Mon Mar 18 22:09:28 UTC 2019
# HG changeset patch
# User Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
# Date 1552681272 -3600
# Fri Mar 15 21:21:12 2019 +0100
# Node ID c28490c48e1d51898e9ffb3c5dac112ece7b3821
# Parent 04bfb03e74e911d719bb0917c4b486b158779262
scripts: extract contributor data out of update-copyrights.py
... to allow re-use in other scripts, like shortlog.py.
diff --git a/scripts/contributor_data.py b/scripts/contributor_data.py
new file mode 100644
--- /dev/null
+++ b/scripts/contributor_data.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+
+# Some committers are so wrong that it doesn't point at any contributor:
+total_ignore = set()
+total_ignore.add('*** failed to import extension hggit: No module named hggit')
+total_ignore.add('<>')
+
+# Normalize some committer names where people have contributed under different
+# names or email addresses:
+name_fixes = {}
+name_fixes['Andrew Shadura'] = "Andrej Shadura <andrew at shadura.me>"
+name_fixes['aparkar'] = "Aparkar <aparkar at icloud.com>"
+name_fixes['Aras Pranckevicius'] = "Aras Pranckevičius <aras at unity3d.com>"
+name_fixes['Augosto Hermann'] = "Augusto Herrmann <augusto.herrmann at planejamento.gov.br>"
+name_fixes['"Bradley M. Kuhn" <bkuhn at ebb.org>'] = "Bradley M. Kuhn <bkuhn at sfconservancy.org>"
+name_fixes['dmitri.kuznetsov'] = "Dmitri Kuznetsov"
+name_fixes['Dmitri Kuznetsov'] = "Dmitri Kuznetsov"
+name_fixes['domruf'] = "Dominik Ruf <dominikruf at gmail.com>"
+name_fixes['Ingo von borstel'] = "Ingo von Borstel <kallithea at planetmaker.de>"
+name_fixes['Jan Heylen'] = "Jan Heylen <heyleke at gmail.com>"
+name_fixes['Jason F. Harris'] = "Jason Harris <jason at jasonfharris.com>"
+name_fixes['Jelmer Vernooij'] = "Jelmer Vernooij <jelmer at samba.org>"
+name_fixes['jfh <jason at jasonfharris.com>'] = "Jason Harris <jason at jasonfharris.com>"
+name_fixes['Leonardo Carneiro<leonardo at unity3d.com>'] = "Leonardo Carneiro <leonardo at unity3d.com>"
+name_fixes['leonardo'] = "Leonardo Carneiro <leonardo at unity3d.com>"
+name_fixes['Leonardo <leo at unity3d.com>'] = "Leonardo Carneiro <leonardo at unity3d.com>"
+name_fixes['Les Peabody'] = "Les Peabody <lpeabody at gmail.com>"
+name_fixes['"Lorenzo M. Catucci" <lorenzo at sancho.ccd.uniroma2.it>'] = "Lorenzo M. Catucci <lorenzo at sancho.ccd.uniroma2.it>"
+name_fixes['Lukasz Balcerzak'] = "Łukasz Balcerzak <lukaszbalcerzak at gmail.com>"
+name_fixes['mao <mao at lins.fju.edu.tw>'] = "Ching-Chen Mao <mao at lins.fju.edu.tw>"
+name_fixes['marcink'] = "Marcin Kuźmiński <marcin at python-works.com>"
+name_fixes['Marcin Kuzminski'] = "Marcin Kuźmiński <marcin at python-works.com>"
+name_fixes['nansenat16 at null.tw'] = "nansenat16 <nansenat16 at null.tw>"
+name_fixes['Peter Vitt'] = "Peter Vitt <petervitt at web.de>"
+name_fixes['philip.j at hostdime.com'] = "Philip Jameson <philip.j at hostdime.com>"
+name_fixes['Søren Løvborg'] = "Søren Løvborg <sorenl at unity3d.com>"
+name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>"
+name_fixes['Weblate'] = "<>"
+name_fixes['xpol'] = "xpol <xpolife at gmail.com>"
+name_fixes['Lars <devel at sumpfralle.de>'] = "Lars Kruse <devel at sumpfralle.de>"
+
+# Some committer email address domains that indicate that another entity might
+# hold some copyright too:
+domain_extra = {}
+domain_extra['unity3d.com'] = "Unity Technologies"
+domain_extra['rhodecode.com'] = "RhodeCode GmbH"
+
+# Repository history show some old contributions that traditionally hasn't been
+# listed in about.html - preserve that:
+no_about = set(total_ignore)
+# The following contributors were traditionally not listed in about.html and it
+# seems unclear if the copyright is personal or belongs to a company.
+no_about.add(('Thayne Harbaugh <thayne at fusionio.com>', '2011'))
+no_about.add(('Dies Koper <diesk at fast.au.fujitsu.com>', '2012'))
+no_about.add(('Erwin Kroon <e.kroon at smartmetersolutions.nl>', '2012'))
+no_about.add(('Vincent Caron <vcaron at bearstech.com>', '2012'))
+# These contributors' contributions might be too small to be copyrightable:
+no_about.add(('philip.j at hostdime.com', '2012'))
+no_about.add(('Stefan Engel <mail at engel-stefan.de>', '2012'))
+no_about.add(('Ton Plomp <tcplomp at gmail.com>', '2013'))
+# Was reworked and contributed later and shadowed by other contributions:
+no_about.add(('Sean Farley <sean.michael.farley at gmail.com>', '2013'))
+
+# Preserve contributors listed in about.html but not appearing in repository
+# history:
+other_about = [
+ ("2011", "Aparkar <aparkar at icloud.com>"),
+ ("2010", "RhodeCode GmbH"),
+ ("2011", "RhodeCode GmbH"),
+ ("2012", "RhodeCode GmbH"),
+ ("2013", "RhodeCode GmbH"),
+]
+
+# Preserve contributors listed in CONTRIBUTORS but not appearing in repository
+# history:
+other_contributors = [
+ ("", "Andrew Kesterson <andrew at aklabs.net>"),
+ ("", "cejones"),
+ ("", "David A. Sjøen <david.sjoen at westcon.no>"),
+ ("", "James Rhodes <jrhodes at redpointsoftware.com.au>"),
+ ("", "Jonas Oberschweiber <jonas.oberschweiber at d-velop.de>"),
+ ("", "larikale"),
+ ("", "RhodeCode GmbH"),
+ ("", "Sebastian Kreutzberger <sebastian at rhodecode.com>"),
+ ("", "Steve Romanow <slestak989 at gmail.com>"),
+ ("", "SteveCohen"),
+ ("", "Thomas <thomas at rhodecode.com>"),
+ ("", "Thomas Waldmann <tw-public at gmx.de>"),
+]
diff --git a/scripts/update-copyrights.py b/scripts/update-copyrights.py
--- a/scripts/update-copyrights.py
+++ b/scripts/update-copyrights.py
@@ -38,100 +38,10 @@ When the copyright might belong to a dif
contributor, the legal entity is given credit too.
"""
-
-# Some committers are so wrong that it doesn't point at any contributor:
-total_ignore = set()
-total_ignore.add('*** failed to import extension hggit: No module named hggit')
-total_ignore.add('<>')
-
-# Normalize some committer names where people have contributed under different
-# names or email addresses:
-name_fixes = {}
-name_fixes['Andrew Shadura'] = "Andrej Shadura <andrew at shadura.me>"
-name_fixes['aparkar'] = "Aparkar <aparkar at icloud.com>"
-name_fixes['Aras Pranckevicius'] = "Aras Pranckevičius <aras at unity3d.com>"
-name_fixes['Augosto Hermann'] = "Augusto Herrmann <augusto.herrmann at planejamento.gov.br>"
-name_fixes['"Bradley M. Kuhn" <bkuhn at ebb.org>'] = "Bradley M. Kuhn <bkuhn at sfconservancy.org>"
-name_fixes['dmitri.kuznetsov'] = "Dmitri Kuznetsov"
-name_fixes['Dmitri Kuznetsov'] = "Dmitri Kuznetsov"
-name_fixes['domruf'] = "Dominik Ruf <dominikruf at gmail.com>"
-name_fixes['Ingo von borstel'] = "Ingo von Borstel <kallithea at planetmaker.de>"
-name_fixes['Jan Heylen'] = "Jan Heylen <heyleke at gmail.com>"
-name_fixes['Jason F. Harris'] = "Jason Harris <jason at jasonfharris.com>"
-name_fixes['Jelmer Vernooij'] = "Jelmer Vernooij <jelmer at samba.org>"
-name_fixes['jfh <jason at jasonfharris.com>'] = "Jason Harris <jason at jasonfharris.com>"
-name_fixes['Leonardo Carneiro<leonardo at unity3d.com>'] = "Leonardo Carneiro <leonardo at unity3d.com>"
-name_fixes['leonardo'] = "Leonardo Carneiro <leonardo at unity3d.com>"
-name_fixes['Leonardo <leo at unity3d.com>'] = "Leonardo Carneiro <leonardo at unity3d.com>"
-name_fixes['Les Peabody'] = "Les Peabody <lpeabody at gmail.com>"
-name_fixes['"Lorenzo M. Catucci" <lorenzo at sancho.ccd.uniroma2.it>'] = "Lorenzo M. Catucci <lorenzo at sancho.ccd.uniroma2.it>"
-name_fixes['Lukasz Balcerzak'] = "Łukasz Balcerzak <lukaszbalcerzak at gmail.com>"
-name_fixes['mao <mao at lins.fju.edu.tw>'] = "Ching-Chen Mao <mao at lins.fju.edu.tw>"
-name_fixes['marcink'] = "Marcin Kuźmiński <marcin at python-works.com>"
-name_fixes['Marcin Kuzminski'] = "Marcin Kuźmiński <marcin at python-works.com>"
-name_fixes['nansenat16 at null.tw'] = "nansenat16 <nansenat16 at null.tw>"
-name_fixes['Peter Vitt'] = "Peter Vitt <petervitt at web.de>"
-name_fixes['philip.j at hostdime.com'] = "Philip Jameson <philip.j at hostdime.com>"
-name_fixes['Søren Løvborg'] = "Søren Løvborg <sorenl at unity3d.com>"
-name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>"
-name_fixes['Weblate'] = "<>"
-name_fixes['xpol'] = "xpol <xpolife at gmail.com>"
-name_fixes['Lars <devel at sumpfralle.de>'] = "Lars Kruse <devel at sumpfralle.de>"
-
-
-# Some committer email address domains that indicate that another entity might
-# hold some copyright too:
-domain_extra = {}
-domain_extra['unity3d.com'] = "Unity Technologies"
-domain_extra['rhodecode.com'] = "RhodeCode GmbH"
-
-# Repository history show some old contributions that traditionally hasn't been
-# listed in about.html - preserve that:
-no_about = set(total_ignore)
-# The following contributors were traditionally not listed in about.html and it
-# seems unclear if the copyright is personal or belongs to a company.
-no_about.add(('Thayne Harbaugh <thayne at fusionio.com>', '2011'))
-no_about.add(('Dies Koper <diesk at fast.au.fujitsu.com>', '2012'))
-no_about.add(('Erwin Kroon <e.kroon at smartmetersolutions.nl>', '2012'))
-no_about.add(('Vincent Caron <vcaron at bearstech.com>', '2012'))
-# These contributors' contributions might be too small to be copyrightable:
-no_about.add(('philip.j at hostdime.com', '2012'))
-no_about.add(('Stefan Engel <mail at engel-stefan.de>', '2012'))
-no_about.add(('Ton Plomp <tcplomp at gmail.com>', '2013'))
-# Was reworked and contributed later and shadowed by other contributions:
-no_about.add(('Sean Farley <sean.michael.farley at gmail.com>', '2013'))
-
-# Preserve contributors listed in about.html but not appearing in repository
-# history:
-other_about = [
- ("2011", "Aparkar <aparkar at icloud.com>"),
- ("2010", "RhodeCode GmbH"),
- ("2011", "RhodeCode GmbH"),
- ("2012", "RhodeCode GmbH"),
- ("2013", "RhodeCode GmbH"),
-]
-
-# Preserve contributors listed in CONTRIBUTORS but not appearing in repository
-# history:
-other_contributors = [
- ("", "Andrew Kesterson <andrew at aklabs.net>"),
- ("", "cejones"),
- ("", "David A. Sjøen <david.sjoen at westcon.no>"),
- ("", "James Rhodes <jrhodes at redpointsoftware.com.au>"),
- ("", "Jonas Oberschweiber <jonas.oberschweiber at d-velop.de>"),
- ("", "larikale"),
- ("", "RhodeCode GmbH"),
- ("", "Sebastian Kreutzberger <sebastian at rhodecode.com>"),
- ("", "Steve Romanow <slestak989 at gmail.com>"),
- ("", "SteveCohen"),
- ("", "Thomas <thomas at rhodecode.com>"),
- ("", "Thomas Waldmann <tw-public at gmx.de>"),
-]
-
-
import os
import re
from collections import defaultdict
+import contributor_data
def sortkey(x):
@@ -209,7 +119,7 @@ def insert_entries(
def main():
repo_entries = [
- (year, name_fixes.get(name) or name_fixes.get(name.rsplit('<', 1)[0].strip()) or name)
+ (year, contributor_data.name_fixes.get(name) or contributor_data.name_fixes.get(name.rsplit('<', 1)[0].strip()) or name)
for year, name in
(line.strip().split(' ', 1)
for line in os.popen("""hg log -r '::.' -T '{date(date,"%Y")} {author}\n'""").readlines())
@@ -217,9 +127,9 @@ def main():
insert_entries(
filename='kallithea/templates/about.html',
- all_entries=repo_entries + other_about,
- no_entries=no_about,
- domain_extra=domain_extra,
+ all_entries=repo_entries + contributor_data.other_about,
+ no_entries=contributor_data.no_about,
+ domain_extra=contributor_data.domain_extra,
split_re=r'(?: <li>Copyright © [^\n]*</li>\n)*',
normalize_name=lambda name: name.split('<', 1)[0].strip(),
format_f=lambda years, name: ' <li>Copyright © %s, %s</li>\n' % (nice_years(years, '–', ', '), name),
@@ -227,9 +137,9 @@ def main():
insert_entries(
filename='CONTRIBUTORS',
- all_entries=repo_entries + other_contributors,
- no_entries=total_ignore,
- domain_extra=domain_extra,
+ all_entries=repo_entries + contributor_data.other_contributors,
+ no_entries=contributor_data.total_ignore,
+ domain_extra=contributor_data.domain_extra,
split_re=r'(?: [^\n]*\n)*',
normalize_name=lambda name: name,
format_f=lambda years, name: (' %s%s%s\n' % (name, ' ' if years else '', nice_years(years))),
@@ -238,7 +148,7 @@ def main():
insert_entries(
filename='kallithea/templates/base/base.html',
all_entries=repo_entries,
- no_entries=total_ignore,
+ no_entries=contributor_data.total_ignore,
domain_extra={},
split_re=r'(?<=©) .* (?=by various authors)',
normalize_name=lambda name: '',
More information about the kallithea-general
mailing list