Skip to content

Instantly share code, notes, and snippets.

@cfriedt
Created November 17, 2023 15:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cfriedt/817d88b96256020649a33f32487e114c to your computer and use it in GitHub Desktop.
Save cfriedt/817d88b96256020649a33f32487e114c to your computer and use it in GitHub Desktop.
zephyr-release-stats.sh
#!/bin/bash
set -e
# usage:
# ./zephyr-release-stats.sh | tee zephyr-release-stats.csv
cd $HOME/zephyrproject/zephyr
RELEASES=( v2.0.0 v2.1.0 v2.2.0 v2.3.0 v2.4.0 v2.5.0 v2.6.0 v2.7.0 v3.0.0 v3.1.0 v3.2.0 v3.3.0 v3.4.0 v3.5.0 )
N=${#RELEASES[@]}
echo "Previous,Current,StartCommit,EndCommit,CommitCount,Architectures,Boards,UniqueContributors"
for ((i=1; i<N; i++)); do
j=$((i-1))
PREV=${RELEASES[j]}
REL=${RELEASES[i]}
START=$(git rev-parse --short $PREV)
END=$(git rev-parse --short $REL~1)
COUNT=$(git rev-list --count $START..$END)
git checkout $END &>/dev/null
ARCHES=$(ls arch/*/Kconfig | wc -l)
# +1 for x86_64
ARCHES=$((ARCHES+1))
# +1 for riscv64
ARCHES=$((ARCHES+1))
BOARDS=$(find boards -name '*_defconfig' | wc -l)
TMPFILE=$(mktemp)
git log $START..$END | grep Signed | sort -u > $TMPFILE
UNIQUE=$(wc -l $TMPFILE | awk '{print $1}')
rm -f $TMPFILE
echo "$PREV,$REL,$START,$END,$COUNT,$ARCHES,$BOARDS,$UNIQUE"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment