Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Raise the minimum PHP version to 8.3

Cerrado Apto para principiantes
#58 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #65 de @e0ipso — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
62/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
php

Línea de trabajo

Empieza con la restricción php en composer.json y la entrada symfony/polyfill-php81 en su bloque require, luego ejecuta composer update --lock para actualizar composer.lock. Confirma que array_is_list() es la única llamada con polyfill en src/ antes de eliminar el paquete, y actualiza la versión mínima de PHP en el README. Está terminado cuando composer.json requiere >=8.3, el polyfill ya no está y el CI pasa en PHP 8.3 y 8.4.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

category::task maintenance priority::normal

Description

composer.json requires php >=7.4, but nothing checks that. CI runs PHP 8.3 and 8.4 only, config.platform.php is pinned to 8.3.0, and the dev dependencies (PHPUnit 10, drupal/core-dev ^11) do not install below 8.3. The test suite cannot run on the minimum we advertise.

I ran a smoke test on PHP 7.4.33 with Drupal 9.5.11 and PHPUnit 9.6. The code in src/ still works there: the README example renders as documented and 57 of 63 tests pass. The other 6 fail because tests/src/ArrayToStdClassTest.php already declares mixed parameters, which is PHP 8 syntax. So 7.4 support works by accident and will break without anyone noticing.

The only Drupal that runs on PHP 7.4 is Drupal 9, which is end of life. Composer refuses to install any 9.5 release by default because of open security advisories.

Raise the minimum to PHP 8.3. That is the oldest version CI tests, so the declared minimum and the tested minimum become the same.

Acceptance Criteria

  • composer.json requires "php": ">=8.3" and composer.lock is refreshed with composer update --lock.
  • symfony/polyfill-php81 is removed from require. The only function src/ uses from it is array_is_list(), which is native since PHP 8.1.
  • The README states PHP 8.3 as the minimum.
  • composer test passes in CI on PHP 8.3 and 8.4.
  • The commit is marked as a breaking change (feat!: or a BREAKING CHANGE: footer) so semantic-release publishes 3.0.0 instead of a 2.x release.

Additional Context

Sites on PHP older than 8.3 keep getting 2.x, currently v2.5.3, through their existing Composer constraint.

Related and out of scope: src/RecursiveTypeCaster.php:153 uses a (boolean) cast, which PHP 8.5 deprecates in favour of (bool). CI does not run 8.5 yet.

Lenguaje dominante
JavaScript
Estrellas
11
Forks
5
Merge medio
1 d 14 h
PR fusionados (30 d)
12

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de e0ipso/schema-forms-php

Todos los issues de e0ipso/schema-forms-php

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.