mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
tools: lint README lists more strictly
PR-URL: https://github.com/nodejs/node/pull/55625 Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
This commit is contained in:
parent
560b2a1677
commit
91bce94010
@ -409,7 +409,7 @@ For information about the governance of the Node.js project, see
|
|||||||
**Filip Skokan** <<panva.ip@gmail.com>> (he/him)
|
**Filip Skokan** <<panva.ip@gmail.com>> (he/him)
|
||||||
* [pimterry](https://github.com/pimterry) -
|
* [pimterry](https://github.com/pimterry) -
|
||||||
**Tim Perry** <<pimterry@gmail.com>> (he/him)
|
**Tim Perry** <<pimterry@gmail.com>> (he/him)
|
||||||
* [pmarchini](https://github.com/pmarchini)
|
* [pmarchini](https://github.com/pmarchini) -
|
||||||
**Pietro Marchini** <<pietro.marchini94@gmail.com>> (he/him)
|
**Pietro Marchini** <<pietro.marchini94@gmail.com>> (he/him)
|
||||||
* [Qard](https://github.com/Qard) -
|
* [Qard](https://github.com/Qard) -
|
||||||
**Stephen Belanger** <<admin@stephenbelanger.com>> (he/him)
|
**Stephen Belanger** <<admin@stephenbelanger.com>> (he/him)
|
||||||
@ -515,7 +515,7 @@ For information about the governance of the Node.js project, see
|
|||||||
**Hitesh Kanwathirtha** <<digitalinfinity@gmail.com>> (he/him)
|
**Hitesh Kanwathirtha** <<digitalinfinity@gmail.com>> (he/him)
|
||||||
* [dmabupt](https://github.com/dmabupt) -
|
* [dmabupt](https://github.com/dmabupt) -
|
||||||
**Xu Meng** <<dmabupt@gmail.com>> (he/him)
|
**Xu Meng** <<dmabupt@gmail.com>> (he/him)
|
||||||
* [dnlup](https://github.com/dnlup)
|
* [dnlup](https://github.com/dnlup) -
|
||||||
**dnlup** <<dnlup.dev@gmail.com>>
|
**dnlup** <<dnlup.dev@gmail.com>>
|
||||||
* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) -
|
* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) -
|
||||||
**Robert Jefe Lindstaedt** <<robert.lindstaedt@gmail.com>>
|
**Robert Jefe Lindstaedt** <<robert.lindstaedt@gmail.com>>
|
||||||
@ -757,7 +757,7 @@ maintaining the Node.js project.
|
|||||||
**Mert Can Altin** <<mertgold60@gmail.com>>
|
**Mert Can Altin** <<mertgold60@gmail.com>>
|
||||||
* [preveen-stack](https://github.com/preveen-stack) -
|
* [preveen-stack](https://github.com/preveen-stack) -
|
||||||
**Preveen Padmanabhan** <<wide4head@gmail.com>> (he/him)
|
**Preveen Padmanabhan** <<wide4head@gmail.com>> (he/him)
|
||||||
* [RedYetiDev](https://github.com/redyetidev) -
|
* [RedYetiDev](https://github.com/RedYetiDev) -
|
||||||
**Aviv Keller** <<redyetidev@gmail.com>> (they/them)
|
**Aviv Keller** <<redyetidev@gmail.com>> (they/them)
|
||||||
* [VoltrexKeyva](https://github.com/VoltrexKeyva) -
|
* [VoltrexKeyva](https://github.com/VoltrexKeyva) -
|
||||||
**Mohammed Keyvanzadeh** <<mohammadkeyvanzade94@gmail.com>> (he/him)
|
**Mohammed Keyvanzadeh** <<mohammadkeyvanzade94@gmail.com>> (he/him)
|
||||||
|
@ -6,6 +6,9 @@ import assert from 'node:assert';
|
|||||||
import { open } from 'node:fs/promises';
|
import { open } from 'node:fs/promises';
|
||||||
import { argv } from 'node:process';
|
import { argv } from 'node:process';
|
||||||
|
|
||||||
|
const ghHandleLine = /^\* \[(.+)\]\(https:\/\/github\.com\/\1\) -$/;
|
||||||
|
const memberInfoLine = /^ {2}\*\*[^*]+\*\* <<[^@]+@.+\.[a-z]+>>( \(\w+(\/[^)/]+)+\))?( - \[Support me\]\(.+\))?$/;
|
||||||
|
|
||||||
const lists = {
|
const lists = {
|
||||||
'__proto__': null,
|
'__proto__': null,
|
||||||
|
|
||||||
@ -26,12 +29,19 @@ const tscMembers = new Set();
|
|||||||
const readme = await open(new URL('../README.md', import.meta.url), 'r');
|
const readme = await open(new URL('../README.md', import.meta.url), 'r');
|
||||||
|
|
||||||
let currentList = null;
|
let currentList = null;
|
||||||
|
let previousGithubHandleInfoRequired;
|
||||||
let previousGithubHandle;
|
let previousGithubHandle;
|
||||||
let lineNumber = 0;
|
let lineNumber = 0;
|
||||||
|
|
||||||
for await (const line of readme.readLines()) {
|
for await (const line of readme.readLines()) {
|
||||||
lineNumber++;
|
lineNumber++;
|
||||||
if (line.startsWith('### ')) {
|
if (previousGithubHandleInfoRequired) {
|
||||||
|
if (!memberInfoLine.test(line)) {
|
||||||
|
throw new Error(`${previousGithubHandleInfoRequired} info are not formatted correctly (README.md:${lineNumber})`);
|
||||||
|
}
|
||||||
|
previousGithubHandle = previousGithubHandleInfoRequired;
|
||||||
|
previousGithubHandleInfoRequired = null;
|
||||||
|
} else if (line.startsWith('### ')) {
|
||||||
currentList = line.slice(4);
|
currentList = line.slice(4);
|
||||||
previousGithubHandle = null;
|
previousGithubHandle = null;
|
||||||
} else if (line.startsWith('#### ')) {
|
} else if (line.startsWith('#### ')) {
|
||||||
@ -49,6 +59,10 @@ for await (const line of readme.readLines()) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ghHandleLine.test(line)) {
|
||||||
|
throw new Error(`${currentGithubHandle} is not formatted correctly (README.md:${lineNumber})`);
|
||||||
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
currentList === 'TSC voting members' ||
|
currentList === 'TSC voting members' ||
|
||||||
currentList === 'TSC regular members'
|
currentList === 'TSC regular members'
|
||||||
@ -60,7 +74,7 @@ for await (const line of readme.readLines()) {
|
|||||||
if (lists[currentList]) {
|
if (lists[currentList]) {
|
||||||
(actualMembers[lists[currentList]] ??= new Set()).add(currentGithubHandle);
|
(actualMembers[lists[currentList]] ??= new Set()).add(currentGithubHandle);
|
||||||
}
|
}
|
||||||
previousGithubHandle = currentGithubHandleLowerCase;
|
previousGithubHandleInfoRequired = currentGithubHandleLowerCase;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.info('Lists are in the alphabetical order.');
|
console.info('Lists are in the alphabetical order.');
|
||||||
|
Loading…
Reference in New Issue
Block a user