From 043a419cb4e97c2594ee14e97a5e67a94d39f6fe Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Thu, 8 Oct 2026 08:53:52 +0000 Subject: [PATCH] fresh-repo.sh: IGNEUM_NEUTRAL_IDENTITIES keeps a neutral identity as it is (the public export's "Igneum contributors"), excepted from the mailmap and the verdict Co-Authored-By: Claude Fable 5.1 --- tools/repo/fresh-repo.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/repo/fresh-repo.sh b/tools/repo/fresh-repo.sh index 17cfeb92a..921aa233f 100755 --- a/tools/repo/fresh-repo.sh +++ b/tools/repo/fresh-repo.sh @@ -87,7 +87,10 @@ TARGET_EMAIL="$STANDING_ID+$TARGET_LOGIN@users.noreply.github.com" TARGET_IDENT="$TARGET_LOGIN <$TARGET_EMAIL>" # every other identity: "name|email" pairs (author and committer) -PERSONAL_PAIRS="$(git log --all --format='%an|%ae%n%cn|%ce' | grep -v -F -e "|$STANDING_EMAIL" -e "|$TARGET_EMAIL" | sort -u || true)" # fixed strings: the addresses carry a +, a quantifier under -E (dry run 3, 7 Oct 2026: the target's address was read as personal and matched every rewritten line) # never the standing or the target address (7 Oct 2026: the target's own commits read as personal and every rewritten author line then counted as a hit) +# IGNEUM_NEUTRAL_IDENTITIES: "name|email" pairs (one per line) that are neither personal nor the standing login and stay as they are, such as +# the public export's "Igneum contributors|hello@igneum.network" (8 October 2026); without it every other identity is mailmapped to the target +NEUTRAL="${IGNEUM_NEUTRAL_IDENTITIES:-}" +PERSONAL_PAIRS="$(git log --all --format='%an|%ae%n%cn|%ce' | grep -v -F -e "|$STANDING_EMAIL" -e "|$TARGET_EMAIL" | { if [ -n "$NEUTRAL" ]; then grep -v -x -F -f <(printf '%s\n' "$NEUTRAL"); else cat; fi; } | sort -u || true)" # fixed strings: the addresses carry a +, a quantifier under -E (dry run 3, 7 Oct 2026: the target's address was read as personal and matched every rewritten line) # never the standing or the target address (7 Oct 2026: the target's own commits read as personal and every rewritten author line then counted as a hit) PERSONAL_EMAILS="$(printf '%s\n' "$PERSONAL_PAIRS" | awk -F'|' 'NF==2{print $2}' | sort -u)" PERSONAL_NAMES="$(printf '%s\n' "$PERSONAL_PAIRS" | awk -F'|' 'NF==2 && $1 ~ / /{print $1}' | grep -v -E "^($STANDING_LOGIN|$TARGET_LOGIN)$" | sort -u || true)" # a name has a space; a login is not a name # the founder's first name, surname and second login from the encoded list (rows 1 to 3, sample column), so the rules never depend on @@ -244,7 +247,7 @@ must_zero "identity lines in any blob" "$(scan_blobs "$IDENT")" must_zero "identity lines in commit metadata" "$(scan_meta "$IDENT")" must_zero "stamps not +0000" "$(git log --all --format='%ad%n%cd' --date=raw | grep -vc ' +0000$' || true)" must_zero "commits touching the dropped files" "$(git log --all --format=%H -- "${DROPPED[@]}" | sort -u | wc -l | tr -d ' ')" -must_zero "identities other than $TARGET_IDENT" "$(git log --all --format='%an <%ae>%n%cn <%ce>' | sort -u | grep -vcF "$TARGET_IDENT" || true)" +must_zero "identities other than $TARGET_IDENT${NEUTRAL:+ (neutral ones excepted)}" "$(git log --all --format='%an <%ae>%n%cn <%ce>' | sort -u | grep -vF "$TARGET_IDENT" | { if [ -n "$NEUTRAL" ]; then grep -v -x -F -f <(printf '%s\n' "$NEUTRAL" | sed -E 's/\|/ /'); else cat; fi; } | grep -c . || true)" [ -n "$NEW_LOGIN" ] && must_zero "old login $STANDING_LOGIN in any blob" "$(scan_blobs "$RULES/login.pl")" if [ -n "$PUBLIC_CLAUDE" ]; then for ref in $(git for-each-ref --format='%(refname)' refs/heads | head -3); do