Releases: phpcfdi/cfdi-to-json
Versión 0.4.0
Se ha comprobado la compatibilidad con PHP 8.4 y se ha establecido la versión mínima a PHP 8.2.
Esto ha llevado a cambios las firmas de código, específicamente en la clase XsdMaxOccursFromNsRegistry.
Igualmente, se ha cambiado de opcional a obligatorio el parámetro $value de la clase PhpCfdi\CfdiToJson\Nodes\Node.
Estos son algunos cambios menores:
- Se elimina el archivo
infection.json.distdel paquete generado por Git. - Se actualiza el año de licencia a 2025.
Los siguientes cambios ocurren en el entorno de desarrollo.
- En los flujos de trabajo de GitHub:
- Se ejecutan los trabajos en PHP 8.4.
- Se agrega PHP 8.4 a la matriz de pruebas.
- Se eliminan las versiones menores a PHP 8.2 de la matriz de pruebas.
- Se actualiza la integración con SonarQube Cloud.
- Se actualizan las reglas para el estándar de código.
- Se corrigen las incidencias de PHPStan 2 por anotaciones.
- Se mejoran las pruebas y el código para reducir los mutantes en las pruebas de mutación.
- Se actualiza la versión mínima de PHPUnit a 11.5.
- Se actualizan las herramientas de desarrollo.
Versión 0.3.5
- Se actualiza el archivo
UnboundedOccursPaths.jsonporque se incluyó el nuevo complemento Carta Porte 3.1.
Los siguientes cambios no modifican el código fuente.
- Se actualiza el archivo de licencia.
- En los flujos de trabajo de GitHub:
- Se agrega PHP 8.3 a la matriz de pruebas.
- Se ejecutan los trabajos en PHP 8.3.
- Se utilizan las acciones de GitHub versión 4.
- Se actualizan las herramientas de desarrollo.
Versión 0.3.4
- Se actualiza el archivo
UnboundedOccursPaths.jsonporque se incluyó el nuevo complemento Carta Porte 3.0.
Versión 0.3.3
Cuando se busca abrir un archivo para obtener las rutas sin límite, se lanza una excepción si no se pudo
abrir el archivo, anteriormente se lanzaba un warning de la función get_file_contents.
Los siguientes cambios no modifican el código fuente.
- Se actualiza el archivo de licencia.
- Se elimina una conversión a cadena de texto innecesaria introducida para satisfacer a PHPStan.
- Se agrega una prueba para comprobar que al generar paths repetidos se devuelve un arreglo secuencial.
- Se corrige la insignia de construcción en el archivo
README.md. - En los flujos de trabajo de GitHub:
- Se agrega PHP 8.2 a la matriz de pruebas.
- Se ejecutan los trabajos en PHP 8.2.
- Se agrega la habilidad de ejecutar un flujo de trabajo a petición.
- Se sustituye la directiva
::set-outputcon$GITHUB_OUTPUT. - Se utilizan las acciones de GitHub versión 3.
- Se corrige la configuración de SonarCloud.
- Se actualizan las herramientas de desarrollo.
Versión 0.3.2
Versión 0.3.2 2022-10-01
Permite la lectura del contenido de texto de los nodos, esto es porque el "Complemento Detallista" usa este tipo de estructura. Estos contenidos se consideran como espacios en blanco colapsados.
Gracias @gam04 por tu contribución.
Cambios al entorno de desarrollo
- Se actualizan las herramientas de desarrollo.
- Se actualiza el flujo de trabajo de integración continua:
- Se utilizan las GitHub Actions versión 3.
- Se corren los procesos en PHP 8.1.
- Se elimina la dependencia de
composerdonde no se usa.
- Se actualiza el archivo de configuración de
php-cs-fixer. - Se agrega la configuración en Git para que los finales de línea solo sean
LF. - Se integra el proyecto a SonarCloud.
- Se elimina la integración con Scrutinizer CI a favor de SonarCloud. ¡Gracias Scrutinizer CI!.
Versión 0.3.1
La herramienta PHPStan detectó un posible error de mal uso de la propiedad DOMElement::localName donde
puede ser de los tipos string o null, pero solo se consideraba string.
La herramienta PHPStan detectó un posible error de mal uso de la propiedad DOMElement::parentNode donde
se verifica que la propiedad ahora sea de tipo DOMElement.
We ❤️ you PHPStan.
Versión 0.3.0
Se ha descubierto un error en donde dos especificaciones de esquemas del SAT pueden chocar y en una definición tener nodos que no son múltiples y en otra versión que sí lo son. Por ejemplo, en CFDI 3.3 el nodo CfdiRelacionados solo puede aparecer 1 vez, mientras que en CFDI 4.0 su número de apariciones es ilimitado.
Se corrige esta situación cambiando la forma de generar las rutas del archivo leído y cambiando las rutas extraídas de los archivos XSD. En ambos casos ahora se antepone el espacio de nombres XML, por ejemplo: {http://www.sat.gob.mx/cfd/4}/Comprobante/CfdiRelacionados.
De igual forma, ahora el archivo UnboundedOccursPaths.json solo contiene entradas únicas y ordenadas. De esta forma la búsqueda de una coincidencia es mucho más rápida al usar las llaves de un arreglo, y será más fácil entender los cambios que ocurran en el archivo.
Además, se le ha dado mantenimiento al proyecto actualizando los archivos de desarrollo, dependencias de las herramientas de desarrollo, flujo de trabajo de integración continua, licencia (feliz 2022) y probando la compatibilidad con PHP 8.1.
Versión 0.2.3
Se actualiza el archivo UnboundedOccursPaths.json porque se incluyeron:
- CFDI Regular 4.0.
- CFDI de Retenciones e Información de pagos 2.0.
- Complento de Recibo de pagos 2.0.
Versión 0.2.2
- Se actualiza el archivo
UnboundedOccursPaths.jsonporque se incluyó el nuevo complementoCartaPorte 2.0.
Versión 0.2.1
- Se actualiza el archivo
UnboundedOccursPaths.jsonporque se incluyó el nuevo complementoCartaPorte.
Cambios en desarrollo:
- Se actualizó la herramienta
php-cs-fixera^3.0. - Se actualizó el archivo de configuración de PHPUnit a uno más apegado al recomendado.
- Se agrega a GitHub Actions un flujo de trabajo de construcción del proyecto.
- Se agrega a GitHub Actions un flujo de trabajo de actualización y PR desde
phpcfdi/sat-ns-registry. - Se elimina la integración con Travis-CI. Gracias.