Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

RepositoriesCollection drops releases of all but the last repository

Fechada Para iniciantes
#60 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
php
Domínio
cli

Direção de pesquisa

Comece em src/Repository/RepositoriesCollection.php, em getReleases(), onde o gerador usa yield from e Collection::create() executa iterator_to_array(), que mantém as chaves inteiras que colidem. Remova #[Skip] de RepositoriesCollectionTest::mergesReleasesOfAllRepositories e execute vendor/bin/testo --filter=mergesReleasesOfAllRepositories para ver primeiro a falha. Está pronto quando o teste passa e as releases de todos os repositórios aparecem no resultado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
PHP
Estrelas
30
Forks
15
Merge médio
9h 37min
PRs com merge (30d)
16

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de roadrunner-php/cli

Todas as issues de roadrunner-php/cli

Issues semelhantes

Mais issues de PHP

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.