Repository navigation
Releases: Roger08G/cargo-tester
Release list
Production v1.1.0
Changelog
Este archivo existe únicamente en las ramas y tags de release. main conserva
la documentación vigente, pero no incorpora el historial de versiones.
1.1.0 - 2026-09-13
Seguridad y fiabilidad
- Se cierran los grupos de procesos también cuando termina correctamente su líder;
terminación y drenaje tienen esperas acotadas para evitar bloqueos por tuberías
heredadas. Los tests de salida masiva conservan su resultado con captura truncada. - CI omite texto libre de panic y operandos, invalida reportes anteriores y sanea
historial/estado antes de compilar. Las anotaciones no incluyen texto privado. - Controles de terminal neutralizados y saneamiento de formatos npm.
- Lecturas de configuración, contexto fuente, historial y estado acotadas; contexto
limitado a archivos Rust regulares del workspace. Reportes Unix con modo 0600. - Bloqueo en el destino canónico con espera máxima de 10 segundos; los historiales
locales corruptos no se sobrescriben y se rechazan escrituras mayores de 16 MiB. - Argumentos persistidos revalidados, comparaciones de rendimiento separadas por
target y timestamps malformados tratados sin panic.
Optimización y cobertura
- Índice de líneas lineal y presupuesto global de indexación; se evitan copias
innecesarias de salida y la colección de datos fuente está acotada. - 61 pruebas pasan en Windows y 62 en Unix; cuatro casos ignorados por defecto
son demostraciones intencionales y benchmarks manuales. Siete tests end-to-end. - Benchmark documentado: en esta máquina, 24 tests mínimos son más lentos con
aislamiento por proceso (910 ms frente a 54 ms); no se promete mayor velocidad. - Dependencias bloqueadas actualizadas y auditoría RustSec sin avisos conocidos.
- La auditoría, medidas y límites están en docs/SECURITY_AUDIT_1.1.0.md.
CI y distribución
- Tests, formato, Clippy, MSRV 1.85, empaquetado y uso real de cargo-tester
verificados en CI antes de crear la rama y el tag. - Se restaura la política de changelog exclusivo de ramas/tags de release.
- Checkout sin credenciales persistidas; limpieza explícita de reportes previos
y pruebas sobre cada plataforma de distribución. - Reintentos verifican SHA-256 y no sustituyen assets publicados diferentes.
- Release Production v1.1.0: instalador Windows, portables, fuentes y SHA256SUMS.
Los ejecutables siguen sin firma Authenticode/notarización.
1.0.0 - 2026-08-23
Primer release preparado con puertas de producción completas. Esta versión
mantiene el propósito de v0.1.0 —ejecutar tests de Rust y presentar resultados
estructurados— y formaliza sus contratos operativos, de privacidad y de
distribución.
Ejecución y fiabilidad
- Se documentó el modelo real: cada test se ejecuta en un proceso aislado y la
herramienta no promete ser más rápida ni consumir menos memoria que
cargo test. - Se añadieron timeouts configurables para compilación, descubrimiento y cada
test individual. - Ctrl-C, SIGTERM y los timeouts terminan el grupo de procesos del test,
incluidos sus descendientes asociados. - stdout y stderr se drenan de forma continua y se conservan con límites
independientes para impedir crecimiento de memoria sin límite. - Los timeouts tienen estado
TIMEOUT, conteo propio y código de salida fallido. - El benchmark manual reproducible compara cinco muestras alternadas frente a
cargo testsin imponer un umbral de rendimiento artificial.
Privacidad y persistencia
- El modo
--ciomite salida capturada, contexto fuente, directorio de trabajo
y argumentos de ejecución en los artefactos. - Se añadieron rutas relativas, saneamiento de formas habituales de secretos y
truncado en el momento de captura. El saneamiento se documenta como defensa
en profundidad, no como garantía para texto arbitrario. summary.txt,details.json,history.jsonylast-run.jsonse escriben
mediante reemplazo atómico.- Un bloqueo entre procesos serializa la lectura y actualización de los cuatro
reportes para evitar JSON parcial y pérdida de historial en ejecuciones
simultáneas. --last-faileddistingue tests con el mismo nombre pertenecientes a targets
distintos.
Compatibilidad y cobertura
- Se definió soporte explícito para binarios con el harness estándar
libtest,
incluidos unit tests, integration tests, workspaces y selecciones de tests
ignorados. - Doctests, benchmarks como protocolo de resultados y harness personalizados
quedan fuera del contrato y se rechazan cuando se detectan. - Los argumentos que interfieren con el protocolo interno de
libtestse
rechazan en la CLI en lugar de producir resultados ambiguos. - Se añadieron fixtures end-to-end para fallos reales, privacidad CI, salida
masiva, tests bloqueados, procesos descendientes, tests ignorados, nombres
duplicados en workspaces, errores de compilación, harness personalizados y
persistencia concurrente.
Reportes y distribución
- Se eliminó por completo la generación de diagnósticos o posibles soluciones;
los reportes contienen únicamente hechos observados del test y del fallo. details.jsonusa el esquema 4,history.jsonel esquema 2 ylast-run.json
el esquema 3, manteniendo lectura de los esquemas anteriores admitidos.- La CI valida Linux, Windows, macOS, el MSRV Rust 1.85, formato, Clippy,
empaquetado, E2E y avisos conocidos de RustSec. - Todas las GitHub Actions están fijadas por SHA y cada job tiene un timeout.
- El release publica archivos portables para los tres sistemas, un instalador
Windows x86-64 probado mediante instalación/desinstalación, un archivo fuente
explícito ySHA256SUMS.txt. - El compilador Inno Setup usado por CI se descarga desde su release oficial y
se verifica por SHA-256 antes de ejecutarlo.
Cambios incompatibles desde v0.1.0
- La opción eliminada
output.solutionya no se acepta entester.toml. - Los consumidores de JSON deben admitir los nuevos números de esquema y el
estadoTIMEOUT. - En CI,
last-run.jsonya no conserva automáticamente argumentos para
--last-failed; deben volver a proporcionarse de forma explícita. --docy opciones del harness reservadas porcargo-testerproducen ahora
un error claro.
Límites conocidos
- El arranque de un proceso por test tiene un coste medible y puede resultar
mucho más lento quecargo testen suites de tests muy breves. - El parser depende del protocolo textual del harness estándar
libtest; un
harness personalizado que lo imite exactamente queda fuera del contrato. - Un daemon que se desvincule deliberadamente del grupo del test puede escapar
al terminador. - Los ejecutables de v1.0.0 no están firmados con Authenticode ni notarizados;
deben verificarse conSHA256SUMS.txt.
0.1.0 - 2026-07-15
Release inicial con ejecución paralela por test, filtros, grupos secuenciales,
detalles de fallos, historial de duraciones, repetición del último conjunto
fallido, salida para CI y archivos portables para Windows, Linux y macOS.
Production v1.0.0
Changelog
Este archivo existe únicamente en las ramas y tags de release. main conserva
la documentación vigente, pero no incorpora el historial de versiones.
1.0.0 - 2026-08-23
Primer release preparado con puertas de producción completas. Esta versión
mantiene el propósito de v0.1.0 —ejecutar tests de Rust y presentar resultados
estructurados— y formaliza sus contratos operativos, de privacidad y de
distribución.
Ejecución y fiabilidad
- Se documentó el modelo real: cada test se ejecuta en un proceso aislado y la
herramienta no promete ser más rápida ni consumir menos memoria que
cargo test. - Se añadieron timeouts configurables para compilación, descubrimiento y cada
test individual. - Ctrl-C, SIGTERM y los timeouts terminan el grupo de procesos del test,
incluidos sus descendientes asociados. - stdout y stderr se drenan de forma continua y se conservan con límites
independientes para impedir crecimiento de memoria sin límite. - Los timeouts tienen estado
TIMEOUT, conteo propio y código de salida fallido. - El benchmark manual reproducible compara cinco muestras alternadas frente a
cargo testsin imponer un umbral de rendimiento artificial.
Privacidad y persistencia
- El modo
--ciomite salida capturada, contexto fuente, directorio de trabajo
y argumentos de ejecución en los artefactos. - Se añadieron rutas relativas, saneamiento de formas habituales de secretos y
truncado en el momento de captura. El saneamiento se documenta como defensa
en profundidad, no como garantía para texto arbitrario. summary.txt,details.json,history.jsonylast-run.jsonse escriben
mediante reemplazo atómico.- Un bloqueo entre procesos serializa la lectura y actualización de los cuatro
reportes para evitar JSON parcial y pérdida de historial en ejecuciones
simultáneas. --last-faileddistingue tests con el mismo nombre pertenecientes a targets
distintos.
Compatibilidad y cobertura
- Se definió soporte explícito para binarios con el harness estándar
libtest,
incluidos unit tests, integration tests, workspaces y selecciones de tests
ignorados. - Doctests, benchmarks como protocolo de resultados y harness personalizados
quedan fuera del contrato y se rechazan cuando se detectan. - Los argumentos que interfieren con el protocolo interno de
libtestse
rechazan en la CLI en lugar de producir resultados ambiguos. - Se añadieron fixtures end-to-end para fallos reales, privacidad CI, salida
masiva, tests bloqueados, procesos descendientes, tests ignorados, nombres
duplicados en workspaces, errores de compilación, harness personalizados y
persistencia concurrente.
Reportes y distribución
- Se eliminó por completo la generación de diagnósticos o posibles soluciones;
los reportes contienen únicamente hechos observados del test y del fallo. details.jsonusa el esquema 4,history.jsonel esquema 2 ylast-run.json
el esquema 3, manteniendo lectura de los esquemas anteriores admitidos.- La CI valida Linux, Windows, macOS, el MSRV Rust 1.85, formato, Clippy,
empaquetado, E2E y avisos conocidos de RustSec. - Todas las GitHub Actions están fijadas por SHA y cada job tiene un timeout.
- El release publica archivos portables para los tres sistemas, un instalador
Windows x86-64 probado mediante instalación/desinstalación, un archivo fuente
explícito ySHA256SUMS.txt. - El compilador Inno Setup usado por CI se descarga desde su release oficial y
se verifica por SHA-256 antes de ejecutarlo.
Cambios incompatibles desde v0.1.0
- La opción eliminada
output.solutionya no se acepta entester.toml. - Los consumidores de JSON deben admitir los nuevos números de esquema y el
estadoTIMEOUT. - En CI,
last-run.jsonya no conserva automáticamente argumentos para
--last-failed; deben volver a proporcionarse de forma explícita. --docy opciones del harness reservadas porcargo-testerproducen ahora
un error claro.
Límites conocidos
- El arranque de un proceso por test tiene un coste medible y puede resultar
mucho más lento quecargo testen suites de tests muy breves. - El parser depende del protocolo textual del harness estándar
libtest; un
harness personalizado que lo imite exactamente queda fuera del contrato. - Un daemon que se desvincule deliberadamente del grupo del test puede escapar
al terminador. - Los ejecutables de v1.0.0 no están firmados con Authenticode ni notarizados;
deben verificarse conSHA256SUMS.txt.
0.1.0 - 2026-07-15
Release inicial con ejecución paralela por test, filtros, grupos secuenciales,
detalles de fallos, historial de duraciones, repetición del último conjunto
fallido, salida para CI y archivos portables para Windows, Linux y macOS.
v0.1.0
Full Changelog: https://github.com/Roger08G/cargo-tester/commits/v0.1.0