Alpha and beta releases sort above the final release
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
Línea de trabajo
La ordenación está en comparisonVersionString() en src/Repository/ReleasesCollection.php, que reescribe los sufijos al estilo -beta.1 en partes numéricas que luego version_compare() clasifica mal. Empieza quitando #[Skip] de ReleasesCollectionTest::sortByVersionPutsPreReleasesBelowFinalRelease y ejecutando vendor/bin/testo --filter=sortByVersionPutsPreReleasesBelowFinalRelease. Está terminado cuando esa prueba pasa y las versiones finales se ordenan por encima de rc, beta y alpha, incluido -RC en mayúsculas. Revisa primero #49, porque reemplazar la búsqueda de releases podría eliminar este código.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
ReleasesCollection::sortByVersion() ranks alpha and beta pre-releases above the final release of the same version. Sorting v2024.1.0-alpha.1, v2024.1.0, v2024.1.0-beta.1, v2024.1.0-rc.1 gives:
v2024.1.0-beta.1
v2024.1.0-alpha.1
v2024.1.0
v2024.1.0-rc.1
Expected: v2024.1.0, v2024.1.0-rc.1, v2024.1.0-beta.1, v2024.1.0-alpha.1.
get-binary and download-protoc-binary install the first release of the sorted list that passes the stability filter. With --stability=beta (or lower) they pick the beta over the final release that is already out.
comparisonVersionString() replaces -<stability> with .<weight>.. v2024.1.0-beta.1 therefore compares as v2024.1.0.2..1, and version_compare() ranks it above v2024.1.0 because it has more numeric parts. Lower-case -rc tags are left untouched (the stability is RC), so they happen to sort correctly. Upper-case -RC tags have the same problem as beta and alpha. #2 was about the order among pre-releases.
Steps to reproduce
- Remove
#[Skip]fromReleasesCollectionTest::sortByVersionPutsPreReleasesBelowFinalRelease. - Run
vendor/bin/testo --filter=sortByVersionPutsPreReleasesBelowFinalRelease.
Additional context
The release lookup may be replaced by DLoad in #49, in which case this code goes away.
- Lenguaje dominante
- PHP
- Estrellas
- 30
- Forks
- 15
- Merge medio
- 45 min
- PR fusionados (30 d)
- 11
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de roadrunner-php/cli
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
roadrunner-php/cli#69 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
roadrunner-php/cli#68 ·
Los mantenedores suelen responder en 1 día
-
--stability=rc is treated as devAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
roadrunner-php/cli#67 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
roadrunner-php/cli#62 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
roadrunner-php/cli#61 ·
Los mantenedores suelen responder en 1 día
Todos los issues de roadrunner-php/cli
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 2 días
-
backend bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
smarty-php/smarty#1215 ·
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día