Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

RepositoriesCollection drops releases of all but the last repository

Ouverte Adaptée aux débutants
#60 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
php
Domaine
cli

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

bug

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

  1. Remove #[Skip] from RepositoriesCollectionTest::mergesReleasesOfAllRepositories.
  2. 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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de roadrunner-php/cli

Toutes les issues de roadrunner-php/cli

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.