-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update credits for 5.2.0 #9593
Update credits for 5.2.0 #9593
Conversation
I'm unsure what the requirements to be in "previous contributors" should be, and how to automate this |
I would be careful when droping people for “only” having contributed “fixes”. Just my 5 cents. |
BTW: I'm still an active translator for Minetest, it's just that Weblate did not update so far (translation files on Weblate need updating, as always). :P |
I've modified the script I used to make it apply for all commits in the repository. For previous contributors, I got to score 33, which is equal to 33 commits of less than 100 lines, 4 commits of 100 lines, 2 commits of 1000 lines, 1.1 commits of 3000 lines. This is for all-time of Minetest. Here's a list of the contributors that have dropped off of active and previous contributors. (I've almost definitely made a mistake here) "Diego Martínez (kaeza) <kaeza@users.sf.net>",
"neoascetic [OS X Fixes]",
"Guiseppe Bilotta (Oblomov) <guiseppe.bilotta@gmail.com> [Fixes]",
"matttpt <matttpt@gmail.com> [Fixes]",
"bigfoot547 [CSM]",
"DTA7 [Fixes, mute key]",
"Thomas-S [Disconnected, Formspecs]",
"noob3167 [Fixes]",
"adelcoding1 [Formspecs]",
"Esteban (EXio4) [Cleanups]",
"Vaughan Lapsley (vlapsley) [Carpathian mapgen]",
"CoderForTheBetter [Add set_rotation]",
"Gaël-de-Sailly [Mapgen, pitch fly]",
"zeuner [Docs, Fixes]",
"ThomasMonroe314 (tre) [Fixes]",
"Rob Blanckaert (basicer) [Fixes]",
"Jozef Behran (osjc) [Fixes]",
"Pedro Gimeno (pgimeno) [Fixes]",
"lisacvuk [Fixes]",
"Ezhh/Shara", |
#!/bin/bash
OUT=$PWD
rm $OUT/results.txt
TMP=$PWD/tmp
mkdir -p $TMP
mkdir -p $TMP/emails
rm $TMP/*
merge() {
echo Merging $1 into $2
cat "$TMP/$1.dat" >> "$TMP/$2.dat"
rm "$TMP/$1.dat"
}
cd ~/dev/minetest
entries=`git log --pretty=format:"%h %an %ae"` # "4e4fb4db2adcd0b3abd02cd6390b350b1129cc64..HEAD"`
echo "Gathering commit data..."
IFS=$'\n'
for line in $entries
do
hash=$(echo "$line" | cut -f1)
author=$(echo "$line" | cut -f2 | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]')
email=$(echo "$line" | cut -f3)
email_safe=$(echo "$email" | sed 's/@/.at./g' | tr -dc '[:alnum:].' | tr '[:upper:]' '[:lower:]')
if [ -f "$TMP/emails/$email_safe.email" ]; then
author=$(cat $TMP/emails/$email_safe.email | sed 's/^ *//;s/ *$//')
fi
echo $author > $TMP/emails/$email_safe.email
commit=$(git show $hash --numstat --pretty=format:"")
if echo $commit | grep -iq "\.cpp\|\.h\|\.lua\|\.cmake\|\.gradle\|Makefile"; then
commit=$(echo "$commit" | sed 's/[^0-9\t ]*//g' | sed 's/[\t ]/\n/g' )
lines=$(echo "$commit" | awk '{s+=$1} END {print s}')
# echo $lines
if (( $lines > 1200 )); then
echo "8" >> "$TMP/$author.dat"
elif (( $lines > 700 )); then
echo "4" >> "$TMP/$author.dat"
elif (( $lines > 100 )); then
echo "2" >> "$TMP/$author.dat"
else
echo "1" >> "$TMP/$author.dat"
fi
fi
done || exit $?
merge you hybriddog
merge locblot loicblot
merge dnieljuhsz juhdanad
merge vitaliy numberzero
merge andrewward rubenwardy
merge paulouellette pauloue
merge jeanpatrickguerrero kilbith
merge vanessadannenberg vanessae
merge anands clobberxd
merge aukekok sofar
merge nathanalcourant ekdohibs
rm $TMP/translations.dat
rm $TMP/updatescript.dat
echo "Summing..."
cd $TMP
for filename in *.dat; do
sum=$(awk '{s+=$1} END {print s}' "$filename")
echo "$sum $filename" >> $OUT/results.txt
done || exit $?
echo "Sorting..."
sort -gr $OUT/results.txt > $OUT/results_sorted.txt |
I updated those yesterday night. |
I would like to add a separate section for translators, to avoid lots of |
Ah, so it looks like German was already moved back to 100% very fast, probably by sfan5. :D Anyway, I'm still active translator because I occassionally fix typos when I run across them (rare). Otherwise, the German translation is finished and tried and tested, there's not much work to do anymore. :D I'm just saying it because I noticed my translator status was snatched away from me. xD Although, it's not that of a big deal to me. But I wanted to give you a heads-up. |
Hmmm, thinking about this: I think the process of dropping people from the credits entirely just because they contributed years ago isn't fair. It's also just factually wrong. If their contribution is still in the game, it still counts IMO. Dropping them would only be justified if their contribution was removed for some reason. Maybe move those contributors that didn't make the cut into a separate text file and mention that file in the in-game credits. The section “previous contributors” is also misleading because it's not complete. But that's a problem I noticed way too late, I guess. I'm assuming you have dropped past contributors from the credits in older releases as well? That would mean it could take a lot of work to piece together the full, TRUE credits. I'm predicting the true credits would be absolutely huge. :D Just my 2 cents. It's not that I really care about this stuff to be honest, but since you are concerned about fairness, I wanted to share my thoughts about this. |
How I've done it now is that time doesn't matter at all as to whether you appear in previous contributors - you just need to meet a threshold based on the heuristic documented in the first post |
The much bigger problem is not crediting translators and documenters. Translations are excluded from the heuristic because they typically generate large numbers of commits. It makes sense to collect the names of translators separately to the names of other contributors for that reason, depending on how many there are they could all be credited The heuristic should be changed to include |
Good point! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Crediting translators properly is something we'll look into for 5.3.0. |
The generation of the credits was automated using a script found in a comment below
Point system
An author gets:
A code-changing commit is one that changes at least one file with one of the following extensions:
.cpp, .h, .lua, .cmake, .gradle, Makefile
Criteria for Active Contributors
Active contributors must have at least 3 points since 5.1.0.
This means that to appear in the credits as an "Active Contributor", since 5.1.0 you need to have either:
Criteria for Previous Contributors
Previous contributors must have at least 21 points all-time, and not be in the active contributors section.
This means that to appear in the credits as a "Previous Contributor", you need to have either: