From 2fb5f06cd7650363fe95a6d551997c09afc5c66a Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Fri, 31 Jul 2026 11:57:05 -0400 Subject: [PATCH 1/2] [BUGFIX] [Docker] sonarcloud warnings fixed. --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d01fdf1..c526f7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -71,9 +71,9 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /etc/apt/keyrings && \ - curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key \ + curl -fsSL --proto "=https" https://apt.llvm.org/llvm-snapshot.gpg.key \ | gpg --dearmor -o /etc/apt/keyrings/llvm-snapshot.gpg && \ - echo "deb [signed-by=/etc/apt/keyrings/llvm-snapshot.gpg] http://apt.llvm.org/resolute/ llvm-toolchain-resolute-22 main" \ + echo "deb [signed-by=/etc/apt/keyrings/llvm-snapshot.gpg] https://apt.llvm.org/resolute/ llvm-toolchain-resolute-22 main" \ | tee /etc/apt/sources.list.d/llvm.list && \ apt-get -y update && \ apt-get -y install --no-install-recommends --no-install-suggests clang-format-22 && \ From febbc5ccb702645033c07136caa865b012ca80f4 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 29 Jul 2026 17:35:59 -0400 Subject: [PATCH 2/2] [FIX] markdownlint: node version upgraded -> 26.x --- .github/workflows/markdown-lint.yml | 29 ++- .markdownlint.json | 130 ++++++++++++++ .markdownlint.yaml | 264 ---------------------------- Dockerfile | 6 +- Makefile | 3 +- 5 files changed, 149 insertions(+), 283 deletions(-) create mode 100644 .markdownlint.json delete mode 100644 .markdownlint.yaml diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml index 2ec78ce..051f6e7 100644 --- a/.github/workflows/markdown-lint.yml +++ b/.github/workflows/markdown-lint.yml @@ -9,38 +9,37 @@ on: # yamllint disable-line rule:truthy branches: ["main"] workflow_dispatch: +env: + node-version: 26.x + markdownlint-version: 0.49.1 + permissions: contents: read jobs: markdownlint: name: Markdown Lint - runs-on: ubuntu-26.04 - - strategy: - matrix: - node-version: [22.x] - # See supported Node.js release schedule - # at https://nodejs.org/en/about/releases/ + runs-on: ubuntu-24.04 steps: - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - name: Set up Node.js ${{ matrix.node-version }} + - name: Set up Node.js ${{ env.node-version }} uses: actions/setup-node@v7 with: - node-version: ${{ matrix.node-version }} + node-version: ${{ env.node-version }} - - name: Install dependencies + - name: Install tool run: > - npm install -g --ignore-scripts markdownlint-cli@0.47.0 + npm install -g --ignore-scripts + markdownlint-cli@${{ env.markdownlint-version }} - - name: Test dependencies - run: | + - name: Check tool + run: > markdownlint --version - name: Lint run: > - markdownlint '**/*.md' --ignore node_modules + markdownlint --config .markdownlint.json '**/*.md' && echo '✔ Your code looks good.' diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..a569808 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,130 @@ +{ + "default": true, + "extends": null, + "MD001": true, + "MD002": { + "level": 1 + }, + "MD003": { + "style": "consistent" + }, + "MD004": { + "style": "consistent" + }, + "MD005": true, + "MD006": true, + "MD007": { + "indent": 2, + "start_indented": false, + "start_indent": 2 + }, + "MD009": { + "br_spaces": 2, + "list_item_empty_lines": false, + "strict": false + }, + "MD010": { + "code_blocks": true, + "ignore_code_languages": [], + "spaces_per_tab": 1 + }, + "MD011": true, + "MD012": { + "maximum": 1 + }, + "MD013": { + "line_length": 80, + "heading_line_length": 80, + "code_block_line_length": 80, + "code_blocks": false, + "tables": true, + "headings": true, + "strict": false, + "stern": false + }, + "MD014": true, + "MD018": true, + "MD019": true, + "MD020": true, + "MD021": true, + "MD022": { + "lines_above": 1, + "lines_below": 1 + }, + "MD023": true, + "MD024": { + "siblings_only": false + }, + "MD025": { + "level": 1, + "front_matter_title": "^\\s*title\\s*[:=]" + }, + "MD026": { + "punctuation": ".,;:!。,;:!" + }, + "MD027": true, + "MD028": true, + "MD029": { + "style": "one_or_ordered" + }, + "MD030": { + "ul_single": 1, + "ol_single": 1, + "ul_multi": 1, + "ol_multi": 1 + }, + "MD031": { + "list_items": true + }, + "MD032": true, + "MD033": { + "allowed_elements": [] + }, + "MD034": true, + "MD035": { + "style": "consistent" + }, + "MD036": { + "punctuation": ".,;:!?。,;:!?" + }, + "MD037": true, + "MD038": true, + "MD039": true, + "MD040": { + "allowed_languages": [], + "language_only": false + }, + "MD041": { + "level": 1, + "front_matter_title": "^\\s*title\\s*[:=]" + }, + "MD042": true, + "MD043": { + "headings": ["*"], + "match_case": false + }, + "MD044": { + "names": [], + "code_blocks": true, + "html_elements": true + }, + "MD045": true, + "MD046": { + "style": "consistent" + }, + "MD047": true, + "MD048": { + "style": "consistent" + }, + "MD049": { + "style": "consistent" + }, + "MD050": { + "style": "consistent" + }, + "MD051": true, + "MD052": true, + "MD053": { + "ignored_definitions": ["//"] + } +} diff --git a/.markdownlint.yaml b/.markdownlint.yaml deleted file mode 100644 index c0fd5b2..0000000 --- a/.markdownlint.yaml +++ /dev/null @@ -1,264 +0,0 @@ ---- - -# yamllint disable rule:line-length - -# Example markdownlint configuration with all properties set to their default value - -# Default state for all rules -default: true - -# Path to configuration file to extend -extends: null - -# MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time -MD001: true - -# MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading -MD002: - # Heading level - level: 1 - -# MD003/heading-style/header-style - Heading style -MD003: - # Heading style - style: "consistent" - -# MD004/ul-style - Unordered list style -MD004: - # List style - style: "consistent" - -# MD005/list-indent - Inconsistent indentation for list items at the same level -MD005: true - -# MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line -MD006: true - -# MD007/ul-indent - Unordered list indentation -MD007: - # Spaces for indent - indent: 2 - # Whether to indent the first level of the list - start_indented: false - # Spaces for first level indent (when start_indented is set) - start_indent: 2 - -# MD009/no-trailing-spaces - Trailing spaces -MD009: - # Spaces for line break - br_spaces: 2 - # Allow spaces for empty lines in list items - list_item_empty_lines: false - # Include unnecessary breaks - strict: false - -# MD010/no-hard-tabs - Hard tabs -MD010: - # Include code blocks - code_blocks: true - # Fenced code languages to ignore - ignore_code_languages: [] - # Number of spaces for each hard tab - spaces_per_tab: 1 - -# MD011/no-reversed-links - Reversed link syntax -MD011: true - -# MD012/no-multiple-blanks - Multiple consecutive blank lines -MD012: - # Consecutive blank lines - maximum: 1 - -# MD013/line-length - Line length -MD013: - # Number of characters - line_length: 80 - # Number of characters for headings - heading_line_length: 80 - # Number of characters for code blocks - code_block_line_length: 80 - # Include code blocks - code_blocks: false - # Include tables - tables: true - # Include headings - headings: true - - # Strict length checking - strict: false - # Stern length checking - stern: false - -# MD014/commands-show-output - Dollar signs used before commands without showing output -MD014: true - -# MD018/no-missing-space-atx - No space after hash on atx style heading -MD018: true - -# MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading -MD019: true - -# MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading -MD020: true - -# MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading -MD021: true - -# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines -MD022: - # Blank lines above heading - lines_above: 1 - # Blank lines below heading - lines_below: 1 - -# MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line -MD023: true - -# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content -MD024: - # Only check sibling headings - siblings_only: false - -# MD025/single-title/single-h1 - Multiple top-level headings in the same document -MD025: - # Heading level - level: 1 - # RegExp for matching title in front matter - front_matter_title: "^\\s*title\\s*[:=]" - -# MD026/no-trailing-punctuation - Trailing punctuation in heading -MD026: - # Punctuation characters not allowed at end of headings - punctuation: ".,;:!。,;:!" - -# MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol -MD027: true - -# MD028/no-blanks-blockquote - Blank line inside blockquote -MD028: true - -# MD029/ol-prefix - Ordered list item prefix -MD029: - # List style - style: "one_or_ordered" - -# MD030/list-marker-space - Spaces after list markers -MD030: - # Spaces for single-line unordered list items - ul_single: 1 - # Spaces for single-line ordered list items - ol_single: 1 - # Spaces for multi-line unordered list items - ul_multi: 1 - # Spaces for multi-line ordered list items - ol_multi: 1 - -# MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines -MD031: - # Include list items - list_items: true - -# MD032/blanks-around-lists - Lists should be surrounded by blank lines -MD032: true - -# MD033/no-inline-html - Inline HTML -MD033: - # Allowed elements - allowed_elements: [] - -# MD034/no-bare-urls - Bare URL used -MD034: true - -# MD035/hr-style - Horizontal rule style -MD035: - # Horizontal rule style - style: "consistent" - -# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading -MD036: - # Punctuation characters - punctuation: ".,;:!?。,;:!?" - -# MD037/no-space-in-emphasis - Spaces inside emphasis markers -MD037: true - -# MD038/no-space-in-code - Spaces inside code span elements -MD038: true - -# MD039/no-space-in-links - Spaces inside link text -MD039: true - -# MD040/fenced-code-language - Fenced code blocks should have a language specified -MD040: - # List of languages - allowed_languages: [] - # Require language only - language_only: false - -# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading -MD041: - # Heading level - level: 1 - # RegExp for matching title in front matter - front_matter_title: "^\\s*title\\s*[:=]" - -# MD042/no-empty-links - No empty links -MD042: true - -# MD043/required-headings/required-headers - Required heading structure -MD043: - # List of headings - headings: [ - "*" - ] - # Match case of headings - match_case: false - -# MD044/proper-names - Proper names should have the correct capitalization -MD044: - # List of proper names - names: [] - # Include code blocks - code_blocks: true - # Include HTML elements - html_elements: true - -# MD045/no-alt-text - Images should have alternate text (alt text) -MD045: true - -# MD046/code-block-style - Code block style -MD046: - # Block style - style: "consistent" - -# MD047/single-trailing-newline - Files should end with a single newline character -MD047: true - -# MD048/code-fence-style - Code fence style -MD048: - # Code fence style - style: "consistent" - -# MD049/emphasis-style - Emphasis style should be consistent -MD049: - # Emphasis style should be consistent - style: "consistent" - -# MD050/strong-style - Strong style should be consistent -MD050: - # Strong style should be consistent - style: "consistent" - -# MD051/link-fragments - Link fragments should be valid -MD051: true - -# MD052/reference-links-images - Reference links and images should use a label that is defined -MD052: true - -# MD053/link-image-reference-definitions - Link and image reference definitions should be needed -MD053: - # Ignored definitions - ignored_definitions: - - "//" - -# yamllint enable rule:line-length diff --git a/Dockerfile b/Dockerfile index c526f7e..9cfa791 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,10 +80,10 @@ RUN mkdir -p /etc/apt/keyrings && \ update-alternatives --install /usr/bin/clang-format clang-format $(which clang-format-22) 100 && \ rm -rf /var/lib/apt/lists/* -ADD https://deb.nodesource.com/setup_22.x nodesource_setup.sh +ADD https://deb.nodesource.com/setup_26.x nodesource_setup.sh RUN bash nodesource_setup.sh && \ apt-get -y install --no-install-recommends --no-install-suggests nodejs && \ - npm install -g --ignore-scripts markdownlint-cli@0.47.0 && \ + npm install -g --ignore-scripts markdownlint-cli@0.49.1 && \ apt-get -y install --no-install-recommends --no-install-suggests python3-minimal python3-pip && \ rm /usr/lib/python3.*/EXTERNALLY-MANAGED && \ apt-get -y install --no-install-recommends --no-install-suggests yamllint && \ @@ -104,7 +104,7 @@ COPY ./CMakePresets.json ${WORKDIR}/CMakePresets.json COPY ./Makefile ${WORKDIR}/ # markdownlint conf -COPY ./.markdownlint.yaml ${WORKDIR}/ +COPY ./.markdownlint.json ${WORKDIR}/ # yamllint conf COPY ./.yamllint ${WORKDIR}/ diff --git a/Makefile b/Makefile index 471b5b0..0a42d60 100644 --- a/Makefile +++ b/Makefile @@ -77,7 +77,8 @@ dependencies: vcpkg --x-wait-for-lock install lint/markdown: - markdownlint '**/*.md' && echo '✔ Your code looks good.' + markdownlint --config .markdownlint.json '**/*.md' \ + && echo '✔ Your code looks good.' lint/yaml: yamllint --stric . && echo '✔ Your code looks good.'