À propos
Ce que dit le catalogue, et comment il le sait.
161 outils de développement, chacun listé avec ce qu'il remplace. Le reste de ce que vous voyez sur un outil vient de GitHub, pas de la personne qui l'a ajouté.
Ce qu'une entrée affirme
Chaque outil est un petit fichier YAML sous data/tools/. Elle nomme l'outil, son dépôt GitHub, sa catégorie, les outils qu'il remplace avec un niveau de remplacement pour chacun, et une affiliation s'il y en a une. C'est tout ce qu'un contributeur peut écrire.
Une entrée n'indique jamais d'étoiles, de licence, de version ni de description. Le schéma les rejette, donc une pull request ne peut ni gonfler un nombre d'étoiles ni revendiquer une release qui n'existe pas.
La mise à jour nocturne
Chaque jour à 03:17 UTC, et à chaque changement des données du catalogue sur la branche main, unworkflow GitHub Actionslit chaque dépôt listé depuis l'API GitHub :
- description, page d'accueil, langage, licence, étoiles, forks et topics
- si le dépôt est archivé, et la date de son dernier push
- la dernière release, ou le dernier tag à défaut de release, et si elle est signée
- les cinq dernières releases publiées, affichées sur la page de l'outil
- le fichier mainteneur décrit sous vérifié
Dès que quelque chose a changé, le workflow commite le nouveau catalogue et une nouvelle version de ce site est publiée. Un outil dont GitHub ne renvoie plus le dépôt, parce qu'il a été supprimé ou rendu privé, est exclu du catalogue.
Marques
- ✓ signée
- À côté de la dernière version. Le tag porte une signature vérifiée par GitHub ou, pour un tag léger, c'est le commit qu'il désigne qui la porte. Seule la dernière release est vérifiée.
- Vérifié par ses mainteneurs
- Le dépôt de l'outil lui-même contient un fichier
.awesome-alternativesà la racine de sa branche par défaut, avecslug:renseigné sur cette entrée. Seule une personne disposant d'un accès en écriture au dépôt peut l'ajouter, si bien que la marque dit que ses mainteneurs assument l'entrée. La mise à jour lit ce fichier chaque nuit. - archivé
- Le dépôt est archivé et ne reçoit plus de modifications. Un outil archivé est précisément ce que l'on cherche à quitter : il n'est donc accepté que comme cible remplacée par d'autres entrées, jamais comme alternative, et l'avertissement aucun push ne lui est pas appliqué.
- Other
- Affiché comme licence quand GitHub en détecte une mais ne peut pas la rattacher à un identifiant SPDX. Quand GitHub n'en détecte aucune, l'outil affiche Aucune détectée et l'avertissement aucune licence lui est appliqué.
Niveaux de remplacement
Chaque alternative en porte un, défini par la personne qui ajoute l'entrée.
- Drop-in
- Accepte sans changement la configuration ou l'interface de l'original : on l'échange sans toucher à son installation. Demander un drop-in dans la recherche ne garde que ceux-là.
- Remplacement complet
- Couvre le même besoin, à sa manière. Prévoir de migrer sa configuration.
- Partiel
- Couvre une partie du besoin. La note sous l'outil précise laquelle.
Avertissements
Un avertissement ne retire jamais un outil. C'est ce qu'un mainteneur regarde avant de fusionner une pull request, et ce qu'il peut être utile de savoir avant de dépendre de l'outil.
- Dépôt déplacé
- Le dépôt se trouve désormais sous un autre nom ou un autre propriétaire. GitHub redirige l'ancienne adresse, mais l'entrée devrait être mise à jour.
- Aucune licence détectée
- GitHub ne détecte aucune licence : les conditions d'utilisation du code sont donc incertaines.
- Aucune release ni tag
- Le dépôt n'a ni release ni tag : il n'y a donc aucune version à épingler.
- Aucun push depuis un an
- Rien n'a été poussé depuis plus de 365 jours. Les dépôts archivés sont exclus de cet avertissement.
- Afflux d'étoiles inhabituel
- Au moins 50 des étoiles les plus récentes sont arrivées en moins de 24 heures. Les étoiles achetées arrivent par salves, un lancement sur Hacker News aussi, et c'est pourquoi la décision revient à une personne. Cette vérification tourne quand une pull request ajoute ou modifie l'entrée, pas pendant la mise à jour nocturne. GitHub refuse de paginer loin dans les stargazers des plus gros dépôts, et pour ceux-là la vérification est ignorée plutôt que devinée.
D'autres problèmes bloquent plutôt la pull request : un dépôt privé, un fork, archivé mais proposé comme alternative, plus jeune que 30 jours, ou déjà listé sous un autre slug. Le guide du contributeur liste toutes les vérifications.
Affiliation
Qui maintient un outil, y contribue ou en est rémunéré doit le déclarer dans son entrée. Référencer son propre projet est bienvenu, ne pas le dire est un motif de retrait. Quand une entrée porte une affiliation, la page de l'outil l'affiche telle qu'elle est écrite.
Comment fonctionne la recherche
Votre requête est d'abord lue comme des mots-clés : les noms des outils que d'autres remplacent, les langages et les licences du catalogue, et « drop in ». Quand aucun outil à remplacer n'est nommé, un petit modèle d'embedding multilingue qui tourne sur le serveur de recherche compare la requête à la description de chaque outil, si bien qu'une requête écrite dans n'importe quelle langue du site trouve les mêmes outils que sa formulation anglaise, alors même que les descriptions restent en anglais, telles que GitHub les renvoie. Si un outil à remplacer se détache nettement, il est retenu ; sinon les résultats sont classés par proximité avec la requête. Ce n'est que lorsque ni l'une ni l'autre de ces étapes ne trouve d'outil à remplacer, et que le serveur dispose d'une clé pour cela, que le texte de la requête part chez Jev, un service externe, pour qu'il le lise. Sa lecture est mise en cache sur le serveur pendant une journée. Les résultats indiquent qui a lu votre requête : « Reconnu en local » ou « Lu par Jev ». La page de confidentialité dit ce qui est envoyé et ce qui est conservé.
Licences
Les données du catalogue sont versées au domaine public sous CC0 1.0. Le code du site, de l'API et des scripts est sous licence MIT.