RepositoriesCollection drops releases of all but the last repository
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Inizia da src/Repository/RepositoriesCollection.php in getReleases(), dove il generatore usa yield from e Collection::create() esegue iterator_to_array(), che mantiene le chiavi intere in collisione. Rimuovi #[Skip] da RepositoriesCollectionTest::mergesReleasesOfAllRepositoriesed esegui vendor/bin/testo --filter=mergesReleasesOfAllRepositories per vedere prima il fallimento. È fatto quando il test passa e le release di tutti i repository compaiono nel risultato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- PHP
- Stelle
- 30
- Fork
- 15
- Merge medio
- 45m
- PR unite (30g)
- 11
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di roadrunner-php/cli
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
roadrunner-php/cli#69 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
roadrunner-php/cli#68 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
roadrunner-php/cli#67 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
roadrunner-php/cli#62 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
roadrunner-php/cli#61 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di roadrunner-php/cli
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
components-web-app/api-components-bundle#403 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
mollie/PrestaShop#1566 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
components-web-app/docs#193 ·
-
Python 3.15 supportForse già presa @amnesiaof l’ha presa oggi. ApertaL: python L: python:uv
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dependabot/dependabot-core#16524 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
crazy-goat/rabbit-stream#830 ·
I maintainer di solito rispondono entro 1 giorno