Mercurial > kallithea
changeset 7584:050a94de8e7f
scripts: extract contributor data out of update-copyrights.py
... to allow re-use in other scripts, like shortlog.py.
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
---|---|
date | Fri, 15 Mar 2019 21:21:12 +0100 |
parents | 9d972ac5437b |
children | dc1c9c131466 |
files | scripts/contributor_data.py scripts/update-copyrights.py |
diffstat | 2 files changed, 98 insertions(+), 99 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/contributor_data.py Fri Mar 15 21:21:12 2019 +0100 @@ -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@shadura.me>" +name_fixes['aparkar'] = "Aparkar <aparkar@icloud.com>" +name_fixes['Aras Pranckevicius'] = "Aras Pranckevičius <aras@unity3d.com>" +name_fixes['Augosto Hermann'] = "Augusto Herrmann <augusto.herrmann@planejamento.gov.br>" +name_fixes['"Bradley M. Kuhn" <bkuhn@ebb.org>'] = "Bradley M. Kuhn <bkuhn@sfconservancy.org>" +name_fixes['dmitri.kuznetsov'] = "Dmitri Kuznetsov" +name_fixes['Dmitri Kuznetsov'] = "Dmitri Kuznetsov" +name_fixes['domruf'] = "Dominik Ruf <dominikruf@gmail.com>" +name_fixes['Ingo von borstel'] = "Ingo von Borstel <kallithea@planetmaker.de>" +name_fixes['Jan Heylen'] = "Jan Heylen <heyleke@gmail.com>" +name_fixes['Jason F. Harris'] = "Jason Harris <jason@jasonfharris.com>" +name_fixes['Jelmer Vernooij'] = "Jelmer Vernooij <jelmer@samba.org>" +name_fixes['jfh <jason@jasonfharris.com>'] = "Jason Harris <jason@jasonfharris.com>" +name_fixes['Leonardo Carneiro<leonardo@unity3d.com>'] = "Leonardo Carneiro <leonardo@unity3d.com>" +name_fixes['leonardo'] = "Leonardo Carneiro <leonardo@unity3d.com>" +name_fixes['Leonardo <leo@unity3d.com>'] = "Leonardo Carneiro <leonardo@unity3d.com>" +name_fixes['Les Peabody'] = "Les Peabody <lpeabody@gmail.com>" +name_fixes['"Lorenzo M. Catucci" <lorenzo@sancho.ccd.uniroma2.it>'] = "Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>" +name_fixes['Lukasz Balcerzak'] = "Łukasz Balcerzak <lukaszbalcerzak@gmail.com>" +name_fixes['mao <mao@lins.fju.edu.tw>'] = "Ching-Chen Mao <mao@lins.fju.edu.tw>" +name_fixes['marcink'] = "Marcin Kuźmiński <marcin@python-works.com>" +name_fixes['Marcin Kuzminski'] = "Marcin Kuźmiński <marcin@python-works.com>" +name_fixes['nansenat16@null.tw'] = "nansenat16 <nansenat16@null.tw>" +name_fixes['Peter Vitt'] = "Peter Vitt <petervitt@web.de>" +name_fixes['philip.j@hostdime.com'] = "Philip Jameson <philip.j@hostdime.com>" +name_fixes['Søren Løvborg'] = "Søren Løvborg <sorenl@unity3d.com>" +name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>" +name_fixes['Weblate'] = "<>" +name_fixes['xpol'] = "xpol <xpolife@gmail.com>" +name_fixes['Lars <devel@sumpfralle.de>'] = "Lars Kruse <devel@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@fusionio.com>', '2011')) +no_about.add(('Dies Koper <diesk@fast.au.fujitsu.com>', '2012')) +no_about.add(('Erwin Kroon <e.kroon@smartmetersolutions.nl>', '2012')) +no_about.add(('Vincent Caron <vcaron@bearstech.com>', '2012')) +# These contributors' contributions might be too small to be copyrightable: +no_about.add(('philip.j@hostdime.com', '2012')) +no_about.add(('Stefan Engel <mail@engel-stefan.de>', '2012')) +no_about.add(('Ton Plomp <tcplomp@gmail.com>', '2013')) +# Was reworked and contributed later and shadowed by other contributions: +no_about.add(('Sean Farley <sean.michael.farley@gmail.com>', '2013')) + +# Preserve contributors listed in about.html but not appearing in repository +# history: +other_about = [ + ("2011", "Aparkar <aparkar@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@aklabs.net>"), + ("", "cejones"), + ("", "David A. Sjøen <david.sjoen@westcon.no>"), + ("", "James Rhodes <jrhodes@redpointsoftware.com.au>"), + ("", "Jonas Oberschweiber <jonas.oberschweiber@d-velop.de>"), + ("", "larikale"), + ("", "RhodeCode GmbH"), + ("", "Sebastian Kreutzberger <sebastian@rhodecode.com>"), + ("", "Steve Romanow <slestak989@gmail.com>"), + ("", "SteveCohen"), + ("", "Thomas <thomas@rhodecode.com>"), + ("", "Thomas Waldmann <tw-public@gmx.de>"), +]
--- a/scripts/update-copyrights.py Mon Mar 18 21:34:32 2019 +0100 +++ b/scripts/update-copyrights.py Fri Mar 15 21:21:12 2019 +0100 @@ -38,100 +38,10 @@ 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@shadura.me>" -name_fixes['aparkar'] = "Aparkar <aparkar@icloud.com>" -name_fixes['Aras Pranckevicius'] = "Aras Pranckevičius <aras@unity3d.com>" -name_fixes['Augosto Hermann'] = "Augusto Herrmann <augusto.herrmann@planejamento.gov.br>" -name_fixes['"Bradley M. Kuhn" <bkuhn@ebb.org>'] = "Bradley M. Kuhn <bkuhn@sfconservancy.org>" -name_fixes['dmitri.kuznetsov'] = "Dmitri Kuznetsov" -name_fixes['Dmitri Kuznetsov'] = "Dmitri Kuznetsov" -name_fixes['domruf'] = "Dominik Ruf <dominikruf@gmail.com>" -name_fixes['Ingo von borstel'] = "Ingo von Borstel <kallithea@planetmaker.de>" -name_fixes['Jan Heylen'] = "Jan Heylen <heyleke@gmail.com>" -name_fixes['Jason F. Harris'] = "Jason Harris <jason@jasonfharris.com>" -name_fixes['Jelmer Vernooij'] = "Jelmer Vernooij <jelmer@samba.org>" -name_fixes['jfh <jason@jasonfharris.com>'] = "Jason Harris <jason@jasonfharris.com>" -name_fixes['Leonardo Carneiro<leonardo@unity3d.com>'] = "Leonardo Carneiro <leonardo@unity3d.com>" -name_fixes['leonardo'] = "Leonardo Carneiro <leonardo@unity3d.com>" -name_fixes['Leonardo <leo@unity3d.com>'] = "Leonardo Carneiro <leonardo@unity3d.com>" -name_fixes['Les Peabody'] = "Les Peabody <lpeabody@gmail.com>" -name_fixes['"Lorenzo M. Catucci" <lorenzo@sancho.ccd.uniroma2.it>'] = "Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>" -name_fixes['Lukasz Balcerzak'] = "Łukasz Balcerzak <lukaszbalcerzak@gmail.com>" -name_fixes['mao <mao@lins.fju.edu.tw>'] = "Ching-Chen Mao <mao@lins.fju.edu.tw>" -name_fixes['marcink'] = "Marcin Kuźmiński <marcin@python-works.com>" -name_fixes['Marcin Kuzminski'] = "Marcin Kuźmiński <marcin@python-works.com>" -name_fixes['nansenat16@null.tw'] = "nansenat16 <nansenat16@null.tw>" -name_fixes['Peter Vitt'] = "Peter Vitt <petervitt@web.de>" -name_fixes['philip.j@hostdime.com'] = "Philip Jameson <philip.j@hostdime.com>" -name_fixes['Søren Løvborg'] = "Søren Løvborg <sorenl@unity3d.com>" -name_fixes['Thomas De Schampheleire'] = "Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>" -name_fixes['Weblate'] = "<>" -name_fixes['xpol'] = "xpol <xpolife@gmail.com>" -name_fixes['Lars <devel@sumpfralle.de>'] = "Lars Kruse <devel@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@fusionio.com>', '2011')) -no_about.add(('Dies Koper <diesk@fast.au.fujitsu.com>', '2012')) -no_about.add(('Erwin Kroon <e.kroon@smartmetersolutions.nl>', '2012')) -no_about.add(('Vincent Caron <vcaron@bearstech.com>', '2012')) -# These contributors' contributions might be too small to be copyrightable: -no_about.add(('philip.j@hostdime.com', '2012')) -no_about.add(('Stefan Engel <mail@engel-stefan.de>', '2012')) -no_about.add(('Ton Plomp <tcplomp@gmail.com>', '2013')) -# Was reworked and contributed later and shadowed by other contributions: -no_about.add(('Sean Farley <sean.michael.farley@gmail.com>', '2013')) - -# Preserve contributors listed in about.html but not appearing in repository -# history: -other_about = [ - ("2011", "Aparkar <aparkar@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@aklabs.net>"), - ("", "cejones"), - ("", "David A. Sjøen <david.sjoen@westcon.no>"), - ("", "James Rhodes <jrhodes@redpointsoftware.com.au>"), - ("", "Jonas Oberschweiber <jonas.oberschweiber@d-velop.de>"), - ("", "larikale"), - ("", "RhodeCode GmbH"), - ("", "Sebastian Kreutzberger <sebastian@rhodecode.com>"), - ("", "Steve Romanow <slestak989@gmail.com>"), - ("", "SteveCohen"), - ("", "Thomas <thomas@rhodecode.com>"), - ("", "Thomas Waldmann <tw-public@gmx.de>"), -] - - import os import re from collections import defaultdict +import contributor_data def sortkey(x): @@ -209,7 +119,7 @@ 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 @@ 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 @@ 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 @@ 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: '',