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

Alpha and beta releases sort above the final release

Fermée Adaptée aux débutants
#58 1 commentaire 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
74/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
php
Domaine
cli

Piste de recherche

Le tri se trouve dans comparisonVersionString() dans src/Repository/ReleasesCollection.php, qui réécrit les suffixes de la forme -beta.1 en parties numériques que version_compare() classe ensuite à tort. Commence par retirer #[Skip] de ReleasesCollectionTest::sortByVersionPutsPreReleasesBelowFinalRelease, puis exécute vendor/bin/testo --filter=sortByVersionPutsPreReleasesBelowFinalRelease. C'est terminé lorsque ce test passe et que les versions finales sont triées au-dessus de rc, beta et alpha, y compris -RC en majuscules. Vérifie d'abord #49, car remplacer la recherche des releases pourrait supprimer ce code.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug

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

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

Langage dominant
PHP
Étoiles
30
Forks
15
Merge moyen
9 h 37 min
PR mergées (30 j)
16

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.