Was ist der kanonische YAML-Namensstil?

75

Ich entwerfe eine neue YAML-Datei und möchte den Standardstil für die Benennung verwenden. Welches ist es?

Bindestrich?

- job-name:
    ...

Kleinbuchstaben mit Unterzählern?

- job_name:
    ...

CamelCase?

- jobName:
    ...
John McGehee
quelle

Antworten:

70

Verwenden Sie den von der umgebenden Software vorgegebenen Standard.

In meinem aktuellen Projekt enthält die YAML-Datei beispielsweise Standardwerte für Python-Attribute. Da die in YAML verwendeten Namen in der zugehörigen Python-API angezeigt werden, ist es klar, dass in diesem speziellen Projekt die YAML-Namen der Python- lower_case_with_underscoresNamenskonvention gemäß PEP-8 entsprechen sollten.

Mein nächstes Projekt hat möglicherweise eine andere vorherrschende Namenskonvention. In diesem Fall verwende ich diese in den zugehörigen YAML-Dateien.

John McGehee
quelle
9
YAML ist unabhängig und gehorcht also nichts.
Miraage
3
Ich stimme @Miraage zu. Und was ist aus praktischer Sicht, wenn die "umgebende Software" in mehreren Sprachen geschrieben ist?
Rob Worsnop
3
@RobWorsnop wie er sagte, es ist unabhängig von der Software-Sprache. Sie können den CASE verwenden, den Sie am meisten mögen.
João Elvas
Kann ein yaml Name mit einem Unterstrich beginnen? wie, _jobname__genauer gesagt, ich brauche diese, __version__
Mohd
51

Kubernetes mit CamelCase: https://kubernetes.io/docs/user-guide/jobs/

apiVersion, restartPolicy

CircleCI mit snake_case: https://circleci.com/docs/1.0/configuration/

working_directory restore_cache, store_artifacts

Jenkins mit Dash-Case: https://github.com/jenkinsci/yaml-project-plugin/blob/master/samples/google-cloud-storage/.jenkins.yaml

stapler-class


Es sieht also so aus, als würden Projekte und Teams ihre eigenen Konventionen verwenden, und es gibt keinen bestimmten Standard.

Eyal Levin
quelle
Hinzufügen: GitLab und Ansible verwenden beide snake_case: docs.gitlab.com/ee/ci/yaml github.com/ansible/ansible-examples/blob/master/lamp_simple/…
backslash112
Sie haben Recht, dass es keinen universellen Standard gibt. Ich denke, es ist wichtig darauf hinzuweisen, dass sowohl CircleCI als auch GitLab eine Mischung aus snake_caseund verwenden kebab-case. Vielleicht war es zu dem Zeitpunkt, als die Antwort zum ersten Mal veröffentlicht wurde, nicht der Fall, aber jetzt ist es der Fall. GitHub Actions (einer der neueren yaml-basierten ci-Dienste) verwendet kebab-case(zumindest für alle wichtigen Konfigurationsoptionen).
friederbluemle