RepositoriesCollection drops releases of all but the last repository
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
Rechercherichtung
Beginne in src/Repository/RepositoriesCollection.php bei getReleases(), wo der Generator yield from verwendet und Collection::create() iterator_to_array() ausführt, wodurch die kollidierenden Integer-Schlüssel erhalten bleiben. Entferne #[Skip] von RepositoriesCollectionTest::mergesReleasesOfAllRepositories und führe vendor/bin/testo --filter=mergesReleasesOfAllRepositories aus, um zuerst den Fehler zu sehen. Fertig ist es, wenn der Test besteht und Releases aus allen Repositories im Ergebnis erscheinen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- PHP
- Sterne
- 30
- Forks
- 15
- Ø Merge
- 9 Std. 37 Min.
- Gemergte PRs (30 T.)
- 16
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus roadrunner-php/cli
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
roadrunner-php/cli#67 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in roadrunner-php/cli
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
glpi-project/glpi#25922 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Translation TwigBridge
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
symfony/symfony-docs#23308 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
sync-en
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
-
sync-en
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Перевод устарел
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100