RepositoriesCollection drops releases of all but the last repository
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
- 82/100
Línea de trabajo
Empieza en src/Repository/RepositoriesCollection.php en getReleases(), donde el generador usa yield from y Collection::create() ejecuta iterator_to_array(), que conserva las claves enteras que colisionan. Elimina #[Skip] de RepositoriesCollectionTest::mergesReleasesOfAllRepositories y ejecuta vendor/bin/testo --filter=mergesReleasesOfAllRepositories para ver primero el fallo. Está terminado cuando la prueba pasa y aparecen en el resultado las releases de todos los repositorios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
RepositoriesCollection::getReleases() loses releases when it aggregates more than one repository. Two repositories with one release each produce a collection with only the second release.
getReleases() builds the collection from a generator that uses yield from over each repository's releases. Collection::create() turns it into an array with iterator_to_array(), which keeps the keys. Every repository yields keys starting at 0, so a later repository overwrites the releases of an earlier one at the same index.
Today Command::getRepository() passes a single GitHub repository, so the CLI is not affected yet. Any second source added to the collection would silently replace the first one's releases.
Steps to reproduce
- Remove
#[Skip]fromRepositoriesCollectionTest::mergesReleasesOfAllRepositories. - Run
vendor/bin/testo --filter=mergesReleasesOfAllRepositories.
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
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 4 días
-
Перевод устарел
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
bug
Dificultad 2/5 Medio día Aptitud para principiantes 76/100
m3ue/m3u-editor#1604 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
femiwiki/docker-mediawiki#1497 ·
Los mantenedores suelen responder en 1 día