Alpha and beta releases sort above the final release
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
- 74/100
Direção de pesquisa
A ordenação está em comparisonVersionString() em src/Repository/ReleasesCollection.php, que reescreve sufixos no estilo -beta.1 em partes numéricas que depois version_compare() classifica de forma errada. Comece removendo #[Skip] de ReleasesCollectionTest::sortByVersionPutsPreReleasesBelowFinalRelease e executando vendor/bin/testo --filter=sortByVersionPutsPreReleasesBelowFinalRelease. Está pronto quando esse teste passa e as versões finais são ordenadas acima de rc, beta e alpha, incluindo -RC em maiúsculas. Verifique primeiro o #49, pois substituir a busca de releases pode remover esse código.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
ReleasesCollection::sortByVersion() ranks alpha and beta pre-releases above the final release of the same version. Sorting v2024.1.0-alpha.1, v2024.1.0, v2024.1.0-beta.1, v2024.1.0-rc.1 gives:
v2024.1.0-beta.1
v2024.1.0-alpha.1
v2024.1.0
v2024.1.0-rc.1
Expected: v2024.1.0, v2024.1.0-rc.1, v2024.1.0-beta.1, v2024.1.0-alpha.1.
get-binary and download-protoc-binary install the first release of the sorted list that passes the stability filter. With --stability=beta (or lower) they pick the beta over the final release that is already out.
comparisonVersionString() replaces -<stability> with .<weight>.. v2024.1.0-beta.1 therefore compares as v2024.1.0.2..1, and version_compare() ranks it above v2024.1.0 because it has more numeric parts. Lower-case -rc tags are left untouched (the stability is RC), so they happen to sort correctly. Upper-case -RC tags have the same problem as beta and alpha. #2 was about the order among pre-releases.
Steps to reproduce
- Remove
#[Skip]fromReleasesCollectionTest::sortByVersionPutsPreReleasesBelowFinalRelease. - Run
vendor/bin/testo --filter=sortByVersionPutsPreReleasesBelowFinalRelease.
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
-
loginWithCustomTokenExchange() fails when an organization is configuredTalvez já em andamento @awss1i assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
auth0/auth0-PHP#883 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
type/bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
flarum/framework#5231 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
major-release
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 67/100
Intervention/image#1553 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
omegaup/omegaup#10353 · 1 comentário ·
Mantenedores costumam responder em até 5 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 61/100