RSS Bot Posted May 7, 2023 Posted May 7, 2023 Description Yes, we have documented the maintainers in armbian/documentation. But it seem like that some of them don't maintain anymore. Use a separated repos make us forget to update it. So let's document here. What's more, defining this make us easier to update .github/CODEOWNERS The way to find out the BOARD_MAINTAINER has documented in the commit messages. The script to do this #!/bin/bash SRC="$(realpath "${BASH_SOURCE%/*}/../")" readarray -t members < <(curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${TOKEN}" "https://api.github.com/orgs/armbian/members?per_page=100" | jq -r .[].login) doc="$(curl -L https://github.com/armbian/documentation/raw/master/docs/Release_Board-Maintainers.md)" function set_maintainer() { local board_config="$1" local maintainers="$2" if ! grep "BOARD_MAINTAINER" "${SRC}/config/boards/${board_config}" >/dev/null 2>&1; then sed -i "s|\(.*\)\(BOARDFAMILY=.*\)|\1\2\n\1BOARD_MAINTAINER=\"${maintainers}\"|" "${SRC}/config/boards/${board_config}" else : # Have set # Replace # sed -i "s|BOARD_MAINTAINER=.*|BOARD_MAINTAINER=\"${maintainers}\"|" "${SRC}/config/boards/${board_config}" fi } while read -r board_config; do type="${board_config##*.}" [[ "conf wip csc eos tvb" == *"${type}"* ]] || continue BOARD="${board_config%.*}" echo -e "\n${board_config}" documented_maintainer=() readarray -t documented_maintainer < <(echo "${doc}" | grep "| ${BOARD} *|" | cut -d'|' -f4 | sed 's/^ *\([^ ]*\) *$/\1/') echo -e "\tDocumented: ${documented_maintainer[*]}" if [[ ! -f ".gh/${board_config}" ]]; then gh_commits="$(curl -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${TOKEN}" "https://api.github.com/repos/armbian/build/commits?per_page=100&path=config/boards/${board_config}")" echo "${gh_commits}" >".gh/${board_config}" else gh_commits="$(cat ".gh/${board_config}")" fi authors="$(echo "${gh_commits}" | jq -r .[].author.login)" creator="$(echo "${authors}" | tail -1)" echo -e "\tCreator: ${creator}" most_commit="$(echo "${authors}" | uniq -c | sort -nr | awk '($1 >= 3) {print $2}' | head -1)" echo -e "\tMost commit: ${most_commit}" other_commiters=() readarray -t other_commiters < <(echo "${authors}" | grep -v "^${creator}$") if [[ -n "${documented_maintainer}" ]]; then for m in "${documented_maintainer[@]}"; do if [[ "${members[*]}" != *"${m}"* ]]; then echo -e "${board_config}: ${m} is not our member" >&2 fi done set_maintainer "${board_config}" "${documented_maintainer[*]}" continue fi if [[ "${creator}" == "${most_commit}" ]]; then if [[ "${members[*]}" != *"${creator}"* ]]; then echo -e "${board_config}: ${creator} is not our member" >&2 fi set_maintainer "${board_config}" "${creator}" continue fi if [ -z "${other_commiters[*]}" ]; then if [[ "${members[*]}" != *"${creator}"* ]]; then echo -e "${board_config}: ${creator} is not our member" >&2 fi set_maintainer "${board_config}" "${creator}" fi set_maintainer "${board_config}" "" done < <(ls "${SRC}/config/boards/") Raw output aml-s9xx-box.tvb Documented: Creator: SteeManMI Most commit: bananapicm4io.conf Documented: Creator: superna9999 Most commit: bananapi.conf Documented: janprunk Creator: zador-blood-stained Most commit: igorpecovnik bananapim1plus.csc Documented: Creator: zador-blood-stained Most commit: igorpecovnik bananapim2.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik bananapim2plus.conf Documented: igorpecovnik Creator: zador-blood-stained Most commit: igorpecovnik bananapim2pro.conf Documented: igorpecovnik Creator: rpardini Most commit: bananapim2s.wip Documented: Creator: igorpecovnik Most commit: bananapim2ultra.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik bananapim2zero.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik bananapim3.conf Documented: AaronNGray Creator: igorpecovnik Most commit: bananapim5.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik bananapim64.conf Documented: devdotnetorg Creator: igorpecovnik Most commit: igorpecovnik bananapipro.conf Documented: teknoid Creator: zador-blood-stained Most commit: igorpecovnik bananapir2.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik bananapir2pro.conf Documented: Creator: 150balbes Most commit: beaglev.csc Documented: Creator: Rafal-Hacus Most commit: beelinkx2.tvb Documented: Creator: igorpecovnik Most commit: igorpecovnik clearfogbase.conf Documented: heisath Creator: zador-blood-stained Most commit: igorpecovnik clearfogpro.conf Documented: heisath Creator: zador-blood-stained Most commit: igorpecovnik clockworkpi-a06.csc Documented: littlecxm Creator: Rafal-Hacus Most commit: cubieboard2.csc Documented: Creator: igorpecovnik Most commit: cubieboard4.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik cubieboard.conf Documented: Creator: zador-blood-stained Most commit: igorpecovnik cubietruck.csc Documented: Creator: EvilOlaf Most commit: cubietruckplus.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik cubox-i.csc Documented: Creator: igorpecovnik Most commit: espressobin.conf Documented: ManoftheSea Creator: igorpecovnik Most commit: igorpecovnik fe-som-rk3399.eos Documented: Creator: igorpecovnik Most commit: firefly-rk3399.conf Documented: 150balbes Creator: igorpecovnik Most commit: helios4.conf Documented: heisath Creator: igorpecovnik Most commit: igorpecovnik helios64.csc Documented: Creator: EvilOlaf Most commit: hinlink-h88k.csc Documented: Creator: amazingfate Most commit: imx7sabre.eos Documented: Creator: igorpecovnik Most commit: jethubj100.conf Documented: jethome-ru Creator: adeepn Most commit: jethubj80.conf Documented: jethome-ru Creator: adeepn Most commit: jetson-nano.conf Documented: 150balbes Creator: igorpecovnik Most commit: khadas-edge2.wip Documented: Creator: 150balbes Most commit: khadas-edge.csc Documented: igorpecovnik Creator: Rafal-Hacus Most commit: khadas-vim1.conf Documented: Creator: lanefu Most commit: khadas-vim2.conf Documented: Creator: lanefu Most commit: khadas-vim3.conf Documented: NicoD-SBC Creator: igorpecovnik Most commit: khadas-vim3l.conf Documented: rpardini Creator: lanefu Most commit: lafrite.conf Documented: Tonymac32 Creator: igorpecovnik Most commit: igorpecovnik lamobo-r1.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik lepotato.conf Documented: Tonymac32 Creator: igorpecovnik Most commit: igorpecovnik lime2.csc Documented: igorpecovnik Creator: EvilOlaf Most commit: lime-a10.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik lime-a33.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik lime-a64.csc Documented: igorpecovnik Creator: igorpecovnik Most commit: lime.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik macchiatobin-doubleshot.csc Documented: Creator: jwzawadzki Most commit: igorpecovnik mangopi-mq.wip Documented: Creator: rpardini Most commit: mekotronics-r58-minipc.wip Documented: Creator: rpardini Most commit: mekotronics-r58x-4g.wip Documented: Creator: rpardini Most commit: mekotronics-r58x.wip Documented: Creator: rpardini Most commit: melea1000.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik micro.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik microzed.eos Documented: Creator: igorpecovnik Most commit: miqi.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik mk808c.csc Documented: Creator: zador-blood-stained Most commit: igorpecovnik nanopct3.eos Documented: Creator: igorpecovnik Most commit: nanopct3plus.eos Documented: Creator: igorpecovnik Most commit: nanopct4.conf Documented: 150balbes Creator: igorpecovnik Most commit: igorpecovnik nanopia64.csc Documented: Creator: guidol70 Most commit: nanopiair.csc Documented: Creator: EvilOlaf Most commit: nanopiduo2.csc Documented: Creator: EvilOlaf Most commit: nanopiduo.conf Documented: sgjava Creator: null Most commit: igorpecovnik nanopifire3.eos Documented: Creator: igorpecovnik Most commit: nanopik1plus.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik nanopik2-s905.csc Documented: Creator: igorpecovnik Most commit: nanopim1.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik nanopim1plus2.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik nanopim1plus.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik nanopim3.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik nanopim4.conf Documented: piter75 Creator: igorpecovnik Most commit: igorpecovnik nanopim4v2.csc Documented: piter75 Creator: Rafal-Hacus Most commit: nanopineo2black.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: nanopineo2.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik nanopineo3.conf Documented: lpirl Creator: igorpecovnik Most commit: nanopineo4.csc Documented: Creator: igorpecovnik Most commit: nanopineo.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik nanopineocore2.csc Documented: Creator: EvilOlaf Most commit: nanopineoplus2.conf Documented: teknoid Creator: igorpecovnik Most commit: igorpecovnik nanopi-r1.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik nanopi-r1s-h5.conf Documented: Creator: aiamadeus Most commit: nanopi-r2c.conf Documented: igorpecovnik Creator: rickliu2000 Most commit: nanopi-r2s.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: nanopi-r4s.conf Documented: littlecxm piter75 Creator: EvilOlaf Most commit: nanopi-r6s.wip Documented: Creator: efectn Most commit: nezha.wip Documented: Creator: rpardini Most commit: odroidc1.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik odroidc2.conf Documented: NicoD-SBC Creator: zador-blood-stained Most commit: igorpecovnik odroidc4.conf Documented: Technicavolous Creator: superna9999 Most commit: igorpecovnik odroidhc4.conf Documented: rpardini Technicavolous Creator: igorpecovnik Most commit: odroidm1.wip Documented: Creator: igorpecovnik Most commit: odroidn2.conf Documented: rpardini Creator: igorpecovnik Most commit: igorpecovnik odroidxu4.conf Documented: igorpecovnik joekhoobyar Creator: zador-blood-stained Most commit: igorpecovnik olimex-som204-a20.eos Documented: Creator: igorpecovnik Most commit: olimex-som-a20.eos Documented: Creator: igorpecovnik Most commit: olimex-teres-a64.conf Documented: Creator: Kreyren Most commit: olinux-som-a13.csc Documented: Creator: igorpecovnik Most commit: igorpecovnik onecloud.csc Documented: Creator: hzyitc Most commit: hzyitc orangepi2.csc Documented: Creator: EvilOlaf Most commit: orangepi3.csc Documented: igorpecovnik Creator: EvilOlaf Most commit: orangepi3-lts.csc Documented: afaulkner420 Creator: Rafal-Hacus Most commit: orangepi4.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik orangepi4-lts.conf Documented: jock Creator: paolosabatino Most commit: orangepi5.conf Documented: Creator: efectn Most commit: orangepi.eos Documented: Creator: zador-blood-stained Most commit: igorpecovnik orangepilite2.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: orangepilite.csc Documented: igorpecovnik Creator: EvilOlaf Most commit: orangepimini.eos Documented: Creator: zador-blood-stained Most commit: igorpecovnik orangepione.csc Documented: igorpecovnik Creator: EvilOlaf Most commit: orangepioneplus.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: orangepipc2.csc Documented: igorpecovnik Creator: EvilOlaf Most commit: orangepipc.conf Documented: lbmendes Creator: zador-blood-stained Most commit: igorpecovnik orangepipcplus.conf Documented: igorpecovnik Creator: null Most commit: igorpecovnik orangepiplus2e.conf Documented: igorpecovnik Creator: null Most commit: igorpecovnik orangepiplus.csc Documented: Creator: EvilOlaf Most commit: orangepiprime.csc Documented: igorpecovnik Creator: Rafal-Hacus Most commit: orangepi-r1.conf Documented: schwar3kat Creator: null Most commit: igorpecovnik orangepi-r1plus.conf Documented: Creator: aiamadeus Most commit: orangepi-r1plus-lts.conf Documented: schwar3kat Creator: schwar3kat Most commit: orangepi-rk3399.csc Documented: Creator: EvilOlaf Most commit: orangepiwin.csc Documented: Creator: igorpecovnik Most commit: orangepizero2.conf Documented: krachlatte qiurui Creator: igorpecovnik Most commit: orangepizero.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: igorpecovnik orangepizeroplus2-h3.csc Documented: agolubchyk Creator: EvilOlaf Most commit: orangepizeroplus2-h5.csc Documented: Creator: EvilOlaf Most commit: orangepizeroplus.conf Documented: schwar3kat Creator: igorpecovnik Most commit: igorpecovnik pcduino2.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik pcduino3.csc Documented: Creator: null Most commit: igorpecovnik pcduino3nano.eos Documented: Creator: igorpecovnik Most commit: igorpecovnik pine64.conf Documented: janprunk Creator: zador-blood-stained Most commit: igorpecovnik pine64so.conf Documented: Creator: zador-blood-stained Most commit: igorpecovnik pinebook-a64.csc Documented: Creator: igorpecovnik Most commit: pinebook-pro.conf Documented: Creator: igorpecovnik Most commit: pinecube.csc Documented: Creator: Icenowy Most commit: pineh64-b.conf Documented: Creator: igorpecovnik Most commit: igorpecovnik pineh64.csc Documented: Creator: igorpecovnik Most commit: qemu-uboot-arm64.wip Documented: Creator: rpardini Most commit: qemu-uboot-x86.wip Documented: Creator: rpardini Most commit: quartz64a.wip Documented: Creator: 150balbes Most commit: quartz64b.wip Documented: Creator: 150balbes Most commit: radxa-e25.wip Documented: Creator: amazingfate Most commit: radxa-zero2.wip Documented: monkaBlyat Creator: igorpecovnik Most commit: radxa-zero.conf Documented: engineer-80 Creator: engineer-80 Most commit: recore.csc Documented: Creator: null Most commit: renegade.conf Documented: Tonymac32 Creator: igorpecovnik Most commit: igorpecovnik rk322x-box.tvb Documented: Creator: paolosabatino Most commit: rk3318-box.tvb Documented: Creator: paolosabatino Most commit: rock-3a.conf Documented: catalinii ZazaBr vamzii Creator: igorpecovnik Most commit: amazingfate rock-5b.conf Documented: Creator: igorpecovnik Most commit: rock64.conf Documented: clee Creator: igorpecovnik Most commit: igorpecovnik rockpi-4a.conf Documented: clee Creator: igorpecovnik Most commit: igorpecovnik rockpi-4b.conf Documented: Creator: igorpecovnik Most commit: igorpecovnik rockpi-4bplus.csc Documented: Creator: lanefu Most commit: rockpi-4c.conf Documented: clee Creator: igorpecovnik Most commit: rockpi-4cplus.csc Documented: Creator: igorpecovnik Most commit: rockpi-e.conf Documented: Creator: igorpecovnik Most commit: rockpi-n10.csc Documented: Creator: psztoch Most commit: rockpi-s.conf Documented: brentr Creator: igorpecovnik Most commit: igorpecovnik rockpro64.conf Documented: joekhoobyar Creator: igorpecovnik Most commit: igorpecovnik roc-rk3399-pc.csc Documented: Creator: piter75 Most commit: piter75 rpi4b.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: star64.wip Documented: Creator: rpardini Most commit: station-m1.conf Documented: 150balbes Creator: EvilOlaf Most commit: 150balbes station-m2.conf Documented: 150balbes Creator: 150balbes Most commit: station-m3.conf Documented: Creator: 150balbes Most commit: station-p1.conf Documented: 150balbes Creator: EvilOlaf Most commit: station-p2.conf Documented: 150balbes Creator: 150balbes Most commit: sunvell-r69.tvb Documented: Creator: igorpecovnik Most commit: tinkerboard-2.wip Documented: Creator: Tonymac32 Most commit: tinkerboard.conf Documented: Tonymac32 paolosabatino Creator: igorpecovnik Most commit: igorpecovnik tritium-h3.conf Documented: Tonymac32 Creator: igorpecovnik Most commit: igorpecovnik tritium-h5.conf Documented: Tonymac32 Creator: igorpecovnik Most commit: igorpecovnik udoo.csc Documented: Creator: EvilOlaf Most commit: uefi-arm64.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: uefi-riscv64.conf Documented: Creator: igorpecovnik Most commit: uefi-x86.conf Documented: igorpecovnik Creator: igorpecovnik Most commit: unleashed.wip Documented: Creator: rpardini Most commit: unmatched.wip Documented: Creator: rpardini Most commit: virtual-qemu.eos Documented: Creator: rpardini Most commit: visionfive2.wip Documented: Creator: rpardini Most commit: visionfive.wip Documented: Creator: rpardini Most commit: xt-q8l-v10.tvb Documented: Creator: igorpecovnik Most commit: igorpecovnik z28pro.tvb Documented: Creator: igorpecovnik Most commit: igorpecovnik zeropi.csc Documented: igorpecovnik Creator: Rafal-Hacus Most commit: Here is the list who documented in armbian/documentation but aren't our members. So he/she can't add to .github/CODEOWNERS due to he/she don't have the access to write to the repos. bananapim3.conf: AaronNGray is not our member bananapim64.conf: devdotnetorg is not our member clearfogbase.conf: heisath is not our member clearfogpro.conf: heisath is not our member helios4.conf: heisath is not our member jethubj100.conf: jethome-ru is not our member jethubj80.conf: jethome-ru is not our member khadas-vim3.conf: NicoD-SBC is not our member nanopineo3.conf: lpirl is not our member odroidc2.conf: NicoD-SBC is not our member odroidc4.conf: Technicavolous is not our member odroidhc4.conf: Technicavolous is not our member orangepi3-lts.csc: afaulkner420 is not our member orangepi4-lts.conf: jock is not our member orangepipc.conf: lbmendes is not our member orangepizero2.conf: krachlatte is not our member orangepizeroplus2-h3.csc: agolubchyk is not our member radxa-zero2.wip: monkaBlyat is not our member radxa-zero.conf: engineer-80 is not our member rock-3a.conf: ZazaBr is not our member rock-3a.conf: vamzii is not our member rock64.conf: clee is not our member rockpi-4a.conf: clee is not our member rockpi-4c.conf: clee is not our member How Has This Been Tested? Uncessary. Checklist: [ ] My code follows the style guidelines of this project [X] I have performed a self-review of my own code [ ] I have commented my code, particularly in hard-to-understand areas [X] I have made corresponding changes to the documentation [X] My changes generate no new warnings [ ] Any dependent changes have been merged and published in downstream modules View the full article
Recommended Posts