Statistics on Unvanquished assets maintenance

Talk about anything related to Unvanquished.
User avatar
illwieckz
Project Head
Posts: 865
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France

Statistics on Unvanquished assets maintenance

Post by illwieckz »

So some hours ago freem/bmorel publicly claimed that I do not maintain all the assets for the game, I claimed that he guessed wrong:

Code: Select all

2026-10-06 19:51:48 +0200 <dolcetriade> He maintains all the assets for the game.
  Not everyone is a position where they can continue to do things for free.
  If people like illwieckzs work and wish to support him they may show their gratitude
2026-10-06 19:51:53 +0200 <freem> no he does not
2026-10-06 19:51:54 +0200 <dolcetriade> It is a free choice
2026-10-06 19:52:00 +0200 <dolcetriade> Yes he does
2026-10-06 19:52:18 +0200 <freem> those assets are mostly maintained by others in my experience
2026-10-06 19:52:25 +0200 <dolcetriade> They are not
2026-10-06 19:52:35 +0200 <illwieckz> freem is guessing wrong again

Either one of us is saying something false about someone else and may be lying, so there is a right to challenge the assertions.

Here are the numbers (excluding translations), all dpkdir:

Code: Select all

illwieckz: 1887
Viech: 210
slipher: 136
Ishq: 100
freem: 73
afontain: 67
Grise: 57
Ingar: 44
Sweet: 39
dsalt: 29
VReaperV: 24
kangz: 17
Gireen: 15
kharnov: 12
enneract: 10
Supertanker: 9
gimhael: 8
RedSky: 4
Tim: 3
cu-kai: 2
caldazar-at: 2
Bob-Vador: 2
Zachary: 1
Trung Lê: 1
NaitLee: 1
Brian: 1

Image

Same but only since 0.51.1 (first release after UnvanquishedAssets dpkdir repo creations, done by me by the way):

Code: Select all

illwieckz: 938
slipher: 134
freem: 73
afontain: 67
Grise: 57
Ishq: 47
Sweet: 39
VReaperV: 24
Gireen: 15
Viech: 12
RedSky: 4
cu-kai: 2
Bob-Vador: 2
Trung Lê: 1
NaitLee: 1
enneract: 1
Brian: 1

Image

Same since 0.55.5 (just to pick a recent history, proving it's not just past work I would have abandonned long time ago):

Code: Select all

illwieckz: 135
slipher: 32
Sweet: 17
Grise: 15
VReaperV: 13
RedSky: 4
Trung Lê: 1
freem: 1
enneract: 1

Some commits may be way older to the said release, but only merged after the said release, like the commit from freem in that history, such noise doesn't change the big picture either.

Image

For full transparency, here is the print-authors script to compute those statistics:

Code: Select all

#! /usr/bin/env bash

case "${1:-}" in
	'-t')
		shift
		tag="${1}"
		shift
		;;
esac

for d in "${@}"
do
(
	cd "${d}"

	extra=()

	case "${tag:-}" in
		'')
			;;
		*)
			if git rev-parse --verify --quiet "refs/tags/${tag}" >/dev/null
			then
				extra+=("${tag}..HEAD")
			fi
			;;
	esac

	git --no-pager log --format='%an' "${extra[@]}" -- . ':(exclude)translation/'
)
done \
| sed -f 'names.sed' \
| awk '{ count[$0]++ } END { for (name in count) print count[name], name }' \
| sort -nr \
| sed 's/^[[:space:]]*\([0-9][0-9]*\) \(.*\)$/\2: \1/'

Here is the name.sed file to unify naming and to not list the same people twice:

Code: Select all

s/sweet235/Sweet/
s/Zedwaitch (Zachary) Wibowanto/Zachary/
s/Matthias Bentrup/gimhael/
s/Morel Bérenger/freem/
s/Paweł Redman/enneract/
s/Stijn Buys/Ingar/
s/Darren Salt/dsalt/
s/Antoine Fontaine/afontain/
s/necessarily-equal/afontain/
s/Corentin Wallez/kangz/
s/Cody Jackson/Supertanker/
s/Martin Kummer/caldazar-at/
s/.*@illwieckz.net/illwieckz/
s/Thomas Debesse/illwieckz/
s/dolcetriade/Ishq/
s/DolceTriade/Ishq/
s/Girrr/Gireen/
s/grrr/Gireen/
s/perturbed/slipher/

Here is how to print statistics for all assets history:

Code: Select all

./print-authors pkg/[mtr]*.dpkdir Unvanquished/pkg/unvanquished_src.dpkdir

Here is how to print statistics for all assets history since a given tag:

Code: Select all

./print-authors -t unvanquished/0.51.1 pkg/[mtr]*.dpkdir Unvanquished/pkg/unvanquished_src.dpkdir

You'll notice it excludes any surviving Unvanquished/pkg/unvanquished-assets.dpkdir so it only counts Unvanquished/pkg/unvanquished_src.dpkdir.

A couple of commits (really, a very small amount) may have been counted twice because we moved some stuff across some dpkdir while rebuilding their history. The things is that it was years ago and the statistics shows that my own contribution are always above 60% whatever I take the whole history or more recent histories ignoring those few duplicates. And anyway, moving things counts as maintenance, it's just that moving one collection of commits is one contribution, not one per commit. The statistics shows that those few commit replayed are just noise that doesn't contribute to the big picture.

Here is the graph-authors script to graph the output of the print-authors script:

Code: Select all

#! /usr/bin/env python3

import sys
import matplotlib.pyplot as plt

if len(sys.argv) != 2:
    print(f"Usage: {sys.argv[0]} output.png", file=sys.stderr)
    sys.exit(1)

output = sys.argv[1]

data = []
for line in sys.stdin:
    line = line.strip()
    if not line:
        continue
    name, count = line.rsplit(": ", 1)
    data.append((name, int(count)))

labels = [name for name, count in data]
values = [count for name, count in data]

plt.figure(figsize=(10, 10))
plt.pie(values, labels=labels, autopct="%1.1f%%")
plt.tight_layout()
plt.savefig(output, dpi=200)

The grapher script can be used this way:

Code: Select all

./print-authors pkg/[mtr]*.dpkdir ~/dev/Unvanquished/pkg/unvanquished_src.dpkdir | ./graph-authors unvanquished-assets-authors.png

I also remind that I was the one who actually created those repositories and turned those repository into a maintainable set with methodologies and conventions.

The making of repositories had been done there: https://gitlab.com/Unvanquished/Unvanqu ... aning-room

If we count this works too, here are the statistics:

Code: Select all

illwieckz: 1968
Viech: 210
slipher: 136
Ishq: 100
freem: 73
afontain: 67
Grise: 57
Ingar: 44
Sweet: 39
dsalt: 29
VReaperV: 24
kangz: 17
Gireen: 15
kharnov: 12
enneract: 10
Supertanker: 9
gimhael: 8
RedSky: 4
Tim: 3
cu-kai: 2
caldazar-at: 2
Bob-Vador: 2
Zachary: 1
Trung Lê: 1
NaitLee: 1
Brian: 1

Image

I developped the Urcheon/Esquirel tooling to maintain them, build them and package them. This adds to the asset maintenance effort itself.

I also maintain more tools (like NetRadiant, Q3map2, Sloth, Chameleon) etc. to fit our assets maintenance and development need, and this should count in some ways because some assets maintenance would have never been done and delivered without that development.

Making the tools and cleaning-up the room is part of the job using the tools and the room.

So, from all the gitted contributions, I did near than 70% of them since 2016, and I never did less than 60% of them, even in the time frame since the previous stable release.

Of course we cannot count the statistics from before the repository creation, so outside of a few maps that already had a git repository, we cannot count older contributions, but talk about contributions from before 2016, so this changes nothing about “who is doing the maintenance today”.

The contribution ratios being stable over the time also means I'm not the recent top assets contributor only because some would have stopped doing more than me, it never happened.

So there are solid proofs of more than 60% of the assets maintenance being steadily done by me over a decade.

I don't care about “who does more”, this is not a competition, it's a free open source volunteer project, no one is to be blamed for doing a few.

Even if I never contributed anything to the Unvanquished assets at all it would be unfair to blame me anyway.

But saying false things about someone is about spreading lies. Apologies from freem are welcome.

This comment is licensed under cc ​​by 4 and antecedent. The Dæmon Crunch tool is awesome!

User avatar
illwieckz
Project Head
Posts: 865
Joined: Sat Aug 11, 2012 7:22 pm UTC
Location: France

Re: Statistics on Unvanquished assets maintenance

Post by illwieckz »

Also this doesn't count the years of work and all the tooling written to crawl the web and capture and convert and track all our work in progress assets:

And also some early Unvanquished concept maps like the moonbase one (and some others) that were Unvanquished official concepts:

Those are stored as their own repositories with their own history.

This comment is licensed under cc ​​by 4 and antecedent. The Dæmon Crunch tool is awesome!