RepositoriesCollection drops releases of all but the last repository
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
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
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.
- Linguagem predominante
- PHP
- Estrelas
- 30
- Forks
- 15
- Merge médio
- 9h 37min
- PRs com merge (30d)
- 16
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de roadrunner-php/cli
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
roadrunner-php/cli#67 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de roadrunner-php/cli
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Automattic/blocks-engine#3090 ·
Mantenedores costumam responder em até 1 dia
-
macOS
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
beyondcode/herd-community#1771 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
-
module: user interface priority: high severity: minor type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
[Enhancement] Add a dark-bg Tailwind variantTalvez já em andamento @bd-viget assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
vigetlabs/wordpress-site-starter#306 ·
Mantenedores costumam responder em até 1 dia