GitHub lanzó el 17 de junio una función que limita la cantidad de PR abiertos simultáneamente por usuarios sin permiso de escritura. Surgió después de que se hablara de cómo los maintainers sufrían por PR de baja calidad generados en masa por IA, y también era algo que se venía pidiendo desde 2016.
Así que medí cuánto filtra esto en colas de repositorios reales. Excluí bots, conté solo los PR abiertos por autores sin permiso de escritura y calculé cuántos se habrían postergado si el límite fuera 3.
- huggingface/transformers — 55 PR abiertos / 49 autores / 1 PR que el límite de 3 habría postergado
- typescript-eslint — 28 / 24 / 1
- DIYgod/RSSHub — 26 / 23 / 1
- django/django — 79 / 59 / 7
- caddyserver/caddy — 58 / 43 / 7
- coollabsio/coolify — 86 / 68 / 11
Es entre el 2% y el 13%.
La razón era la forma de la cola. En transformers, 55 PR vienen de 49 autores. En coolify, 86 PR de 68 personas. No es el patrón de spam en el que una persona abre treinta PR, sino treinta personas abriendo uno cada una. El límite fue diseñado para atacar lo primero, pero la cola real es lo segundo.
No digo que la función no sirva. Existen repositorios donde una sola cuenta satura la cola, y antes no había forma de defenderse de eso. Pero la cantidad que llega a los revisores queda casi igual, y sigue pendiente decidir qué leer primero.
Otra cosa que medí junto con esto: busqué 167 repositorios que tenían instalada una acción que cierra automáticamente PR de baja calidad, y en los 30 donde la cola seguía activa, pull_request_creation_policy estaba en all. Es el valor predeterminado, así que significa que “nadie lo cambió”, pero también que el grupo con mayor motivación para limitar no cerró la puerta y solo puso un filtro.
Además, de esos 167 repositorios, 126 (75%) tenían menos de 4 PR abiertos. Esto significa que no hay que leer “N repositorios instalaron un filtro de slop” como “N repositorios están sufriendo una inundación”. Yo también lo leí así al principio, hasta que lo medí y corregí.
El método de medición y sus limitaciones están en el documento enlazado. El límite de 3 es mi supuesto (cada repositorio lo configura distinto), y como es una snapshot de la cola abierta, no se ven los PR que directamente no se abrieron porque el límite los bloqueó; eso también es parte del objetivo de la función. Cualquiera puede reproducirlo con solo la lista pública de PR.
(Disclosure: esta medición salió de un checker de triage de PR que hice. Eso significa que tengo un interés relacionado, así que léanlo teniéndolo en cuenta; las cifras se reproducen tal cual desde la lista pública de PR de cada repositorio.)
Aún no hay comentarios.