Open Source

Contribuciones open source

Tres pull requests mergeados en proyectos de terceros. No soy maintainer ni colaborador habitual: soy contribuidor. Acá están el problema, el arreglo y la review de cada uno, con el link al PR público por si querés leer el diff.

vitest-dev/vitest

PR #11360

Mergeado el 29 de septiembre de 2026

17.200 estrellas

El problema

Los pools de vm corrían el optimizador de dependencias de Vite sobre todo el index.html. Si una dependencia descubierta así no se podía empaquetar, la corrida moría con exit 1 con todos los tests pasando. Es el peor tipo de falla: no dice que un test está mal, dice que el proceso se cayó.

El arreglo

El handler configEnvironment hacía un return temprano para el environment de vm antes de aplicar resolveOptimizerConfig, así que ese environment conservaba el default de browser de Vite. Rastreé hasta el commit que introdujo el problema y el fix se mergeó. El maintainer agregó nits de redacción y aclaró el fixture antes de aprobarlo.

Verificación y review

RED → GREEN: sin el fix fallan exactamente vmThreads y vmForks; con el fix pasan los cuatro pools.

Ver el PR #11360 en GitHub

fastify/fastify-cookie

PR #377

Mergeado el 27 de octubre de 2026

301 estrellas

El problema

reply.setCookie() aceptaba la opción encode y la ignoraba: no la reenviaba al serializer de cookie@2, así que no había forma de customizar cómo se codifica el valor. Falla silenciosa: la opción entra, no hace nada.

El arreglo

Separé encode del resto de los atributos y lo pasé como opciones de stringifySetCookie. Se mergeó con dos aprobaciones de maintainers y salió publicado en @fastify/cookie 11.1.5, minutos después del merge.

Verificación y review

Había un PR anterior con el mismo objetivo. En vez de cerrar el mío, expliqué en qué se distinguía; los maintainers mergearon los dos y el código que sobrevive es el mío. El PR tardó 32,6 días en mergearse.

Ver el PR #377 en GitHub

vitest-dev/vitest

PR #11781

Mergeado el 30 de octubre de 2026

17.200 estrellas

El problema

Desde 5.0.4 el cache de módulos en disco está prendido por defecto. Si su directorio no se podía crear (filesystem de solo lectura, o un proyecto que pertenece a otro usuario), el mkdirSync tiraba una excepción y el módulo que se estaba transformando fallaba con un error que no tenía nada que ver con el test.

El arreglo

Medí que el fallo golpeaba al primer módulo de cada config, no a todos los archivos como decía el reporte. En vez de propagar el error, el cache degrada: reporta el directorio inutilizable una vez y devuelve el mismo valor nulo que ya significaba «este módulo no se cachea».

Verificación y review

El maintainer pidió cambios: quería desactivar la feature entera para no calcular hashes al vicio. Mi primera versión atrapaba el error donde vivía el mkdir, o sea tarde. Moví el chequeo al principio del recorrido: no lee, no hashea, no escribe. El diseño final es más chico que el mío y mejor.

Ver el PR #11781 en GitHub

Por qué esto se puede verificar

Cada tarjeta linkea el pull request público en GitHub: ahí se ve el diff, quién lo aprobó, quién lo mergeó y qué se discutió en la review. No listo PRs abiertos ni rechazados, porque un PR abierto es una intención y todavía puede cerrarse sin mergear.