web-dev-qa-db-fra.com

Quelle est la différence entre .yaml et .yml extension?

Je les ai lus sur YAML-wikipedia mais je n'ai pas vraiment compris la différence principale entre eux. J'ai vu que quelqu'un utilisait l'extension .yaml; cependant, Symfony2 utilise l'extension .yml

YAML est un format de sérialisation des données lisible par l'homme qui reprend les concepts des langages de programmation tels que C, Perl et Python, ainsi que les idées provenant de XML et du format de données du courrier électronique.

YAML est un acronyme récursif pour "YAML n'est pas Markup Language". Au début de son développement, YAML était censé signifier "Yet Another Markup Language" [3], mais il a ensuite été réinterprété (backronyming l'acronyme d'origine) afin de distinguer son objectif en tant que marquage orienté vers les données.

Alors, comment exactement la différence entre .yaml et .yml? Quand devrions-nous préférer l'un par rapport à l'autre?

64
lvarayut

Les extensions de fichier n'ont aucune incidence ou impact sur le contenu du fichier. Vous pouvez contenir du contenu YAML dans des fichiers avec n'importe quelle extension: .yml, .yaml ou autre chose. 

Le (plutôt rare) YAML FAQ recommande que vous utilisiez plutôt .yaml que .yml, mais pour des raisons historiques, de nombreux programmeurs Windows ont toujours peur d'utiliser des extensions de plus de trois caractères et choisissent donc .yml à la place. 

Donc, ce qui compte vraiment, c'est ce qu'il y a dans le fichier, plutôt que son extension. 

95
David Heffernan

Comme @David Heffeman indique que la recommandation est d'utiliser .yaml lorsque cela est possible, et cette recommandation existe depuis septembre 2006. 

Le fait que certains projets utilisent .yml est principalement dû à l'ignorance des implémenteurs/documenteurs: ils voulaient utiliser YAML pour des raisons de lisibilité, ou une autre fonctionnalité non disponible dans d'autres formats, ne connaissaient pas bien la recommandation et mettaient en œuvre ce qui avait fonctionné, peut-être après regarder un autre projet/bibliothèque (sans se demander si ce qui a été fait est correct).

La meilleure façon de procéder est d’être rigoureux lors de la création de nouveaux fichiers (utilisez .yaml) et d’être permissif lorsque vous acceptez une entrée (autorisez .yml lorsque vous le rencontrez), en mettant à jour/corrige automatiquement ces erreurs lorsque cela est possible.

L'autre recommandation que j'ai est de documenter le (s) argument (s) pourquoi vous devez utiliser .yml, lorsque vous pensez le devoir. De cette façon, vous n'aimez pas les ignorants et donnez aux autres l'occasion de comprendre votre raisonnement. Bien sûr, "tout le monde le fait" et "Sur Google, .yml a plus de pages que .yaml" ne sont pas des arguments, ce ne sont que des statistiques sur la popularité des projets qui l'ont mal ou juste (en ce qui concerne l'extension de YAML des dossiers). Vous pouvez essayer de prouver que certains projets sont populaires, simplement parce qu'ils utilisent une extension .yml au lieu du .yaml correct, mais je pense que vous aurez du mal à le faire.

Certains projets se rendent compte (trop tard) qu'ils utilisent l'extension incorrecte (par exemple, docker-compose utilisé .yml, mais dans les versions ultérieures, il a commencé à utiliser .yaml, même s'il prend toujours en charge .yml). D'autres semblent encore ignorer la bonne extension, comme AppVeyor début 2019, mais vous permettent de spécifier le fichier de configuration d'un projet, y compris l'extension. Cela vous permet d'extraire le fichier de configuration de votre visage et de lui donner l'extension appropriée: J'utilise .appveyor.yaml au lieu de appveyor.yml pour construire les roues de Windows de mon analyseur YAML pour Python).


D'autre part: 

Le composant Yaml (sic!) De Symfony2 implémente un sous-ensemble de fonctionnalités } sélectionné dans la spécification de la version YAML 1.2. 

Il semble donc approprié qu’ils utilisent également un sous-ensemble de l’extension recommandée.

0
Anthon