From f604b06d261fefe9b726baed5c01e015211d4a30 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 8 Mar 2025 15:26:33 -0500 Subject: [PATCH 01/60] update windows terminal, clink, and git --- vendor/sources.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vendor/sources.json b/vendor/sources.json index 1a6238457..05fb2eaf5 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,18 +1,18 @@ [ { "name": "windows-terminal", - "version": "1.20.11271.0", - "url": "https://github.com/microsoft/terminal/releases/download/v1.20.11271.0/Microsoft.WindowsTerminal_1.20.11271.0_x64.zip" + "version": "1.23.10353.0", + "url": "https://github.com/microsoft/terminal/releases/download/v1.23.10353.0/Microsoft.WindowsTerminalPreview_1.23.10353.0_x64.zip" }, { "name": "git-for-windows", - "version": "2.47.0.windows.1", - "url": "https://github.com/git-for-windows/git/releases/download/v2.47.0.windows.1/PortableGit-2.47.0-64-bit.7z.exe" + "version": "2.47.1.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/PortableGit-2.47.1-64-bit.7z.exe" }, { "name": "clink", - "version": "1.7.3", - "url": "https://github.com/chrisant996/clink/releases/download/v1.7.3/clink.1.7.3.f8fb96.zip" + "version": "1.7.12", + "url": "https://github.com/chrisant996/clink/releases/download/v1.7.12/clink.1.7.12.625e8b.zip" }, { "name": "conemu-maximus5", From f4b8d0852d0ac05caa759326e743dd285d3a3aa6 Mon Sep 17 00:00:00 2001 From: "Dax t. Games" Date: Sat, 6 Dec 2025 18:56:05 +0000 Subject: [PATCH 02/60] update clink --- vendor/sources.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vendor/sources.json b/vendor/sources.json index f86c7fc55..dceb4cf44 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -6,8 +6,8 @@ }, { "name": "clink", - "version": "1.8.8", - "url": "https://github.com/chrisant996/clink/releases/download/v1.8.8/clink.1.8.8.a63364.zip" + "version": "1.9.3", + "url": "https://github.com/chrisant996/clink/releases/download/v1.9.3/clink.1.9.3.0ef759.zip" }, { "name": "conemu-maximus5", From e4a66402a66c9d73e75e006656ee7c47beee87fe Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 14 Dec 2025 11:10:49 -0500 Subject: [PATCH 03/60] update sources --- .gitignore | 2 +- vendor/sources.json | 49 +++++++++++++++++++++++---------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 3ca812444..8edad6f19 100644 --- a/.gitignore +++ b/.gitignore @@ -37,4 +37,4 @@ scripts/packer/iso/*.iso scripts/packer/packer_cache scripts/packer/output-* *.box - +*.code-workspace diff --git a/vendor/sources.json b/vendor/sources.json index cfb7bd983..b528368ce 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,26 +1,27 @@ [ - "name": "git-for-windows", - "version": "2.51.2.windows.1", - "url": "https://github.com/git-for-windows/git/releases/download/v2.51.2.windows.1/PortableGit-2.51.2-64-bit.7z.exe" - }, - { - "name": "clink", - "version": "1.8.8", - "url": "https://github.com/chrisant996/clink/releases/download/v1.8.8/clink.1.8.8.a63364.zip" - }, - { - "name": "conemu-maximus5", - "version": "23.07.24", - "url": "https://github.com/ConEmu/ConEmu/releases/download/v23.07.24/ConEmuPack.230724.7z" - }, - { - "name": "windows-terminal", - "version": "1.23.12811.0", - "url": "https://github.com/microsoft/terminal/releases/download/v1.23.12811.0/Microsoft.WindowsTerminal_1.23.12811.0_x64.zip" - }, - { - "name": "clink-completions", - "version": "0.6.6", - "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.6.zip" - } + { + "name": "git-for-windows", + "version": "2.52.0.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe" + }, + { + "name": "clink", + "version": "1.9.5", + "url": "https://github.com/chrisant996/clink/releases/download/v1.9.5/clink.1.9.5.ee6b4f.zip" + }, + { + "name": "conemu-maximus5", + "version": "23.07.24", + "url": "https://github.com/ConEmu/ConEmu/releases/download/v23.07.24/ConEmuPack.230724.7z" + }, + { + "name": "windows-terminal", + "version": "1.23.12811.0", + "url": "https://github.com/microsoft/terminal/releases/download/v1.23.12811.0/Microsoft.WindowsTerminal_1.23.12811.0_x64.zip" + }, + { + "name": "clink-completions", + "version": "0.6.7", + "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.7.zip" + } ] From f9d79723a8d6f2a56c261bb868e3f757fffc8b21 Mon Sep 17 00:00:00 2001 From: "Dax t. Games" Date: Sun, 14 Dec 2025 19:10:43 +0000 Subject: [PATCH 04/60] Add install-pacman.sh --- vendor/bin/install_pacman.sh | 115 +++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 vendor/bin/install_pacman.sh diff --git a/vendor/bin/install_pacman.sh b/vendor/bin/install_pacman.sh new file mode 100644 index 000000000..75945189e --- /dev/null +++ b/vendor/bin/install_pacman.sh @@ -0,0 +1,115 @@ +#!/usr/bin/env bash + +# Based on: https://github.com/mcgitty/pacman-for-git +# My Fork: https://github.com/daxgames/pacman-for-git + +export bin_source=${1:-https://github.com/daxgames/pacman-for-git/raw/refs/heads/main} + +if [[ "$HOSTTYPE" == "i686" ]]; then + pacman=( + pacman-6.0.0-4-i686.pkg.tar.zst + pacman-mirrors-20210703-1-any.pkg.tar.zst + msys2-keyring-1~20210213-2-any.pkg.tar.zst + ) + + zstd=zstd-1.5.0-1-i686.pkg.tar.xz + zstd_win=https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-v1.5.5-win32.zip +else + pacman=( + pacman-6.0.1-18-x86_64.pkg.tar.zst + pacman-mirrors-20220205-1-any.pkg.tar.zst + msys2-keyring-1~20220623-1-any.pkg.tar.zst + ) + + zstd=zstd-1.5.2-1-x86_64.pkg.tar.xz + zstd_win=https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-v1.5.5-win64.zip +fi + +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Downloading pacman files... +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +for f in "${pacman[@]}"; do + echo "Running: curl -sLkf -o \"$HOME/Downloads/$f\" \"${bin_source}/$f\"" + curl -sLkf -o "$HOME/Downloads/$f" "${bin_source}/$f" || exit 1 +done +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" + +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Downloading zstd binaries... +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo "Running: curl -sLkf -o \"$HOME/Downloads/$zstd\" \"${bin_source}/$zstd\"" +curl -sLkf -o "$HOME/Downloads/$zstd" "${bin_source}/$zstd" || exit 1 +echo "Running: curl -sLkf -o \"$HOME/Downloads/$(basename \"${zstd_win}\")\" \"$zstd_win\"" +curl -sLkf -o "$HOME/Downloads/$(basename "${zstd_win}")" "$zstd_win" || exit 1 +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" + +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Downloading pacman.conf... +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo "Running: curl -Lk https://raw.githubusercontent.com/msys2/MSYS2-packages/7858ee9c236402adf569ac7cff6beb1f883ab67c/pacman/pacman.conf" +curl -sLk https://raw.githubusercontent.com/msys2/MSYS2-packages/7858ee9c236402adf569ac7cff6beb1f883ab67c/pacman/pacman.conf -o /etc/pacman.conf || exit 1 + +pushd "$HOME/Downloads" +[[ -d "$(basename "${zstd_win}" | sed 's/\.zip$//')" ]] && \ + rm -rf "$(basename "${zstd_win}" | sed 's/\.zip$//')" +unzip "$HOME/Downloads/$(basename "${zstd_win}")" +export PATH="$PATH:$HOME/Downloads/$(basename "${zstd_win}" | sed 's/\.zip$//')" +popd +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" + +cd / +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Installing pacman files... +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo "Extracting zstd to /usr..." +tar x --xz -vf "$HOME/Downloads/$zstd" usr + +for f in "${pacman[@]}"; do + echo "Extracting $f to /usr and /etc..." + tar x --zstd -vf "$HOME/Downloads/$f" usr etc 2>/dev/null +done +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" + +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Initializing pacman... +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +mkdir -p /var/lib/pacman +ln -sf "$(which gettext)" /usr/bin/ +pacman-key --init +pacman-key --populate msys2 +pacman -Syu --noconfirm +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" + +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Getting package versions for the installed Git release +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +t=$(grep -E 'mingw-w64-[ix_0-9]+-git ' /etc/package-versions.txt) +echo "Found package version line: $t" + +curl --help >/dev/null 2>&1 || { echo "ERROR: curl is not installed properly."; exit 1; } + +echo "Getting commit ID that matches '$t' from github pacman-for-git..." +t=$(curl -sLk "${bin_source}/version-tags.txt" | grep "$t") +echo "Full line from version-tags.txt: '$t'" + +[[ "$t" == "" ]] && echo "ERROR: Commit ID not logged in github pacman-for-git." && exit 1 +echo -e "Using commit ID: '${t##* }'" +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" + +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +echo Downloading package database files for the installed Git release +echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +b=64 && [[ "$t" == *-i686-* ]] && b=32 +URL="https://github.com/git-for-windows/git-sdk-$b/raw/${t##* }" +while read -r p v; do + d="/var/lib/pacman/local/$p-$v" + mkdir -p "$d" + echo "$d" + + for f in desc files mtree; do + curl -fsSL "$URL$d/$f" -o "$d/$f" + done + + [[ ! -f "$d/desc" ]] && rmdir "$d" && echo "Missing $d" +done < /etc/package-versions.txt +echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" From df0785d71e00071953a6b8c82fc69a5ccc45dbf6 Mon Sep 17 00:00:00 2001 From: "Dax t. Games" Date: Sun, 14 Dec 2025 19:24:26 +0000 Subject: [PATCH 05/60] Add a disclaimer --- vendor/bin/install_pacman.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/vendor/bin/install_pacman.sh b/vendor/bin/install_pacman.sh index 75945189e..6d72d0714 100644 --- a/vendor/bin/install_pacman.sh +++ b/vendor/bin/install_pacman.sh @@ -1,7 +1,17 @@ #!/usr/bin/env bash # Based on: https://github.com/mcgitty/pacman-for-git -# My Fork: https://github.com/daxgames/pacman-for-git +# Dax T. Games Fork: https://github.com/daxgames/pacman-for-git + +# Disclaimer: Use at your own risk. +# +# This script modifies system files and installs the pacman package manager into your Git for Windows environment. +# +# While it has been tested in various Git for Windows versions, there is always a risk of data loss or system instability when running scripts that alter executable files and shared libraries. +# +# Make sure to back up any important data before proceeding. +# +# Always review and understand scripts from external sources prior to execution. export bin_source=${1:-https://github.com/daxgames/pacman-for-git/raw/refs/heads/main} From 3810b8d258225f9663be444c437a13931ceca1f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:42:23 +0000 Subject: [PATCH 06/60] Initial plan From 1e04711a2111f8da84573946693e394d631cebdf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:08:39 +0000 Subject: [PATCH 07/60] =?UTF-8?q?Change=20test=20emoji=20from=20?= =?UTF-8?q?=F0=9F=A7=AA=20to=20=E2=9C=85=20in=20workflow=20summary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 96 +++++++++++++++++++++--------------- .github/workflows/codeql.yml | 50 ++++++++++--------- .github/workflows/tests.yml | 89 +++++++++++++++++++++++---------- 3 files changed, 149 insertions(+), 86 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2b71a75cd..c59f93536 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,17 +42,24 @@ jobs: - name: Summary - Repository checkout shell: pwsh run: | - echo "## ๐Ÿ“ฆ Build Cmder - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Repository Information" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Actor | @${{ github.actor }} |" >> $env:GITHUB_STEP_SUMMARY - echo "| Workflow | \`${{ github.workflow }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + # Get Cmder version + . scripts/utils.ps1 + $cmderVersion = Get-VersionStr + + @" + ## ๐Ÿ“ฆ Build Cmder - Workflow Summary + + ### Repository Information + | Property | Value | + | --- | --- | + | Repository | ``${{ github.repository }}`` | + | Branch | ``${{ github.ref_name }}`` | + | Commit | ``${{ github.sha }}`` | + | Actor | @${{ github.actor }} | + | Workflow | ``${{ github.workflow }}`` | + | Cmder Version | **$cmderVersion** | + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 @@ -66,10 +73,12 @@ jobs: if: success() shell: pwsh run: | - echo "### โœ… Build Status" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Cmder launcher successfully compiled." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### โœ… Build Status + + Cmder launcher successfully compiled. + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Pack the built files shell: pwsh @@ -80,10 +89,13 @@ jobs: if: success() shell: pwsh run: | - echo "### ๐Ÿ“ฆ Artifacts Created" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Artifact | Size | Hash (SHA256) |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- | --- |" >> $env:GITHUB_STEP_SUMMARY + $summary = @" + ### ๐Ÿ“ฆ Artifacts Created + + | Artifact | Size | Hash (SHA256) | + | --- | --- | --- | + "@ + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip") foreach ($artifact in $artifacts) { $path = "build/$artifact" @@ -91,10 +103,12 @@ jobs: $size = (Get-Item $path).Length / 1MB # Truncate hash to first 16 chars for summary readability (full hash in hashes.txt) $hash = (Get-FileHash $path -Algorithm SHA256).Hash.Substring(0, 16) - echo "| \`$artifact\` | $([math]::Round($size, 2)) MB | \`$hash...\` |" >> $env:GITHUB_STEP_SUMMARY + $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash...`` |" } } - echo "" >> $env:GITHUB_STEP_SUMMARY + $summary += "`n" + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Upload artifact (cmder.zip) uses: actions/upload-artifact@v5 @@ -125,14 +139,16 @@ jobs: if: success() shell: pwsh run: | - echo "### โ˜๏ธ Upload Status" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "All artifacts successfully uploaded to GitHub Actions:" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`cmder.zip\`" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`cmder.7z\`" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`cmder_mini.zip\`" >> $env:GITHUB_STEP_SUMMARY - echo "- โœ… \`hashes.txt\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### โ˜๏ธ Upload Status + + All artifacts successfully uploaded to GitHub Actions: + - โœ… ``cmder.zip`` + - โœ… ``cmder.7z`` + - โœ… ``cmder_mini.zip`` + - โœ… ``hashes.txt`` + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Create Release uses: softprops/action-gh-release@v2 @@ -150,13 +166,15 @@ jobs: if: startsWith(github.ref, 'refs/tags/') shell: pwsh run: | - echo "### ๐Ÿš€ Release Information" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Draft release created for tag: **\`${{ github.ref_name }}\`**" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Release includes:" >> $env:GITHUB_STEP_SUMMARY - echo "- Full version (\`cmder.zip\`, \`cmder.7z\`)" >> $env:GITHUB_STEP_SUMMARY - echo "- Mini version (\`cmder_mini.zip\`)" >> $env:GITHUB_STEP_SUMMARY - echo "- File hashes (\`hashes.txt\`)" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> โš ๏ธ Release is in **draft** mode. Please review and publish manually." >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿš€ Release Information + + Draft release created for tag: **``${{ github.ref_name }}``** + + Release includes: + - Full version (``cmder.zip``, ``cmder.7z``) + - Mini version (``cmder_mini.zip``) + - File hashes (``hashes.txt``) + + > โš ๏ธ Release is in **draft** mode. Please review and publish manually. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 16ebd4072..30052d7eb 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -50,17 +50,19 @@ jobs: - name: Summary - CodeQL analysis started shell: pwsh run: | - echo "## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Analysis Configuration" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Language | \`${{ matrix.language }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary + + ### Analysis Configuration + + | Property | Value | + | --- | --- | + | Repository | ``${{ github.repository }}`` | + | Branch | ``${{ github.ref_name }}`` | + | Language | ``${{ matrix.language }}`` | + | Commit | ``${{ github.sha }}`` | + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -86,10 +88,12 @@ jobs: if: success() shell: pwsh run: | - echo "### โœ… Build Completed" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Cmder launcher built successfully for CodeQL analysis." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### โœ… Build Completed + + Cmder launcher built successfully for CodeQL analysis. + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 @@ -100,10 +104,12 @@ jobs: if: success() shell: pwsh run: | - echo "### ๐Ÿ” CodeQL Analysis Results" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "โœ… CodeQL security analysis completed successfully." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Language analyzed:** \`${{ matrix.language }}\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> Check the Security tab for detailed findings and recommendations." >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿ” CodeQL Analysis Results + + โœ… CodeQL security analysis completed successfully. + + **Language analyzed:** ``${{ matrix.language }}`` + + > Check the Security tab for detailed findings and recommendations. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5110ab18d..ec295e328 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -43,16 +43,25 @@ jobs: - name: Summary - Test execution started shell: pwsh run: | - echo "## ๐Ÿงช Run Tests - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Test Environment" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Runner OS | \`${{ runner.os }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + # Get Cmder version + . scripts/utils.ps1 + $cmderVersion = Get-VersionStr + + @" + ## โœ… Run Tests - Workflow Summary + + ### Test Environment + | Property | Value | + | --- | --- | + | Repository | ``${{ github.repository }}`` | + | Branch | ``${{ github.ref_name }}`` | + | Commit | ``${{ github.sha }}`` | + | Runner OS | ``${{ runner.os }}`` | + | Cmder Version | **$cmderVersion** | + | PowerShell Version | **$($PSVersionTable.PSVersion)** | + | Event | ``${{ github.event_name }}`` | + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Initialize vendors shell: pwsh @@ -63,21 +72,42 @@ jobs: if: success() shell: pwsh run: | - echo "### โš™๏ธ Vendor Initialization" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "โœ… Vendor dependencies initialized successfully." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + # Get vendor versions + $vendorInfo = @() + $vendorDirs = @("conemu-maximus5", "clink", "git-for-windows") + foreach ($dir in $vendorDirs) { + $versionFile = "vendor/$dir/.cmderver" + if (Test-Path $versionFile) { + $version = Get-Content $versionFile -Raw + $vendorInfo += "- **$dir**: $($version.Trim())" + } + } + + $summary = @" + ### โš™๏ธ Vendor Initialization + + โœ… Vendor dependencies initialized successfully. + + **Vendor Versions:** + $($vendorInfo -join "`n") + + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Summary - Test results table header if: success() shell: pwsh run: | - echo "### ๐Ÿ“‹ Test Results" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Test | Status |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿ“‹ Test Results + + | Test | Status | Duration | + | --- | --- | --- | + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Clink Shell + id: test-clink run: | cmd /c vendor\init.bat /v /d /t @@ -85,8 +115,9 @@ jobs: if: success() shell: pwsh run: | - echo "| Clink Shell | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + "| Clink Shell | โœ… Passed | Cmd shell initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing PowerShell + id: test-powershell run: | PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'" @@ -94,8 +125,9 @@ jobs: if: success() shell: pwsh run: | - echo "| PowerShell | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + "| PowerShell | โœ… Passed | Profile script execution |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Bash + id: test-bash run: | bash vendor/cmder.sh @@ -103,13 +135,20 @@ jobs: if: success() shell: pwsh run: | - echo "| Bash | โœ… Passed |" >> $env:GITHUB_STEP_SUMMARY + "| Bash | โœ… Passed | Bash environment initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Summary - All tests completed if: success() shell: pwsh run: | - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### โœ… All Tests Completed" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "All shell environments tested successfully!" >> $env:GITHUB_STEP_SUMMARY + @" + + ### โœ… All Tests Completed + + All shell environments tested successfully! + + **Test Coverage:** + - โœ… Clink shell environment (Windows cmd.exe with Clink) + - โœ… PowerShell environment (with Cmder profile) + - โœ… Bash environment (Git Bash integration) + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 From 0bc7fd3aaa01feb5bf62e4503ba18b9b644f7fad Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 14 Dec 2025 22:30:03 +0000 Subject: [PATCH 08/60] Improve build workflow summary: add links, vendor packages, full hashes, and merge artifact sections Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 93 +++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c59f93536..df6579be8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,21 +45,38 @@ jobs: # Get Cmder version . scripts/utils.ps1 $cmderVersion = Get-VersionStr + $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary + Build started: $buildTime + ### Repository Information | Property | Value | | --- | --- | - | Repository | ``${{ github.repository }}`` | - | Branch | ``${{ github.ref_name }}`` | - | Commit | ``${{ github.sha }}`` | - | Actor | @${{ github.actor }} | + | Repository | [${{ github.repository }}](https://github.com/${{ github.repository }}) | + | Branch | [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | + | Commit | [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | + | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | | Cmder Version | **$cmderVersion** | - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + --- + + ### Vendor Packages + | Package | Version | + | --- | --- | + "@ + + # Read vendor sources.json and add to summary + $vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json + foreach ($vendor in $vendorSources) { + $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + } + $summary += "`n" + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2 @@ -74,9 +91,12 @@ jobs: shell: pwsh run: | @" - ### โœ… Build Status - Cmder launcher successfully compiled. + --- + + ### Build Status + + โœ… Cmder launcher successfully compiled. "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 @@ -85,31 +105,6 @@ jobs: working-directory: scripts run: .\pack.ps1 -verbose - - name: Summary - Package artifacts - if: success() - shell: pwsh - run: | - $summary = @" - ### ๐Ÿ“ฆ Artifacts Created - - | Artifact | Size | Hash (SHA256) | - | --- | --- | --- | - "@ - - $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip") - foreach ($artifact in $artifacts) { - $path = "build/$artifact" - if (Test-Path $path) { - $size = (Get-Item $path).Length / 1MB - # Truncate hash to first 16 chars for summary readability (full hash in hashes.txt) - $hash = (Get-FileHash $path -Algorithm SHA256).Hash.Substring(0, 16) - $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash...`` |" - } - } - $summary += "`n" - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - - name: Upload artifact (cmder.zip) uses: actions/upload-artifact@v5 with: @@ -140,15 +135,28 @@ jobs: shell: pwsh run: | @" - ### โ˜๏ธ Upload Status - All artifacts successfully uploaded to GitHub Actions: - - โœ… ``cmder.zip`` - - โœ… ``cmder.7z`` - - โœ… ``cmder_mini.zip`` - - โœ… ``hashes.txt`` + --- - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + ### Artifacts + + | Artifact | Size | Hash (SHA256) | Download | + | --- | --- | --- | --- | + "@ + + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip", "hashes.txt") + foreach ($artifact in $artifacts) { + $path = "build/$artifact" + if (Test-Path $path) { + $size = (Get-Item $path).Length / 1MB + $hash = (Get-FileHash $path -Algorithm SHA256).Hash + $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash`` | [Download]($downloadUrl) |" + } + } + $summary += "`n" + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Create Release uses: softprops/action-gh-release@v2 @@ -167,9 +175,12 @@ jobs: shell: pwsh run: | @" - ### ๐Ÿš€ Release Information - Draft release created for tag: **``${{ github.ref_name }}``** + --- + + ### Release Information + + ๐Ÿš€ Draft release created for tag: **``${{ github.ref_name }}``** Release includes: - Full version (``cmder.zip``, ``cmder.7z``) From 2057ee58b03d87728594e7542f19326e2b2bc99a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:13:19 +0000 Subject: [PATCH 09/60] Fix incomplete summary by initializing $summary variable before appending Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df6579be8..9cf6788a9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: $cmderVersion = Get-VersionStr $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - @" + $summary = @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary Build started: $buildTime @@ -134,7 +134,7 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" --- From bff3862ad4c2939c0821676683dc7dc6d0817642 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:41:42 +0000 Subject: [PATCH 10/60] =?UTF-8?q?Use=20=F0=9F=97=83=EF=B8=8F=20emoji=20for?= =?UTF-8?q?=20Vendor=20Packages=20and=20Artifacts=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cf6788a9..859002725 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: --- - ### Vendor Packages + ### ๐Ÿ—ƒ๏ธ Vendor Packages | Package | Version | | --- | --- | "@ @@ -138,7 +138,7 @@ jobs: --- - ### Artifacts + ### ๐Ÿ—ƒ๏ธ Artifacts | Artifact | Size | Hash (SHA256) | Download | | --- | --- | --- | --- | From 838c1cfaa3cc0140f8bddd428a69225ac0d184c9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:56:14 +0000 Subject: [PATCH 11/60] Add backticks to clickable links for code formatting in Repository Information Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 859002725..7441c5b02 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,9 +55,9 @@ jobs: ### Repository Information | Property | Value | | --- | --- | - | Repository | [${{ github.repository }}](https://github.com/${{ github.repository }}) | - | Branch | [${{ github.ref_name }}](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | - | Commit | [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | + | Repository | [``${{ github.repository }}``](https://github.com/${{ github.repository }}) | + | Branch | [``${{ github.ref_name }}``](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | + | Commit | [``${{ github.sha }}``](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | | Cmder Version | **$cmderVersion** | From 27c7a0cdc6c6b4224a2715236adde5a2dd1cc7d7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 01:59:35 +0000 Subject: [PATCH 12/60] Improve build summary: simplify message, reorder columns, add file type emojis Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7441c5b02..6583450f7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,7 +96,7 @@ jobs: ### Build Status - โœ… Cmder launcher successfully compiled. + โœ… Cmder built successfully. "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 @@ -140,7 +140,7 @@ jobs: ### ๐Ÿ—ƒ๏ธ Artifacts - | Artifact | Size | Hash (SHA256) | Download | + | Artifact | Size | Download | Hash (SHA256) | | --- | --- | --- | --- | "@ @@ -151,7 +151,17 @@ jobs: $size = (Get-Item $path).Length / 1MB $hash = (Get-FileHash $path -Algorithm SHA256).Hash $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - $summary += "`n| ``$artifact`` | $([math]::Round($size, 2)) MB | ``$hash`` | [Download]($downloadUrl) |" + + # Determine emoji based on file type + if ($artifact -match '\.txt$') { + $emoji = "๐Ÿ“„" + } elseif ($artifact -match '\.(zip|7z)$') { + $emoji = "๐Ÿ—„๏ธ" + } else { + $emoji = "๐Ÿ“ฆ" + } + + $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download]($downloadUrl) | ``$hash`` |" } } $summary += "`n" From a937901e822eb19c527f368f0e7056a1ab9172ad Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:06:08 +0330 Subject: [PATCH 13/60] Change emoji for Vendor Packages section --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6583450f7..3bd7ff39f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: --- - ### ๐Ÿ—ƒ๏ธ Vendor Packages + ### ๐Ÿ“ Vendor Packages | Package | Version | | --- | --- | "@ From 825df3aace44502da0bad0934c2a4f02411ce641 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 02:48:18 +0000 Subject: [PATCH 14/60] Fix branch link for PR merge refs to point to PR instead of invalid tree URL Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3bd7ff39f..29d09d1f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,6 +47,21 @@ jobs: $cmderVersion = Get-VersionStr $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") + # Determine branch link (handle PR merge refs) + $branchName = "${{ github.ref_name }}" + $branchLink = "" + if ($branchName -match '^(\d+)/(merge|head)$') { + # This is a PR merge/head ref, link to the PR + $prNumber = $Matches[1] + $branchLink = "https://github.com/${{ github.repository }}/pull/$prNumber" + } elseif ("${{ github.event_name }}" -eq "pull_request") { + # This is a pull request event, link to the PR + $branchLink = "https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}" + } else { + # Regular branch, link to the branch tree + $branchLink = "https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}" + } + $summary = @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary @@ -56,7 +71,7 @@ jobs: | Property | Value | | --- | --- | | Repository | [``${{ github.repository }}``](https://github.com/${{ github.repository }}) | - | Branch | [``${{ github.ref_name }}``](https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}) | + | Branch | [``$branchName``]($branchLink) | | Commit | [``${{ github.sha }}``](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | From a52b0b9e1011779ab14c92b042d874b76e098186 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:20:35 +0330 Subject: [PATCH 15/60] Update .github/workflows/tests.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/tests.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ec295e328..916b678af 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -72,9 +72,10 @@ jobs: if: success() shell: pwsh run: | - # Get vendor versions + # Get vendor versions from sources.json $vendorInfo = @() - $vendorDirs = @("conemu-maximus5", "clink", "git-for-windows") + $sources = Get-Content "sources.json" -Raw | ConvertFrom-Json + $vendorDirs = $sources.PSObject.Properties | ForEach-Object { $_.Name } foreach ($dir in $vendorDirs) { $versionFile = "vendor/$dir/.cmderver" if (Test-Path $versionFile) { From 641ce7b1e811063fda12a62a3d84de7063c314e9 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:23:04 +0330 Subject: [PATCH 16/60] Update .github/workflows/build.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 29d09d1f6..caf5e0664 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -86,8 +86,12 @@ jobs: # Read vendor sources.json and add to summary $vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json - foreach ($vendor in $vendorSources) { - $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + if ($vendorSources.Count -eq 0) { + $summary += "`n| _No vendor packages found_ | |" + } else { + foreach ($vendor in $vendorSources) { + $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + } } $summary += "`n" From 2780a433237172ff0ce3156b85f7f897b8119e77 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Mon, 15 Dec 2025 06:33:39 +0330 Subject: [PATCH 17/60] Update .github/workflows/tests.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/tests.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 916b678af..043b15860 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -90,7 +90,13 @@ jobs: โœ… Vendor dependencies initialized successfully. **Vendor Versions:** - $($vendorInfo -join "`n") + $( + if ($vendorInfo.Count -eq 0) { + "_No vendor version information available._" + } else { + $vendorInfo -join "`n" + } + ) "@ From 83df88d5a32dedc8234f42fa925dcbf89524654e Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Mon, 22 Dec 2025 09:42:30 -0500 Subject: [PATCH 18/60] fixes for windows 10 --- vendor/bin/install_pacman.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vendor/bin/install_pacman.sh b/vendor/bin/install_pacman.sh index 6d72d0714..dd725ca4a 100644 --- a/vendor/bin/install_pacman.sh +++ b/vendor/bin/install_pacman.sh @@ -14,6 +14,9 @@ # Always review and understand scripts from external sources prior to execution. export bin_source=${1:-https://github.com/daxgames/pacman-for-git/raw/refs/heads/main} +export HOME=$(cygpath -u "$USERPROFILE") +echo "Using binary source: $bin_source" +echo "Using HOME directory: $HOME" if [[ "$HOSTTYPE" == "i686" ]]; then pacman=( @@ -87,7 +90,7 @@ mkdir -p /var/lib/pacman ln -sf "$(which gettext)" /usr/bin/ pacman-key --init pacman-key --populate msys2 -pacman -Syu --noconfirm +pacman -Syu --noconfirm --disable-download-timeout echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From 684185ca8a252887f51d883222a86993308799cd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 05:37:09 +0000 Subject: [PATCH 19/60] Fix vendor workflow Unicode escape error by converting echo to PowerShell here-strings Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/vendor.yml | 52 +++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 717e543db..6bdf80496 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -31,10 +31,12 @@ jobs: - name: Summary - Workflow started shell: pwsh run: | - echo "## ๐Ÿ“ฆ Update Vendor - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Checking for vendor dependency updates..." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ## ๐Ÿ“ฆ Update Vendor - Workflow Summary + + Checking for vendor dependency updates... + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - id: make-changes name: Checking for updates @@ -64,17 +66,21 @@ jobs: run: | $count = $env:COUNT_UPDATED if ($count -eq 0) { - echo "### โœ… No Updates Available" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "All vendor dependencies are up to date." >> $env:GITHUB_STEP_SUMMARY + @" + ### โœ… No Updates Available + + All vendor dependencies are up to date. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 } else { $word = if ($count -eq 1) { 'dependency' } else { 'dependencies' } - echo "### ๐Ÿ”„ Updates Found" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**$count** vendor $word updated:" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "$env:UPDATE_MESSAGE" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐Ÿ”„ Updates Found + + **$count** vendor $word updated: + + $env:UPDATE_MESSAGE + + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 } - uses: peter-evans/create-pull-request@v7 @@ -94,12 +100,14 @@ jobs: if: env.COUNT_UPDATED > 0 shell: pwsh run: | - echo "### ๐ŸŽ‰ Pull Request Created" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "A pull request has been created to update the vendor dependencies." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Branch:** \`update-vendor\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Updated dependencies:** $env:LIST_UPDATED" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> Please review and merge the pull request to apply the updates." >> $env:GITHUB_STEP_SUMMARY + @" + ### ๐ŸŽ‰ Pull Request Created + + A pull request has been created to update the vendor dependencies. + + **Branch:** ``update-vendor`` + + **Updated dependencies:** $env:LIST_UPDATED + + > Please review and merge the pull request to apply the updates. + "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 From dc93fa5d1bbe783d39147c387b68bfb78b2ff457 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 25 Dec 2025 05:40:39 +0000 Subject: [PATCH 20/60] Add real artifact download URLs with retry logic and fallback to run page Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 46 +++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index caf5e0664..40ca5baf8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -152,6 +152,8 @@ jobs: - name: Summary - Artifacts uploaded if: success() shell: pwsh + env: + GH_TOKEN: ${{ github.token }} run: | $summary = @" @@ -163,13 +165,53 @@ jobs: | --- | --- | --- | --- | "@ + # Function to get artifact download URL with retry logic + function Get-ArtifactDownloadUrl { + param( + [string]$ArtifactName, + [int]$MaxRetries = 3, + [int]$DelaySeconds = 2 + ) + + for ($i = 0; $i -lt $MaxRetries; $i++) { + try { + # Use GitHub CLI to get artifact information + $artifactsJson = gh api "repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" --jq ".artifacts[] | select(.name == `"$ArtifactName`")" + + if ($artifactsJson) { + $artifact = $artifactsJson | ConvertFrom-Json + if ($artifact.archive_download_url) { + return $artifact.archive_download_url + } + } + } catch { + Write-Host "Attempt $($i + 1) failed to get artifact URL for $ArtifactName : $_" + } + + if ($i -lt ($MaxRetries - 1)) { + Start-Sleep -Seconds $DelaySeconds + } + } + + return $null + } + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip", "hashes.txt") foreach ($artifact in $artifacts) { $path = "build/$artifact" if (Test-Path $path) { $size = (Get-Item $path).Length / 1MB $hash = (Get-FileHash $path -Algorithm SHA256).Hash - $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + + # Try to get the actual artifact download URL + $downloadUrl = Get-ArtifactDownloadUrl -ArtifactName $artifact + $warning = "" + + if (-not $downloadUrl) { + # Fallback to workflow run page if artifact URL fetch fails + $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + $warning = " โš ๏ธ" + } # Determine emoji based on file type if ($artifact -match '\.txt$') { @@ -180,7 +222,7 @@ jobs: $emoji = "๐Ÿ“ฆ" } - $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download]($downloadUrl) | ``$hash`` |" + $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download$warning]($downloadUrl) | ``$hash`` |" } } $summary += "`n" From 64316333eea0ae85150a0e28e16fbeb8018c950f Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Thu, 25 Dec 2025 15:59:09 -0500 Subject: [PATCH 21/60] x --- vendor/bin/install_pacman.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vendor/bin/install_pacman.sh b/vendor/bin/install_pacman.sh index 6d72d0714..dd725ca4a 100644 --- a/vendor/bin/install_pacman.sh +++ b/vendor/bin/install_pacman.sh @@ -14,6 +14,9 @@ # Always review and understand scripts from external sources prior to execution. export bin_source=${1:-https://github.com/daxgames/pacman-for-git/raw/refs/heads/main} +export HOME=$(cygpath -u "$USERPROFILE") +echo "Using binary source: $bin_source" +echo "Using HOME directory: $HOME" if [[ "$HOSTTYPE" == "i686" ]]; then pacman=( @@ -87,7 +90,7 @@ mkdir -p /var/lib/pacman ln -sf "$(which gettext)" /usr/bin/ pacman-key --init pacman-key --populate msys2 -pacman -Syu --noconfirm +pacman -Syu --noconfirm --disable-download-timeout echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From be5b64122cd55a62061ca18c45874e87c47503e4 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Fri, 16 Jan 2026 16:55:16 -0500 Subject: [PATCH 22/60] add installPacman switch to build.sh --- scripts/build.ps1 | 9 ++++++++- {vendor/bin => scripts}/install_pacman.sh | 0 2 files changed, 8 insertions(+), 1 deletion(-) rename {vendor/bin => scripts}/install_pacman.sh (100%) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 634d2467c..9a0be078a 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -60,7 +60,10 @@ Param( [string]$terminal = 'all', # Build launcher if you have MSBuild tools installed - [switch]$Compile + [switch]$Compile, + + # Install pacman if not present + [switch]$InstallPacman ) # Get the scripts and cmder root dirs we are building in. @@ -199,6 +202,10 @@ if (-not $noVendor) { Copy-Item $($saveTo + "git-prompt.sh") $($saveTo + "git-for-windows/etc/profile.d/git-prompt.sh") } + if ( $InstallPacman -and !(Test-Path $($saveTo + "git-for-windows/usr/bin/pacman.exe") ) ) { + Write-Verbose "Installing pacman..." + & $($saveTo + "git-for-windows/bin/bash.exe") $($saveTo + "../scripts/install_pacman.sh") + } Pop-Location } diff --git a/vendor/bin/install_pacman.sh b/scripts/install_pacman.sh similarity index 100% rename from vendor/bin/install_pacman.sh rename to scripts/install_pacman.sh From e71c7679f60c50a6454ee44b2c1c6762fa3b5529 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 16:22:17 -0500 Subject: [PATCH 23/60] Fixes and Cleanup --- .github/dependabot.yml | 4 ++ .github/workflows/build.yml | 21 ++++--- .github/workflows/codeql.yml | 18 ++++-- .github/workflows/tests.yml | 18 ++++-- .github/workflows/vendor.yml | 24 +++++--- CHANGELOG.md | 79 ++++++++++++++++++++++++ vendor/clink.lua | 116 ++++++++++++++++++++++++++++++++--- 7 files changed, 242 insertions(+), 38 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 90e05c40d..b05586197 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,7 +5,11 @@ version: 2 updates: + # Enable version updates for GitHub Actions - package-ecosystem: "github-actions" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly" + labels: + - "๐Ÿ‘† Dependencies" + - "๐Ÿ”„๏ธ GitHub Actions" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 40ca5baf8..d3886ec5d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,6 +93,7 @@ jobs: $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" } } + $summary += "`n" $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 @@ -109,7 +110,7 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" --- @@ -117,7 +118,9 @@ jobs: โœ… Cmder built successfully. - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Pack the built files shell: pwsh @@ -125,26 +128,26 @@ jobs: run: .\pack.ps1 -verbose - name: Upload artifact (cmder.zip) - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: path: build/cmder.zip name: cmder.zip if-no-files-found: error - name: Upload artifact (cmder.7z) - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: path: build/cmder.7z name: cmder.7z - name: Upload artifact (cmder_mini.zip) - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: path: build/cmder_mini.zip name: cmder_mini.zip - name: Upload artifact (hashes.txt) - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: path: build/hashes.txt name: hashes.txt @@ -245,7 +248,7 @@ jobs: if: startsWith(github.ref, 'refs/tags/') shell: pwsh run: | - @" + $summary = @" --- @@ -259,4 +262,6 @@ jobs: - File hashes (``hashes.txt``) > โš ๏ธ Release is in **draft** mode. Please review and publish manually. - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 30052d7eb..bc9503671 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -50,7 +50,7 @@ jobs: - name: Summary - CodeQL analysis started shell: pwsh run: | - @" + $summary = @" ## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary ### Analysis Configuration @@ -62,7 +62,9 @@ jobs: | Language | ``${{ matrix.language }}`` | | Commit | ``${{ github.sha }}`` | - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -88,12 +90,14 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" ### โœ… Build Completed Cmder launcher built successfully for CodeQL analysis. - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 @@ -104,7 +108,7 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" ### ๐Ÿ” CodeQL Analysis Results โœ… CodeQL security analysis completed successfully. @@ -112,4 +116,6 @@ jobs: **Language analyzed:** ``${{ matrix.language }}`` > Check the Security tab for detailed findings and recommendations. - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 043b15860..c025e427c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,7 +47,7 @@ jobs: . scripts/utils.ps1 $cmderVersion = Get-VersionStr - @" + $summary = @" ## โœ… Run Tests - Workflow Summary ### Test Environment @@ -61,7 +61,9 @@ jobs: | PowerShell Version | **$($PSVersionTable.PSVersion)** | | Event | ``${{ github.event_name }}`` | - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Initialize vendors shell: pwsh @@ -106,12 +108,14 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" ### ๐Ÿ“‹ Test Results | Test | Status | Duration | | --- | --- | --- | - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Clink Shell id: test-clink @@ -148,7 +152,7 @@ jobs: if: success() shell: pwsh run: | - @" + $summary = @" ### โœ… All Tests Completed @@ -158,4 +162,6 @@ jobs: - โœ… Clink shell environment (Windows cmd.exe with Clink) - โœ… PowerShell environment (with Cmder profile) - โœ… Bash environment (Git Bash integration) - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 6bdf80496..3b1ab50e6 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -31,12 +31,14 @@ jobs: - name: Summary - Workflow started shell: pwsh run: | - @" + $summary = @" ## ๐Ÿ“ฆ Update Vendor - Workflow Summary Checking for vendor dependency updates... - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - id: make-changes name: Checking for updates @@ -66,22 +68,24 @@ jobs: run: | $count = $env:COUNT_UPDATED if ($count -eq 0) { - @" + $summary = @" ### โœ… No Updates Available All vendor dependencies are up to date. - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ } else { $word = if ($count -eq 1) { 'dependency' } else { 'dependencies' } - @" + $summary = @" ### ๐Ÿ”„ Updates Found **$count** vendor $word updated: $env:UPDATE_MESSAGE - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ } + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - uses: peter-evans/create-pull-request@v7 if: env.COUNT_UPDATED > 0 @@ -100,9 +104,9 @@ jobs: if: env.COUNT_UPDATED > 0 shell: pwsh run: | - @" + $Summary = @" ### ๐ŸŽ‰ Pull Request Created - + A pull request has been created to update the vendor dependencies. **Branch:** ``update-vendor`` @@ -110,4 +114,6 @@ jobs: **Updated dependencies:** $env:LIST_UPDATED > Please review and merge the pull request to apply the updates. - "@ | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b22a1917..eca18db4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,84 @@ # Change Log +## [1.3.25](https://github.com/cmderdev/cmder/tree/v1.3.25) (2024-05-31) + +### Changes + +- Component Updates + - Update Git for Windows to 2.45.1.windows.1. + - Update ConEmu to 24.05.31. + - Clink 1.6.14. + - clink-completions 0.5.2. + +- Add `SECURITY.md` and refresh CI workflows and actions. +- Enable `match.expand_envvars` and improve git diagnostics for improper versions. + +### Fixes + +- Fix #2944. +- Fix script error when the working directory contains `%`. +- Remove environment refresh race condition. + +## [1.3.24](https://github.com/cmderdev/cmder/tree/v1.3.24) (2023-07-24) + +### Changes + +- Update `build.yml` workflow. + +## [1.3.23](https://github.com/cmderdev/cmder/tree/v1.3.23) (2023-07-24) + +### Changes + +- Update ConEmu (conemu-maximus5) to 23.07.24. + +## [1.3.22](https://github.com/cmderdev/cmder/tree/v1.3.22) (2023-07-24) + +### Changes + +- Handle Clink injction differently in `init.bat`. +- Changes to `clink_settings.lua.default`. + - Do not add commands to Clink Command Line History that begin with whitespace as a default. + - This can be changed to the old behavior by setting `history_ignore_space` to `0` in `config\clink_settings.lua`. + - `history.max_lines` is now defaults to `25000` instead of `10000`. + - This can be changed back to the old behavior by setting `history_max_lines` to `10000` in `config\clink_settings.lua`. + - `history.shared` now defaults to `False` instead of `True`. + - The previous default of `True` was causing issues with some users when using Cmder in multiple sessions. + - This can be changed back to the old behavior by setting `history_shared` to `1` in `config\clink_settings.lua`. + +- Component Updates + - Git for Windows to 2.41.0.windows.3 + - Clink to 1.5.1 + - ConEmu to 23.07.23 + - clink-completions to 0.4.10 + +- Remove AppVeyor configuration and add CodeQL scanning and Dependabot updates. + +### Fixes + +- Fix `/task ""` handling. +- Skip clink injection when initialization fails fatally. +- Fix errors when git/svn/hg are not installed and in profile.d PowerShell scripts. + +## [1.3.21](https://github.com/cmderdev/cmder/tree/v1.3.21) (2022-12-19) + +### Fixes + +- Fix #2789. +- Fix Git Bash `GIT_INSTALL_ROOT` handling. + +### Changes + +- Refactor `clink.lua` to speed up the prompt. +- Refactor and Cleanup `init.bat` and related scripts. +- Refactor and Cleanup `profile.ps1` and related scripts. +- Remove handling of `clink` and `tcc` incompatibility. +- Update ConEmu to mitigate CVE-2022-46387. +- Update Git for Windows to 2.39.0.windows.1 and Clink to 1.4.4. + +### Adds + +- Add `show_warning` function to `vendor\lib\lib_console.cmd` for showing warning messages in yellow. + ## [1.3.20](https://github.com/cmderdev/cmder/tree/v1.3.20) (2022-03-18) ### Changes diff --git a/vendor/clink.lua b/vendor/clink.lua index 81b4d1eef..804f9c649 100644 --- a/vendor/clink.lua +++ b/vendor/clink.lua @@ -324,7 +324,7 @@ end -- Find out current branch -- @return {nil|git branch name} --- -local function get_git_branch(git_dir) +local function get_git_branch(git_dir, fast) git_dir = git_dir or get_git_dir() -- If git directory not found then we're probably outside of repo @@ -341,8 +341,90 @@ local function get_git_branch(git_dir) -- if HEAD matches branch expression, then we're on named branch -- otherwise it is a detached commit local branch_name = HEAD:match('ref: refs/heads/(.+)') + if os.getenv("CLINK_DEBUG_GIT_REFTABLE") then + branch_name = '.invalid' + end + + -- If the branch name is ".invalid" and the fast method wasn't requested, + -- then invoke git.exe to get accurate current branch info (slow method). + if branch_name == ".invalid" and not fast then + local file + branch_name = nil + + -- Handle the most common case first. + if not branch_name then + file = io_popenyield("git --no-optional-locks branch 2>nul") + if file then + for line in file:lines() do + local b = line:match("^%*%s+(.*)") + if b then + b = b:match("^%((HEAD detached at .*)%)") or b + branch_name = b + break + end + end + file:close() + end + end + + -- Handle the cases where "git branch" output is empty, but "git + -- branch --show-current" shows the branch name (e.g. a new repo). + if not branch_name then + file = io_popenyield("git --no-optional-locks branch --show-current 2>nul") + if file then + for line in file:lines() do -- luacheck: ignore 512 + branch_name = line + break + end + file:close() + end + end + else + branch_name = branch_name or 'HEAD detached at '..HEAD:sub(1, 7) + end + + return branch_name +end + +local function get_git_remote(git_dir, branch) + if not git_dir then return nil end + if not branch then return nil end + + local file = io.open(git_dir.."/config", 'r') + if not file then return nil end + + local git_config = {} + + local function get_git_config_value(section, param) + return git_config[section] and git_config[section][param] or nil + end - return branch_name or 'HEAD detached at '..HEAD:sub(1, 7) + local section + for line in file:lines() do + if (line:sub(1,1) == "[" and line:sub(-1) == "]") then + if (line:sub(2,5) == "lfs ") then + section = nil -- skip LFS entries as there can be many and we never use them + else + section = line:sub(2,-2) + git_config[section] = git_config[section] or {} + end + elseif section then + local param, value = line:match('^%s-([%w|_]+)%s-=%s+(.+)$') + if (param and value ~= nil) then + git_config[section][param] = value + end + end + end + file:close() + + local remote_to_push = get_git_config_value('branch "'..branch..'"', 'remote') or '' + local remote_ref = get_git_config_value('remote "'..remote_to_push..'"', 'push') or + get_git_config_value('push', 'default') + + local text = remote_to_push + if remote_ref then text = text..'/'..remote_ref end + + return text ~= '' and text or nil end --- @@ -394,7 +476,7 @@ end -- Get the status and conflict status of working dir -- @return {bool , bool } --- -local function get_git_status() +local function get_git_status(git_dir) local file = io_popenyield("git --no-optional-locks status --porcelain 2>nul") if not file then return {} @@ -416,7 +498,10 @@ local function get_git_status() end file:close() - return { status = is_status, conflict = conflict_found } + local branch = get_git_branch(git_dir, false--[[fast]]) + local remote = get_git_remote(git_dir, branch) + + return { status = is_status, branch = branch, remote = remote, conflict = conflict_found } end --- @@ -515,11 +600,11 @@ end -- Use a prompt coroutine to get git status in the background. -- Cache the info so we can reuse it next time to reduce flicker. --- -local function get_git_info_table() +local function get_git_info_table(git_dir) local info = clink_promptcoroutine(function () -- Use git status if allowed. local cmderGitStatusOptIn = get_git_status_setting() - return cmderGitStatusOptIn and get_git_status() or {} + return cmderGitStatusOptIn and get_git_status(git_dir) or {} end) if not info then info = cached_info.git_info or {} @@ -539,10 +624,11 @@ local function git_prompt_filter() local git_dir = get_git_dir() local color if git_dir then - local branch = get_git_branch(git_dir) + local branch = get_git_branch(git_dir, true--[[fast]]) if branch then -- If in a different repo or branch than last time, discard cached info. - if cached_info.git_dir ~= git_dir or cached_info.git_branch ~= branch then + if cached_info.git_dir ~= git_dir or + (branch ~= ".invalid" and cached_info.git_branch ~= branch) then cached_info.git_info = nil cached_info.git_dir = git_dir cached_info.git_branch = branch @@ -550,10 +636,22 @@ local function git_prompt_filter() -- If we're inside of git repo then try to detect current branch -- Has branch => therefore it is a git folder, now figure out status - local gitInfo = get_git_info_table() + local gitInfo = get_git_info_table(git_dir) local gitStatus = gitInfo.status local gitConflict = gitInfo.conflict + -- Compensate for git reftables. + branch = gitInfo.branch or branch + if branch == ".invalid" then + branch = "Loading..." + elseif gitInfo.remote then + branch = branch.." -> "..gitInfo.remote + end + + -- Prevent an older clink-completions git_prompt.lua scripts from + -- modifying the prompt. + branch = "\x1b[10m"..branch + if gitStatus == nil then color = get_unknown_color() elseif gitStatus then From 48cc28a634bbf6508927fdfc4913b8a72a01d042 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 17:27:45 -0500 Subject: [PATCH 24/60] Fix yaml errors --- .github/workflows/build.yml | 72 ++--- .github/workflows/codeql.yml | 30 +- .github/workflows/tests.yml | 42 +-- .github/workflows/vendor.yml | 65 ++-- package-lock.json | 554 +++++++++++++++++++++++++++++++++++ package.json | 5 + 6 files changed, 664 insertions(+), 104 deletions(-) create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d3886ec5d..c0e0a3865 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: . scripts/utils.ps1 $cmderVersion = Get-VersionStr $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - + # Determine branch link (handle PR merge refs) $branchName = "${{ github.ref_name }}" $branchLink = "" @@ -61,12 +61,12 @@ jobs: # Regular branch, link to the branch tree $branchLink = "https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}" } - + $summary = @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary - + Build started: $buildTime - + ### Repository Information | Property | Value | | --- | --- | @@ -76,14 +76,14 @@ jobs: | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | | Cmder Version | **$cmderVersion** | - + --- - + ### ๐Ÿ“ Vendor Packages | Package | Version | | --- | --- | "@ - + # Read vendor sources.json and add to summary $vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json if ($vendorSources.Count -eq 0) { @@ -93,9 +93,9 @@ jobs: $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" } } - + $summary += "`n" - + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Add MSBuild to PATH @@ -111,16 +111,16 @@ jobs: shell: pwsh run: | $summary = @" - + --- - + ### Build Status - + โœ… Cmder built successfully. - + "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Pack the built files shell: pwsh @@ -159,15 +159,15 @@ jobs: GH_TOKEN: ${{ github.token }} run: | $summary = @" - + --- - + ### ๐Ÿ—ƒ๏ธ Artifacts - + | Artifact | Size | Download | Hash (SHA256) | | --- | --- | --- | --- | "@ - + # Function to get artifact download URL with retry logic function Get-ArtifactDownloadUrl { param( @@ -175,12 +175,12 @@ jobs: [int]$MaxRetries = 3, [int]$DelaySeconds = 2 ) - + for ($i = 0; $i -lt $MaxRetries; $i++) { try { # Use GitHub CLI to get artifact information $artifactsJson = gh api "repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" --jq ".artifacts[] | select(.name == `"$ArtifactName`")" - + if ($artifactsJson) { $artifact = $artifactsJson | ConvertFrom-Json if ($artifact.archive_download_url) { @@ -190,32 +190,32 @@ jobs: } catch { Write-Host "Attempt $($i + 1) failed to get artifact URL for $ArtifactName : $_" } - + if ($i -lt ($MaxRetries - 1)) { Start-Sleep -Seconds $DelaySeconds } } - + return $null } - + $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip", "hashes.txt") foreach ($artifact in $artifacts) { $path = "build/$artifact" if (Test-Path $path) { $size = (Get-Item $path).Length / 1MB $hash = (Get-FileHash $path -Algorithm SHA256).Hash - + # Try to get the actual artifact download URL $downloadUrl = Get-ArtifactDownloadUrl -ArtifactName $artifact $warning = "" - + if (-not $downloadUrl) { # Fallback to workflow run page if artifact URL fetch fails $downloadUrl = "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" $warning = " โš ๏ธ" } - + # Determine emoji based on file type if ($artifact -match '\.txt$') { $emoji = "๐Ÿ“„" @@ -224,12 +224,12 @@ jobs: } else { $emoji = "๐Ÿ“ฆ" } - + $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download$warning]($downloadUrl) | ``$hash`` |" } } $summary += "`n" - + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Create Release @@ -249,19 +249,19 @@ jobs: shell: pwsh run: | $summary = @" - + --- - + ### Release Information - + ๐Ÿš€ Draft release created for tag: **``${{ github.ref_name }}``** - + Release includes: - Full version (``cmder.zip``, ``cmder.7z``) - Mini version (``cmder_mini.zip``) - File hashes (``hashes.txt``) - + > โš ๏ธ Release is in **draft** mode. Please review and publish manually. "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index bc9503671..c0202c1fc 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -52,19 +52,19 @@ jobs: run: | $summary = @" ## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary - + ### Analysis Configuration - + | Property | Value | | --- | --- | | Repository | ``${{ github.repository }}`` | | Branch | ``${{ github.ref_name }}`` | | Language | ``${{ matrix.language }}`` | | Commit | ``${{ github.sha }}`` | - - "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + "@ + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -92,12 +92,12 @@ jobs: run: | $summary = @" ### โœ… Build Completed - + Cmder launcher built successfully for CodeQL analysis. - + "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 @@ -110,12 +110,12 @@ jobs: run: | $summary = @" ### ๐Ÿ” CodeQL Analysis Results - + โœ… CodeQL security analysis completed successfully. - + **Language analyzed:** ``${{ matrix.language }}`` - + > Check the Security tab for detailed findings and recommendations. "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c025e427c..1e1edd163 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -46,10 +46,10 @@ jobs: # Get Cmder version . scripts/utils.ps1 $cmderVersion = Get-VersionStr - + $summary = @" ## โœ… Run Tests - Workflow Summary - + ### Test Environment | Property | Value | | --- | --- | @@ -60,10 +60,10 @@ jobs: | Cmder Version | **$cmderVersion** | | PowerShell Version | **$($PSVersionTable.PSVersion)** | | Event | ``${{ github.event_name }}`` | - + "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Initialize vendors shell: pwsh @@ -85,23 +85,23 @@ jobs: $vendorInfo += "- **$dir**: $($version.Trim())" } } - + $summary = @" ### โš™๏ธ Vendor Initialization - + โœ… Vendor dependencies initialized successfully. - + **Vendor Versions:** + "@ + $( if ($vendorInfo.Count -eq 0) { - "_No vendor version information available._" + $summary += "_No vendor version information available._" } else { - $vendorInfo -join "`n" + $summary += $vendorInfo -join '`n' } ) - - "@ - + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Summary - Test results table header @@ -110,12 +110,12 @@ jobs: run: | $summary = @" ### ๐Ÿ“‹ Test Results - + | Test | Status | Duration | | --- | --- | --- | "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Clink Shell id: test-clink @@ -153,15 +153,15 @@ jobs: shell: pwsh run: | $summary = @" - + ### โœ… All Tests Completed - + All shell environments tested successfully! - + **Test Coverage:** - โœ… Clink shell environment (Windows cmd.exe with Clink) - โœ… PowerShell environment (with Cmder profile) - โœ… Bash environment (Git Bash integration) "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 3b1ab50e6..96c78fe9c 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -33,35 +33,36 @@ jobs: run: | $summary = @" ## ๐Ÿ“ฆ Update Vendor - Workflow Summary - + Checking for vendor dependency updates... - + "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - id: make-changes name: Checking for updates env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - $currentVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) - . .\scripts\update.ps1 -verbose - Set-GHVariable -Name COUNT_UPDATED -Value $count - $newVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) - $listUpdated = "" - $updateMessage = "| Name | Old Version | New Version |`n| :--- | ---- | ---- |`n" - foreach ($s in $newVersion) { - $oldVersion = ($currentVersion | Where-Object {$_.name -eq $s.name}).version - if ($s.version -ne $oldVersion) { - $repoUrl = ($repoUrl = $s.Url.Replace("/archive/", "/releases/")).Substring(0, $repoUrl.IndexOf("/releases/")) + "/releases" - $listUpdated += "$($s.name) v$($s.version), " - $updateMessage += "| **[$($s.name)]($repoUrl)** | $oldVersion | **$($s.version)** |`n" - } + $currentVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) + . .\scripts\update.ps1 -verbose + Set-GHVariable -Name COUNT_UPDATED -Value $count + $newVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) + $listUpdated = "" + $updateMessage = "| Name | Old Version | New Version |`n| :--- | ---- | ---- |`n" + foreach ($s in $newVersion) { + $oldVersion = ($currentVersion | Where-Object {$_.name -eq $s.name}).version + if ($s.version -ne $oldVersion) { + $repoUrl = ($repoUrl = $s.Url.Replace("/archive/", "/releases/")).Substring(0, $repoUrl.IndexOf("/releases/")) + "/releases" + $listUpdated += "$($s.name) v$($s.version), " + $updateMessage += "| **[$($s.name)]($repoUrl)** | $oldVersion | **$($s.version)** |`n" } - if ($count -eq 0) { return } - Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ') - echo "UPDATE_MESSAGE<< 0 @@ -106,14 +107,14 @@ jobs: run: | $Summary = @" ### ๐ŸŽ‰ Pull Request Created - + A pull request has been created to update the vendor dependencies. - + **Branch:** ``update-vendor`` - + **Updated dependencies:** $env:LIST_UPDATED - + > Please review and merge the pull request to apply the updates. "@ - - $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..d7af3183e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,554 @@ +{ + "name": "fix-github-step-summary", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "yaml-lint": "^1.7.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nconf": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.1.tgz", + "integrity": "sha512-p2cfF+B3XXacQdswUYWZ0w6Vld0832A/tuqjLBu3H1sfUcby4N2oVbGhyuCkZv+t3iY3aiFEj7gZGqax9Q2c1w==", + "license": "MIT", + "dependencies": { + "async": "^3.0.0", + "ini": "^2.0.0", + "secure-keys": "^1.0.0", + "yargs": "^16.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/secure-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", + "integrity": "sha512-nZi59hW3Sl5P3+wOO89eHBAAGwmCPd2aE1+dLZV5MO+ItQctIvAqihzaAXIQhvtH4KJPxM080HsnqltR2y8cWg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml-lint": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/yaml-lint/-/yaml-lint-1.7.0.tgz", + "integrity": "sha512-zeBC/kskKQo4zuoGQ+IYjw6C9a/YILr2SXoEZA9jM0COrSwvwVbfTiFegT8qYBSBgOwLMWGL8sY137tOmFXGnQ==", + "license": "MIT", + "dependencies": { + "consola": "^2.15.3", + "globby": "^11.1.0", + "js-yaml": "^4.1.0", + "nconf": "^0.12.0" + }, + "bin": { + "yamllint": "dist/cli.js" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..352dad848 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "yaml-lint": "^1.7.0" + } +} From 68586196149bd3a6d9f08da87866bbb180034133 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 17:56:27 -0500 Subject: [PATCH 25/60] x --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1e1edd163..8f85d9d25 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -39,6 +39,8 @@ jobs: steps: - uses: actions/checkout@v6 + with: + fetch-depth: 0 - name: Summary - Test execution started shell: pwsh From 6137073ba35ef8ee946184f510817652adb19e61 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 17:58:59 -0500 Subject: [PATCH 26/60] fix path to sources.json --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8f85d9d25..8a079a6ce 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -78,7 +78,7 @@ jobs: run: | # Get vendor versions from sources.json $vendorInfo = @() - $sources = Get-Content "sources.json" -Raw | ConvertFrom-Json + $sources = Get-Content "vendor\sources.json" -Raw | ConvertFrom-Json $vendorDirs = $sources.PSObject.Properties | ForEach-Object { $_.Name } foreach ($dir in $vendorDirs) { $versionFile = "vendor/$dir/.cmderver" From 66ab9ad6f7bbf918f977b09cb81efc373a14ffa4 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 18:11:34 -0500 Subject: [PATCH 27/60] remove nodejs files --- package-lock.json | 554 ---------------------------------------------- package.json | 5 - 2 files changed, 559 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index d7af3183e..000000000 --- a/package-lock.json +++ /dev/null @@ -1,554 +0,0 @@ -{ - "name": "fix-github-step-summary", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "yaml-lint": "^1.7.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "license": "MIT" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/nconf": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.1.tgz", - "integrity": "sha512-p2cfF+B3XXacQdswUYWZ0w6Vld0832A/tuqjLBu3H1sfUcby4N2oVbGhyuCkZv+t3iY3aiFEj7gZGqax9Q2c1w==", - "license": "MIT", - "dependencies": { - "async": "^3.0.0", - "ini": "^2.0.0", - "secure-keys": "^1.0.0", - "yargs": "^16.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/secure-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", - "integrity": "sha512-nZi59hW3Sl5P3+wOO89eHBAAGwmCPd2aE1+dLZV5MO+ItQctIvAqihzaAXIQhvtH4KJPxM080HsnqltR2y8cWg==", - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaml-lint": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/yaml-lint/-/yaml-lint-1.7.0.tgz", - "integrity": "sha512-zeBC/kskKQo4zuoGQ+IYjw6C9a/YILr2SXoEZA9jM0COrSwvwVbfTiFegT8qYBSBgOwLMWGL8sY137tOmFXGnQ==", - "license": "MIT", - "dependencies": { - "consola": "^2.15.3", - "globby": "^11.1.0", - "js-yaml": "^4.1.0", - "nconf": "^0.12.0" - }, - "bin": { - "yamllint": "dist/cli.js" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 352dad848..000000000 --- a/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "yaml-lint": "^1.7.0" - } -} From 0c6b2d9900da906cf87b08af97430ff67e93c5df Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 13:45:47 -0500 Subject: [PATCH 28/60] Add back comments --- .github/dependabot.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d08569dfe..b05586197 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,3 +1,8 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + version: 2 updates: # Enable version updates for GitHub Actions From 0dd8459eac0349b36778f6b7e116f15d30d708b7 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 14:44:42 -0500 Subject: [PATCH 29/60] cleanup --- vendor/sources.json | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/vendor/sources.json b/vendor/sources.json index b528368ce..df1ae3e5f 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,27 +1,27 @@ [ - { - "name": "git-for-windows", - "version": "2.52.0.windows.1", - "url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe" - }, - { - "name": "clink", - "version": "1.9.5", - "url": "https://github.com/chrisant996/clink/releases/download/v1.9.5/clink.1.9.5.ee6b4f.zip" - }, - { - "name": "conemu-maximus5", - "version": "23.07.24", - "url": "https://github.com/ConEmu/ConEmu/releases/download/v23.07.24/ConEmuPack.230724.7z" - }, - { - "name": "windows-terminal", - "version": "1.23.12811.0", - "url": "https://github.com/microsoft/terminal/releases/download/v1.23.12811.0/Microsoft.WindowsTerminal_1.23.12811.0_x64.zip" - }, - { - "name": "clink-completions", - "version": "0.6.7", - "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.7.zip" - } + { + "name": "git-for-windows", + "version": "2.52.0.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe" + }, + { + "name": "clink", + "version": "1.9.5", + "url": "https://github.com/chrisant996/clink/releases/download/v1.9.5/clink.1.9.5.ee6b4f.zip" + }, + { + "name": "conemu-maximus5", + "version": "23.07.24", + "url": "https://github.com/ConEmu/ConEmu/releases/download/v23.07.24/ConEmuPack.230724.7z" + }, + { + "name": "windows-terminal", + "version": "1.23.12811.0", + "url": "https://github.com/microsoft/terminal/releases/download/v1.23.12811.0/Microsoft.WindowsTerminal_1.23.12811.0_x64.zip" + }, + { + "name": "clink-completions", + "version": "0.6.7", + "url": "https://github.com/vladimir-kotikov/clink-completions/archive/v0.6.7.zip" + } ] From a0aecb6b65023fca90a86aee989431281c3e2445 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 14:54:45 -0500 Subject: [PATCH 30/60] Fix CodeQL --- .github/workflows/codeql.yml | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 16ebd4072..b153f4a34 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -50,17 +50,17 @@ jobs: - name: Summary - CodeQL analysis started shell: pwsh run: | - echo "## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "### Analysis Configuration" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "| Property | Value |" >> $env:GITHUB_STEP_SUMMARY - echo "| --- | --- |" >> $env:GITHUB_STEP_SUMMARY - echo "| Repository | \`${{ github.repository }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Branch | \`${{ github.ref_name }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Language | \`${{ matrix.language }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "| Commit | \`${{ github.sha }}\` |" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '### Analysis Configuration' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Property | Value |' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| --- | --- |' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Repository | `${{ github.repository }}` |" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Branch | `${{ github.ref_name }}` |" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Language | `${{ matrix.language }}` |" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Commit | `${{ github.sha }}` |" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -86,10 +86,10 @@ jobs: if: success() shell: pwsh run: | - echo "### โœ… Build Completed" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "Cmder launcher built successfully for CodeQL analysis." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '### โœ… Build Completed' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value 'Cmder launcher built successfully for CodeQL analysis.' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 @@ -100,10 +100,10 @@ jobs: if: success() shell: pwsh run: | - echo "### ๐Ÿ” CodeQL Analysis Results" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "โœ… CodeQL security analysis completed successfully." >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "**Language analyzed:** \`${{ matrix.language }}\`" >> $env:GITHUB_STEP_SUMMARY - echo "" >> $env:GITHUB_STEP_SUMMARY - echo "> Check the Security tab for detailed findings and recommendations." >> $env:GITHUB_STEP_SUMMARY + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '### ๐Ÿ” CodeQL Analysis Results' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value 'โœ… CodeQL security analysis completed successfully.' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "**Language analyzed:** `${{ matrix.language }}`" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '> Check the Security tab for detailed findings and recommendations.' From 9b1e7a24f7f764c20047fdcfefde089061a34692 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 15:00:15 -0500 Subject: [PATCH 31/60] Fix CodeQL --- .github/workflows/codeql.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index b153f4a34..a66665784 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -56,10 +56,10 @@ jobs: Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Property | Value |' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| --- | --- |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Repository | `${{ github.repository }}` |" - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Branch | `${{ github.ref_name }}` |" - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Language | `${{ matrix.language }}` |" - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "| Commit | `${{ github.sha }}` |" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Repository | `${{ github.repository }}` |' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Branch | `${{ github.ref_name }}` |' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Language | `${{ matrix.language }}` |' + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Commit | `${{ github.sha }}` |' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' # Initializes the CodeQL tools for scanning. @@ -104,6 +104,6 @@ jobs: Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value 'โœ… CodeQL security analysis completed successfully.' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value "**Language analyzed:** `${{ matrix.language }}`" + Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '**Language analyzed:** `${{ matrix.language }}`' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '> Check the Security tab for detailed findings and recommendations.' From 7da225a3b94c8a79664f655ba5b1dd39ffbf5f87 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sun, 22 Feb 2026 15:04:18 -0500 Subject: [PATCH 32/60] Fix CodeQl --- .github/workflows/codeql.yml | 53 +++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a66665784..1497bf9ac 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -50,17 +50,20 @@ jobs: - name: Summary - CodeQL analysis started shell: pwsh run: | - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '### Analysis Configuration' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Property | Value |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| --- | --- |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Repository | `${{ github.repository }}` |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Branch | `${{ github.ref_name }}` |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Language | `${{ matrix.language }}` |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '| Commit | `${{ github.sha }}` |' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + $summary = @( + '## ๐Ÿ”’ CodeQL Security Analysis - Workflow Summary' + '' + '### Analysis Configuration' + '' + '| Property | Value |' + '| --- | --- |' + '| Repository | `${{ github.repository }}` |' + '| Branch | `${{ github.ref_name }}` |' + '| Language | `${{ matrix.language }}` |' + '| Commit | `${{ github.sha }}` |' + '' + ) + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -86,10 +89,13 @@ jobs: if: success() shell: pwsh run: | - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '### โœ… Build Completed' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value 'Cmder launcher built successfully for CodeQL analysis.' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' + $summary = @( + '### โœ… Build Completed' + '' + 'Cmder launcher built successfully for CodeQL analysis.' + '' + ) + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 @@ -100,10 +106,13 @@ jobs: if: success() shell: pwsh run: | - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '### ๐Ÿ” CodeQL Analysis Results' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value 'โœ… CodeQL security analysis completed successfully.' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '**Language analyzed:** `${{ matrix.language }}`' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '' - Add-Content -Path $env:GITHUB_STEP_SUMMARY -Value '> Check the Security tab for detailed findings and recommendations.' + $summary = @( + '### ๐Ÿ” CodeQL Analysis Results' + '' + 'โœ… CodeQL security analysis completed successfully.' + '' + '**Language analyzed:** `${{ matrix.language }}`' + '' + '> Check the Security tab for detailed findings and recommendations.' + ) + $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY From 86d1cbcfa024fee0db3fa34a2ed6131a164e097d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:43:22 +0000 Subject: [PATCH 33/60] Bump actions/upload-artifact from 6 to 7 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37b7b8ad0..9f0abe347 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -97,26 +97,26 @@ jobs: echo "" >> $env:GITHUB_STEP_SUMMARY - name: Upload artifact (cmder.zip) - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: path: build/cmder.zip name: cmder.zip if-no-files-found: error - name: Upload artifact (cmder.7z) - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: path: build/cmder.7z name: cmder.7z - name: Upload artifact (cmder_mini.zip) - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: path: build/cmder_mini.zip name: cmder_mini.zip - name: Upload artifact (hashes.txt) - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: path: build/hashes.txt name: hashes.txt From ed5ebfe5ba3ef8784a8ada6a82c8491645bc2a68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 16:19:05 +0000 Subject: [PATCH 34/60] Bump microsoft/setup-msbuild from 2 to 3 Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 2 to 3. - [Release notes](https://github.com/microsoft/setup-msbuild/releases) - [Commits](https://github.com/microsoft/setup-msbuild/compare/v2...v3) --- updated-dependencies: - dependency-name: microsoft/setup-msbuild dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/codeql.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37b7b8ad0..4c94d6a06 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: echo "" >> $env:GITHUB_STEP_SUMMARY - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@v2 + uses: microsoft/setup-msbuild@v3 - name: Build Cmder Launcher shell: pwsh diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1497bf9ac..fb1d49e8b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -78,7 +78,7 @@ jobs: # queries: security-extended,security-and-quality - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@v2 + uses: microsoft/setup-msbuild@v3 - name: Build Cmder Launcher shell: pwsh From 07a2c6e5cddad8718fc51530f2e28fd67c08fdca Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 20:17:05 +0000 Subject: [PATCH 35/60] fix: correct checkout to v4 and add archive: false to fix double-zip - actions/checkout@v6 does not exist; correct to @v4 - Add archive: false to all actions/upload-artifact@v7 steps so .zip and .7z files are uploaded directly without being wrapped in an extra zip container (fixes the double-zip problem described in #2725 and #2805) Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/1d806690-a6f7-49d1-bef5-cefe50fc371e Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ea7d2bac7..d2164f88b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: discussions: write steps: - name: Check out repository code (Action from GitHub) - uses: actions/checkout@v6 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -101,6 +101,7 @@ jobs: with: path: build/cmder.zip name: cmder.zip + archive: false if-no-files-found: error - name: Upload artifact (cmder.7z) @@ -108,18 +109,21 @@ jobs: with: path: build/cmder.7z name: cmder.7z + archive: false - name: Upload artifact (cmder_mini.zip) uses: actions/upload-artifact@v7 with: path: build/cmder_mini.zip name: cmder_mini.zip + archive: false - name: Upload artifact (hashes.txt) uses: actions/upload-artifact@v7 with: path: build/hashes.txt name: hashes.txt + archive: false - name: Summary - Artifacts uploaded if: success() From 35c1cd6f42da0cbd616f54b5658d202aaa17f26a Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 00:04:19 +0330 Subject: [PATCH 36/60] Revert GitHub Actions checkout action version to v6 (latest) --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d2164f88b..98c50c19e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: discussions: write steps: - name: Check out repository code (Action from GitHub) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 From f69c1db2059cc6b8c65fd204b7670ea45c1c7dec Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 20:52:47 +0000 Subject: [PATCH 37/60] Remove separator before artifacts, add sources.json link, and link vendor versions to releases Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/6ed72053-91c6-4e75-8317-ac54af872629 Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df92945d3..636aa58a8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,7 +79,7 @@ jobs: --- - ### ๐Ÿ“ Vendor Packages + ### ๐Ÿ—ƒ๏ธ Vendor Packages ([sources.json](vendor/sources.json)) | Package | Version | | --- | --- | "@ @@ -90,7 +90,17 @@ jobs: $summary += "`n| _No vendor packages found_ | |" } else { foreach ($vendor in $vendorSources) { - $summary += "`n| ``$($vendor.name)`` | $($vendor.version) |" + # Create release link based on vendor package + $versionLink = "$($vendor.version)" + if ($vendor.url) { + # Extract owner/repo from the URL and create release link + if ($vendor.url -match 'github\.com/([^/]+)/([^/]+)') { + $owner = $Matches[1] + $repo = $Matches[2] -replace '\.git$', '' + $versionLink = "[$($vendor.version)](https://github.com/$owner/$repo/releases/tag/$($vendor.version))" + } + } + $summary += "`n| ``$($vendor.name)`` | $versionLink |" } } @@ -114,8 +124,6 @@ jobs: --- - ### Build Status - โœ… Cmder built successfully. "@ @@ -164,8 +172,6 @@ jobs: run: | $summary = @" - --- - ### ๐Ÿ—ƒ๏ธ Artifacts | Artifact | Size | Download | Hash (SHA256) | From 05b24c2173184a7e393b7220b0d5321eb1ee6583 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 21:03:52 +0000 Subject: [PATCH 38/60] Wrap buildTime in code formatting backticks while keeping small tag Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/915ff38b-d73d-4ed8-bc2d-1fd1efa26f9b Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 636aa58a8..f6cb34dc0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -65,7 +65,7 @@ jobs: $summary = @" ## ๐Ÿ“ฆ Build Cmder - Workflow Summary - Build started: $buildTime + Build started: ``$buildTime`` ### Repository Information | Property | Value | From 1418da1c188c8da6e19b55cda7df12f74ba9ac32 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 21:30:51 +0000 Subject: [PATCH 39/60] Dynamically discover all build artifacts instead of hardcoding filenames Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/8667c9a1-2ae6-4286-bcf4-f58735eb094e Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f6cb34dc0..6bd4d1106 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -209,11 +209,14 @@ jobs: return $null } - $artifacts = @("cmder.zip", "cmder.7z", "cmder_mini.zip", "hashes.txt") - foreach ($artifact in $artifacts) { - $path = "build/$artifact" - if (Test-Path $path) { - $size = (Get-Item $path).Length / 1MB + # Get all files from the build directory (excluding directories and hidden files) + if (Test-Path "build") { + $buildFiles = Get-ChildItem -Path "build" -File | Where-Object { -not $_.Name.StartsWith('.') } | Sort-Object Name + + foreach ($file in $buildFiles) { + $artifact = $file.Name + $path = $file.FullName + $size = $file.Length / 1MB $hash = (Get-FileHash $path -Algorithm SHA256).Hash # Try to get the actual artifact download URL From aa801c2c17d212181b3260b5273d602e4396b3d8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 21:35:15 +0000 Subject: [PATCH 40/60] Make artifact names clickable, use human-readable file sizes, and add rar to compression formats Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/ce43a069-b966-4141-b4e1-3d201bc3ddbf Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6bd4d1106..3fed9d4a6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -174,10 +174,25 @@ jobs: ### ๐Ÿ—ƒ๏ธ Artifacts - | Artifact | Size | Download | Hash (SHA256) | - | --- | --- | --- | --- | + | Artifact | Size | Hash (SHA256) | + | --- | --- | --- | "@ + # Function to format file size in human-readable format + function Format-FileSize { + param([double]$Bytes) + + if ($Bytes -ge 1GB) { + return "{0:N2} GiB" -f ($Bytes / 1GB) + } elseif ($Bytes -ge 1MB) { + return "{0:N2} MiB" -f ($Bytes / 1MB) + } elseif ($Bytes -ge 1KB) { + return "{0:N2} KiB" -f ($Bytes / 1KB) + } else { + return "{0:N0} B" -f $Bytes + } + } + # Function to get artifact download URL with retry logic function Get-ArtifactDownloadUrl { param( @@ -216,7 +231,7 @@ jobs: foreach ($file in $buildFiles) { $artifact = $file.Name $path = $file.FullName - $size = $file.Length / 1MB + $sizeFormatted = Format-FileSize -Bytes $file.Length $hash = (Get-FileHash $path -Algorithm SHA256).Hash # Try to get the actual artifact download URL @@ -232,13 +247,13 @@ jobs: # Determine emoji based on file type if ($artifact -match '\.txt$') { $emoji = "๐Ÿ“„" - } elseif ($artifact -match '\.(zip|7z)$') { + } elseif ($artifact -match '\.(zip|rar|7z)$') { $emoji = "๐Ÿ—„๏ธ" } else { $emoji = "๐Ÿ“ฆ" } - $summary += "`n| $emoji ``$artifact`` | $([math]::Round($size, 2)) MB | [๐Ÿ“ฅ Download$warning]($downloadUrl) | ``$hash`` |" + $summary += "`n| $emoji [``$artifact``$warning]($downloadUrl) | $sizeFormatted | ``$hash`` |" } } $summary += "`n" From 2de93d1d55c1b5433220931277fbe6fe5e79885c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 21:41:27 +0000 Subject: [PATCH 41/60] Move Format-FileSize and Get-ArtifactDownloadUrl functions to utils.ps1 Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/9334534b-9a07-4053-a214-f394e6e92aaa Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 48 +---------------- scripts/utils.ps1 | 102 ++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 47 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3fed9d4a6..c65c157be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -178,52 +178,6 @@ jobs: | --- | --- | --- | "@ - # Function to format file size in human-readable format - function Format-FileSize { - param([double]$Bytes) - - if ($Bytes -ge 1GB) { - return "{0:N2} GiB" -f ($Bytes / 1GB) - } elseif ($Bytes -ge 1MB) { - return "{0:N2} MiB" -f ($Bytes / 1MB) - } elseif ($Bytes -ge 1KB) { - return "{0:N2} KiB" -f ($Bytes / 1KB) - } else { - return "{0:N0} B" -f $Bytes - } - } - - # Function to get artifact download URL with retry logic - function Get-ArtifactDownloadUrl { - param( - [string]$ArtifactName, - [int]$MaxRetries = 3, - [int]$DelaySeconds = 2 - ) - - for ($i = 0; $i -lt $MaxRetries; $i++) { - try { - # Use GitHub CLI to get artifact information - $artifactsJson = gh api "repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" --jq ".artifacts[] | select(.name == `"$ArtifactName`")" - - if ($artifactsJson) { - $artifact = $artifactsJson | ConvertFrom-Json - if ($artifact.archive_download_url) { - return $artifact.archive_download_url - } - } - } catch { - Write-Host "Attempt $($i + 1) failed to get artifact URL for $ArtifactName : $_" - } - - if ($i -lt ($MaxRetries - 1)) { - Start-Sleep -Seconds $DelaySeconds - } - } - - return $null - } - # Get all files from the build directory (excluding directories and hidden files) if (Test-Path "build") { $buildFiles = Get-ChildItem -Path "build" -File | Where-Object { -not $_.Name.StartsWith('.') } | Sort-Object Name @@ -235,7 +189,7 @@ jobs: $hash = (Get-FileHash $path -Algorithm SHA256).Hash # Try to get the actual artifact download URL - $downloadUrl = Get-ArtifactDownloadUrl -ArtifactName $artifact + $downloadUrl = Get-ArtifactDownloadUrl -ArtifactName $artifact -Repository "${{ github.repository }}" -RunId "${{ github.run_id }}" $warning = "" if (-not $downloadUrl) { diff --git a/scripts/utils.ps1 b/scripts/utils.ps1 index 58955407c..ccabce6bf 100644 --- a/scripts/utils.ps1 +++ b/scripts/utils.ps1 @@ -249,3 +249,105 @@ function Download-File { $wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials; $wc.DownloadFile($Url, $File) } + +function Format-FileSize { + <# + .SYNOPSIS + Formats a file size in bytes to a human-readable string using binary units. + + .DESCRIPTION + Converts file sizes to appropriate binary units (B, KiB, MiB, GiB) for better readability. + + .PARAMETER Bytes + The file size in bytes to format. + + .EXAMPLE + Format-FileSize -Bytes 1024 + Returns "1.00 KiB" + + .EXAMPLE + Format-FileSize -Bytes 15728640 + Returns "15.00 MiB" + #> + param( + [Parameter(Mandatory = $true)] + [double]$Bytes + ) + + if ($Bytes -ge 1GB) { + return "{0:N2} GiB" -f ($Bytes / 1GB) + } elseif ($Bytes -ge 1MB) { + return "{0:N2} MiB" -f ($Bytes / 1MB) + } elseif ($Bytes -ge 1KB) { + return "{0:N2} KiB" -f ($Bytes / 1KB) + } else { + return "{0:N0} B" -f $Bytes + } +} + +function Get-ArtifactDownloadUrl { + <# + .SYNOPSIS + Retrieves the download URL for a GitHub Actions artifact with retry logic. + + .DESCRIPTION + Uses the GitHub CLI to fetch artifact information from the GitHub API with automatic retries. + Falls back to returning $null if all attempts fail. + + .PARAMETER ArtifactName + The name of the artifact to retrieve the download URL for. + + .PARAMETER Repository + The GitHub repository in the format "owner/repo". + + .PARAMETER RunId + The GitHub Actions workflow run ID. + + .PARAMETER MaxRetries + Maximum number of retry attempts. Default is 3. + + .PARAMETER DelaySeconds + Delay in seconds between retry attempts. Default is 2. + + .EXAMPLE + Get-ArtifactDownloadUrl -ArtifactName "cmder.zip" -Repository "cmderdev/cmder" -RunId "123456789" + + .EXAMPLE + Get-ArtifactDownloadUrl -ArtifactName "build-output" -Repository "owner/repo" -RunId "987654321" -MaxRetries 5 -DelaySeconds 3 + #> + param( + [Parameter(Mandatory = $true)] + [string]$ArtifactName, + + [Parameter(Mandatory = $true)] + [string]$Repository, + + [Parameter(Mandatory = $true)] + [string]$RunId, + + [int]$MaxRetries = 3, + [int]$DelaySeconds = 2 + ) + + for ($i = 0; $i -lt $MaxRetries; $i++) { + try { + # Use GitHub CLI to get artifact information + $artifactsJson = gh api "repos/$Repository/actions/runs/$RunId/artifacts" --jq ".artifacts[] | select(.name == `"$ArtifactName`")" + + if ($artifactsJson) { + $artifact = $artifactsJson | ConvertFrom-Json + if ($artifact.archive_download_url) { + return $artifact.archive_download_url + } + } + } catch { + Write-Host "Attempt $($i + 1) failed to get artifact URL for $ArtifactName : $_" + } + + if ($i -lt ($MaxRetries - 1)) { + Start-Sleep -Seconds $DelaySeconds + } + } + + return $null +} From 31e73cce5958306a1a0565eeef7f6a9ca7d1d92a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:16:56 +0000 Subject: [PATCH 42/60] Fix vendor package release links and artifact download URLs Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/ff648493-d8fd-4117-9a78-2933758d2280 Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 10 ++++++---- scripts/utils.ps1 | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c65c157be..cfd1915d2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -93,11 +93,13 @@ jobs: # Create release link based on vendor package $versionLink = "$($vendor.version)" if ($vendor.url) { - # Extract owner/repo from the URL and create release link - if ($vendor.url -match 'github\.com/([^/]+)/([^/]+)') { + # Extract owner/repo/tag from the URL and create release link + # Handle both /releases/download/ and /archive/ URLs + if ($vendor.url -match 'github\.com/([^/]+)/([^/]+)/(releases/download|archive)/([^/]+)') { $owner = $Matches[1] - $repo = $Matches[2] -replace '\.git$', '' - $versionLink = "[$($vendor.version)](https://github.com/$owner/$repo/releases/tag/$($vendor.version))" + $repo = $Matches[2] + $tag = $Matches[4] + $versionLink = "[$($vendor.version)](https://github.com/$owner/$repo/releases/tag/$tag)" } } $summary += "`n| ``$($vendor.name)`` | $versionLink |" diff --git a/scripts/utils.ps1 b/scripts/utils.ps1 index ccabce6bf..f1a175221 100644 --- a/scripts/utils.ps1 +++ b/scripts/utils.ps1 @@ -336,8 +336,10 @@ function Get-ArtifactDownloadUrl { if ($artifactsJson) { $artifact = $artifactsJson | ConvertFrom-Json - if ($artifact.archive_download_url) { - return $artifact.archive_download_url + if ($artifact.id) { + # Construct browser-accessible GitHub Actions artifact download URL + # Format: https://github.com/owner/repo/actions/runs/{run_id}/artifacts/{artifact_id} + return "https://github.com/$Repository/actions/runs/$RunId/artifacts/$($artifact.id)" } } } catch { From cbc7f53cd303c4788682ce65ef15d756f8c8a2bb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:27:24 +0000 Subject: [PATCH 43/60] Add workflow_dispatch to enable manual build workflow runs Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/49b3cbe7-8c16-4e18-a4c4-e0587448245e Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cfd1915d2..b447c899d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,7 @@ on: - "v*" pull_request: branches: [ "master", "development" ] + workflow_dispatch: #---------------------------------# # environment configuration # From 25ea72533805ff0ce6f0de2a517f82b14af15352 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Apr 2026 22:33:42 +0000 Subject: [PATCH 44/60] Fix Format-FileSize undefined error by sourcing utils.ps1 in artifacts upload step Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/bf167f7e-397b-4635-a7d2-2c2680207e67 Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b447c899d..ae3d8b8a1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -173,6 +173,9 @@ jobs: env: GH_TOKEN: ${{ github.token }} run: | + # Source utility functions + . scripts/utils.ps1 + $summary = @" ### ๐Ÿ—ƒ๏ธ Artifacts From 01d01c6a57e9331150d0a01e5fc1c4e03ae19b28 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 03:42:33 +0330 Subject: [PATCH 45/60] parse entire JSON string at once Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae3d8b8a1..2434f6c01 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -86,7 +86,7 @@ jobs: "@ # Read vendor sources.json and add to summary - $vendorSources = Get-Content "vendor/sources.json" | ConvertFrom-Json + $vendorSources = Get-Content -Raw "vendor/sources.json" | ConvertFrom-Json if ($vendorSources.Count -eq 0) { $summary += "`n| _No vendor packages found_ | |" } else { From 03deb9d859241202e1337dd19f3c51bbde0688d2 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 03:43:54 +0330 Subject: [PATCH 46/60] fix: handle links to vendor repo archive URL Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2434f6c01..47e8761c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -99,7 +99,11 @@ jobs: if ($vendor.url -match 'github\.com/([^/]+)/([^/]+)/(releases/download|archive)/([^/]+)') { $owner = $Matches[1] $repo = $Matches[2] + $pathType = $Matches[3] $tag = $Matches[4] + if ($pathType -eq 'archive') { + $tag = $tag -replace '\.(?:tar\.gz|tgz|zip)$', '' + } $versionLink = "[$($vendor.version)](https://github.com/$owner/$repo/releases/tag/$tag)" } } From 32cf8767f5868365182ab248829610dd2c297f88 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 03:44:49 +0330 Subject: [PATCH 47/60] fix: Derive directories from the array entries Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/tests.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8a079a6ce..ef5709f2c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -79,8 +79,11 @@ jobs: # Get vendor versions from sources.json $vendorInfo = @() $sources = Get-Content "vendor\sources.json" -Raw | ConvertFrom-Json - $vendorDirs = $sources.PSObject.Properties | ForEach-Object { $_.Name } - foreach ($dir in $vendorDirs) { + foreach ($source in $sources) { + $dir = $source.name + if (-not $dir) { + continue + } $versionFile = "vendor/$dir/.cmderver" if (Test-Path $versionFile) { $version = Get-Content $versionFile -Raw From f3fa589ac379e910a8b8a55a82914867ccd9d006 Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 03:45:54 +0330 Subject: [PATCH 48/60] use double-quote for "`n" Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ef5709f2c..af94d1e4f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -103,7 +103,7 @@ jobs: if ($vendorInfo.Count -eq 0) { $summary += "_No vendor version information available._" } else { - $summary += $vendorInfo -join '`n' + $summary += $vendorInfo -join "`n" } ) From dcbb0e9203af90715359d2307a0db41bbc65a4eb Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 03:46:47 +0330 Subject: [PATCH 49/60] fix: Handle multi-line JSON Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/vendor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 9db037805..fdfbf04fc 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -45,10 +45,10 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - $currentVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) + $currentVersion = (Get-Content -Raw .\vendor\sources.json | ConvertFrom-Json) . .\scripts\update.ps1 -verbose Set-GHVariable -Name COUNT_UPDATED -Value $count - $newVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json) + $newVersion = (Get-Content -Raw .\vendor\sources.json | ConvertFrom-Json) $listUpdated = "" $updateMessage = "| Name | Old Version | New Version |`n| :--- | ---- | ---- |`n" foreach ($s in $newVersion) { From c882ade42d03c92ed346be40d1c6323231c6f74b Mon Sep 17 00:00:00 2001 From: David Refoua Date: Sun, 12 Apr 2026 03:47:52 +0330 Subject: [PATCH 50/60] fix multi-line EOF syntax according to GitHub Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index fdfbf04fc..90810072a 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -62,7 +62,7 @@ jobs: if ($count -eq 0) { return } Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ') - echo "UPDATE_MESSAGE<< Date: Sun, 12 Apr 2026 00:20:53 +0000 Subject: [PATCH 51/60] Fix variable name casing inconsistency in vendor.yml (Summary -> summary) Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/7c117654-3cc9-428c-846a-01931a2f9b5b Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 90810072a..947a04686 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -105,7 +105,7 @@ jobs: if: env.COUNT_UPDATED > 0 shell: pwsh run: | - $Summary = @" + $summary = @" ### ๐ŸŽ‰ Pull Request Created A pull request has been created to update the vendor dependencies. From 0983e9b763e9129ccecc9b177d88bffdf5d1a648 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 00:24:53 +0000 Subject: [PATCH 52/60] Add duration tracking to test results and change hashes.txt separator to tab Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/48204621-5da0-4649-9715-ac9df45f1153 Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/tests.yml | 36 +++++++++++++++++++++++++++++++++--- scripts/pack.ps1 | 2 +- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index af94d1e4f..2e14fe4ee 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -124,34 +124,64 @@ jobs: - name: Testing Clink Shell id: test-clink + shell: pwsh run: | + $startTime = Get-Date cmd /c vendor\init.bat /v /d /t + $duration = [math]::Round(((Get-Date) - $startTime).TotalSeconds, 2) + echo "duration=$duration" >> $env:GITHUB_OUTPUT - name: Summary - Clink Shell test if: success() shell: pwsh run: | - "| Clink Shell | โœ… Passed | Cmd shell initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + $duration = "${{ steps.test-clink.outputs.duration }}" + if ($duration) { + $duration = "$duration s" + } else { + $duration = "N/A" + } + "| Clink Shell | โœ… Passed | $duration |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing PowerShell id: test-powershell + shell: pwsh run: | + $startTime = Get-Date PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'" + $duration = [math]::Round(((Get-Date) - $startTime).TotalSeconds, 2) + echo "duration=$duration" >> $env:GITHUB_OUTPUT - name: Summary - PowerShell test if: success() shell: pwsh run: | - "| PowerShell | โœ… Passed | Profile script execution |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + $duration = "${{ steps.test-powershell.outputs.duration }}" + if ($duration) { + $duration = "$duration s" + } else { + $duration = "N/A" + } + "| PowerShell | โœ… Passed | $duration |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Testing Bash id: test-bash + shell: pwsh run: | + $startTime = Get-Date bash vendor/cmder.sh + $duration = [math]::Round(((Get-Date) - $startTime).TotalSeconds, 2) + echo "duration=$duration" >> $env:GITHUB_OUTPUT - name: Summary - Bash test if: success() shell: pwsh run: | - "| Bash | โœ… Passed | Bash environment initialization |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 + $duration = "${{ steps.test-bash.outputs.duration }}" + if ($duration) { + $duration = "$duration s" + } else { + $duration = "N/A" + } + "| Bash | โœ… Passed | $duration |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Summary - All tests completed if: success() diff --git a/scripts/pack.ps1 b/scripts/pack.ps1 index 8dccc5eb1..da6fc6e0d 100644 --- a/scripts/pack.ps1 +++ b/scripts/pack.ps1 @@ -70,7 +70,7 @@ if ($PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent) { foreach ($t in $targets.GetEnumerator()) { Create-Archive "$cmderRoot" "$saveTo\$($t.Name)" $t.Value $hash = (Digest-Hash "$saveTo\$($t.Name)") - Add-Content -path "$saveTo\hashes.txt" -value ($t.Name + ' ' + $hash) + Add-Content -path "$saveTo\hashes.txt" -value ($t.Name + "`t" + $hash) } Pop-Location From 55251f7cc3593815dc2f5eba9fd86b7b03ae39de Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 00:29:30 +0000 Subject: [PATCH 53/60] Show actual branch name and separate PR row in repository information Agent-Logs-Url: https://github.com/cmderdev/cmder/sessions/7ac9b75c-de48-4c0b-98db-108cc3423c0e Co-authored-by: DRSDavidSoft <4673812+DRSDavidSoft@users.noreply.github.com> --- .github/workflows/build.yml | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 47e8761c5..57feccffd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,19 +48,35 @@ jobs: $cmderVersion = Get-VersionStr $buildTime = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ") - # Determine branch link (handle PR merge refs) - $branchName = "${{ github.ref_name }}" + # Determine branch and PR information + $refName = "${{ github.ref_name }}" + $headRef = "${{ github.head_ref }}" + $eventName = "${{ github.event_name }}" + $prNumber = $null + $actualBranchName = $refName $branchLink = "" - if ($branchName -match '^(\d+)/(merge|head)$') { - # This is a PR merge/head ref, link to the PR + $prLink = "" + + # Check if this is a PR merge ref (e.g., "3061/merge") + if ($refName -match '^(\d+)/(merge|head)$') { $prNumber = $Matches[1] - $branchLink = "https://github.com/${{ github.repository }}/pull/$prNumber" - } elseif ("${{ github.event_name }}" -eq "pull_request") { - # This is a pull request event, link to the PR - $branchLink = "https://github.com/${{ github.repository }}/pull/${{ github.event.pull_request.number }}" + # Use head_ref for the actual branch name if available + if ($headRef) { + $actualBranchName = $headRef + } + $branchLink = "https://github.com/${{ github.repository }}/tree/$actualBranchName" + $prLink = "https://github.com/${{ github.repository }}/pull/$prNumber" + } elseif ($eventName -eq "pull_request") { + # This is a pull request event + $prNumber = "${{ github.event.pull_request.number }}" + if ($headRef) { + $actualBranchName = $headRef + } + $branchLink = "https://github.com/${{ github.repository }}/tree/$actualBranchName" + $prLink = "https://github.com/${{ github.repository }}/pull/$prNumber" } else { # Regular branch, link to the branch tree - $branchLink = "https://github.com/${{ github.repository }}/tree/${{ github.ref_name }}" + $branchLink = "https://github.com/${{ github.repository }}/tree/$refName" } $summary = @" @@ -72,7 +88,8 @@ jobs: | Property | Value | | --- | --- | | Repository | [``${{ github.repository }}``](https://github.com/${{ github.repository }}) | - | Branch | [``$branchName``]($branchLink) | + | Branch | [``$actualBranchName``]($branchLink) | + $(if ($prNumber) { "| Pull Request | [#$prNumber]($prLink) |" }) | Commit | [``${{ github.sha }}``](https://github.com/${{ github.repository }}/commit/${{ github.sha }}) | | Actor | [@${{ github.actor }}](https://github.com/${{ github.actor }}) | | Workflow | ``${{ github.workflow }}`` | From 75cd20b7ff79ba3b77bc58b895c248278b6cd979 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2026 00:43:41 +0000 Subject: [PATCH 54/60] Bump peter-evans/create-pull-request from 7 to 8 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v7...v8) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/vendor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml index 947a04686..b464a5370 100644 --- a/.github/workflows/vendor.yml +++ b/.github/workflows/vendor.yml @@ -88,7 +88,7 @@ jobs: $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - - uses: peter-evans/create-pull-request@v7 + - uses: peter-evans/create-pull-request@v8 if: env.COUNT_UPDATED > 0 with: title: 'Updates to `${{ env.COUNT_UPDATED }}` vendored dependencies' From ddaa2f1c4e995f2730111571a24072e6396b14dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 17:07:56 +0000 Subject: [PATCH 55/60] Bump softprops/action-gh-release from 2 to 3 Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 57feccffd..cc502aa6b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -242,7 +242,7 @@ jobs: $summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8 - name: Create Release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: files: | build/cmder.zip From d842064622402ec6d92259fd0e8c776d2419a502 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Wed, 22 Apr 2026 11:45:55 -0400 Subject: [PATCH 56/60] update Git --- scripts/install_pacman.sh | 21 +++++++++++++-------- vendor/sources.json | 12 ++++++------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/scripts/install_pacman.sh b/scripts/install_pacman.sh index dd725ca4a..fa9c1f079 100644 --- a/scripts/install_pacman.sh +++ b/scripts/install_pacman.sh @@ -12,11 +12,10 @@ # Make sure to back up any important data before proceeding. # # Always review and understand scripts from external sources prior to execution. - export bin_source=${1:-https://github.com/daxgames/pacman-for-git/raw/refs/heads/main} -export HOME=$(cygpath -u "$USERPROFILE") echo "Using binary source: $bin_source" echo "Using HOME directory: $HOME" +read -rp "Press [Enter] to continue..." if [[ "$HOSTTYPE" == "i686" ]]; then pacman=( @@ -25,8 +24,8 @@ if [[ "$HOSTTYPE" == "i686" ]]; then msys2-keyring-1~20210213-2-any.pkg.tar.zst ) - zstd=zstd-1.5.0-1-i686.pkg.tar.xz - zstd_win=https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-v1.5.5-win32.zip + zstd=zstd-1.5.0-1-i686.pkg.tar.xz + zstd_win=https://github.com/facebook/zstd/releases/download/v1.5.5/zstd-v1.5.5-win32.zip else pacman=( pacman-6.0.1-18-x86_64.pkg.tar.zst @@ -42,6 +41,7 @@ echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- echo Downloading pacman files... echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- for f in "${pacman[@]}"; do + [[ -f "$HOME/Downloads/$f" ]] && continue echo "Running: curl -sLkf -o \"$HOME/Downloads/$f\" \"${bin_source}/$f\"" curl -sLkf -o "$HOME/Downloads/$f" "${bin_source}/$f" || exit 1 done @@ -50,10 +50,15 @@ echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- echo Downloading zstd binaries... echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -echo "Running: curl -sLkf -o \"$HOME/Downloads/$zstd\" \"${bin_source}/$zstd\"" -curl -sLkf -o "$HOME/Downloads/$zstd" "${bin_source}/$zstd" || exit 1 -echo "Running: curl -sLkf -o \"$HOME/Downloads/$(basename \"${zstd_win}\")\" \"$zstd_win\"" -curl -sLkf -o "$HOME/Downloads/$(basename "${zstd_win}")" "$zstd_win" || exit 1 +if [[ ! -f "$HOME/Downloads/$zstd" ]] ; then + echo "Running: curl -sLkf -o \"$HOME/Downloads/$zstd\" \"${bin_source}/$zstd\"" + curl -sLkf -o "$HOME/Downloads/$zstd" "${bin_source}/$zstd" || exit 1 +fi + +if [[ ! -f "$HOME/Downloads/$(basename${zstd_win})" ]] ; then + echo "Running: curl -sLkf -o \"$HOME/Downloads/$(basename \"${zstd_win}\")\" \"$zstd_win\"" + curl -sLkf -o "$HOME/Downloads/$(basename "${zstd_win}")" "$zstd_win" || exit 1 +fi echo -e "\n=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n" echo =-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- diff --git a/vendor/sources.json b/vendor/sources.json index df1ae3e5f..3f6118fc1 100644 --- a/vendor/sources.json +++ b/vendor/sources.json @@ -1,13 +1,13 @@ [ { "name": "git-for-windows", - "version": "2.52.0.windows.1", - "url": "https://github.com/git-for-windows/git/releases/download/v2.52.0.windows.1/PortableGit-2.52.0-64-bit.7z.exe" + "version": "2.54.0.windows.1", + "url": "https://github.com/git-for-windows/git/releases/download/v2.54.0.windows.1/PortableGit-2.54.0-64-bit.7z.exe" }, { "name": "clink", - "version": "1.9.5", - "url": "https://github.com/chrisant996/clink/releases/download/v1.9.5/clink.1.9.5.ee6b4f.zip" + "version": "1.9.17", + "url": "https://github.com/chrisant996/clink/releases/download/v1.9.17/clink.1.9.17.36e2ca.zip" }, { "name": "conemu-maximus5", @@ -16,8 +16,8 @@ }, { "name": "windows-terminal", - "version": "1.23.12811.0", - "url": "https://github.com/microsoft/terminal/releases/download/v1.23.12811.0/Microsoft.WindowsTerminal_1.23.12811.0_x64.zip" + "version": "1.23.20211.0", + "url": "https://github.com/microsoft/terminal/releases/download/v1.23.20211.0/Microsoft.WindowsTerminal_1.23.20211.0_x64.zip" }, { "name": "clink-completions", From 4b80f517d0a393c6288f406544e6eedf8d39e074 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 9 May 2026 09:47:11 -0400 Subject: [PATCH 57/60] Update help Co-authored-by: Copilot --- scripts/build.ps1 | 79 ++++++++++++++++++++++++++++++++++++++++++++--- scripts/pack.ps1 | 54 +++++++++++++++++++++++++++----- 2 files changed, 122 insertions(+), 11 deletions(-) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 9a0be078a..d80fe03a6 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -8,6 +8,47 @@ You will need to make this script executable by setting your Powershell Execution Policy to Remote signed Then unblock the script for execution with UnblockFile .\build.ps1 +.PARAMETER sourcesPath + Path to the vendor sources JSON file. Defaults to vendor/sources.json. + + Use this to point to a custom package manifest. +.PARAMETER saveTo + Destination directory for downloaded and extracted vendor dependencies. + + Defaults to the repository vendor directory. +.PARAMETER launcher + Path to the launcher project directory used when -Compile is set. + + Defaults to the repository launcher directory. +.PARAMETER config + Path to the configuration directory used to back up and restore user-modified + terminal settings during vendor refresh. + + Defaults to the repository config directory. +.PARAMETER noVendor + Skip downloading and extracting all vendors. + + Useful with -Compile when only rebuilding the launcher. +.PARAMETER terminal + Select which terminal packages to include from sources: + - all: include all supported terminal packages (default) + - none: skip terminal vendor downloads + - conemu-maximus5: include only ConEmu package + - windows-terminal: include only Windows Terminal package +.PARAMETER Compile + Build the launcher executable using MSBuild. + + Requires Visual C++ build tools and msbuild in PATH. +.PARAMETER InstallPacman + Install pacman in the bundled Git for Windows environment if it is not present. +.PARAMETER Verbose + Built-in common parameter from CmdletBinding. + + Prints detailed progress output for troubleshooting. +.PARAMETER WhatIf + Built-in common parameter from CmdletBinding (SupportsShouldProcess). + + Does a dry-run of the build process, showing what actions would be taken without making changes. .EXAMPLE .\build.ps1 @@ -21,20 +62,41 @@ Skip all downloads and only build launcher. .EXAMPLE - .\build -verbose + .\build.ps1 -Verbose Execute the build and see what's going on. .EXAMPLE - .\build.ps1 -SourcesPath '~/custom/vendors.json' + .\build.ps1 -SourcesPath 'C:\custom\sources.json' Build Cmder with your own packages. See vendor/sources.json for the syntax you need to copy. +.EXAMPLE + .\build.ps1 -Terminal conemu-maximus5 + + Build Cmder including only ConEmu (skips Windows Terminal). +.EXAMPLE + .\build.ps1 -Terminal windows-terminal + + Build Cmder including only Windows Terminal (skips ConEmu). +.EXAMPLE + .\build.ps1 -Terminal none -Compile + + Build launcher only and skip all terminal vendor downloads. +.EXAMPLE + .\build.ps1 -InstallPacman + + Build vendors and install pacman into the bundled Git for Windows environment if missing. +.EXAMPLE + .\build.ps1 -WhatIf + + Shows what actions would be taken without applying changes. .NOTES AUTHORS - Samuel Vasko, Jack Bennett + Samuel Vasko, Jack Bennett, Dax Games Part of the Cmder project. .LINK http://cmder.app/ - Project Home #> + [CmdletBinding(SupportsShouldProcess = $true)] Param( # CmdletBinding will give us; @@ -202,10 +264,19 @@ if (-not $noVendor) { Copy-Item $($saveTo + "git-prompt.sh") $($saveTo + "git-for-windows/etc/profile.d/git-prompt.sh") } - if ( $InstallPacman -and !(Test-Path $($saveTo + "git-for-windows/usr/bin/pacman.exe") ) ) { + $gitForWindowsPath = $saveTo + "git-for-windows" + $pacmanPath = $saveTo + "git-for-windows/usr/bin/pacman.exe" + + $shouldInstallPacman = + $InstallPacman -and + (Test-Path $gitForWindowsPath) -and + -not (Test-Path $pacmanPath) + + if ($shouldInstallPacman) { Write-Verbose "Installing pacman..." & $($saveTo + "git-for-windows/bin/bash.exe") $($saveTo + "../scripts/install_pacman.sh") } + Pop-Location } diff --git a/scripts/pack.ps1 b/scripts/pack.ps1 index 00e862592..6147695ba 100644 --- a/scripts/pack.ps1 +++ b/scripts/pack.ps1 @@ -6,14 +6,60 @@ You will need to make this script executable by setting your Powershell Execution Policy to Remote signed Then unblock the script for execution with UnblockFile .\pack.ps1 +.PARAMETER cmderRoot + Path to the Cmder repository root that should be packaged. + + Defaults to the parent directory of this script. +.PARAMETER terminal + Select which terminal package set is included in generated archives: + - all: create all archive variants (default) + - none: exclude both ConEmu and Windows Terminal packages + - conemu-maximus5: include only ConEmu package + - windows-terminal: include only Windows Terminal package +.PARAMETER saveTo + Output directory where archives and hashes.txt are written. + + Defaults to the repository build directory. +.PARAMETER Verbose + Built-in common parameter from CmdletBinding. + + Prints detailed packaging progress and included files. +.PARAMETER WhatIf + Built-in common parameter from CmdletBinding (SupportsShouldProcess). + + Shows what actions would run without making changes. .EXAMPLE .\pack.ps1 Creates default archives for Cmder .EXAMPLE - .\pack.ps1 -verbose + .\pack.ps1 -Verbose Creates default archives for Cmder with plenty of information +.EXAMPLE + .\pack.ps1 -Terminal none + + Create archives without bundled terminal emulator packages. +.EXAMPLE + .\pack.ps1 -Terminal conemu-maximus5 + + Create archives that include ConEmu and exclude Windows Terminal. +.EXAMPLE + .\pack.ps1 -Terminal windows-terminal + + Create archives that include Windows Terminal and exclude ConEmu. +.EXAMPLE + .\pack.ps1 -SaveTo 'C:\temp\cmder-artifacts' + + Write release archives and hashes.txt to a custom output directory. +.EXAMPLE + .\pack.ps1 -CmderRoot 'C:\src\cmder' + + Package a Cmder checkout from a custom repository path. +.EXAMPLE + .\pack.ps1 -WhatIf + + Preview packaging actions without creating or deleting files. .NOTES AUTHORS Samuel Vasko, Jack Bennett, Martin Kemp @@ -56,12 +102,6 @@ if ($terminal -eq "none") { "cmder_wt.zip" = "-mm=Deflate -mfb=128 -mpass=3 -xr!`"vendor\conemu-maximus5`""; "cmder_wt_mini.zip" = "-xr!`"vendor\git-for-windows`" -xr!`"vendor\conemu-maximus5`""; } -} elseif ($terminal -eq "windows-terminal") { - $targets = @{ - "cmder.7z" = "-t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on -myx=7 -mqs=on -xr!`"vendor\windows-terminal`""; - "cmder.zip" = "-mm=Deflate -mfb=128 -mpass=3 -xr!`"vendor\windows-terminal`""; - "cmder_mini.zip" = "-xr!`"vendor\git-for-windows`" -xr!`"vendor\windows-terminal`""; - } } else { $targets = @{ "cmder_win.7z" = "-t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on -myx=7 -mqs=on -xr!`"vendor\conemu-maximus5`" -xr!`"vendor\windows-terminal`""; From b03052a4324977d110579e505f7189aad532a941 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 9 May 2026 09:51:52 -0400 Subject: [PATCH 58/60] include pacman in archives --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37f533274..d1d03fd65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,7 +60,7 @@ jobs: - name: Build Cmder Launcher shell: pwsh working-directory: scripts - run: .\build.ps1 -Compile -verbose -terminal all + run: .\build.ps1 -Compile -verbose -terminal -all -installPacman - name: Summary - Build completed if: success() From 1551f4e0f1738cd3172ca0a80086a2275f9578dc Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 9 May 2026 09:58:35 -0400 Subject: [PATCH 59/60] Build on commit or PR to main --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d1d03fd65..10827b958 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,11 +7,11 @@ name: Build Cmder # Controls when the action will run. Triggers the workflow on push or pull request events but only for the main branch on: push: - branches: [ "master" ] + branches: [ "master", "main" ] tags: - "v*" pull_request: - branches: [ "master", "development" ] + branches: [ "master", "main", "development" ] #---------------------------------# # environment configuration # From 6218d1da10d26e7653693924c55eee884923f0ee Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Sat, 16 May 2026 10:21:14 -0400 Subject: [PATCH 60/60] Add a main branch to some workflows for my own personal fork.