From e6c7a71d40e5dd0272df718f9b2231e6f9461876 Mon Sep 17 00:00:00 2001 From: vanzan01 <35181591+vanzan01@users.noreply.github.com> Date: Sat, 20 Sep 2025 01:16:00 +0800 Subject: [PATCH] Add yamllint pre-commit hook for YAML file standardization (#11017) * Add yamllint pre-commit hook for YAML file standardization Add yamllint hook to .pre-commit-config.yaml to standardize YAML files across the project. Created .yamllint.yml configuration with relaxed rules to accommodate existing files. Fixed colon spacing in .asf.yaml to pass yamllint checks. Closes #10974 Signed-off-by: vanzan01 * Add extra eol to .yamllint.yml Address review comment from DaanHoogland Signed-off-by: vanzan01 * Move .yamllint.yml to .github/linters/ and improve file pattern - Move .yamllint.yml to .github/linters/ directory for better organization - Update pre-commit config to point to new location - Change file pattern to \.ya?ml$ as suggested Address review feedback from jbampton Signed-off-by: vanzan01 * Update .pre-commit-config.yaml Co-authored-by: John Bampton * Make yamllint more forgiving and exclude only k8s templates - Remove extensive file exclusions, keep only k8s templates - Increase line length limit to 400 chars (GitHub Actions friendly) - Allow flexible colon spacing (max-spaces-after: -1) - Disable document-start requirement This provides linting value while handling infrastructure patterns. Signed-off-by: vanzan01 * Update .pre-commit-config.yaml Co-authored-by: John Bampton --------- Signed-off-by: vanzan01 Co-authored-by: John Bampton --- .asf.yaml | 6 +++--- .github/linters/.yamllint.yml | 31 +++++++++++++++++++++++++++++++ .pre-commit-config.yaml | 10 ++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 .github/linters/.yamllint.yml diff --git a/.asf.yaml b/.asf.yaml index be818fda4d3..a8f1482cf4a 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -63,7 +63,7 @@ github: protected_branches: ~ notifications: - commits: commits@cloudstack.apache.org - issues: commits@cloudstack.apache.org + commits: commits@cloudstack.apache.org + issues: commits@cloudstack.apache.org pullrequests: commits@cloudstack.apache.org - discussions: users@cloudstack.apache.org + discussions: users@cloudstack.apache.org diff --git a/.github/linters/.yamllint.yml b/.github/linters/.yamllint.yml new file mode 100644 index 00000000000..8a72aee0adb --- /dev/null +++ b/.github/linters/.yamllint.yml @@ -0,0 +1,31 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +--- +extends: relaxed + +rules: + line-length: + max: 400 # Very forgiving for GitHub Actions and infrastructure files + indentation: disable # Disable indentation checking for existing files + comments: disable # Disable comment formatting checks + brackets: disable # Disable bracket spacing checks + colons: + max-spaces-after: -1 # Allow any number of spaces after colon + max-spaces-before: 0 + document-start: disable # Many files don't have --- + truthy: + allowed-values: ['true', 'false', 'on', 'off', 'yes', 'no'] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 46db709c3fe..70d7e39cdf3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -94,3 +94,13 @@ repos: args: [--config=.github/linters/.markdown-lint.yml] types: [markdown] files: \.(md|mdown|markdown)$ + - repo: https://github.com/adrienverge/yamllint + rev: v1.37.1 + hooks: + - id: yamllint + name: run yamllint + description: check YAML files with yamllint + args: [--config-file=.github/linters/.yamllint.yml] + types: [yaml] + files: \.ya?ml$ + exclude: ^.*k8s-.*\.ya?ml$