RepositoriesCollection drops releases of all but the last repository
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
Piste de recherche
Commence dans src/Repository/RepositoriesCollection.php à getReleases(), où le générateur utilise yield from et où Collection::create() exécute iterator_to_array(), qui conserve les clés entières en collision. Retire #[Skip] de RepositoriesCollectionTest::mergesReleasesOfAllRepositories puis exécute vendor/bin/testo --filter=mergesReleasesOfAllRepositories pour voir d'abord l'échec. C'est terminé lorsque le test passe et que les releases de tous les dépôts apparaissent dans le résultat.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- PHP
- Étoiles
- 30
- Forks
- 15
- Merge moyen
- 45 min
- PR mergées (30 j)
- 11
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de roadrunner-php/cli
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
roadrunner-php/cli#69 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
roadrunner-php/cli#68 ·
Les mainteneurs répondent en général sous 1 jour
-
--stability=rc is treated as devOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
roadrunner-php/cli#67 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
roadrunner-php/cli#62 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
roadrunner-php/cli#61 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de roadrunner-php/cli
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
scanaislop/aislop#476 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
components-web-app/api-components-bundle#403 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
mollie/PrestaShop#1566 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
components-web-app/docs#193 ·
-
docs: add Python and PHP examples to docs/api.mdPeut-être pris @gaurika-analyst l’a pris aujourd’hui. Ouvertedocumentation good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
djazairdev/wilayas#12 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour