diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 20:38:37 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 20:38:37 +0300 |
| commit | 25a9943d68a7dc31eeefeb17913dbe37d87e5302 (patch) | |
| tree | 540166d548cafc56726a07225f2dbe649c8e2444 | |
| parent | a4b5ffbaadb591066e2a97f8d450fb1d93e56a6e (diff) | |
| download | Project-Tick-25a9943d68a7dc31eeefeb17913dbe37d87e5302.tar.gz Project-Tick-25a9943d68a7dc31eeefeb17913dbe37d87e5302.zip | |
NOISSUE Remove not needed CI workflows for GitHub Actions and reworked some workflows
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
115 files changed, 1157 insertions, 8577 deletions
diff --git a/json4cpp/.github/workflows/comment_check_amalgamation.yml b/.github/workflows/json4cpp-amalgam-comment.yml index df22c2dc07..18592185d2 100644 --- a/json4cpp/.github/workflows/comment_check_amalgamation.yml +++ b/.github/workflows/json4cpp-amalgam-comment.yml @@ -1,7 +1,8 @@ -name: Comment Check Amalgamation +name: "json4cpp: Comment Check Amalgamation" + on: workflow_run: - workflows: ["Check amalgamation"] + workflows: ["json4cpp: Check amalgamation"] types: - completed @@ -23,7 +24,7 @@ jobs: with: egress-policy: audit - - name: 'Download artifact' + - name: Download artifact uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | @@ -45,7 +46,7 @@ jobs: fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data)); - run: unzip pr.zip - - name: 'Comment on PR' + - name: Comment on PR uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -74,7 +75,7 @@ jobs: issue_number: issue_number, owner: context.repo.owner, repo: context.repo.repo, - body: '## đ´ Amalgamation check failed! đ´\nThe source code has not been amalgamated.' + body: '## Amalgamation check failed!\nThe source code has not been amalgamated.' + (first ? ' @' + author + ' Please read and follow the [Contribution Guidelines]' + '(https://github.com/nlohmann/json/blob/develop/.github/CONTRIBUTING.md#files-to-change).' : '') diff --git a/json4cpp/.github/workflows/check_amalgamation.yml b/.github/workflows/json4cpp-amalgam.yml index ed86f9a3ee..c25550487c 100644 --- a/json4cpp/.github/workflows/check_amalgamation.yml +++ b/.github/workflows/json4cpp-amalgam.yml @@ -1,7 +1,9 @@ -name: "Check amalgamation" +name: "json4cpp: Check amalgamation" on: pull_request: + paths: + - 'json4cpp/**' permissions: contents: read @@ -28,9 +30,9 @@ jobs: check: runs-on: ubuntu-latest env: - MAIN_DIR: ${{ github.workspace }}/main - INCLUDE_DIR: ${{ github.workspace }}/main/single_include/nlohmann - TOOL_DIR: ${{ github.workspace }}/tools/tools/amalgamate + MAIN_DIR: ${{ github.workspace }}/json4cpp + INCLUDE_DIR: ${{ github.workspace }}/json4cpp/single_include/nlohmann + TOOL_DIR: ${{ github.workspace }}/json4cpp/tools/tools/amalgamate steps: - name: Harden Runner @@ -41,24 +43,17 @@ jobs: - name: Checkout pull request uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: - path: main ref: ${{ github.event.pull_request.head.sha }} - - name: Checkout tools - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - path: tools - ref: develop - - name: Install astyle + working-directory: json4cpp run: | python3 -mvenv venv - venv/bin/pip3 install -r $MAIN_DIR/tools/astyle/requirements.txt + venv/bin/pip3 install -r tools/astyle/requirements.txt - name: Check amalgamation + working-directory: json4cpp run: | - cd $MAIN_DIR - rm -fr $INCLUDE_DIR/json.hpp~ $INCLUDE_DIR/json_fwd.hpp~ cp $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json.hpp~ cp $INCLUDE_DIR/json_fwd.hpp $INCLUDE_DIR/json_fwd.hpp~ @@ -66,11 +61,11 @@ jobs: python3 $TOOL_DIR/amalgamate.py -c $TOOL_DIR/config_json.json -s . python3 $TOOL_DIR/amalgamate.py -c $TOOL_DIR/config_json_fwd.json -s . echo "Format (1)" - ${{ github.workspace }}/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=none --quiet $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json_fwd.hpp + ${{ github.workspace }}/json4cpp/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=none --quiet $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json_fwd.hpp diff $INCLUDE_DIR/json.hpp~ $INCLUDE_DIR/json.hpp diff $INCLUDE_DIR/json_fwd.hpp~ $INCLUDE_DIR/json_fwd.hpp - ${{ github.workspace }}/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=orig $(find docs/examples include tests -type f \( -name '*.hpp' -o -name '*.cpp' -o -name '*.cu' \) -not -path 'tests/thirdparty/*' -not -path 'tests/abi/include/nlohmann/*' | sort) + ${{ github.workspace }}/json4cpp/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=orig $(find docs/examples include tests -type f \( -name '*.hpp' -o -name '*.cpp' -o -name '*.cu' \) -not -path 'tests/thirdparty/*' -not -path 'tests/abi/include/nlohmann/*' | sort) echo Check - find $MAIN_DIR -name '*.orig' -exec false {} \+ + find . -name '*.orig' -exec false {} \+ diff --git a/.github/workflows/json4cpp-dependency-review.yml b/.github/workflows/json4cpp-dependency-review.yml new file mode 100644 index 0000000000..42b6cc2b8c --- /dev/null +++ b/.github/workflows/json4cpp-dependency-review.yml @@ -0,0 +1,23 @@ +name: "json4cpp: Dependency Review" + +on: + pull_request: + paths: + - 'json4cpp/**' + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 + with: + egress-policy: audit + + - name: Checkout Repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Dependency Review + uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 diff --git a/json4cpp/.github/workflows/flawfinder.yml b/.github/workflows/json4cpp-flawfinder.yml index 50ea70356d..c496ab8d27 100644 --- a/json4cpp/.github/workflows/flawfinder.yml +++ b/.github/workflows/json4cpp-flawfinder.yml @@ -1,19 +1,17 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -name: flawfinder +name: "json4cpp: Flawfinder" permissions: contents: read on: push: - branches: [ "develop" ] + branches: ["develop"] + paths: + - 'json4cpp/**' pull_request: - # The branches below must be a subset of the branches above - branches: [ "develop" ] + branches: ["develop"] + paths: + - 'json4cpp/**' schedule: - cron: '41 14 * * 3' @@ -37,10 +35,10 @@ jobs: - name: flawfinder_scan uses: david-a-wheeler/flawfinder@c57197cd6061453f10a496f30a732bc1905918d1 # v2.0.19 with: - arguments: '--sarif ./' + arguments: '--sarif ./json4cpp/' output: 'flawfinder_results.sarif' - name: Upload analysis results to GitHub Security tab uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4 with: - sarif_file: ${{github.workspace}}/flawfinder_results.sarif + sarif_file: ${{ github.workspace }}/flawfinder_results.sarif diff --git a/json4cpp/.github/workflows/cifuzz.yml b/.github/workflows/json4cpp-fuzz.yml index 1c25a70d74..78805aa597 100644 --- a/json4cpp/.github/workflows/cifuzz.yml +++ b/.github/workflows/json4cpp-fuzz.yml @@ -1,5 +1,9 @@ -name: CIFuzz -on: [pull_request] +name: "json4cpp: CIFuzz" + +on: + pull_request: + paths: + - 'json4cpp/**' permissions: contents: read diff --git a/json4cpp/.github/workflows/labeler.yml b/.github/workflows/json4cpp-labeler.yml index 5f823a711f..2448a6a1ae 100644 --- a/json4cpp/.github/workflows/labeler.yml +++ b/.github/workflows/json4cpp-labeler.yml @@ -1,4 +1,4 @@ -name: "Pull Request Labeler" +name: "json4cpp: Pull Request Labeler" on: pull_request_target: diff --git a/json4cpp/.github/workflows/publish_documentation.yml b/.github/workflows/json4cpp-publish-docs.yml index 1703726be6..c68dcccbd1 100644 --- a/json4cpp/.github/workflows/publish_documentation.yml +++ b/.github/workflows/json4cpp-publish-docs.yml @@ -1,18 +1,16 @@ -name: Publish documentation +name: "json4cpp: Publish documentation" -# publish the documentation on every merge to develop branch on: push: branches: - develop paths: - - docs/mkdocs/** - - docs/examples/** + - 'json4cpp/docs/mkdocs/**' + - 'json4cpp/docs/examples/**' workflow_dispatch: -# we don't want to have concurrent jobs, and we don't want to cancel running jobs to avoid broken publications concurrency: - group: documentation + group: json4cpp-documentation cancel-in-progress: false permissions: @@ -23,7 +21,6 @@ jobs: permissions: contents: write - if: github.repository == 'nlohmann/json' runs-on: ubuntu-22.04 steps: - name: Harden Runner @@ -34,13 +31,15 @@ jobs: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install virtual environment + working-directory: json4cpp run: make install_venv -C docs/mkdocs - name: Build documentation + working-directory: json4cpp run: make build -C docs/mkdocs - name: Deploy documentation uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/mkdocs/site + publish_dir: ./json4cpp/docs/mkdocs/site diff --git a/.github/workflows/json4cpp-scorecards.yml b/.github/workflows/json4cpp-scorecards.yml new file mode 100644 index 0000000000..f8a6a10f46 --- /dev/null +++ b/.github/workflows/json4cpp-scorecards.yml @@ -0,0 +1,56 @@ +name: "json4cpp: Scorecard supply-chain security" + +on: + branch_protection_rule: + schedule: + - cron: '20 7 * * 2' + push: + branches: ["develop"] + paths: + - 'json4cpp/**' + +permissions: + contents: read + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + security-events: write + id-token: write + contents: read + actions: read + issues: read + pull-requests: read + checks: read + + steps: + - name: Harden Runner + uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 + with: + egress-policy: audit + + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Run analysis + uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 + with: + results_file: results.sarif + results_format: sarif + publish_results: true + + - name: Upload artifact + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + - name: Upload to code-scanning + uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6 + with: + sarif_file: results.sarif diff --git a/.github/workflows/json4cpp-semgrep.yml b/.github/workflows/json4cpp-semgrep.yml new file mode 100644 index 0000000000..6b594e6bab --- /dev/null +++ b/.github/workflows/json4cpp-semgrep.yml @@ -0,0 +1,44 @@ +name: "json4cpp: Semgrep" + +on: + push: + branches: ["develop"] + paths: + - 'json4cpp/**' + pull_request: + branches: ["develop"] + paths: + - 'json4cpp/**' + schedule: + - cron: '23 2 * * 4' + +permissions: + contents: read + +jobs: + semgrep: + permissions: + contents: read + security-events: write + actions: read + name: Scan + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 + with: + egress-policy: audit + + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - uses: returntocorp/semgrep-action@713efdd345f3035192eaa63f56867b88e63e4e5d + with: + publishToken: ${{ secrets.SEMGREP_APP_TOKEN }} + publishDeployment: ${{ secrets.SEMGREP_DEPLOYMENT_ID }} + generateSarif: "1" + + - name: Upload SARIF file + uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4 + with: + sarif_file: semgrep.sarif + if: always() diff --git a/json4cpp/.github/workflows/stale.yml b/.github/workflows/json4cpp-stale.yml index 3161ebb756..6a061eed3c 100644 --- a/json4cpp/.github/workflows/stale.yml +++ b/.github/workflows/json4cpp-stale.yml @@ -1,4 +1,5 @@ -name: 'Comment and close stale issues and PR' +name: "json4cpp: Comment and close stale issues and PR" + on: schedule: - cron: '0 0 * * *' @@ -26,7 +27,7 @@ jobs: stale-pr-label: 'state: stale' exempt-issue-labels: 'pinned,security' stale-issue-message: 'This issue has been marked as stale because it has been open for 90 days without activity. If this issue is still relevant, please add a comment or remove the "stale" label. Otherwise, it will be closed in 10 days. Thank you for helping us prioritize our work!' - stale-pr-message: 'This pull request has been marked as stale because it has had no activity for 30 days. While we wonât close it automatically, we encourage you to update or comment if it is still relevant. Keeping pull requests active and up-to-date helps us review and merge changes more efficiently. Thank you for your contributions!' + stale-pr-message: 'This pull request has been marked as stale because it has had no activity for 30 days. While we won''t close it automatically, we encourage you to update or comment if it is still relevant. Keeping pull requests active and up-to-date helps us review and merge changes more efficiently. Thank you for your contributions!' close-issue-message: 'This issue has been closed after being marked as stale for 10 days without any further activity. If this was done in error or the issue is still relevant, please feel free to reopen it or create a new issue. We appreciate your understanding and contributions.' days-before-stale: 90 days-before-pr-stale: 30 diff --git a/.github/workflows/libnbtplusplus-ci.yml b/.github/workflows/libnbtplusplus-ci.yml new file mode 100644 index 0000000000..ed255a5802 --- /dev/null +++ b/.github/workflows/libnbtplusplus-ci.yml @@ -0,0 +1,61 @@ +name: "libnbtplusplus: CI" + +on: + push: + paths: + - 'libnbtplusplus/**' + - '.github/workflows/libnbtplusplus-ci.yml' + pull_request: + paths: + - 'libnbtplusplus/**' + - '.github/workflows/libnbtplusplus-ci.yml' + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + name: Build (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + shared: [ON, OFF] + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Install zlib (Linux) + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y zlib1g-dev + + - name: Install zlib (macOS) + if: runner.os == 'macOS' + run: brew install zlib + + - uses: ilammy/msvc-dev-cmd@v1 + if: runner.os == 'Windows' + + - name: Configure + run: | + cmake -S libnbtplusplus -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DNBT_BUILD_SHARED=${{ matrix.shared }} \ + -DNBT_USE_ZLIB=ON \ + -DNBT_BUILD_TESTS=ON + + - name: Build + run: cmake --build build --config Release -j2 + + - name: Test + run: ctest --test-dir build -C Release --output-on-failure + + lint-reuse: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - name: REUSE Compliance Check + uses: fsfe/reuse-action@v6 diff --git a/.github/workflows/neozip-analyze.yml b/.github/workflows/neozip-analyze.yml new file mode 100644 index 0000000000..b167f423e8 --- /dev/null +++ b/.github/workflows/neozip-analyze.yml @@ -0,0 +1,79 @@ +name: "neozip: Static Analysis" + +on: + workflow_call: + workflow_dispatch: + +jobs: + gcc-analyzer: + name: GCC-14 + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Install packages + run: sudo apt-get install -y gcc-14 + + - name: Generate project files + run: | + cmake -S neozip -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DWITH_FUZZERS=OFF \ + -DWITH_CODE_COVERAGE=OFF \ + -DWITH_MAINTAINER_WARNINGS=OFF + env: + CC: gcc-14 + CFLAGS: >- + -fanalyzer + -Werror + -Wanalyzer-double-fclose + -Wanalyzer-double-free + -Wanalyzer-exposure-through-output-file + -Wanalyzer-file-leak + -Wanalyzer-free-of-non-heap + -Wanalyzer-malloc-leak + -Wanalyzer-null-argument + -Wanalyzer-null-dereference + -Wanalyzer-possible-null-argument + -Wanalyzer-possible-null-dereference + -Wanalyzer-stale-setjmp-buffer + -Wanalyzer-tainted-array-index + -Wanalyzer-unsafe-call-within-signal-handler + -Wanalyzer-use-after-free + -Wanalyzer-use-of-pointer-in-stale-stack-frame + CI: true + + - name: Compile source code + run: cmake --build build -j5 --config Release > /dev/null + + clang-analyzer: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Install packages + run: sudo apt-get install -y clang-tools + + - name: Generate project files + run: | + scan-build --status-bugs \ + cmake -S neozip -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DWITH_FUZZERS=OFF \ + -DWITH_CODE_COVERAGE=OFF \ + -DWITH_MAINTAINER_WARNINGS=OFF + env: + CI: true + + - name: Compile source code + run: | + scan-build --status-bugs \ + cmake --build build -j5 --config Release > /dev/null diff --git a/.github/workflows/neozip-ci.yml b/.github/workflows/neozip-ci.yml new file mode 100644 index 0000000000..32c12a2c8d --- /dev/null +++ b/.github/workflows/neozip-ci.yml @@ -0,0 +1,71 @@ +name: "neozip: CI" + +on: + push: + paths: + - 'neozip/**' + - '.github/workflows/neozip-*.yml' + pull_request: + paths: + - 'neozip/**' + - '.github/workflows/neozip-*.yml' + workflow_dispatch: + +concurrency: + group: neozip-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} + +jobs: + # OSB runs first â guards against wasting time on uncompilable code + osb: + name: OSB + uses: ./.github/workflows/neozip-osb.yml + secrets: inherit + + analyze: + name: Static Analysis + needs: osb + uses: ./.github/workflows/neozip-analyze.yml + secrets: inherit + + cmake: + name: CMake + needs: osb + uses: ./.github/workflows/neozip-cmake.yml + secrets: inherit + + codeql: + name: CodeQL + needs: osb + uses: ./.github/workflows/neozip-codeql.yml + secrets: inherit + + configure: + name: Configure + needs: osb + uses: ./.github/workflows/neozip-configure.yml + secrets: inherit + + libpng: + name: Libpng + needs: osb + uses: ./.github/workflows/neozip-libpng.yml + secrets: inherit + + link: + name: Link + needs: osb + uses: ./.github/workflows/neozip-link.yml + secrets: inherit + + pigz: + name: Pigz + needs: osb + uses: ./.github/workflows/neozip-pigz.yml + secrets: inherit + + pkgcheck: + name: Package Check + needs: osb + uses: ./.github/workflows/neozip-pkgcheck.yml + secrets: inherit diff --git a/.github/workflows/neozip-cmake.yml b/.github/workflows/neozip-cmake.yml new file mode 100644 index 0000000000..6cf5bd1b16 --- /dev/null +++ b/.github/workflows/neozip-cmake.yml @@ -0,0 +1,115 @@ +name: "neozip: CMake" + +on: + workflow_call: + workflow_dispatch: + +env: + TERM: xterm-256color + GTEST_COLOR: 1 + +jobs: + cmake: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + timeout-minutes: 80 + strategy: + fail-fast: false + matrix: + include: + - name: Ubuntu GCC ASAN + os: ubuntu-latest + compiler: gcc + cxx-compiler: g++ + cxxflags: -Wno-maybe-uninitialized + cmake-args: -DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON + + - name: Ubuntu GCC Native Instructions + os: ubuntu-latest + compiler: gcc + cxx-compiler: g++ + cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON + + - name: Ubuntu Clang + os: ubuntu-latest + compiler: clang + cxx-compiler: clang++ + packages: llvm-15 llvm-15-tools + + - name: Ubuntu Clang No Optim + os: ubuntu-latest + compiler: clang + cxx-compiler: clang++ + cmake-args: -DWITH_OPTIM=OFF + + - name: Ubuntu Clang Compat + os: ubuntu-latest + compiler: clang + cxx-compiler: clang++ + cmake-args: -DZLIB_COMPAT=ON + + - name: macOS Clang + os: macos-latest + compiler: clang + cxx-compiler: clang++ + + - name: macOS Clang Compat + os: macos-latest + compiler: clang + cxx-compiler: clang++ + cmake-args: -DZLIB_COMPAT=ON + + - name: Windows MSVC Win64 + os: windows-latest + compiler: cl + cmake-args: -A x64 + + - name: Windows MSVC Win64 Compat + os: windows-latest + compiler: cl + cmake-args: -A x64 -DZLIB_COMPAT=ON + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Install packages (Ubuntu) + if: runner.os == 'Linux' && matrix.packages + run: | + sudo apt-get update + sudo apt-get install -y ${{ matrix.packages }} + + - name: Generate project files + shell: bash + run: | + cmake -S neozip -B build \ + ${{ matrix.cmake-args }} \ + -DCMAKE_BUILD_TYPE=Release \ + -DWITH_MAINTAINER_WARNINGS=ON + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx-compiler }} + CFLAGS: ${{ matrix.cflags }} + CXXFLAGS: ${{ matrix.cxxflags }} + LDFLAGS: ${{ matrix.ldflags }} + CI: true + + - name: Compile source code + run: cmake --build build -j5 --config Release + + - name: Run test cases + run: ctest --verbose -C Release --output-on-failure --max-width 120 -j 5 + working-directory: build + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: ${{ matrix.name }} (cmake) + path: | + **/CMakeFiles/CMakeOutput.log + **/CMakeFiles/CMakeError.log + **/Testing/Temporary/* + retention-days: 30 diff --git a/neozip/.github/workflows/codeql.yml b/.github/workflows/neozip-codeql.yml index 972c694487..2bc5f489bd 100644 --- a/neozip/.github/workflows/codeql.yml +++ b/.github/workflows/neozip-codeql.yml @@ -1,4 +1,5 @@ -name: CodeQL +name: "neozip: CodeQL" + on: workflow_call: workflow_dispatch: @@ -17,11 +18,9 @@ jobs: strategy: fail-fast: false matrix: - # https://codeql.github.com/docs/codeql-overview/system-requirements/ os: - ubuntu-latest - macos-latest - - macos-26-intel - windows-latest steps: @@ -39,13 +38,13 @@ jobs: - name: Build default config shell: bash run: | - cmake -B build-default -S . ${{ runner.os == 'Windows' && '-A x64' || '' }} + cmake -B build-default -S neozip ${{ runner.os == 'Windows' && '-A x64' || '' }} cmake --build build-default -j4 - - name: Build compat config without optim/strategies, with reduced mem + - name: Build compat config shell: bash run: | - cmake -B build-compat -S . -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_REDUCED_MEM=ON ${{ runner.os == 'Windows' && '-A x64' || '' }} + cmake -B build-compat -S neozip -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_REDUCED_MEM=ON ${{ runner.os == 'Windows' && '-A x64' || '' }} cmake --build build-compat -j4 - name: Perform CodeQL Analysis diff --git a/.github/workflows/neozip-configure.yml b/.github/workflows/neozip-configure.yml new file mode 100644 index 0000000000..263587160b --- /dev/null +++ b/.github/workflows/neozip-configure.yml @@ -0,0 +1,77 @@ +name: "neozip: Configure" + +on: + workflow_call: + workflow_dispatch: + +jobs: + configure: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - name: Ubuntu GCC + os: ubuntu-latest + compiler: gcc + configure-args: --warn + + - name: Ubuntu Clang + os: ubuntu-latest + compiler: clang + configure-args: --warn + + - name: Ubuntu GCC Compat + os: ubuntu-latest + compiler: gcc + configure-args: --warn --zlib-compat + + - name: macOS Clang + os: macos-latest + compiler: clang + configure-args: --warn + + - name: macOS Clang Compat + os: macos-latest + compiler: clang + configure-args: --warn --zlib-compat + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Install packages (macOS) + if: runner.os == 'macOS' + run: brew install ninja + env: + HOMEBREW_NO_INSTALL_CLEANUP: 1 + + - name: Generate project files + working-directory: neozip + run: ./configure ${{ matrix.configure-args }} + env: + CC: ${{ matrix.compiler }} + CFLAGS: ${{ matrix.cflags }} + LDFLAGS: ${{ matrix.ldflags }} + CI: true + + - name: Compile source code + run: make -j5 + working-directory: neozip + + - name: Run test cases + run: make test + working-directory: neozip + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: ${{ matrix.name }} (configure) + path: | + neozip/Makefile + neozip/configure.log + retention-days: 30 diff --git a/.github/workflows/neozip-fuzz.yml b/.github/workflows/neozip-fuzz.yml new file mode 100644 index 0000000000..3e63443cea --- /dev/null +++ b/.github/workflows/neozip-fuzz.yml @@ -0,0 +1,43 @@ +name: "neozip: Fuzz" + +on: + pull_request: + paths: + - 'neozip/**' + - '.github/workflows/neozip-fuzz.yml' + workflow_dispatch: + push: + branches: + - master + - develop + paths: + - 'neozip/**' + +concurrency: + group: neozip-fuzz-${{ github.ref }} + cancel-in-progress: true + +jobs: + fuzzing: + name: Fuzzing + runs-on: ubuntu-latest + steps: + - name: Build Fuzzers + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + with: + oss-fuzz-project-name: 'zlib-ng' + dry-run: false + + - name: Run Fuzzers + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + with: + oss-fuzz-project-name: 'zlib-ng' + fuzz-seconds: 600 + dry-run: false + + - name: Upload Crash + uses: actions/upload-artifact@v7 + if: failure() + with: + name: artifacts + path: ./out/artifacts diff --git a/.github/workflows/neozip-libpng.yml b/.github/workflows/neozip-libpng.yml new file mode 100644 index 0000000000..436fd6bf3d --- /dev/null +++ b/.github/workflows/neozip-libpng.yml @@ -0,0 +1,56 @@ +name: "neozip: Libpng" + +on: + workflow_call: + workflow_dispatch: + +jobs: + libpng: + name: Ubuntu Clang + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Generate project files (neozip) + run: | + cmake -S neozip -B build-neozip \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DZLIB_COMPAT=ON \ + -DZLIB_ENABLE_TESTS=OFF + env: + CC: clang + CFLAGS: -fPIC + CI: true + + - name: Compile source code (neozip) + run: cmake --build build-neozip -j5 --config Release + + - name: Checkout repository (libpng) + uses: actions/checkout@v6 + with: + repository: glennrp/libpng + path: libpng + show-progress: 'false' + + - name: Generate project files (libpng) + run: | + cmake -S libpng -B build-libpng \ + -DCMAKE_BUILD_TYPE=Release \ + -DPNG_TESTS=ON \ + -DPNG_STATIC=OFF \ + -DZLIB_INCLUDE_DIR=${{ github.workspace }}/neozip \ + -DZLIB_LIBRARY=${{ github.workspace }}/build-neozip/libz.a + env: + CC: clang + CI: true + + - name: Compile source code (libpng) + run: cmake --build build-libpng -j5 --config Release + + - name: Run test cases (libpng) + run: ctest -j5 -C Release --output-on-failure --max-width 120 + working-directory: build-libpng diff --git a/.github/workflows/neozip-link.yml b/.github/workflows/neozip-link.yml new file mode 100644 index 0000000000..e4b5b41ecd --- /dev/null +++ b/.github/workflows/neozip-link.yml @@ -0,0 +1,75 @@ +name: "neozip: Link" + +on: + workflow_call: + workflow_dispatch: + +jobs: + zlib: + name: Link zlib + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Checkout zlib repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + repository: madler/zlib + path: zlib + + - name: Generate project files (zlib) + run: cmake -S zlib -B zlib/build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF + + - name: Compile source code (zlib) + run: cmake --build zlib/build -j5 --config Release + + - name: Generate project files (native) + run: cmake -S neozip -B build-native -DZLIB_COMPAT=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DZLIB_LIBRARIES=../zlib/build/libz.a -DZLIB_INCLUDE_DIR="../zlib/build;../zlib" + + - name: Compile source code (native) + run: cmake --build build-native -j5 --config Release + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: Link zlib (CMake Logs) + path: | + **/CMakeFiles/CMakeOutput.log + **/CMakeFiles/CMakeError.log + retention-days: 30 + + zlib-ng-compat: + name: Link zlib-ng compat + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Generate project files (compat) + run: cmake -S neozip -B build-compat -DZLIB_COMPAT=ON -DZLIB_ENABLE_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_MAINTAINER_WARNINGS=ON + + - name: Compile source code (compat) + run: cmake --build build-compat -j5 --config Release + + - name: Generate project files (native) + run: cmake -S neozip -B build-native -DZLIB_COMPAT=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DZLIB_LIBRARIES=../build-compat/libz.a -DZLIB_INCLUDE_DIR=../build-compat + + - name: Compile source code (native) + run: cmake --build build-native -j5 --config Release + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: Link zlib-ng compat (CMake Logs) + path: | + **/CMakeFiles/CMakeOutput.log + **/CMakeFiles/CMakeError.log + retention-days: 30 diff --git a/.github/workflows/neozip-lint.yml b/.github/workflows/neozip-lint.yml new file mode 100644 index 0000000000..775856874c --- /dev/null +++ b/.github/workflows/neozip-lint.yml @@ -0,0 +1,24 @@ +name: "neozip: Lint" + +on: + pull_request: + paths: + - 'neozip/**' + workflow_dispatch: + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Whitespace errors + run: | + BASE_SHA="${{ github.event.pull_request.base.sha }}" + BASE_SHA="${BASE_SHA:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" + git config core.whitespace blank-at-eol + git diff --color --check "$BASE_SHA" -- 'neozip/*' ':!*.patch' ':!*.pdf' ':!neozip/test/data/' diff --git a/.github/workflows/neozip-osb.yml b/.github/workflows/neozip-osb.yml new file mode 100644 index 0000000000..94184241d6 --- /dev/null +++ b/.github/workflows/neozip-osb.yml @@ -0,0 +1,73 @@ +name: "neozip: OSB" + +on: + workflow_call: + workflow_dispatch: + +jobs: + cmake: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + timeout-minutes: 80 + strategy: + fail-fast: false + matrix: + include: + - name: Ubuntu GCC OSB + os: ubuntu-latest + compiler: gcc + cxx-compiler: g++ + build-dir: ../build + build-src-dir: ../neozip + cmake-args: -DWITH_BENCHMARKS=ON + + - name: Ubuntu GCC OSB add_subdirectory + os: ubuntu-latest + compiler: gcc + cxx-compiler: g++ + build-dir: ../build + build-src-dir: ../neozip/test/add-subdirectory-project + cmake-args: -DWITH_BENCHMARKS=ON + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: false + + - name: Make source tree read-only + shell: bash + run: chmod -R a-w neozip + + - name: Generate project files + shell: bash + run: | + cmake -S ${{ matrix.build-src-dir || 'neozip' }} -B ${{ matrix.build-dir || 'build' }} \ + ${{ matrix.cmake-args }} \ + -DWITH_MAINTAINER_WARNINGS=ON + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx-compiler }} + CI: true + + - name: Compile source code + run: cmake --build ${{ matrix.build-dir || 'build' }} --verbose -j5 + + - name: Run test cases + run: ctest --verbose -C Release --output-on-failure --max-width 120 -j 5 + working-directory: ${{ matrix.build-dir || 'build' }} + + - name: Make source tree writable + shell: bash + run: chmod -R +w neozip + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: ${{ matrix.name }} + path: | + **/CMakeFiles/CMakeOutput.log + **/CMakeFiles/CMakeError.log + **/Testing/Temporary/* + retention-days: 30 diff --git a/.github/workflows/neozip-pigz.yml b/.github/workflows/neozip-pigz.yml new file mode 100644 index 0000000000..2b5c6077cd --- /dev/null +++ b/.github/workflows/neozip-pigz.yml @@ -0,0 +1,69 @@ +name: "neozip: Pigz" + +on: + workflow_call: + workflow_dispatch: + +jobs: + pigz: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - name: Ubuntu GCC + os: ubuntu-latest + compiler: gcc + + - name: Ubuntu Clang + os: ubuntu-latest + compiler: clang + packages: llvm-15 llvm-15-tools + + - name: Ubuntu GCC AARCH64 + os: ubuntu-24.04-arm + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Install packages (Ubuntu) + if: runner.os == 'Linux' && matrix.packages + run: | + sudo apt-get update + sudo apt-get install -y ${{ matrix.packages }} + + - name: Generate project files + run: | + cmake ${{ matrix.cmake-args }} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DZLIB_ROOT=../../neozip \ + -DWITH_CODE_COVERAGE=OFF \ + -DWITH_MAINTAINER_WARNINGS=ON + working-directory: neozip/test/pigz + env: + CC: ${{ matrix.compiler }} + CI: true + + - name: Compile source code + run: cmake --build . -j5 --config Release + working-directory: neozip/test/pigz + + - name: Run test cases + run: ctest --verbose -C Release --output-on-failure --max-width 120 -j 5 + working-directory: neozip/test/pigz + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: ${{ matrix.name }} (pigz) + path: | + **/CMakeFiles/CMakeOutput.log + **/CMakeFiles/CMakeError.log + **/Testing/Temporary/* + retention-days: 30 diff --git a/.github/workflows/neozip-pkgcheck.yml b/.github/workflows/neozip-pkgcheck.yml new file mode 100644 index 0000000000..8325f3da4b --- /dev/null +++ b/.github/workflows/neozip-pkgcheck.yml @@ -0,0 +1,89 @@ +name: "neozip: Package Check" + +on: + workflow_call: + workflow_dispatch: + +jobs: + pkgcheck: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - name: Ubuntu GCC + os: ubuntu-latest + compiler: gcc + cxx-compiler: g++ + + - name: Ubuntu GCC AARCH64 + os: ubuntu-24.04-arm + compiler: gcc + cxx-compiler: g++ + + - name: macOS Clang + os: macOS-latest + compiler: clang + cxx-compiler: clang++ + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + show-progress: 'false' + + - name: Install packages (Ubuntu) + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + abigail-tools \ + diffoscope \ + ninja-build + + - name: Install packages (macOS) + if: runner.os == 'macOS' + run: brew install ninja diffoscope + env: + HOMEBREW_NO_INSTALL_CLEANUP: 1 + + - name: Compare builds + working-directory: neozip + run: sh test/pkgcheck.sh + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx-compiler }} + + - name: Compare builds (compat) + working-directory: neozip + run: sh test/pkgcheck.sh --zlib-compat + env: + CC: ${{ matrix.compiler }} + + - name: Check ABI + if: runner.os != 'macOS' + working-directory: neozip + run: sh test/abicheck.sh --refresh-if + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx-compiler }} + + - name: Check ABI (compat) + if: runner.os != 'macOS' + working-directory: neozip + run: sh test/abicheck.sh --zlib-compat --refresh-if + env: + CC: ${{ matrix.compiler }} + CXX: ${{ matrix.cxx-compiler }} + + - name: Upload build errors + uses: actions/upload-artifact@v7 + if: failure() + with: + name: ${{ matrix.name }} + path: | + neozip/**/*.abi + neozip/btmp1/configure.log + neozip/btmp2/configure.log + retention-days: 30 diff --git a/neozip/.github/workflows/release.yml b/.github/workflows/neozip-release.yml index 5fa47eb834..6f9610eaf3 100644 --- a/neozip/.github/workflows/release.yml +++ b/.github/workflows/neozip-release.yml @@ -1,8 +1,14 @@ -name: Release +name: "neozip: Release" + on: push: tags: - - '*' + - 'neozip-*' + +defaults: + run: + working-directory: neozip + jobs: release: name: ${{ matrix.name }} @@ -79,7 +85,7 @@ jobs: - name: Set environment variables shell: bash - run: echo "tag=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV + run: echo "tag=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Install Windows 11 SDK (ARM) if: matrix.name == 'Windows MSVC ARM' || matrix.name == 'Windows MSVC ARM Compat' @@ -107,16 +113,16 @@ jobs: - name: Package release (Windows) if: runner.os == 'Windows' + working-directory: neozip/out run: 7z a -tzip ../zlib-ng-${{ matrix.deploy-name }}.zip bin include lib ../LICENSE.md ../PORTING.md ../README.md - working-directory: out - name: Upload release (Windows) uses: svenstaro/upload-release-action@v2 if: runner.os == 'Windows' with: asset_name: zlib-ng-${{ matrix.deploy-name }}.zip - file: zlib-ng-${{ matrix.deploy-name }}.zip - tag: ${{env.tag}} + file: neozip/zlib-ng-${{ matrix.deploy-name }}.zip + tag: ${{ env.tag }} repo_token: ${{ secrets.GITHUB_TOKEN }} overwrite: true env: diff --git a/tomlplusplus/.github/workflows/cifuzz.yml b/.github/workflows/tomlplusplus-fuzz.yml index eb245242a4..0ead0d2974 100644 --- a/tomlplusplus/.github/workflows/cifuzz.yml +++ b/.github/workflows/tomlplusplus-fuzz.yml @@ -1,10 +1,17 @@ -name: CIFuzz +name: "tomlplusplus: CIFuzz" + on: push: branches: - master + paths: + - 'tomlplusplus/**' pull_request: + paths: + - 'tomlplusplus/**' + permissions: {} + jobs: Fuzzing: runs-on: ubuntu-latest @@ -34,6 +41,5 @@ jobs: if: always() && steps.build.outcome == 'success' uses: github/codeql-action/upload-sarif@v3 with: - # Path to SARIF file relative to the root of the repository sarif_file: cifuzz-sarif/results.sarif checkout_path: cifuzz-sarif diff --git a/.github/workflows/tomlplusplus-gh-pages.yml b/.github/workflows/tomlplusplus-gh-pages.yml new file mode 100644 index 0000000000..f25064b6bb --- /dev/null +++ b/.github/workflows/tomlplusplus-gh-pages.yml @@ -0,0 +1,49 @@ +name: "tomlplusplus: gh-pages" + +on: + push: + branches: + - master + paths: + - 'tomlplusplus/**.h' + - 'tomlplusplus/**.hpp' + - 'tomlplusplus/**.dox' + - 'tomlplusplus/**.md' + - 'tomlplusplus/docs/**' + - '.github/workflows/tomlplusplus-gh-pages.yml' + workflow_dispatch: + +jobs: + gh-pages: + runs-on: ubuntu-latest + + defaults: + run: + shell: bash + working-directory: tomlplusplus + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install dependencies + run: | + sudo apt -y update + sudo apt -y install --no-install-recommends git doxygen + pip3 install --user --upgrade poxy + + - name: Generate docs + run: | + git fetch origin master:refs/remotes/origin/master --tags --force + git remote set-head origin -a + git checkout master + git pull --force + cd docs + poxy --verbose --git-tags + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./tomlplusplus/docs/html diff --git a/.github/workflows/uvim-codeql.yml b/.github/workflows/uvim-codeql.yml new file mode 100644 index 0000000000..a2ebb3835f --- /dev/null +++ b/.github/workflows/uvim-codeql.yml @@ -0,0 +1,49 @@ +name: "uvim: CodeQL" + +on: + push: + branches: [master] + paths: + - 'uvim/**' + pull_request: + branches: [master] + paths: + - 'uvim/**' + schedule: + - cron: '0 18 * * 1' + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + analyze: + permissions: + contents: read + security-events: write + + name: Analyze + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: ['cpp', 'python'] + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + + - name: Autobuild + uses: github/codeql-action/autobuild@v4 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 diff --git a/uvim/.github/workflows/coverity.yml b/.github/workflows/uvim-coverity.yml index 04859a9758..fb486778f4 100644 --- a/uvim/.github/workflows/coverity.yml +++ b/.github/workflows/uvim-coverity.yml @@ -1,11 +1,16 @@ -name: Coverity +name: "uvim: Coverity" + on: schedule: - - cron: '42 0 * * *' # Run once per day, to avoid Coverity's submission limits + - cron: '42 0 * * *' workflow_dispatch: permissions: - contents: read # to fetch code (actions/checkout) + contents: read + +defaults: + run: + working-directory: uvim jobs: scan: @@ -17,12 +22,13 @@ jobs: TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} steps: - - name: Checkout repository from github + - name: Checkout repository if: env.TOKEN uses: actions/checkout@v6 - name: Download Coverity if: env.TOKEN + working-directory: ${{ github.workspace }} run: | wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=vim" -O coverity_tool.tgz mkdir cov-scan @@ -48,6 +54,7 @@ jobs: - name: Set up environment if: env.TOKEN + working-directory: ${{ github.workspace }} run: | echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH ( @@ -59,11 +66,8 @@ jobs: if: env.TOKEN run: | ./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing - # Append various warning flags to CFLAGS. sed -i -f ci/config.mk.sed src/auto/config.mk sed -i -f ci/config.mk.${CC}.sed src/auto/config.mk - # -O2 gives false warning and turns it into an error: - # warning: function may return address of local variable [-Wreturn-local-addr] sed -i 's/-O2 \?//' src/auto/config.mk - name: Build/scan vim diff --git a/.github/workflows/uvim-label.yml b/.github/workflows/uvim-label.yml new file mode 100644 index 0000000000..30dbfe5c2e --- /dev/null +++ b/.github/workflows/uvim-label.yml @@ -0,0 +1,15 @@ +name: "uvim: Labeler" + +on: [pull_request_target] + +jobs: + label: + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + + steps: + - uses: actions/labeler@v6 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/uvim/.github/workflows/link-check.yml b/.github/workflows/uvim-link-check.yml index 4eac572158..bf0190946a 100644 --- a/uvim/.github/workflows/link-check.yml +++ b/.github/workflows/uvim-link-check.yml @@ -1,9 +1,10 @@ -# .github/workflows/link-check.yml -name: Check Links +name: "uvim: Check Links" + on: workflow_dispatch: schedule: - - cron: '0 3 * * 0' # Every Sunday at 03:00 UTC + - cron: '0 3 * * 0' + jobs: lychee: runs-on: ubuntu-latest @@ -12,4 +13,4 @@ jobs: - name: Run Lychee uses: lycheeverse/lychee-action@v2 with: - args: --verbose --config ci/lychee.toml . + args: --verbose --config uvim/ci/lychee.toml uvim/ diff --git a/.gitignore b/.gitignore index 3e203f8276..6ac77d6f4d 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,7 @@ Desktop.ini # Dependency directories node_modules/ + + +#Ignore vscode AI rules +.github/instructions/codacy.instructions.md diff --git a/cmark/.github/FUNDING.yml b/cmark/.github/FUNDING.yml deleted file mode 100644 index 726f8b0371..0000000000 --- a/cmark/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [jgm] diff --git a/cmark/.github/dependabot.yml b/cmark/.github/dependabot.yml deleted file mode 100644 index 81bae9acd6..0000000000 --- a/cmark/.github/dependabot.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: 2 - -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" diff --git a/cmark/.github/workflows/ci.yml b/cmark/.github/workflows/ci.yml deleted file mode 100644 index 09ee0d6c3c..0000000000 --- a/cmark/.github/workflows/ci.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: CI tests - -on: - push: - branches-ignore: - - 'dependabot/**' - pull_request: - workflow_dispatch: - -jobs: - - linter: - - runs-on: ubuntu-latest - - steps: - - - uses: actions/checkout@v6 - - name: Install clang-tidy - run: | - sudo apt-get install -y clang-tidy - - name: lint with clang-tidy - run: | - make lint - env: - CC: clang - CXX: clang++ - - posix: - - strategy: - fail-fast: false - matrix: - os: [linux, macos] - cc: [clang, gcc] - build_type: [shared, static] - sanitizers: ['', ASan] - - include: - # Translate human readable labels - - os: 'linux' - image: 'ubuntu-latest' - - os: 'macos' - image: 'macos-latest' - - cc: 'clang' - cxx: 'clang++' - - cc: 'gcc' - cxx: 'g++' - - build_type: 'shared' - cmake_shared: 'YES' - - build_type: 'static' - cmake_shared: 'NO' - - sanitizers: 'ASan' - san_cflags: '-fsanitize=address,undefined -fno-sanitize-recover=all' - - # When building shared libraries, they will be loaded - # dynamically from Python when testing. This means that - # we have to use a preloaded shared libasan. - - sanitizers: 'ASan' - os: 'linux' - cc: 'gcc' - build_type: 'shared' - test_env: 'LD_PRELOAD=$(gcc -print-file-name=libasan.so)' - - sanitizers: 'ASan' - os: 'linux' - cc: 'clang' - build_type: 'shared' - # clang defaults to -static-libsasn - asan_cflags: '-shared-libasan' - test_env: 'LD_PRELOAD=$(clang -print-file-name=libclang_rt.asan-x86_64.so)' - - # We have to disable LeakSanitizer in shared library builds - # because we get false positives from Python. - - sanitizers: 'ASan' - build_type: 'shared' - asan_opts: 'detect_leaks=0' - - # The static build can run with LeakSanitizer. - # gcc defaults to -shared-libasan and needs -static-libasan - - sanitizers: 'ASan' - cc: 'gcc' - build_type: 'static' - asan_cflags: '-static-libasan' - - exclude: - # gcc is just an alias for clang on macOS - - os: 'macos' - cc: 'gcc' - # Shared libasan doesn't work with macOS system Python. - - os: 'macos' - sanitizers: 'ASan' - build_type: 'shared' - - runs-on: ${{ matrix.image }} - - env: - ASAN_OPTIONS: ${{ matrix.asan_opts }} - CC: ${{ matrix.cc }} - CXX: ${{ matrix.cxx }} - CFLAGS: '${{ matrix.san_cflags }} ${{ matrix.asan_cflags }}' - CXXFLAGS: '${{ matrix.san_cflags }} ${{ matrix.asan_cflags }}' - - steps: - - uses: actions/checkout@v6 - - name: Build and test - run: | - cmake \ - -DBUILD_SHARED_LIBS=${{ matrix.cmake_shared }} \ - -DCMAKE_BUILD_TYPE=Debug \ - -S . -B build - cmake --build build - ${{ matrix.test_env }} ctest --test-dir build --output-on-failure - - windows: - - runs-on: windows-latest - strategy: - fail-fast: false - matrix: - build_type: [shared, static] - include: - - build_type: 'shared' - cmake_shared: 'YES' - - build_type: 'static' - cmake_shared: 'NO' - - steps: - - uses: actions/checkout@v6 - - uses: ilammy/msvc-dev-cmd@v1 - - name: Build and test - run: | - cmake ^ - -DBUILD_SHARED_LIBS=${{ matrix.cmake_shared }} ^ - -DCMAKE_BUILD_TYPE=Debug ^ - -S . -B build - cmake --build build - ctest --test-dir build -C Debug --output-on-failure - shell: cmd - - name: Upload artifact - if: ${{ matrix.build_type == 'static' }} - uses: actions/upload-artifact@v7 - with: - name: cmark windows ${{ matrix.build_type }} - path: build/src/Debug/cmark.exe - if-no-files-found: error diff --git a/cmark/.github/workflows/fuzz.yml b/cmark/.github/workflows/fuzz.yml deleted file mode 100644 index bbe45ee288..0000000000 --- a/cmark/.github/workflows/fuzz.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: CIFuzz -on: [pull_request] -jobs: - Fuzzing: - runs-on: ubuntu-latest - steps: - - name: Build Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master - with: - oss-fuzz-project-name: 'cmark' - dry-run: false - - name: Run Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master - with: - oss-fuzz-project-name: 'cmark' - fuzz-seconds: 600 - dry-run: false - - name: Upload Crash - uses: actions/upload-artifact@v7 - if: failure() - with: - name: artifacts - path: ./out/artifacts diff --git a/forgewrapper/.github/workflows/build.yml b/forgewrapper/.github/workflows/build.yml deleted file mode 100644 index 971e891add..0000000000 --- a/forgewrapper/.github/workflows/build.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Gradle Build - -on: - push: - branches: [master] - pull_request: - branches: [master] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 - with: - distribution: "temurin" - java-version: "8.0.312" - architecture: x64 - - name: Build with Gradle - run: | - chmod +x ./gradlew - ./gradlew build -iS - - uses: actions/upload-artifact@v4 - with: - name: Package - path: build/libs diff --git a/forgewrapper/.github/workflows/publication.yml b/forgewrapper/.github/workflows/publication.yml deleted file mode 100644 index eeaed812c5..0000000000 --- a/forgewrapper/.github/workflows/publication.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Publication - -on: - push: - tags: - - "*" - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 - with: - distribution: "temurin" - java-version: "8.0.312" - architecture: x64 - - name: Build with Gradle - env: - IS_PUBLICATION: true - run: | - git clone -b maven https://github.com/ZekerZhayard/ForgeWrapper.git ./build/maven - rm -rf ./build/maven/.git/* - chmod +x ./gradlew - ./gradlew publish -iS - - uses: actions/upload-artifact@v4 - with: - name: Package - path: build/libs - - name: Get tag version - id: get_version - uses: olegtarasov/get-tag@v2.1 - - uses: actions/upload-artifact@v4 - with: - name: Package - path: build/libs - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.get_version.outputs.tag }} - release_name: ${{ steps.get_version.outputs.tag }} - body: "" - draft: false - prerelease: false - - name: Upload release binaries - uses: alexellis/upload-assets@0.2.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - asset_paths: '["./build/libs/*"]' - - name: Upload to Maven - uses: JamesIves/github-pages-deploy-action@4.1.4 - with: - branch: maven - folder: build/maven diff --git a/genqrcode/.github/workflows/cmake.yml b/genqrcode/.github/workflows/cmake.yml deleted file mode 100644 index 1fd5c4d65d..0000000000 --- a/genqrcode/.github/workflows/cmake.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: CMake-build - -on: [push, pull_request] - -env: - BUILD_TYPE: Release - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - - steps: - - uses: actions/checkout@v2 - - - name: run vcpkg - if: matrix.os == 'windows-latest' - uses: lukka/run-vcpkg@v6 - with: - vcpkgArguments: getopt:x64-windows libiconv:x64-windows libpng:x64-windows - vcpkgDirectory: '${{ github.workspace }}/vcpkg' - vcpkgGitCommitId: '2a42024b53ebb512fb5dd63c523338bf26c8489c' - appendedCacheKey: ${{ hashFiles( '${{ github.workspace }}/.github/workflows/cmake.yml' ) }} - - - name: brew setup - if: matrix.os == 'macos-latest' - run: brew install pkg-config libpng - - - name: Create Build Environment - run: cmake -E make_directory ${{runner.workspace}}/build - - - name: Configure CMake - if: matrix.os != 'windows-latest' - shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DWITH_TESTS=yes -DBUILD_SHARED_LIBS=on - - - name: Configure CMake for Windows - if: matrix.os == 'windows-latest' - shell: bash - working-directory: ${{runner.workspace}}/build - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake -DWITH_TESTS=yes - - - - name: Build - working-directory: ${{runner.workspace}}/build - shell: bash - run: cmake --build . --config $BUILD_TYPE -j 2 - - - name: Test - working-directory: ${{runner.workspace}}/build - shell: bash - run: ctest -C $BUILD_TYPE diff --git a/genqrcode/.github/workflows/configure.yml b/genqrcode/.github/workflows/configure.yml deleted file mode 100644 index 6fcf4d1a13..0000000000 --- a/genqrcode/.github/workflows/configure.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: build - -on: [push, pull_request] - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - - steps: - - uses: actions/checkout@v2 - - name: brew setup - if: matrix.os == 'macos-latest' - run: brew install automake autoconf pkg-config libpng - - name: generate configure script - run: ./autogen.sh - - name: configure - run: ./configure --with-tests - - name: make - run: make -j 2 - - name: make check - run: make check - - name: make distcheck - run: make -j 2 distcheck diff --git a/images4docker/.github/workflows/build.yml b/images4docker/.github/workflows/build.yml deleted file mode 100644 index 2e9bd15c35..0000000000 --- a/images4docker/.github/workflows/build.yml +++ /dev/null @@ -1,213 +0,0 @@ -name: Repack Existing Images - -on: - push: - branches: ["trunk"] - paths: - - "dockerfiles/**" - - ".github/workflows/build.yml" - - "README.md" - schedule: - - cron: "17 3 * * *" - -permissions: - contents: read - packages: write - -jobs: - prepare: - runs-on: ubuntu-latest - outputs: - matrix: ${{ steps.make.outputs.matrix }} - count: ${{ steps.make.outputs.count }} - steps: - - id: make - run: | - set -euo pipefail - - APT_CUSTOM='set -eu; apt-get update; PKGS="dpkg-dev ninja-build scdoc appstream lcov libdbus-1-dev libinih-dev libsystemd-dev"; if apt-cache show libxcb-cursor-dev >/dev/null 2>&1; then PKGS="$PKGS libxcb-cursor-dev"; elif apt-cache show libxcb-cursor0-dev >/dev/null 2>&1; then PKGS="$PKGS libxcb-cursor0-dev"; fi; if apt-cache show openjdk-21-jdk >/dev/null 2>&1; then PKGS="$PKGS openjdk-21-jdk"; elif apt-cache show openjdk-17-jdk >/dev/null 2>&1; then PKGS="$PKGS openjdk-17-jdk"; else PKGS="$PKGS default-jdk"; fi; if apt-cache show qt6-base-dev >/dev/null 2>&1 && apt-cache show qt6-declarative-dev >/dev/null 2>&1 && apt-cache show qt6-tools-dev >/dev/null 2>&1; then PKGS="$PKGS qt6-base-dev qt6-declarative-dev qt6-tools-dev qt6-tools-dev-tools"; else echo "Qt6 dev packages are required but not available" >&2; exit 1; fi; if apt-cache show libtiff6 >/dev/null 2>&1; then PKGS="$PKGS libtiff6"; elif apt-cache show libtiff5 >/dev/null 2>&1; then PKGS="$PKGS libtiff5"; else PKGS="$PKGS libtiff-dev"; fi; apt-get install -y --no-install-recommends $PKGS' - APK_CUSTOM='set -eu; apk update; apk add --no-cache qt6-qtbase-dev qt6-qtdeclarative-dev qt6-qttools-dev; for p in ninja scdoc appstream libxcb openjdk21-jdk lcov dbus-dev inih-dev tiff-dev; do apk add --no-cache "$p" || true; done' - DNF_CUSTOM='set -eu; dnf -y install dnf-plugins-core || true; dnf config-manager --set-enabled crb || dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled ol10_codeready_builder || dnf config-manager --set-enabled ol9_codeready_builder || dnf config-manager --set-enabled ol8_codeready_builder || true; dnf -y install epel-release || dnf -y install epel-next-release || dnf -y install oracle-epel-release-el9 || dnf -y install oracle-epel-release-el8 || true; dnf -y makecache || true; dnf -y install qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qttools-devel || dnf -y install qt6-qtbase qt6-qtdeclarative qt6-qttools || { echo "Qt6 dev packages are required but not available" >&2; exit 1; }; for p in appstream libxcb-devel dbus-devel systemd-devel libtiff ninja-build ninja inih-devel libinih-devel lcov; do dnf -y install "$p" || true; done; dnf -y install java-21-openjdk-devel || dnf -y install java-17-openjdk-devel || dnf -y install java-latest-openjdk-devel || true; dnf -y install scdoc || (dnf -y install cargo git && cargo install --locked scdoc && ln -sf /root/.cargo/bin/scdoc /usr/local/bin/scdoc) || true' - YUM_CUSTOM='yum install -y ninja-build scdoc lcov dbus-devel systemd-devel libtiff qt6-qtbase-devel qt6-qtdeclarative-devel qt6-qttools-devel && (yum install -y java-21-openjdk-devel || yum install -y java-17-openjdk-devel)' - ZYPPER_CUSTOM='set -eu; zypper --non-interactive refresh; zypper --non-interactive install --no-recommends qt6-base-devel qt6-declarative-devel qt6-tools-devel; for p in ninja scdoc appstream libxcb-devel java-21-openjdk-devel lcov dbus-1-devel inih-devel systemd-devel libtiff; do zypper --non-interactive install --no-recommends "$p" || true; done' - PACMAN_CUSTOM='set -eu; pacman -Syu --noconfirm; pacman -S --noconfirm --needed qt6-base qt6-declarative qt6-tools; for p in base-devel ninja scdoc appstream libxcb jdk21-openjdk lcov dbus inih systemd-libs libtiff; do pacman -S --noconfirm --needed "$p" || true; done' - XBPS_CUSTOM='set -eu; xbps-install -Suy -y || xbps-install -Sy -y; xbps-install -y qt6-base-devel qt6-declarative-devel qt6-tools-devel || xbps-install -y qt6-base qt6-declarative qt6-tools || { echo "Qt6 dev packages are required but not available" >&2; exit 1; }; for p in ninja scdoc appstream libxcb-devel openjdk21 lcov dbus-devel inih-devel tiff-devel; do xbps-install -y "$p" || true; done' - NIX_CUSTOM='set -eu; nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs || true; nix-channel --update; nix-env -iA nixpkgs.qt6.full || nix-env -iA nixpkgs.qt6.qtbase nixpkgs.qt6.qtdeclarative nixpkgs.qt6.qttools || { echo "Qt6 dev packages are required but not available" >&2; exit 1; }; nix-env -iA nixpkgs.ninja nixpkgs.scdoc nixpkgs.appstream nixpkgs.jdk21 nixpkgs.lcov nixpkgs.dbus nixpkgs.inih nixpkgs.systemd nixpkgs.libtiff || true' - EMERGE_CUSTOM='set -eu; emerge --sync || true; emerge dev-qt/qtbase:6 dev-qt/qtdeclarative:6 dev-qt/qttools:6 || { echo "Qt6 dev packages are required but not available" >&2; exit 1; }; for p in dev-util/ninja app-text/scdoc sys-apps/dbus dev-libs/inih sys-apps/systemd media-libs/tiff dev-util/lcov virtual/jdk; do emerge "$p" || true; done' - - rows="" - packages="" - custom_install="" - update_cmd="" - clean_cmd="" - - set_profile() { - local manager="$1" - packages="" - custom_install="" - update_cmd="" - clean_cmd="" - - case "$manager" in - apt) - custom_install="$APT_CUSTOM" - clean_cmd='rm -rf /var/lib/apt/lists/*' - ;; - apk) - custom_install="$APK_CUSTOM" - clean_cmd='true' - ;; - dnf) - custom_install="$DNF_CUSTOM" - clean_cmd='dnf clean all || true' - ;; - yum) - custom_install="$YUM_CUSTOM" - clean_cmd='yum clean all || true' - ;; - zypper) - custom_install="$ZYPPER_CUSTOM" - clean_cmd='zypper clean --all || true' - ;; - pacman) - custom_install="$PACMAN_CUSTOM" - clean_cmd='pacman -Scc --noconfirm || true' - ;; - xbps) - custom_install="$XBPS_CUSTOM" - clean_cmd='xbps-remove -O || true' - ;; - nix) - custom_install="$NIX_CUSTOM" - clean_cmd='nix-collect-garbage -d || true' - ;; - emerge) - custom_install="$EMERGE_CUSTOM" - clean_cmd='true' - ;; - *) - echo "Unsupported manager: $manager" >&2 - exit 2 - ;; - esac - } - - add_row() { - local id="$1" - local dockerfile="$2" - local target_name="$3" - local manager="$4" - - set_profile "$manager" - - row=$(jq -cn \ - --arg id "$id" \ - --arg dockerfile "$dockerfile" \ - --arg target_name "$target_name" \ - --arg target_tag "latest" \ - --arg packages "$packages" \ - --arg custom_install "$custom_install" \ - --arg update_cmd "$update_cmd" \ - --arg clean_cmd "$clean_cmd" \ - '{id:$id,dockerfile:$dockerfile,target_name:$target_name,target_tag:$target_tag,packages:$packages,custom_install:$custom_install,update_cmd:$update_cmd,clean_cmd:$clean_cmd}') - - if [[ -z "$rows" ]]; then - rows="$row" - else - rows="$rows"$'\n'"$row" - fi - } - - entries=( - "debian-bookworm-slim|dockerfiles/debian-bookworm-slim.Dockerfile|debian/bookworm-slim|apt" - "debian-bookworm|dockerfiles/debian-bookworm.Dockerfile|debian/bookworm|apt" - "debian-trixie-slim|dockerfiles/debian-trixie-slim.Dockerfile|debian/trixie-slim|apt" - "debian-stable-slim|dockerfiles/debian-stable-slim.Dockerfile|debian/stable-slim|apt" - "ubuntu-2404|dockerfiles/ubuntu-2404.Dockerfile|ubuntu/24.04|apt" - "ubuntu-2204|dockerfiles/ubuntu-2204.Dockerfile|ubuntu/22.04|apt" - "ubuntu-latest|dockerfiles/ubuntu-latest.Dockerfile|ubuntu/latest|apt" - "devuan-daedalus|dockerfiles/devuan-daedalus.Dockerfile|devuan/daedalus|apt" - "kali-rolling|dockerfiles/kali-rolling.Dockerfile|kali/rolling|apt" - "alpine-322|dockerfiles/alpine-322.Dockerfile|alpine/3.22|apk" - "alpine-321|dockerfiles/alpine-321.Dockerfile|alpine/3.21|apk" - "alpine-320|dockerfiles/alpine-320.Dockerfile|alpine/3.20|apk" - "alpine-319|dockerfiles/alpine-319.Dockerfile|alpine/3.19|apk" - "alpine-latest|dockerfiles/alpine-latest.Dockerfile|alpine/latest|apk" - "fedora-42|dockerfiles/fedora-42.Dockerfile|fedora/42|dnf" - "fedora-41|dockerfiles/fedora-41.Dockerfile|fedora/41|dnf" - "fedora-40|dockerfiles/fedora-40.Dockerfile|fedora/40|dnf" - "fedora-latest|dockerfiles/fedora-latest.Dockerfile|fedora/latest|dnf" - "centos-stream10|dockerfiles/centos-stream10.Dockerfile|centos-stream/10|dnf" - "centos-stream9|dockerfiles/centos-stream9.Dockerfile|centos-stream/9|dnf" - "rocky-10|dockerfiles/rocky-10.Dockerfile|rocky/10|dnf" - "rocky-9|dockerfiles/rocky-9.Dockerfile|rocky/9|dnf" - "alma-10|dockerfiles/alma-10.Dockerfile|alma/10|dnf" - "alma-9|dockerfiles/alma-9.Dockerfile|alma/9|dnf" - "oraclelinux-10|dockerfiles/oraclelinux-10.Dockerfile|oraclelinux/10|dnf" - "oraclelinux-9|dockerfiles/oraclelinux-9.Dockerfile|oraclelinux/9|dnf" - "oraclelinux-8|dockerfiles/oraclelinux-8.Dockerfile|oraclelinux/8|dnf" - "amazonlinux-2023|dockerfiles/amazonlinux-2023.Dockerfile|amazonlinux/2023|dnf" - "opensuse-leap-156|dockerfiles/opensuse-leap-156.Dockerfile|opensuse-leap/15.6|zypper" - "opensuse-leap-155|dockerfiles/opensuse-leap-155.Dockerfile|opensuse-leap/15.5|zypper" - "opensuse-tumbleweed|dockerfiles/opensuse-tumbleweed.Dockerfile|opensuse-tumbleweed/latest|zypper" - "arch-latest|dockerfiles/arch-latest.Dockerfile|arch/latest|pacman" - "void-latest|dockerfiles/void-latest.Dockerfile|void/latest|xbps" - "nix-latest|dockerfiles/nix-latest.Dockerfile|nix/latest|nix" - "gentoo-stage3|dockerfiles/gentoo-stage3.Dockerfile|gentoo/stage3|emerge" - ) - - for entry in "${entries[@]}"; do - IFS='|' read -r id dockerfile target_name manager <<<"$entry" - add_row "$id" "$dockerfile" "$target_name" "$manager" - done - - matrix=$(printf '%s\n' "$rows" | jq -cs '{include:.}') - count=$(echo "$matrix" | jq -r '.include | length') - matrix_compact=$(echo "$matrix" | jq -c .) - echo "matrix=$matrix_compact" >> "$GITHUB_OUTPUT" - echo "count=$count" >> "$GITHUB_OUTPUT" - - build: - needs: prepare - if: needs.prepare.outputs.count != '0' - runs-on: ubuntu-latest - strategy: - fail-fast: false - max-parallel: 6 - matrix: ${{ fromJSON(needs.prepare.outputs.matrix) }} - steps: - - uses: actions/checkout@v4 - - - name: Login to GHCR - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Compute image tags - id: tagmeta - shell: bash - run: | - set -euo pipefail - short_sha="${GITHUB_SHA::12}" - ts="$(date -u +%Y%m%d-%H%M%S)" - echo "sha_tag=sha-${short_sha}" >> "$GITHUB_OUTPUT" - echo "immutable_tag=${ts}-r${GITHUB_RUN_ID}-a${GITHUB_RUN_ATTEMPT}-${short_sha}" >> "$GITHUB_OUTPUT" - - - name: Build and push image - uses: docker/build-push-action@v6 - with: - context: . - file: ${{ matrix.dockerfile }} - push: true - provenance: false - tags: | - ghcr.io/project-tick-infra/images/${{ matrix.target_name }}:${{ matrix.target_tag }} - ghcr.io/project-tick-infra/images/${{ matrix.target_name }}:${{ steps.tagmeta.outputs.sha_tag }} - ghcr.io/project-tick-infra/images/${{ matrix.target_name }}:${{ steps.tagmeta.outputs.immutable_tag }} - build-args: | - PACKAGES=${{ matrix.packages }} - CUSTOM_INSTALL=${{ matrix.custom_install }} - UPDATE_CMD=${{ matrix.update_cmd }} - CLEAN_CMD=${{ matrix.clean_cmd }} diff --git a/json4cpp/.github/CODEOWNERS b/json4cpp/.github/CODEOWNERS deleted file mode 100644 index e1e1040fc6..0000000000 --- a/json4cpp/.github/CODEOWNERS +++ /dev/null @@ -1,6 +0,0 @@ -# JSON for Modern C++ was originally written by Niels Lohmann. -# Since 2013, over 250 contributors have helped to improve the library. -# This CODEOWNERS file is only to make sure that @nlohmann is requested -# for a code review in case of a pull request. - -* @nlohmann diff --git a/json4cpp/.github/CODE_OF_CONDUCT.md b/json4cpp/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 30eb5784ce..0000000000 --- a/json4cpp/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official email address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[mail@nlohmann.me](mailto:mail@nlohmann.me). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/json4cpp/.github/CONTRIBUTING.md b/json4cpp/.github/CONTRIBUTING.md deleted file mode 100644 index b0f65230cc..0000000000 --- a/json4cpp/.github/CONTRIBUTING.md +++ /dev/null @@ -1,225 +0,0 @@ -# Contribution Guidelines - -Thank you for your interest in contributing to this project! What began as an exercise to explore the exciting features -of C++11 has evolved into a [widely used](https://json.nlohmann.me/home/customers/) JSON library. I truly appreciate all -the contributions from the community, whether it's proposing features, identifying bugs, or fixing mistakes! To ensure -that our collaboration is efficient and effective, please follow these guidelines. - -Feel free to discuss or suggest improvements to this document -[by submitting a pull request](https://github.com/nlohmann/json/edit/develop/.github/CONTRIBUTING.md). - -## Ways to Contribute - -There are multiple ways to contribute. - -### Reporting an issue - -Please [create an issue](https://github.com/nlohmann/json/issues/new/choose), assuming one does not already exist, and -describe your concern. Note you need a [GitHub account](https://github.com/signup/free) for this. - -Clearly describe the issue: - -- If it is a bug, please describe how to **reproduce** it. If possible, attach a _complete example_ which demonstrates - the error. Please also state what you **expected** to happen instead of the error. -- If you propose a change or addition, try to give an **example** what the improved code could look like or how to use - it. -- If you found a compilation error, please tell us which **compiler** (version and operating system) you used and paste - the (relevant part of) the error messages to the ticket. - -Please stick to the provided issue template -[bug report](https://github.com/nlohmann/json/blob/develop/.github/ISSUE_TEMPLATE/bug.yaml) if possible. - -### Reporting a security vulnerability - -You can report a security vulnerability according to our -[security policy](https://github.com/nlohmann/json/security/policy). - -### Discussing a new feature - -For questions, feature or support requests, please -[open a discussion](https://github.com/nlohmann/json/discussions/new). If you find a proposed answer satisfactory, -please use the "Mark as answer" button to make it easier for readers to see what helped and for the community to filter -for open questions. - -### Proposing a fix or an improvement - -Join an ongoing discussion or comment on an existing issue before starting to code. This can help to avoid duplicate -efforts or other frustration during the later review. - -Create a [pull request](https://github.com/nlohmann/json/pulls?q=sort%3Aupdated-desc+is%3Apr+is%3Aopen) against the -`develop` branch and follow the pull request template. In particular, - -- describe the changes in detail, both the what and why, -- reference existing issues where applicable, -- add tests to maintain 100% test coverage, -- update the documentation as needed, and -- ensure the source code is amalgamated. - -We describe all points in detail below. - -All contributions (including pull requests) must agree to the -[Developer Certificate of Origin (DCO) version 1.1](https://developercertificate.org). This is exactly the same one -created and used by the Linux kernel developers and posted on http://developercertificate.org/. This is a developer's -certification that he or she has the right to submit the patch for inclusion into the project. - -## How to... - -### Describe your changes - -This library is primarily maintained as a spare-time project. As such, I cannot make any guarantee how quickly changes -are merged and released. Therefore, it is very important to make the review as smooth as possible by explaining not only -_what_ you changed, but _why_. This rationale can be very valuable down the road when improvements or bugs are discussed -years later. - -### Reference an existing issue - -[Link a pull request to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue) -to clarify that a fix is forthcoming and which issue can be closed after merging. Only a few cases (e.g., fixing typos) -do not require prior discussions. - -### Write tests - -The library has an extensive test suite that currently covers [100 %](https://coveralls.io/github/nlohmann/json) of the -library's code. These tests are crucial to maintain API stability and give future contributors confidence that they do -not accidentally break things. As Titus Winters aptly put it: - -> If you liked it, you should have put a test on it. - -#### Run the tests - -First, ensure the test suite runs before making any changes: - -```sh -$ cmake -S. -B build -$ cmake --build build -j 10 -$ ctest --test-dir build -j 10 -``` - -The test suite should report: - -``` -100% tests passed, 0 tests failed out of 98 -``` - -#### Add tests - -The tests are located in [`tests/src/unit-*.cpp`](https://github.com/nlohmann/json/tree/develop/tests/src) and contain -[doctest assertions](https://github.com/doctest/doctest/blob/master/doc/markdown/assertions.md) like `CHECK`. The tests -are structured along the features of the library or the nature of the tests. Usually, it should be clear from the -context which existing file needs to be extended, and only very few cases require creating new test files. - -When fixing a bug, edit `unit-regression2.cpp` and add a section referencing the fixed issue. - -#### Exceptions - -When you test exceptions, please use `CHECK_THROWS_WITH_AS` which also takes the `what()` argument of the thrown -exception into account. - -#### Coverage - -If test coverage decreases, an automatic warning comment will be posted on the pull request. You can access a code -coverage report as an artifact to the âUbuntuâ workflow. - -### Update the documentation - -The [main documentation](https://json.nlohmann.me) of the library is generated from the files -[`docs/mkdocs/docs`](https://github.com/nlohmann/json/blob/develop/docs/mkdocs/docs). This folder contains dedicated -pages for [certain features](https://github.com/nlohmann/json/tree/develop/docs/mkdocs/docs/features), a list of -[all exceptions](https://github.com/nlohmann/json/blob/develop/docs/mkdocs/docs/home/exceptions.md), and -[extensive API documentation](https://github.com/nlohmann/json/tree/develop/docs/mkdocs/docs/api) with details on every -public API function. - -Build the documentation locally using: - -```shell -make install_venv -C docs/mkdocs -make serve -C docs/mkdocs -``` - -The documentation will then be available at <http://127.0.0.1:8000/>. See the documentation of -[mkdocs](https://www.mkdocs.org) and [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) for more -information. - -### Amalgamate the source code - -The single-header files -[`single_include/nlohmann/json.hpp`](https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp) and -[`single_include/nlohmann/json_fwd.hpp`](https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json_fwd.hpp) -are **generated** from the source files in the -[`include/nlohmann` directory](https://github.com/nlohmann/json/tree/develop/include/nlohmann). **Do not** edit the -files directly; instead, modify the include/nlohmann sources and regenerate the files by executing: - -```shell -make amalgamate -``` - -Running `make amalgamate` will also apply automatic formatting to the source files using -[`Artistic Style`](https://astyle.sourceforge.net/). This formatting may modify your source files in-place. Be certain to review and commit any changes to avoid unintended formatting diffs in commits. - -## Recommended documentation - -- The libraryâs [README file](https://github.com/nlohmann/json/blob/master/README.md) is an excellent starting point to - understand its functionality. -- The [documentation page](https://json.nlohmann.me) is the reference documentation of the library. -- [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) is the reference for the JavaScript Object Notation (JSON) - Data Interchange Format. - -## Please don't... - -Certain contributions are not helpful. - -### Break the public API - -We take pride in the library being used by -[numerous customers across various industries](https://json.nlohmann.me/home/customers/). They all rely on the -guarantees provided by [semantic versioning](https://semver.org). Please do not change the library such that the public -API of the 3.x.y version is broken. This includes: - -- Changing function signatures (altering parameter types, return types, number of parameters) or changing the const-ness - of member functions. -- Removing functions. -- Renaming functions or classes. -- Changing exception handling. -- Changing exception ids. -- Changing access specifiers. -- Changing default arguments. - -Although these guidelines may seem restrictive, they are essential for maintaining the libraryâs utility. - -Breaking changes may be introduced when they are guarded with a feature macro such as -[`JSON_USE_IMPLICIT_CONVERSIONS`](https://json.nlohmann.me/api/macros/json_use_implicit_conversions/) which allows -selectively changing the behavior of the library. In next steps, the current behavior can then be deprecated. Using -feature macros then allows users to test their code against the library in the next major release. - -### Break C++11 language conformance - -This library is designed to work with C++11 and later. This means that any -[supported C++11 compiler](https://github.com/nlohmann/json/blob/master/README.md#supported-compilers) should compile -the library without problems. Some compilers like GCC 4.7 (and earlier), Clang 3.3 (and earlier), or Microsoft Visual -Studio 13.0 and earlier are known not to work due to missing or incomplete C++11 support. - -Please do not add features that do not work with the mentioned supported compilers. Please guard features from C++14 and -later against the respective [`JSON_HAS_CPP_14`](https://json.nlohmann.me/api/macros/json_has_cpp_11/) macros. - -### Break JSON conformance - -Please refrain from proposing changes that would **break [JSON](https://datatracker.ietf.org/doc/html/rfc8259) -conformance**. If you propose a conformant extension of JSON to be supported by the library, please motivate this -extension. - -## Wanted - -The following areas really need contribution and are always welcomed: - -- Extending the **continuous integration** toward more exotic compilers such as Android NDK, Intel's Compiler, or the - bleeding-edge versions Clang. -- Improving the efficiency of the **JSON parser**. The current parser is implemented as a naive recursive descent parser - with hand-coded string handling. More sophisticated approaches like LALR parsers would be really appreciated. That - said, parser generators like Bison or ANTLR do not play nice with single-header files -- I really would like to keep - the parser inside the `json.hpp` header, and I am not aware of approaches similar to [`re2c`](http://re2c.org) for - parsing. -- Extending and updating existing **benchmarks** to include (the most recent version of) this library. Though efficiency - is not everything, speed and memory consumption are very important characteristics for C++ developers, so having - proper comparisons would be interesting. - -We look forward to your contributions and collaboration to enhance the library! diff --git a/json4cpp/.github/FUNDING.yml b/json4cpp/.github/FUNDING.yml deleted file mode 100644 index 27bd6810a9..0000000000 --- a/json4cpp/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -github: nlohmann -custom: https://paypal.me/nlohmann diff --git a/json4cpp/.github/ISSUE_TEMPLATE/bug.yaml b/json4cpp/.github/ISSUE_TEMPLATE/bug.yaml deleted file mode 100644 index ed426675dd..0000000000 --- a/json4cpp/.github/ISSUE_TEMPLATE/bug.yaml +++ /dev/null @@ -1,95 +0,0 @@ -name: Bug Report -description: Create a bug report -labels: - - 'kind: bug' -body: - - type: markdown - attributes: - value: > - Thanks for taking the time to fill out this bug report! - - Make sure you give it a short and specific **title** so that the report - is searchable and uniquely identifiable. - - Note that this form is for bug reports only. Please - [open a discussion](https://github.com/nlohmann/json/discussions/new) - for questions, feature requests, or support requests. - **Please check the [FAQ](https://json.nlohmann.me/home/faq/) before - reporting an issue.** Common questions are answered there. - - type: textarea - id: summary - attributes: - label: Description - description: > - Please provide an abstract description of the issue to the developers, - and why you consider it to be a bug. Please include any specific links - to the documentation, JSON specification, or code. - validations: - required: true - - type: textarea - id: reproduce - attributes: - label: Reproduction steps - description: > - How do you trigger the bug? Please walk us through step by step. Be as - specific as possible. - validations: - required: true - - type: textarea - id: results - attributes: - label: Expected vs. actual results - description: > - Please describe what you expected to happen after the steps above and - what actually happened. - validations: - required: true - - type: textarea - id: code - attributes: - label: Minimal code example - description: > - If possible, provide a small and self-contained example that triggers - the bug. Please understand that we cannot analyze and debug large code - bases. Please do not paste screenshots here. - render: Shell - - type: textarea - id: output - attributes: - label: Error messages - description: > - Please provide any kind of error output (compilation errors, exception - messages, stack traces, etc.) which can help to diagnose the error. - render: Shell - - type: input - id: compiler - attributes: - label: Compiler and operating system - description: > - On which operating systems and compilers have you observed the issue? - Include as many relevant details about the environment you experienced - the bug in. Make sure you use a - [supported compiler](https://github.com/nlohmann/json#supported-compilers). - validations: - required: true - - type: input - id: version - attributes: - label: Library version - description: > - Which version of the library did you use? If it is a released version, - please enter the version number (e.g., 3.12.0). Otherwise, please enter - the commit hash. If you got the library from another source as the - GitHub repository (e.g., via a package manager), please also state - this. - validations: - required: true - - type: checkboxes - id: validation - attributes: - label: Validation - description: > - Please check these additional steps: - options: - - label: The bug also occurs if the latest version from the [`develop`](https://github.com/nlohmann/json/tree/develop) branch is used. - - label: I can successfully [compile and run the unit tests](https://github.com/nlohmann/json#execute-unit-tests). diff --git a/json4cpp/.github/ISSUE_TEMPLATE/config.yml b/json4cpp/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 0e96633842..0000000000 --- a/json4cpp/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Ask a question - url: https://github.com/nlohmann/json/discussions - about: Ask questions and discuss with other community members diff --git a/json4cpp/.github/PULL_REQUEST_TEMPLATE.md b/json4cpp/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 5370953242..0000000000 --- a/json4cpp/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,9 +0,0 @@ -[Describe your pull request here. Please read the text below the line and make sure you follow the checklist.] - -- [ ] The changes are described in detail, both the what and why. -- [ ] If applicable, an [existing issue](https://github.com/nlohmann/json/issues) is referenced. -- [ ] The [Code coverage](https://coveralls.io/github/nlohmann/json) remained at 100%. A test case for every new line of code. -- [ ] If applicable, the [documentation](https://json.nlohmann.me) is updated. -- [ ] The source code is amalgamated by running `make amalgamate`. - -Read the [Contribution Guidelines](https://github.com/nlohmann/json/blob/develop/.github/CONTRIBUTING.md) for detailed information. diff --git a/json4cpp/.github/SECURITY.md b/json4cpp/.github/SECURITY.md deleted file mode 100644 index ea7e8810f3..0000000000 --- a/json4cpp/.github/SECURITY.md +++ /dev/null @@ -1,25 +0,0 @@ -# Security Policy - -## Reporting a Vulnerability - -We value the security of our users and appreciate your efforts to responsibly disclose vulnerabilities. If you have -identified a security vulnerability in this repository, please use the GitHub Security Advisory -["Report a Vulnerability"](https://github.com/nlohmann/json/security/advisories/new) tab. - -Until it is published, this draft security advisory will only be visible to the maintainers of this project. Other -users and teams may be added once the advisory is created. - -We will send a response indicating the next steps in handling your report. After the initial reply to your report, we -will keep you informed of the progress towards a fix and full announcement and may ask for additional information or -guidance. - -For vulnerabilities in third-party dependencies or modules, please report them directly to the respective maintainers. - -## Additional Resources - -- Explore security-related topics and contribute to tools and projects through - [GitHub Security Lab](https://securitylab.github.com/). -- Learn more about responsible disclosure and reporting vulnerabilities in GitHub at - [About coordinated disclosure of security vulnerabilities](https://docs.github.com/en/code-security/repository-security-advisories/about-coordinated-disclosure-of-security-vulnerabilities). - -We sincerely thank you for contributing to the security and integrity of this project! diff --git a/json4cpp/.github/config.yml b/json4cpp/.github/config.yml deleted file mode 100644 index 4e3217479b..0000000000 --- a/json4cpp/.github/config.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Configuration for sentiment-bot - https://github.com/behaviorbot/sentiment-bot - -# *Required* toxicity threshold between 0 and .99 with the higher numbers being the most toxic -# Anything higher than this threshold will be marked as toxic and commented on -sentimentBotToxicityThreshold: .7 - -# *Required* Comment to reply with -sentimentBotReplyComment: > - Please be sure to review the [code of conduct](https://github.com/nlohmann/json/blob/develop/.github/CODE_OF_CONDUCT.md) and be respectful of other users. cc/ @nlohmann - - -# Configuration for request-info - https://github.com/behaviorbot/request-info - -# *Required* Comment to reply with -requestInfoReplyComment: > - We would appreciate it if you could provide us with more info about this issue or pull request! Please check the [issue template](https://github.com/nlohmann/json/blob/develop/.github/ISSUE_TEMPLATE.md) and the [pull request template](https://github.com/nlohmann/json/blob/develop/.github/PULL_REQUEST_TEMPLATE.md). - -# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given -requestInfoLabelToAdd: "state: needs more info" - -checkIssueTemplate: true -checkPullRequestTemplate: true diff --git a/json4cpp/.github/dependabot.yml b/json4cpp/.github/dependabot.yml deleted file mode 100644 index d517ed9843..0000000000 --- a/json4cpp/.github/dependabot.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: 2 -updates: - - package-ecosystem: github-actions - directory: / - schedule: - interval: daily - - - package-ecosystem: pip - directory: /docs/mkdocs - schedule: - interval: daily - - - package-ecosystem: pip - directory: /tools/astyle - schedule: - interval: daily - - - package-ecosystem: pip - directory: /tools/generate_natvis - schedule: - interval: daily - - - package-ecosystem: pip - directory: /tools/serve_header - schedule: - interval: daily - - - package-ecosystem: pip - directory: /cmake/requirements - schedule: - interval: daily diff --git a/json4cpp/.github/external_ci/appveyor.yml b/json4cpp/.github/external_ci/appveyor.yml deleted file mode 100644 index 5c6b47a344..0000000000 --- a/json4cpp/.github/external_ci/appveyor.yml +++ /dev/null @@ -1,91 +0,0 @@ -version: '{build}' - -# only build PRs and commits to develop branch -# (see https://help.appveyor.com/discussions/questions/55079-two-builds-per-commit-to-pull-request) -branches: - only: - - develop - -only_commits: - files: - - .github/external_ci/appveyor.yml - - cmake/ - - include/ - - tests/ - - CMakeLists.txt - -environment: - matrix: - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - configuration: Debug - platform: x86 - CXX_FLAGS: "/W4 /WX" - CMAKE_OPTIONS: "" - GENERATOR: Visual Studio 14 2015 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - configuration: Release - platform: x86 - CXX_FLAGS: "/W4 /WX" - CMAKE_OPTIONS: "" - GENERATOR: Visual Studio 14 2015 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - configuration: Release - platform: x86 - name: with_win_header - CXX_FLAGS: "/W4 /WX" - CMAKE_OPTIONS: "" - GENERATOR: Visual Studio 14 2015 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - configuration: Release - platform: x86 - CXX_FLAGS: "/permissive- /std:c++17 /utf-8 /W4 /WX" - CMAKE_OPTIONS: "" - GENERATOR: Visual Studio 15 2017 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - configuration: Release - platform: x86 - CXX_FLAGS: "/W4 /WX" - CMAKE_OPTIONS: "-DJSON_ImplicitConversions=OFF" - GENERATOR: Visual Studio 16 2019 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - configuration: Release - platform: x64 - CXX_FLAGS: "/W4 /WX" - CMAKE_OPTIONS: "" - GENERATOR: Visual Studio 14 2015 - - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - configuration: Release - platform: x64 - CXX_FLAGS: "/permissive- /std:c++17 /Zc:__cplusplus /utf-8 /W4 /WX" - CMAKE_OPTIONS: "" - GENERATOR: Visual Studio 15 2017 - -init: - - cmake --version - - msbuild /version - -install: - - if "%platform%"=="x86" set GENERATOR_PLATFORM=Win32 - -before_build: - # for with_win_header build, inject the inclusion of Windows.h to the single-header library - - ps: if ($env:name -Eq "with_win_header") { $header_path = "single_include\nlohmann\json.hpp" } - - ps: if ($env:name -Eq "with_win_header") { "#include <Windows.h>`n" + (Get-Content $header_path | Out-String) | Set-Content $header_path } - - cmake . -G "%GENERATOR%" -A "%GENERATOR_PLATFORM%" -DCMAKE_CXX_FLAGS="%CXX_FLAGS%" -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" -DJSON_BuildTests=On "%CMAKE_OPTIONS%" - -build_script: - - cmake --build . --config "%configuration%" --parallel 2 - -test_script: - - if "%configuration%"=="Release" ctest -C "%configuration%" --parallel 2 --output-on-failure - # On Debug builds, skip test-unicode_all - # as it is extremely slow to run and cause - # occasional timeouts on AppVeyor. - # More info: https://github.com/nlohmann/json/pull/1570 - - if "%configuration%"=="Debug" ctest --exclude-regex "test-unicode" -C "%configuration%" --parallel 2 --output-on-failure diff --git a/json4cpp/.github/labeler.yml b/json4cpp/.github/labeler.yml deleted file mode 100644 index 024d3e6da2..0000000000 --- a/json4cpp/.github/labeler.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: 1 - -labels: -- label: "documentation" - files: - - "README.md" - -- label: "documentation" - files: - - "docs/.*" - -- label: "tests" - files: - - "tests/.*" - -- label: "CMake" - files: - - ".*CMakeLists.txt" - -- label: "CMake" - files: - - "cmake/.*" - -- label: "CI" - files: - - "github/workflows/.*" - -- label: "CI" - files: - - "github/external_ci/.*" - -- label: "S" - size-below: 10 -- label: "M" - size-above: 9 - size-below: 100 -- label: "L" - size-above: 100 diff --git a/json4cpp/.github/workflows/codeql-analysis.yml b/json4cpp/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 26e6465e08..0000000000 --- a/json4cpp/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: "Code scanning - action" - -on: - push: - branches: - - develop - - master - - release/* - pull_request: - schedule: - - cron: '0 19 * * 1' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - CodeQL-Build: - - runs-on: ubuntu-latest - permissions: - security-events: write - - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6 - with: - languages: c-cpp - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6 diff --git a/json4cpp/.github/workflows/dependency-review.yml b/json4cpp/.github/workflows/dependency-review.yml deleted file mode 100644 index 1d8a2052c0..0000000000 --- a/json4cpp/.github/workflows/dependency-review.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Dependency Review Action -# -# This Action will scan dependency manifest files that change as part of a Pull Request, -# surfacing known-vulnerable versions of the packages declared or updated in the PR. -# Once installed, if the workflow run is marked as required, -# PRs introducing known-vulnerable packages will be blocked from merging. -# -# Source repository: https://github.com/actions/dependency-review-action -name: 'Dependency Review' -on: [pull_request] - -permissions: - contents: read - -jobs: - dependency-review: - runs-on: ubuntu-latest - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - name: 'Checkout Repository' - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: 'Dependency Review' - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 diff --git a/json4cpp/.github/workflows/macos.yml b/json4cpp/.github/workflows/macos.yml deleted file mode 100644 index 5217874d7e..0000000000 --- a/json4cpp/.github/workflows/macos.yml +++ /dev/null @@ -1,121 +0,0 @@ -name: macOS - -on: - push: - branches: - - develop - - master - - release/* - pull_request: - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: -# macos-11 is deprecated -# macos-11: -# runs-on: macos-11 -# strategy: -# matrix: -# xcode: ['11.7', '12.4', '12.5.1', '13.0'] -# env: -# DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer -# -# steps: -# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 -# - name: Run CMake -# run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON -# - name: Build -# run: cmake --build build --parallel 10 -# - name: Test -# run: cd build ; ctest -j 10 --output-on-failure - -# macos-12 is deprecated (https://github.com/actions/runner-images/issues/10721) -# macos-12: -# runs-on: macos-12 # https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md -# strategy: -# matrix: -# xcode: ['13.1', '13.2.1', '13.3.1', '13.4.1', '14.0', '14.0.1', '14.1'] -# env: -# DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer -# -# steps: -# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 -# - name: Run CMake -# run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON -# - name: Build -# run: cmake --build build --parallel 10 -# - name: Test -# run: cd build ; ctest -j 10 --output-on-failure - -# macos-13 is deprecated (https://github.com/actions/runner-images/issues/13046) -# macos-13: -# runs-on: macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md -# strategy: -# matrix: -# xcode: ['14.1', '14.2', '14.3', '14.3.1', '15.0.1', '15.1', '15.2'] -# env: -# DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer -# -# steps: -# - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 -# - name: Run CMake -# run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON -# - name: Build -# run: cmake --build build --parallel 10 -# - name: Test -# run: cd build ; ctest -j 10 --output-on-failure - - macos-14: - runs-on: macos-14 # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md - strategy: - matrix: - xcode: ['15.0.1', '15.1', '15.2', '15.3', '15.4'] - env: - DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON - - name: Build - run: cmake --build build --parallel 10 - - name: Test - run: cd build ; ctest -j 10 --output-on-failure - - macos-15: - runs-on: macos-15 # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md - strategy: - matrix: - xcode: ['16.0', '16.1', '16.2', '16.3', '16.4', '26.0.1'] - env: - DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_FastTests=ON - - name: Build - run: cmake --build build --parallel 10 - - name: Test - run: cd build ; ctest -j 10 --output-on-failure - - xcode_standards: - runs-on: macos-latest - strategy: - matrix: - standard: [11, 14, 17, 20, 23, 26] - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On -DJSON_TestStandards=${{ matrix.standard }} - - name: Build - run: cmake --build build --parallel 10 - - name: Test - run: cd build ; ctest -j 10 --output-on-failure diff --git a/json4cpp/.github/workflows/scorecards.yml b/json4cpp/.github/workflows/scorecards.yml deleted file mode 100644 index affe15ffee..0000000000 --- a/json4cpp/.github/workflows/scorecards.yml +++ /dev/null @@ -1,81 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. They are provided -# by a third-party and are governed by separate terms of service, privacy -# policy, and support documentation. - -name: Scorecard supply-chain security -on: - # For Branch-Protection check. Only the default branch is supported. See - # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection - branch_protection_rule: - # To guarantee Maintained check is occasionally updated. See - # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained - schedule: - - cron: '20 7 * * 2' - push: - branches: ["develop"] - -permissions: - contents: read - -jobs: - analysis: - name: Scorecard analysis - runs-on: ubuntu-latest - permissions: - # Needed to upload the results to code-scanning dashboard. - security-events: write - # Needed to publish results and get a badge (see publish_results below). - id-token: write - contents: read - actions: read - # To allow GraphQL ListCommits to work - issues: read - pull-requests: read - # To detect SAST tools - checks: read - - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - name: "Checkout code" - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: "Run analysis" - uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 - with: - results_file: results.sarif - results_format: sarif - # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: - # - you want to enable the Branch-Protection check on a *public* repository, or - # - you are installing Scorecards on a *private* repository - # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. - # repo_token: ${{ secrets.SCORECARD_TOKEN }} - - # Public repositories: - # - Publish results to OpenSSF REST API for easy access by consumers - # - Allows the repository to include the Scorecard badge. - # - See https://github.com/ossf/scorecard-action#publishing-results. - # For private repositories: - # - `publish_results` will always be set to `false`, regardless - # of the value entered here. - publish_results: true - - # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF - # format to the repository Actions tab. - - name: "Upload artifact" - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 - with: - name: SARIF file - path: results.sarif - retention-days: 5 - - # Upload the results to GitHub's code scanning dashboard. - - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6 - with: - sarif_file: results.sarif diff --git a/json4cpp/.github/workflows/semgrep.yml b/json4cpp/.github/workflows/semgrep.yml deleted file mode 100644 index 88e722c22d..0000000000 --- a/json4cpp/.github/workflows/semgrep.yml +++ /dev/null @@ -1,54 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# This workflow file requires a free account on Semgrep.dev to -# manage rules, file ignores, notifications, and more. -# -# See https://semgrep.dev/docs - -name: Semgrep - -on: - push: - branches: [ "develop" ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ "develop" ] - schedule: - - cron: '23 2 * * 4' - -permissions: - contents: read - -jobs: - semgrep: - permissions: - contents: read # for actions/checkout to fetch code - security-events: write # for github/codeql-action/upload-sarif to upload SARIF results - actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status - name: Scan - runs-on: ubuntu-latest - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - # Checkout project source - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - # Scan code using project's configuration on https://semgrep.dev/manage - - uses: returntocorp/semgrep-action@713efdd345f3035192eaa63f56867b88e63e4e5d - with: - publishToken: ${{ secrets.SEMGREP_APP_TOKEN }} - publishDeployment: ${{ secrets.SEMGREP_DEPLOYMENT_ID }} - generateSarif: "1" - - # Upload SARIF file generated in previous step - - name: Upload SARIF file - uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4 - with: - sarif_file: semgrep.sarif - if: always() diff --git a/json4cpp/.github/workflows/ubuntu.yml b/json4cpp/.github/workflows/ubuntu.yml deleted file mode 100644 index 87b09ae4c2..0000000000 --- a/json4cpp/.github/workflows/ubuntu.yml +++ /dev/null @@ -1,283 +0,0 @@ -name: Ubuntu - -on: - push: - branches: - - develop - - master - - release/* - pull_request: - workflow_dispatch: - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - ci_test_gcc: - runs-on: ubuntu-latest - container: gcc:latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_gcc - - ci_infer: - runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_infer - - ci_static_analysis_ubuntu: - runs-on: ubuntu-latest - strategy: - matrix: - target: [ci_test_amalgamation, ci_test_single_header, ci_cppcheck, ci_cpplint, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_reuse_compliance, ci_test_valgrind] - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - name: Install Valgrind - run: sudo apt-get update ; sudo apt-get install -y valgrind - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ${{ matrix.target }} - - ci_static_analysis_clang: - runs-on: ubuntu-latest - container: silkeh/clang:dev - strategy: - matrix: - target: [ci_test_clang, ci_clang_tidy, ci_test_clang_sanitizer, ci_clang_analyze, ci_single_binaries] - steps: - - name: Install git, clang-tools, iwyu (ci_single_binaries), and unzip - run: apt-get update ; apt-get install -y git clang-tools iwyu unzip - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ${{ matrix.target }} - - ci_cmake_options: - runs-on: ubuntu-latest - container: ubuntu:focal - strategy: - matrix: - target: [ci_cmake_flags, ci_test_diagnostics, ci_test_diagnostic_positions, ci_test_noexceptions, ci_test_noimplicitconversions, ci_test_legacycomparison, ci_test_noglobaludls] - steps: - - name: Install build-essential - run: apt-get update ; apt-get install -y build-essential unzip wget git libssl-dev - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ${{ matrix.target }} - - ci_test_coverage: - runs-on: ubuntu-latest - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install dependencies and de_DE locale - run: | - sudo apt-get clean - sudo apt-get update - sudo apt-get install -y build-essential cmake lcov ninja-build make locales gcc-multilib g++-multilib - sudo locale-gen de_DE - sudo update-locale - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_coverage - - name: Archive coverage report - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 - with: - name: code-coverage-report - path: ${{ github.workspace }}/build/html - - name: Publish report to Coveralls - uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - path-to-lcov: ${{ github.workspace }}/build/json.info.filtered.noexcept - fail-on-error: false - - ci_test_compilers_gcc_old: - runs-on: ubuntu-latest - strategy: - matrix: - compiler: ['4.8', '4.9', '5', '6'] - container: ghcr.io/nlohmann/json-ci:v2.4.0 - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: CXX=g++-${{ matrix.compiler }} cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_compiler_g++-${{ matrix.compiler }} - - ci_test_compilers_gcc: - runs-on: ubuntu-latest - strategy: - matrix: - # older GCC docker images (4, 5, 6) fail to check out code - compiler: ['7', '8', '9', '10', '11', '12', '13', '14', '15', 'latest'] - container: gcc:${{ matrix.compiler }} - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_compiler_default - - ci_test_compilers_clang: - runs-on: ubuntu-latest - strategy: - matrix: - compiler: ['3.4', '3.5', '3.6', '3.7', '3.8', '3.9', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15-bullseye', '16', '17', '18', '19', '20', 'latest'] - container: silkeh/clang:${{ matrix.compiler }} - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Set env FORCE_STDCPPFS_FLAG for clang 7 / 8 / 9 / 10 - run: echo "JSON_FORCED_GLOBAL_COMPILE_OPTIONS=-DJSON_HAS_FILESYSTEM=0;-DJSON_HAS_EXPERIMENTAL_FILESYSTEM=0" >> "$GITHUB_ENV" - if: ${{ matrix.compiler == '7' || matrix.compiler == '8' || matrix.compiler == '9' || matrix.compiler == '10' }} - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_compiler_default - - ci_test_standards_gcc: - runs-on: ubuntu-latest - container: gcc:latest - strategy: - matrix: - standard: [11, 14, 17, 20, 23, 26] - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_test_gcc_cxx${{ matrix.standard }} - - ci_test_standards_clang: - runs-on: ubuntu-latest - container: silkeh/clang:latest - strategy: - matrix: - standard: [11, 14, 17, 20, 23, 26] - stdlib: [libcxx, libstdcxx] - steps: - - name: Install git and unzip - run: apt-get update ; apt-get install -y git unzip - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build with libc++ - run: cmake --build build --target ci_test_clang_libcxx_cxx${{ matrix.standard }} - if: ${{ matrix.stdlib == 'libcxx' }} - - name: Build with libstdc++ - run: cmake --build build --target ci_test_clang_cxx${{ matrix.standard }} - if: ${{ matrix.stdlib == 'libstdcxx' }} - - ci_cuda_example: - runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.4.0 - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_cuda_example - - ci_module_cpp20: - strategy: - matrix: - container: ['gcc:latest', 'silkeh/clang:latest'] - runs-on: ubuntu-latest - container: ${{ matrix.container }} - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ci_module_cpp20 - - ci_icpc: - runs-on: ubuntu-latest - container: ghcr.io/nlohmann/json-ci:v2.2.0 - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: | - . /opt/intel/oneapi/setvars.sh - cmake --build build --target ci_icpc - - ci_emscripten: - runs-on: ubuntu-latest - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - name: Install emscripten - uses: mymindstorm/setup-emsdk@6ab9eb1bda2574c4ddb79809fc9247783eaf9021 # v14 - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Get latest CMake and ninja - uses: lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # v4.2.3 - - name: Run CMake - run: cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -GNinja - - name: Build - run: cmake --build build - - ci_test_documentation: - runs-on: ubuntu-latest - strategy: - matrix: - target: [ci_test_examples, ci_test_build_documentation] - steps: - - name: Harden Runner - uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 - with: - egress-policy: audit - - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -DJSON_CI=On - - name: Build - run: cmake --build build --target ${{ matrix.target }} diff --git a/json4cpp/.github/workflows/windows.yml b/json4cpp/.github/workflows/windows.yml deleted file mode 100644 index 6475bca0fc..0000000000 --- a/json4cpp/.github/workflows/windows.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Windows - -on: - push: - branches: - - develop - - master - - release/* - pull_request: - workflow_dispatch: - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - -jobs: - mingw: - runs-on: windows-2022 - strategy: - matrix: - architecture: [x64, x86] - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Set up MinGW - uses: egor-tensin/setup-mingw@41b837e47d7f85214629d255b9c4bc3fcbe9fd63 # v3.0 - with: - platform: ${{ matrix.architecture }} - version: 12.2.0 # https://github.com/egor-tensin/setup-mingw/issues/14 - - name: Run CMake - run: cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug -DJSON_BuildTests=On - - name: Build - run: cmake --build build --parallel 10 - - name: Test - run: cd build ; ctest -j 10 -C Debug --output-on-failure - - msvc: - strategy: - matrix: - build_type: [Debug, Release] - architecture: [Win32, x64] - std_version: [default, latest] - - runs-on: windows-2022 - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Set extra CXX_FLAGS for latest std_version - id: cxxflags - run: | - if [ "${{ matrix.std_version }}" = "latest" ]; then - echo "flags=/permissive- /std:c++latest /utf-8 /W4 /WX" >> $GITHUB_ENV - else - echo "flags=/W4 /WX" >> $GITHUB_ENV - fi - shell: bash - - name: Run CMake (Release) - run: cmake -S . -B build -G "Visual Studio 17 2022" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DCMAKE_CXX_FLAGS="$env:flags" - if: matrix.build_type == 'Release' - shell: pwsh - - name: Run CMake (Debug) - run: cmake -S . -B build -G "Visual Studio 17 2022" -A ${{ matrix.architecture }} -DJSON_BuildTests=On -DJSON_FastTests=ON -DCMAKE_CXX_FLAGS="$env:flags" - if: matrix.build_type == 'Debug' - shell: pwsh - - name: Build - run: cmake --build build --config ${{ matrix.build_type }} --parallel 10 - - name: Test - run: cd build ; ctest -j 10 -C ${{ matrix.build_type }} --output-on-failure - - clang: - runs-on: windows-2022 - strategy: - matrix: - version: [11.0.1, 12.0.1, 13.0.1, 14.0.6, 15.0.7, 16.0.6, 18.1.8, 19.1.7, 20.1.8] - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install Clang - run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}/LLVM-${{ matrix.version }}-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM" - - name: Set up MinGW - uses: egor-tensin/setup-mingw@41b837e47d7f85214629d255b9c4bc3fcbe9fd63 # v3.0 - with: - platform: x64 - version: 12.2.0 # https://github.com/egor-tensin/setup-mingw/issues/14 - - name: Run CMake - run: cmake -S . -B build ^ - -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" ^ - -DCMAKE_CXX_FLAGS="--target=x86_64-w64-mingw32 -stdlib=libstdc++ -pthread" ^ - -DCMAKE_EXE_LINKER_FLAGS="-lwinpthread" ^ - -G"MinGW Makefiles" ^ - -DCMAKE_BUILD_TYPE=Debug ^ - -DJSON_BuildTests=On - - name: Build - run: cmake --build build --parallel 10 - - name: Test - run: cd build ; ctest -j 10 -C Debug --exclude-regex "test-unicode" --output-on-failure - - clang-cl-12: - runs-on: windows-2022 - strategy: - matrix: - architecture: [Win32, x64] - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake - run: cmake -S . -B build -G "Visual Studio 17 2022" -A ${{ matrix.architecture }} -T ClangCL -DJSON_BuildTests=On - - name: Build - run: cmake --build build --config Debug --parallel 10 - - name: Test - run: cd build ; ctest -j 10 -C Debug --exclude-regex "test-unicode" --output-on-failure - - ci_module_cpp20: - runs-on: windows-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Run CMake (Debug) - run: cmake -S . -B build -G "Visual Studio 17 2022" -DJSON_CI=ON -DCMAKE_CXX_FLAGS="/permissive- /std:c++latest /utf-8 /W4 /WX" - - name: Build - run: cmake --build build --config Debug --target ci_module_cpp20 -
\ No newline at end of file diff --git a/libnbtplusplus/.github/workflows/lint-reuse.yml b/libnbtplusplus/.github/workflows/lint-reuse.yml deleted file mode 100644 index 942ffd1e15..0000000000 --- a/libnbtplusplus/.github/workflows/lint-reuse.yml +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. <https://fsfe.org> -# -# SPDX-License-Identifier: CC0-1.0 - -name: REUSE Compliance Check - -on: [push, pull_request] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - name: REUSE Compliance Check - uses: fsfe/reuse-action@v6 diff --git a/meshmc/.github/ISSUE_TEMPLATE/bug_report.yml b/meshmc/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 3c147eb94b..0000000000 --- a/meshmc/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: Bug Report -description: File a bug report -labels: [bug, needs-triage] -body: -- type: markdown - attributes: - value: | - If you need help with running Minecraft, please visit us [on our Discord](https://discord.gg/meshmc) before making a bug report. - - Before submitting a bug report, please make sure you have read this *entire* form, and that: - * You have read the [FAQ](https://github.com/Project-Tick/MeshMC/wiki/FAQ) and it has not answered your question - * Your bug is not caused by Minecraft or any mods you have installed. - * Your issue has not been reported before, [make sure to use the search function!](https://github.com/Project-Tick/MeshMC/issues) - - **Do not forget to give your issue a descriptive title.** "Bug in the instance screen" makes it hard to distinguish issues at a glance. -- type: dropdown - attributes: - label: Operating System - description: If you know this bug occurs on multiple operating systems, select all you have tested. - multiple: true - options: - - Windows - - macOS - - Linux - - Other -- type: textarea - attributes: - label: Version of MeshMC - description: The version of MeshMC used in the bug report. - placeholder: MeshMC 7.0.0 - validations: - required: true -- type: textarea - attributes: - label: Version of Qt - description: The version of Qt used in the bug report. You can find it in Help -> About MeshMC -> About Qt. - placeholder: Qt 6.3.0 - validations: - required: true -- type: textarea - attributes: - label: Description of bug - description: What did you expect to happen, what happened, and why is it incorrect? - placeholder: The cat button should show a cat, but it showed a dog instead! - validations: - required: true -- type: textarea - attributes: - label: Steps to reproduce - description: A bulleted list, or an exported instance if relevant. - placeholder: "* Press the cat button" - validations: - required: true -- type: textarea - attributes: - label: Suspected cause - description: If you know what could be causing this bug, describe it here. - validations: - required: false -- type: checkboxes - attributes: - label: This issue is unique - options: - - label: I have searched the issue tracker and did not find an issue describing my bug. - required: true diff --git a/meshmc/.github/ISSUE_TEMPLATE/config.yml b/meshmc/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 37c7e6ebdc..0000000000 --- a/meshmc/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: true -contact_links: - - name: MeshMC Discord - url: https://discord.gg/meshmc - about: Please ask for support here before opening an issue. diff --git a/meshmc/.github/ISSUE_TEMPLATE/rfc.yml b/meshmc/.github/ISSUE_TEMPLATE/rfc.yml deleted file mode 100644 index d9f5b0a981..0000000000 --- a/meshmc/.github/ISSUE_TEMPLATE/rfc.yml +++ /dev/null @@ -1,68 +0,0 @@ -# Template based on https://gitlab.archlinux.org/archlinux/rfcs/-/blob/0ba3b61e987e197f8d1901709409b8564958f78a/rfcs/0000-template.rst -name: Request for Comment (RFC) -description: Propose a larger change and start a discussion. -labels: ["type: enhancement", "status: needs discussion", "status: needs triage"] -body: -- type: markdown - attributes: - value: | - ### Use this form to suggest a larger change for MeshMC. -- type: textarea - attributes: - label: Goal - description: Short description, 1-2 sentences. - placeholder: Remove the cat from the launcher. - validations: - required: true -- type: textarea - attributes: - label: Motivation - description: | - Introduce the topic. If this is a not-well-known section of MeshMC, a detailed explanation of the background is recommended. - Some example points of discussion: - - What specific problems are you facing right now that you're trying to address? - - Are there any previous discussions? Link to them and summarize them (don't force your readers to read them though!). - - Is there any precedent set by other software? If so, link to resources. - placeholder: I don't like cats. I think many users also don't like cats. - validations: - required: true -- type: textarea - attributes: - label: Specification - description: A concrete, thorough explanation of what is being planned. - placeholder: Remove the cat button and all references to the cat from the codebase. Including resource files. - validations: - required: true -- type: textarea - attributes: - label: Drawbacks - description: Carefully consider every possible objection and issue with your proposal. This section should be updated as feedback comes in from discussion. - placeholder: Some users might like cats. - validations: - required: true -- type: textarea - attributes: - label: Unresolved Questions - description: | - Are there any portions of your proposal which need to be discussed with the community before the RFC can proceed? - Be careful here -- an RFC with a lot of remaining questions is likely to be stalled. - If your RFC is mostly unresolved questions and not too much substance, it may not be ready. - placeholder: Do a lot of users care about the cat? - validations: - required: true -- type: textarea - attributes: - label: Alternatives Considered - description: A list of alternatives, that have been considered and offer equal or similar features to the proposed change. - placeholder: Maybe the cat could be replaced with an axolotl? - validations: - required: true -- type: checkboxes - attributes: - label: This suggestion is unique - options: - - label: I have searched the issue tracker and did not find an issue describing my suggestion, especially not one that has been rejected. - required: true -- type: textarea - attributes: - label: You may use the editor below to elaborate further. diff --git a/meshmc/.github/ISSUE_TEMPLATE/suggestion.yml b/meshmc/.github/ISSUE_TEMPLATE/suggestion.yml deleted file mode 100644 index 53bd186531..0000000000 --- a/meshmc/.github/ISSUE_TEMPLATE/suggestion.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Suggestion -description: Make a suggestion -labels: [idea, needs-triage] -body: -- type: markdown - attributes: - value: | - ### Use this form to suggest a feature for MeshMC. -- type: input - attributes: - label: Role - description: In what way do you use MeshMC that needs this feature? - placeholder: I play modded Minecraft. - validations: - required: true -- type: input - attributes: - label: Suggestion - description: What do you want MeshMC to do? - placeholder: I want the cat button to meow. - validations: - required: true -- type: input - attributes: - label: Benefit - description: Why do you need MeshMC to do this? - placeholder: so that I can always hear a cat when I need to. - validations: - required: true -- type: checkboxes - attributes: - label: This suggestion is unique - options: - - label: I have searched the issue tracker and did not find an issue describing my suggestion, especially not one that has been rejected. - required: true -- type: textarea - attributes: - label: You may use the editor below to elaborate further. diff --git a/meshmc/.github/actions/package/linux/action.yml b/meshmc/.github/actions/package/linux/action.yml deleted file mode 100644 index 457ccb27ed..0000000000 --- a/meshmc/.github/actions/package/linux/action.yml +++ /dev/null @@ -1,153 +0,0 @@ -name: Package for Linux -description: Create Linux packages for MeshMC - -inputs: - version: - description: Launcher version - required: true - build-type: - description: Type for the build - required: true - default: Debug - artifact-name: - description: Name of the uploaded artifact - required: true - default: Linux - qt-version: - description: Version of Qt to use - required: true - gpg-private-key: - description: Private key for AppImage signing - required: false - gpg-private-key-id: - description: ID for the gpg-private-key, to select the signing key - required: false - -runs: - using: composite - - steps: - - name: Cleanup Qt installation on Linux - shell: bash - run: | - rm -rf "$QT_PLUGIN_PATH"/printsupport - rm -rf "$QT_PLUGIN_PATH"/sqldrivers - rm -rf "$QT_PLUGIN_PATH"/help - rm -rf "$QT_PLUGIN_PATH"/designer - rm -rf "$QT_PLUGIN_PATH"/qmltooling - rm -rf "$QT_PLUGIN_PATH"/qmlls - rm -rf "$QT_PLUGIN_PATH"/qmllint - rm -rf "$QT_PLUGIN_PATH"/platformthemes/libqgtk3.so - - - name: Setup build variables - shell: bash - run: | - # Fixup architecture naming for AppImages - dpkg_arch="$(dpkg-architecture -q DEB_HOST_ARCH_CPU)" - case "$dpkg_arch" in - "amd64") - APPIMAGE_ARCH="x86_64" - ;; - "arm64") - APPIMAGE_ARCH="aarch64" - ;; - *) - echo "# đ¨ The Debian architecture \"$deb_arch\" is not recognized!" >> "$GITHUB_STEP_SUMMARY" - exit 1 - ;; - esac - echo "APPIMAGE_ARCH=$APPIMAGE_ARCH" >> "$GITHUB_ENV" - - # Used for the file paths of libraries - echo "DEB_HOST_MULTIARCH=$(dpkg-architecture -q DEB_HOST_MULTIARCH)" >> "$GITHUB_ENV" - - - name: Package AppImage - shell: bash - env: - VERSION: ${{ github.ref_type == 'tag' && github.ref_name || inputs.version }} - BUILD_DIR: build - INSTALL_APPIMAGE_DIR: install-appdir - - GPG_PRIVATE_KEY: ${{ inputs.gpg-private-key }} - run: | - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} --prefix ${{ env.INSTALL_APPIMAGE_DIR }} - - if [ '${{ inputs.gpg-private-key-id }}' != '' ]; then - echo "$GPG_PRIVATE_KEY" > privkey.asc - gpg --import privkey.asc - gpg --export --armor ${{ inputs.gpg-private-key-id }} > pubkey.asc - else - echo ":warning: Skipped code signing for Linux AppImage, as gpg key was not present." >> $GITHUB_STEP_SUMMARY - fi - - sharun lib4bin \ - --hard-links \ - --with-hooks \ - --dst-dir "$INSTALL_APPIMAGE_DIR" \ - "$INSTALL_APPIMAGE_DIR"/bin/* "$QT_PLUGIN_PATH"/*/*.so - - cp ~/bin/AppImageUpdate.AppImage "$INSTALL_APPIMAGE_DIR"/bin/ - # FIXME(@YongDo-Hyun): gamemode doesn't seem to be very portable with DBus. Find a way to make it work! - find "$INSTALL_APPIMAGE_DIR" -name '*gamemode*' -exec rm {} + - - #disable OpenGL and Vulkan launcher features until https://github.com/VHSgunzo/sharun/issues/35 - echo "LAUNCHER_DISABLE_GLVULKAN=1" > "$INSTALL_APPIMAGE_DIR"/.env - #makes the launcher use portals for file picking - echo "QT_QPA_PLATFORMTHEME=xdgdesktopportal" > "$INSTALL_APPIMAGE_DIR"/.env - ln -s org.projecttick.MeshMC.metainfo.xml "$INSTALL_APPIMAGE_DIR"/share/metainfo/org.projecttick.MeshMC.appdata.xml - ln -s share/applications/org.projecttick.MeshMC.desktop "$INSTALL_APPIMAGE_DIR" - ln -s share/icons/hicolor/256x256/apps/org.projecttick.MeshMC.png "$INSTALL_APPIMAGE_DIR" - mv "$INSTALL_APPIMAGE_DIR"/{sharun,AppRun} - ls -la "$INSTALL_APPIMAGE_DIR" - - if [[ "${{ github.ref_type }}" == "tag" ]]; then - APPIMAGE_DEST="MeshMC-Linux-$APPIMAGE_ARCH.AppImage" - else - APPIMAGE_DEST="MeshMC-Linux-$VERSION-${{ inputs.build-type }}-$APPIMAGE_ARCH.AppImage" - fi - - mkappimage \ - --updateinformation "gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|MeshMC-Linux-$APPIMAGE_ARCH.AppImage.zsync" \ - "$INSTALL_APPIMAGE_DIR" \ - "$APPIMAGE_DEST" - - - name: Package portable tarball - shell: bash - env: - BUILD_DIR: build - - INSTALL_PORTABLE_DIR: install-portable - run: | - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} --component portable - - sharun lib4bin \ - --with-hooks \ - --hard-links \ - --dst-dir "$INSTALL_PORTABLE_DIR" \ - "$INSTALL_PORTABLE_DIR"/bin/* "$QT_PLUGIN_PATH"/*/*.so - - # FIXME(@YongDo-Hyun): gamemode doesn't seem to be very portable with DBus. Find a way to make it work! - find "$INSTALL_PORTABLE_DIR" -name '*gamemode*' -exec rm {} + - - for l in $(find ${{ env.INSTALL_PORTABLE_DIR }} -type f -o -type l); do l=${l#$(pwd)/}; l=${l#${{ env.INSTALL_PORTABLE_DIR }}/}; l=${l#./}; echo $l; done > ${{ env.INSTALL_PORTABLE_DIR }}/manifest.txt - cd ${{ env.INSTALL_PORTABLE_DIR }} - tar -czf ../MeshMC-portable.tar.gz * - - - name: Upload binary tarball - uses: actions/upload-artifact@v7 - with: - name: MeshMC-${{ inputs.artifact-name }}-Qt6-Portable-${{ inputs.version }}-${{ inputs.build-type }} - path: MeshMC-portable.tar.gz - - - name: Upload AppImage - uses: actions/upload-artifact@v7 - with: - name: MeshMC-${{ runner.os }}-${{ inputs.version }}-${{ inputs.build-type }}-${{ env.APPIMAGE_ARCH }}.AppImage - path: MeshMC-${{ runner.os }}-*${{ env.APPIMAGE_ARCH }}.AppImage - - - name: Upload AppImage Zsync - uses: actions/upload-artifact@v7 - with: - name: MeshMC-${{ runner.os }}-${{ inputs.version }}-${{ inputs.build-type }}-${{ env.APPIMAGE_ARCH }}.AppImage.zsync - path: MeshMC-${{ runner.os }}-*${{ env.APPIMAGE_ARCH }}.AppImage.zsync diff --git a/meshmc/.github/actions/package/macos/action.yml b/meshmc/.github/actions/package/macos/action.yml deleted file mode 100644 index 2a1c432a6d..0000000000 --- a/meshmc/.github/actions/package/macos/action.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: Package for macOS -description: Create a macOS package for MeshMC - -inputs: - version: - description: Launcher version - required: true - build-type: - description: Type for the build - required: true - default: Debug - artifact-name: - description: Name of the uploaded artifact - required: true - default: macOS - apple-codesign-cert: - description: Certificate for signing macOS builds - required: false - apple-codesign-password: - description: Password for signing macOS builds - required: false - apple-codesign-id: - description: Certificate ID for signing macOS builds - required: false - apple-notarize-apple-id: - description: Apple ID used for notarizing macOS builds - required: false - apple-notarize-team-id: - description: Team ID used for notarizing macOS builds - required: false - apple-notarize-password: - description: Password used for notarizing macOS builds - required: false - sparkle-ed25519-key: - description: Private key for signing Sparkle updates - required: false - -runs: - using: composite - - steps: - - name: Fetch codesign certificate - shell: bash - run: | - echo '${{ inputs.apple-codesign-cert }}' | base64 --decode > codesign.p12 - if [ -n '${{ inputs.apple-codesign-id }}' ]; then - security create-keychain -p '${{ inputs.apple-codesign-password }}' build.keychain - security default-keychain -s build.keychain - security unlock-keychain -p '${{ inputs.apple-codesign-password }}' build.keychain - security import codesign.p12 -k build.keychain -P '${{ inputs.apple-codesign-password }}' -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k '${{ inputs.apple-codesign-password }}' build.keychain - else - echo ":warning: Using ad-hoc code signing for macOS, as certificate was not present." >> $GITHUB_STEP_SUMMARY - fi - - - name: Package - shell: bash - env: - BUILD_DIR: build - INSTALL_DIR: install - run: | - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} - - cd ${{ env.INSTALL_DIR }} - chmod +x "MeshMC.app/Contents/MacOS/meshmc" - - if [ -n '${{ inputs.apple-codesign-id }}' ]; then - APPLE_CODESIGN_ID='${{ inputs.apple-codesign-id }}' - ENTITLEMENTS_FILE='../branding/App.entitlements' - else - APPLE_CODESIGN_ID='-' - ENTITLEMENTS_FILE='../branding/AdhocSignedApp.entitlements' - fi - - sudo codesign --sign "$APPLE_CODESIGN_ID" --deep --force --entitlements "$ENTITLEMENTS_FILE" --options runtime "MeshMC.app/Contents/MacOS/meshmc" - - - name: Notarize - shell: bash - env: - INSTALL_DIR: install - run: | - cd ${{ env.INSTALL_DIR }} - - if [ -n '${{ inputs.apple-notarize-password }}' ]; then - ditto -c -k --sequesterRsrc --keepParent "MeshMC.app" ../MeshMC.zip - xcrun notarytool submit ../MeshMC.zip \ - --wait --progress \ - --apple-id '${{ inputs.apple-notarize-apple-id }}' \ - --team-id '${{ inputs.apple-notarize-team-id }}' \ - --password '${{ inputs.apple-notarize-password }}' - - xcrun stapler staple "MeshMC.app" - else - echo ":warning: Skipping notarization as credentials are not present." >> $GITHUB_STEP_SUMMARY - fi - ditto -c -k --sequesterRsrc --keepParent "MeshMC.app" ../MeshMC.zip - - - name: Create DMG - shell: bash - env: - INSTALL_DIR: install - run: | - cd ${{ env.INSTALL_DIR }} - - mkdir -p src - cp -R "MeshMC.app" src/ - - ln -s /Applications src/ - - hdiutil create \ - -volname "MeshMC ${{ inputs.version }}" \ - -srcfolder src \ - -ov -format ULMO \ - "../MeshMC.dmg" - - - name: Make Sparkle signature - shell: bash - run: | - if [ '${{ inputs.sparkle-ed25519-key }}' != '' ]; then - echo '${{ inputs.sparkle-ed25519-key }}' > ed25519-priv.pem - signature_zip=$(/opt/homebrew/opt/openssl@3/bin/openssl pkeyutl -sign -rawin -in ${{ github.workspace }}/MeshMC.zip -inkey ed25519-priv.pem | openssl base64 | tr -d \\n) - signature_dmg=$(/opt/homebrew/opt/openssl@3/bin/openssl pkeyutl -sign -rawin -in ${{ github.workspace }}/MeshMC.dmg -inkey ed25519-priv.pem | openssl base64 | tr -d \\n) - rm ed25519-priv.pem - cat >> $GITHUB_STEP_SUMMARY << EOF - ### Artifact Information :information_source: - - :memo: Sparkle Signature (ed25519): \`$signature_zip\` (ZIP) - - :memo: Sparkle Signature (ed25519): \`$signature_dmg\` (DMG) - EOF - else - cat >> $GITHUB_STEP_SUMMARY << EOF - ### Artifact Information :information_source: - - :warning: Sparkle Signature (ed25519): No private key available (likely a pull request or fork) - EOF - fi - - - name: Upload binary tarball - uses: actions/upload-artifact@v7 - with: - name: MeshMC-${{ inputs.artifact-name }}-${{ inputs.version }}-${{ inputs.build-type }} - path: MeshMC.zip - - - name: Upload disk image - uses: actions/upload-artifact@v7 - with: - name: MeshMC-${{ inputs.artifact-name }}-${{ inputs.version }}-${{ inputs.build-type }}.dmg - path: MeshMC.dmg diff --git a/meshmc/.github/actions/package/windows/action.yml b/meshmc/.github/actions/package/windows/action.yml deleted file mode 100644 index 33e3d42718..0000000000 --- a/meshmc/.github/actions/package/windows/action.yml +++ /dev/null @@ -1,142 +0,0 @@ -name: Package for Windows -description: Create a Windows package for MeshMC - -inputs: - version: - description: Launcher version - required: true - build-type: - description: Type for the build - required: true - default: Debug - artifact-name: - description: Name of the uploaded artifact - required: true - msystem: - description: MSYS2 subsystem to use - required: false - windows-codesign-cert: - description: Certificate for signing Windows builds - required: false - windows-codesign-password: - description: Password for signing Windows builds - required: false - -runs: - using: composite - - steps: - - name: Package (MinGW) - if: ${{ inputs.msystem != '' }} - shell: msys2 {0} - env: - BUILD_DIR: build - INSTALL_DIR: install - run: | - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} - touch ${{ env.INSTALL_DIR }}/manifest.txt - for l in $(find ${{ env.INSTALL_DIR }} -type f); do l=$(cygpath -u $l); l=${l#$(pwd)/}; l=${l#${{ env.INSTALL_DIR }}/}; l=${l#./}; echo $l; done >> ${{ env.INSTALL_DIR }}/manifest.txt - - - name: Package (MSVC) - if: ${{ inputs.msystem == '' }} - shell: pwsh - env: - BUILD_DIR: build - INSTALL_DIR: install - run: | - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} - - cd ${{ github.workspace }} - - Get-ChildItem ${{ env.INSTALL_DIR }} -Recurse | ForEach FullName | Resolve-Path -Relative | %{ $_.TrimStart('.\') } | %{ $_.TrimStart('${{ env.INSTALL_DIR }}') } | %{ $_.TrimStart('\') } | Out-File -FilePath ${{ env.INSTALL_DIR }}/manifest.txt - - - name: Fetch codesign certificate - shell: bash # yes, we are not using MSYS2 or PowerShell here - run: | - echo '${{ inputs.windows-codesign-cert }}' | base64 --decode > codesign.pfx - - - name: Sign executable - shell: pwsh - env: - INSTALL_DIR: install - run: | - if (Get-Content ./codesign.pfx){ - cd ${{ env.INSTALL_DIR }} - # We ship the exact same executable for portable and non-portable editions, so signing just once is fine - SignTool sign /fd sha256 /td sha256 /f ../codesign.pfx /p '${{ inputs.windows-codesign-password }}' /tr http://timestamp.digicert.com meshmc.exe - } else { - ":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY - } - - - name: Package (MinGW, portable) - if: ${{ inputs.msystem != '' }} - shell: msys2 {0} - env: - BUILD_DIR: build - INSTALL_DIR: install - INSTALL_PORTABLE_DIR: install-portable - run: | - cp -r ${{ env.INSTALL_DIR }} ${{ env.INSTALL_PORTABLE_DIR }} # cmake install on Windows is slow, let's just copy instead - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} --component portable - for l in $(find ${{ env.INSTALL_PORTABLE_DIR }} -type f); do l=$(cygpath -u $l); l=${l#$(pwd)/}; l=${l#${{ env.INSTALL_PORTABLE_DIR }}/}; l=${l#./}; echo $l; done >> ${{ env.INSTALL_PORTABLE_DIR }}/manifest.txt - - - name: Package (MSVC, portable) - if: ${{ inputs.msystem == '' }} - shell: pwsh - env: - BUILD_DIR: build - INSTALL_DIR: install - INSTALL_PORTABLE_DIR: install-portable - run: | - cp -r ${{ env.INSTALL_DIR }} ${{ env.INSTALL_PORTABLE_DIR }} # cmake install on Windows is slow, let's just copy instead - cmake --install ${{ env.BUILD_DIR }} --config ${{ inputs.build-type }} --prefix ${{ env.INSTALL_PORTABLE_DIR }} --component portable - - Get-ChildItem ${{ env.INSTALL_PORTABLE_DIR }} -Recurse | ForEach FullName | Resolve-Path -Relative | %{ $_.TrimStart('.\') } | %{ $_.TrimStart('${{ env.INSTALL_PORTABLE_DIR }}') } | %{ $_.TrimStart('\') } | Out-File -FilePath ${{ env.INSTALL_DIR }}/manifest.txt - - - name: Package (installer) - shell: pwsh - env: - BUILD_DIR: build - INSTALL_DIR: install - - NSCURL_VERSION: "v24.9.26.122" - NSCURL_SHA256: "AEE6C4BE3CB6455858E9C1EE4B3AFE0DB9960FA03FE99CCDEDC28390D57CCBB0" - run: | - New-Item -Name NSISPlugins -ItemType Directory - Invoke-Webrequest https://github.com/negrutiu/nsis-nscurl/releases/download/"${{ env.NSCURL_VERSION }}"/NScurl.zip -OutFile NSISPlugins\NScurl.zip - $nscurl_hash = Get-FileHash NSISPlugins\NScurl.zip -Algorithm Sha256 | Select-Object -ExpandProperty Hash - if ( $nscurl_hash -ne "${{ env.nscurl_sha256 }}") { - echo "::error:: NSCurl.zip sha256 mismatch" - exit 1 - } - Expand-Archive -Path NSISPlugins\NScurl.zip -DestinationPath NSISPlugins\NScurl - - cd ${{ env.INSTALL_DIR }} - makensis -NOCD "${{ github.workspace }}/${{ env.BUILD_DIR }}/win_install.nsi" - - - name: Sign installer - shell: pwsh - run: | - if (Get-Content ./codesign.pfx){ - SignTool sign /fd sha256 /td sha256 /f codesign.pfx /p '${{ inputs.windows-codesign-password }}' /tr http://timestamp.digicert.com MeshMC-Setup.exe - } else { - ":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY - } - - - name: Upload binary zip - uses: actions/upload-artifact@v5 - with: - name: MeshMC-${{ inputs.artifact-name }}-${{ inputs.version }}-${{ inputs.build-type }} - path: install/** - - - name: Upload portable zip - uses: actions/upload-artifact@v5 - with: - name: MeshMC-${{ inputs.artifact-name }}-Portable-${{ inputs.version }}-${{ inputs.build-type }} - path: install-portable/** - - - name: Upload installer - uses: actions/upload-artifact@v5 - with: - name: MeshMC-${{ inputs.artifact-name }}-Setup-${{ inputs.version }}-${{ inputs.build-type }} - path: MeshMC-Setup.exe diff --git a/meshmc/.github/actions/setup-dependencies/action.yml b/meshmc/.github/actions/setup-dependencies/action.yml deleted file mode 100644 index 3245826768..0000000000 --- a/meshmc/.github/actions/setup-dependencies/action.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: Setup Dependencies -description: Install and setup dependencies for building MeshMC - -inputs: - build-type: - description: Type for the build - required: true - default: Debug - artifact-name: - description: Name of the uploaded artifact - required: true - msystem: - description: MSYS2 subsystem to use - required: false - vcvars-arch: - description: Visual Studio architecture to use - required: false - qt-architecture: - description: Qt architecture - required: false - qt-version: - description: Version of Qt to use - required: true - github-token: - description: GitHub token for package feed authentication - required: false - default: ${{ github.token }} - -outputs: - build-type: - description: Type of build used - value: ${{ inputs.build-type }} - qt-version: - description: Version of Qt used - value: ${{ inputs.qt-version }} - -runs: - using: composite - - steps: - - name: Setup Linux dependencies - if: ${{ runner.os == 'Linux' }} - uses: ./.github/actions/setup-dependencies/linux - with: - github-token: ${{ inputs.github-token }} - - - name: Setup macOS dependencies - if: ${{ runner.os == 'macOS' }} - uses: ./.github/actions/setup-dependencies/macos - with: - build-type: ${{ inputs.build-type }} - github-token: ${{ inputs.github-token }} - - - name: Setup Windows dependencies - if: ${{ runner.os == 'Windows' }} - uses: ./.github/actions/setup-dependencies/windows - with: - build-type: ${{ inputs.build-type }} - msystem: ${{ inputs.msystem }} - vcvars-arch: ${{ inputs.vcvars-arch }} - github-token: ${{ inputs.github-token }} - - # TODO(@YongDo-Hyun): Get this working on MSYS2! - - name: Setup ccache - if: ${{ (runner.os != 'Windows' || inputs.msystem == '') && inputs.build-type == 'Debug' }} - uses: hendrikmuhs/ccache-action@v1.2.22 - with: - variant: sccache - create-symlink: ${{ runner.os != 'Windows' }} - key: ${{ runner.os }}-${{ runner.arch }}-${{ inputs.artifact-name }}-sccache - - - name: Use ccache on debug builds - if: ${{ inputs.build-type == 'Debug' }} - shell: bash - env: - # Only use ccache on MSYS2 - CCACHE_VARIANT: ${{ (runner.os == 'Windows' && inputs.msystem != '') && 'ccache' || 'sccache' }} - run: | - echo "CMAKE_C_COMPILER_LAUNCHER=$CCACHE_VARIANT" >> "$GITHUB_ENV" - echo "CMAKE_CXX_COMPILER_LAUNCHER=$CCACHE_VARIANT" >> "$GITHUB_ENV" - - - name: Install Qt - if: ${{ inputs.msystem == '' }} - uses: jurplel/install-qt-action@v4 - with: - aqtversion: "==3.1.*" - version: ${{ inputs.qt-version }} - modules: qtimageformats qtnetworkauth qt5compat - cache: ${{ inputs.build-type == 'Debug' }} diff --git a/meshmc/.github/actions/setup-dependencies/linux/action.yml b/meshmc/.github/actions/setup-dependencies/linux/action.yml deleted file mode 100644 index 46cb40e8a5..0000000000 --- a/meshmc/.github/actions/setup-dependencies/linux/action.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Setup Linux dependencies -description: Install and setup dependencies for building MeshMC - -inputs: - github-token: - description: GitHub token for authentication - required: true - -runs: - using: composite - - steps: - - name: Install host dependencies - shell: bash - run: | - sudo apt-get -y update - sudo apt-get -y install \ - dpkg-dev \ - ninja-build extra-cmake-modules pkg-config scdoc \ - cmark gamemode-dev libarchive-dev libcmark-dev libqrencode-dev zlib1g-dev \ - libxcb-cursor-dev libtomlplusplus-dev libvulkan-dev - - - name: Setup AppImage tooling - shell: bash - env: - GH_TOKEN: ${{ inputs.github-token }} - run: | - # Determinate AppImage architecture to use - dpkg_arch="$(dpkg-architecture -q DEB_HOST_ARCH_CPU)" - case "$dpkg_arch" in - "amd64") - APPIMAGE_ARCH="x86_64" - ;; - "arm64") - APPIMAGE_ARCH="aarch64" - ;; - *) - echo "# đ¨ The Debian architecture \"$deb_arch\" is not recognized!" >> "$GITHUB_STEP_SUMMARY" - exit 1 - ;; - esac - - gh release download \ - --repo VHSgunzo/sharun \ - --pattern "sharun-$APPIMAGE_ARCH-aio" \ - --output ~/bin/sharun - - # FIXME!: revert this to probonopd/go-appimage once https://github.com/probonopd/go-appimage/pull/377 is merged! - gh release download continuous \ - --repo DioEgizio/go-appimage \ - --pattern "mkappimage-*-$APPIMAGE_ARCH.AppImage" \ - --output ~/bin/mkappimage - - gh release download \ - --repo AppImageCommunity/AppImageUpdate \ - --pattern "AppImageUpdate-$APPIMAGE_ARCH.AppImage" \ - --output ~/bin/AppImageUpdate.AppImage - chmod +x ~/bin/* - echo "$HOME/bin" >> "$GITHUB_PATH" diff --git a/meshmc/.github/actions/setup-dependencies/macos/action.yml b/meshmc/.github/actions/setup-dependencies/macos/action.yml deleted file mode 100644 index 3eb5b37fa6..0000000000 --- a/meshmc/.github/actions/setup-dependencies/macos/action.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Setup macOS dependencies - -inputs: - build-type: - description: Type for the build - required: true - default: Debug - github-token: - description: GitHub token for package feed authentication - required: true - -runs: - using: composite - - steps: - - name: Install dependencies - shell: bash - run: | - brew update - brew install ninja extra-cmake-modules temurin@17 mono autoconf libarchive - - - name: Set JAVA_HOME - shell: bash - run: | - echo "JAVA_HOME=$(/usr/libexec/java_home -v 17)" >> "$GITHUB_ENV" - - - name: Setup vcpkg cache - if: ${{ inputs.build-type == 'Debug' }} - shell: bash - env: - USERNAME: ${{ github.repository_owner }} - GITHUB_TOKEN: ${{ inputs.github-token }} - FEED_URL: https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json - NUGET_RW: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} - run: | - mono `vcpkg fetch nuget | tail -n 1` \ - sources add \ - -Source "$FEED_URL" \ - -StorePasswordInClearText \ - -Name GitHubPackages \ - -UserName "$USERNAME" \ - -Password "$GITHUB_TOKEN" - mono `vcpkg fetch nuget | tail -n 1` \ - setapikey "$GITHUB_TOKEN" \ - -Source "$FEED_URL" - MODE=$( [ "$NUGET_RW" = "true" ] && echo "readwrite" || echo "read" ) - echo "VCPKG_BINARY_SOURCES=clear;nuget,$FEED_URL,$MODE" >> "$GITHUB_ENV" - - - name: Setup vcpkg environment - shell: bash - run: | - echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> "$GITHUB_ENV" diff --git a/meshmc/.github/actions/setup-dependencies/windows/action.yml b/meshmc/.github/actions/setup-dependencies/windows/action.yml deleted file mode 100644 index a06b38d389..0000000000 --- a/meshmc/.github/actions/setup-dependencies/windows/action.yml +++ /dev/null @@ -1,114 +0,0 @@ -name: Setup Windows Dependencies -description: Install and setup dependencies for building MeshMC - -inputs: - build-type: - description: Type for the build - required: true - default: Debug - msystem: - description: MSYS2 subsystem to use - required: false - vcvars-arch: - description: Visual Studio architecture to use - required: true - default: amd64 - github-token: - description: GitHub token for package feed authentication - required: true - -runs: - using: composite - - steps: - # NOTE: Installed on MinGW as well for SignTool - - name: Enter VS Developer shell - if: ${{ runner.os == 'Windows' }} - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: ${{ inputs.vcvars-arch }} - vsversion: 2022 - - - name: Setup Java (MSVC) - uses: actions/setup-java@v5 - with: - # NOTE(@YongDo-Hyun): We should probably stay on Zulu. - # Temurin doesn't have Java 17 builds for WoA - distribution: zulu - java-version: 17 - - - name: Setup vcpkg cache (MSVC) - if: ${{ inputs.msystem == '' && inputs.build-type == 'Debug' }} - shell: pwsh - env: - USERNAME: ${{ github.repository_owner }} - GITHUB_TOKEN: ${{ inputs.github-token }} - FEED_URL: https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json - NUGET_RW: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} - run: | - .$(vcpkg fetch nuget) ` - sources add ` - -Source "$env:FEED_URL" ` - -StorePasswordInClearText ` - -Name GitHubPackages ` - -UserName "$env:USERNAME" ` - -Password "$env:GITHUB_TOKEN" - .$(vcpkg fetch nuget) ` - setapikey "$env:GITHUB_TOKEN" ` - -Source "$env:FEED_URL" - $mode = if ($env:NUGET_RW -eq 'true') { 'readwrite' } else { 'read' } - "VCPKG_BINARY_SOURCES=clear;nuget,$env:FEED_URL,$mode" | Out-File -Append $env:GITHUB_ENV - - - name: Setup vcpkg environment (MSVC) - if: ${{ inputs.msystem == '' }} - shell: bash - run: | - echo "VCPKG_ROOT=$VCPKG_INSTALLATION_ROOT" >> "$GITHUB_ENV" - - - name: Setup MSYS2 (MinGW) - if: ${{ inputs.msystem != '' }} - uses: msys2/setup-msys2@v2 - with: - msystem: ${{ inputs.msystem }} - update: true - install: >- - git - pacboy: >- - toolchain:p - ccache:p - cmake:p - extra-cmake-modules:p - ninja:p - qt6-base:p - qt6-svg:p - qt6-imageformats:p - qt6-networkauth:p - qt6-5compat:p - cmark:p - qrencode:p - tomlplusplus:p - libarchive:p - - - name: List pacman packages (MinGW) - if: ${{ inputs.msystem != '' }} - shell: msys2 {0} - run: | - pacman -Qe - - - name: Retrieve ccache cache (MinGW) - if: ${{ inputs.msystem != '' && inputs.build-type == 'Debug' }} - uses: actions/cache@v5.0.4 - with: - path: '${{ github.workspace }}\.ccache' - key: ${{ runner.os }}-mingw-w64-ccache-${{ github.run_id }} - restore-keys: | - ${{ runner.os }}-mingw-w64-ccache - - - name: Setup ccache (MinGW) - if: ${{ inputs.msystem != '' && inputs.build-type == 'Debug' }} - shell: msys2 {0} - run: | - ccache --set-config=cache_dir='${{ github.workspace }}\.ccache' - ccache --set-config=max_size='500M' - ccache --set-config=compression=true - ccache -p # Show config diff --git a/meshmc/.github/codeql/codeql-config.yml b/meshmc/.github/codeql/codeql-config.yml deleted file mode 100644 index 70acfdfd7e..0000000000 --- a/meshmc/.github/codeql/codeql-config.yml +++ /dev/null @@ -1,3 +0,0 @@ -query-filters: - - exclude: - id: cpp/fixme-comment diff --git a/meshmc/.github/dco.yml b/meshmc/.github/dco.yml deleted file mode 100644 index 60c37b9425..0000000000 --- a/meshmc/.github/dco.yml +++ /dev/null @@ -1,2 +0,0 @@ -allowRemediationCommits: - individual: false diff --git a/meshmc/.github/pull_request_template.md b/meshmc/.github/pull_request_template.md deleted file mode 100644 index bd2abdad87..0000000000 --- a/meshmc/.github/pull_request_template.md +++ /dev/null @@ -1,9 +0,0 @@ -<!-- -Hey there! Thanks for your contribution for MeshMC. - -Please make sure that your commits are signed off and please sign CLA first. -If you don't know how that works, check out our contribution guidelines: https://github.com/Project-Tick/MeshMC/blob/master/CONTRIBUTING.md#signing-your-work -If you already created your commits, you can run `git rebase --signoff develop` to retroactively sign-off all your commits and `git push --force` to override what you have pushed already. - -Note that signing and signing-off are two different things! ---> diff --git a/meshmc/.github/workflows/backport.yml b/meshmc/.github/workflows/backport.yml deleted file mode 100644 index 0ca52b37cc..0000000000 --- a/meshmc/.github/workflows/backport.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Backport -on: - pull_request_target: - types: [closed, labeled] - -permissions: {} - -jobs: - backport: - permissions: - contents: write - pull-requests: write - actions: write - - name: Backport Pull Request - if: github.repository_owner == 'Project-Tick' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name)) - runs-on: ubuntu-slim - steps: - - - uses: actions/checkout@v6 - with: - ref: ${{ github.event.pull_request.head.sha }} - - - name: Create backport PRs - uses: korthout/backport-action@v4.3.0 - with: - # Config README: https://github.com/korthout/backport-action#backport-action - pull_description: |- - Bot-based backport to `${target_branch}`, triggered by a label in #${pull_number}. - diff --git a/meshmc/.github/workflows/blocked-prs.yml b/meshmc/.github/workflows/blocked-prs.yml deleted file mode 100644 index 0010801540..0000000000 --- a/meshmc/.github/workflows/blocked-prs.yml +++ /dev/null @@ -1,257 +0,0 @@ -name: Blocked/Stacked Pull Requests Automation - -on: - pull_request_target: - types: - - opened - - reopened - - edited - - synchronize - workflow_dispatch: - inputs: - pr_id: - description: Local Pull Request number to work on - required: true - type: number - -permissions: {} - -jobs: - blocked_status: - name: Check Blocked Status - runs-on: ubuntu-slim - - steps: - - name: Generate token - id: generate-token - uses: actions/create-github-app-token@v3 - with: - app-id: ${{ vars.PULL_REQUEST_APP_ID }} - private-key: ${{ secrets.PULL_REQUEST_APP_PRIVATE_KEY }} - - - name: Setup From Dispatch Event - if: github.event_name == 'workflow_dispatch' - id: dispatch_event_setup - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - PR_NUMBER: ${{ inputs.pr_id }} - run: | - # setup env for the rest of the workflow - OWNER=$(dirname "${{ github.repository }}") - REPO=$(basename "${{ github.repository }}") - PR_JSON=$( - gh api \ - -H "Accept: application/vnd.github.raw+json" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "/repos/$OWNER/$REPO/pulls/$PR_NUMBER" - ) - echo "PR_JSON=$PR_JSON" >> "$GITHUB_ENV" - - - name: Setup Environment - id: env_setup - env: - EVENT_PR_JSON: ${{ toJSON(github.event.pull_request) }} - run: | - # setup env for the rest of the workflow - PR_JSON=${PR_JSON:-"$EVENT_PR_JSON"} - { - echo "REPO=$(jq -r '.base.repo.name' <<< "$PR_JSON")" - echo "OWNER=$(jq -r '.base.repo.owner.login' <<< "$PR_JSON")" - echo "PR_NUMBER=$(jq -r '.number' <<< "$PR_JSON")" - echo "JOB_DATA=$(jq -c ' - { - "repo": .base.repo.name, - "owner": .base.repo.owner.login, - "repoUrl": .base.repo.html_url, - "prNumber": .number, - "prHeadSha": .head.sha, - "prHeadLabel": .head.label, - "prBody": (.body // ""), - "prLabels": (reduce .labels[].name as $l ([]; . + [$l])) - } - ' <<< "$PR_JSON")" - } >> "$GITHUB_ENV" - - - - name: Find Blocked/Stacked PRs in body - id: pr_ids - run: | - prs=$( - jq -c ' - .prBody as $body - | ( - $body | - reduce ( - . | scan("[Bb]locked (?:[Bb]y|[Oo]n):? #([0-9]+)") - | map({ - "type": "Blocked on", - "number": ( . | tonumber ) - }) - ) as $i ([]; . + [$i[]]) - ) as $bprs - | ( - $body | - reduce ( - . | scan("[Ss]tacked [Oo]n:? #([0-9]+)") - | map({ - "type": "Stacked on", - "number": ( . | tonumber ) - }) - ) as $i ([]; . + [$i[]]) - ) as $sprs - | ($bprs + $sprs) as $prs - | { - "blocking": $prs, - "numBlocking": ( $prs | length), - } - ' <<< "$JOB_DATA" - ) - echo "prs=$prs" >> "$GITHUB_OUTPUT" - - - name: Collect Blocked PR Data - id: blocking_data - if: fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0 - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - BLOCKING_PRS: ${{ steps.pr_ids.outputs.prs }} - run: | - blocked_pr_data=$( - while read -r pr_data ; do - gh api \ - -H "Accept: application/vnd.github+json" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "/repos/$OWNER/$REPO/pulls/$(jq -r '.number' <<< "$pr_data")" \ - | jq -c --arg type "$(jq -r '.type' <<< "$pr_data")" \ - ' - . | { - "type": $type, - "number": .number, - "merged": .merged, - "state": (if .state == "open" then "Open" elif .merged then "Merged" else "Closed" end), - "labels": (reduce .labels[].name as $l ([]; . + [$l])), - "basePrUrl": .html_url, - "baseRepoName": .head.repo.name, - "baseRepoOwner": .head.repo.owner.login, - "baseRepoUrl": .head.repo.html_url, - "baseSha": .head.sha, - "baseRefName": .head.ref, - } - ' - done < <(jq -c '.blocking[]' <<< "$BLOCKING_PRS") | jq -c -s - ) - { - echo "data=$blocked_pr_data"; - echo "all_merged=$(jq -r 'all(.[] | (.type == "Stacked on" and .merged) or (.type == "Blocked on" and (.state != "Open")); .)' <<< "$blocked_pr_data")"; - echo "current_blocking=$(jq -c 'map( - select( - (.type == "Stacked on" and (.merged | not)) or - (.type == "Blocked on" and (.state == "Open")) - ) | .number - )' <<< "$blocked_pr_data" )"; - } >> "$GITHUB_OUTPUT" - - - name: Add 'blocked' Label if Missing - id: label_blocked - if: "(fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0) && !contains(fromJSON(env.JOB_DATA).prLabels, 'status: blocked') && !fromJSON(steps.blocking_data.outputs.all_merged)" - continue-on-error: true - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - run: | - gh -R ${{ github.repository }} issue edit --add-label 'status: blocked' "$PR_NUMBER" - - - name: Remove 'blocked' Label if All Dependencies Are Merged - id: unlabel_blocked - if: fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0 && fromJSON(steps.blocking_data.outputs.all_merged) - continue-on-error: true - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - run: | - gh -R ${{ github.repository }} issue edit --remove-label 'status: blocked' "$PR_NUMBER" - - - name: Apply 'blocking' Label to Unmerged Dependencies - id: label_blocking - if: fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0 - continue-on-error: true - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - BLOCKING_ISSUES: ${{ steps.blocking_data.outputs.current_blocking }} - run: | - while read -r pr ; do - gh -R ${{ github.repository }} issue edit --add-label 'status: blocking' "$pr" || true - done < <(jq -c '.[]' <<< "$BLOCKING_ISSUES") - - - name: Apply Blocking PR Status Check - id: blocked_check - if: fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0 - continue-on-error: true - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - BLOCKING_DATA: ${{ steps.blocking_data.outputs.data }} - run: | - pr_head_sha=$(jq -r '.prHeadSha' <<< "$JOB_DATA") - # create commit Status, overwrites previous identical context - while read -r pr_data ; do - DESC=$( - jq -r 'if .type == "Stacked on" then - "Stacked PR #" + (.number | tostring) + " is " + (if .merged then "" else "not yet " end) + "merged" - else - "Blocking PR #" + (.number | tostring) + " is " + (if .state == "Open" then "" else "not yet " end) + "merged or closed" - end ' <<< "$pr_data" - ) - gh api \ - --method POST \ - -H "Accept: application/vnd.github+json" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "/repos/${OWNER}/${REPO}/statuses/${pr_head_sha}" \ - -f "state=$(jq -r 'if (.type == "Stacked on" and .merged) or (.type == "Blocked on" and (.state != "Open")) then "success" else "failure" end' <<< "$pr_data")" \ - -f "target_url=$(jq -r '.basePrUrl' <<< "$pr_data" )" \ - -f "description=$DESC" \ - -f "context=ci/blocking-pr-check:$(jq '.number' <<< "$pr_data")" - done < <(jq -c '.[]' <<< "$BLOCKING_DATA") - - - name: Context Comment - id: generate-comment - if: fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0 - continue-on-error: true - env: - BLOCKING_DATA: ${{ steps.blocking_data.outputs.data }} - run: | - COMMENT_PATH="$(pwd)/temp_comment_file.txt" - echo '<h3>PR Dependencies :pushpin:</h3>' > "$COMMENT_PATH" - echo >> "$COMMENT_PATH" - pr_head_label=$(jq -r '.prHeadLabel' <<< "$JOB_DATA") - while read -r pr_data ; do - base_pr=$(jq -r '.number' <<< "$pr_data") - base_ref_name=$(jq -r '.baseRefName' <<< "$pr_data") - base_repo_owner=$(jq -r '.baseRepoOwner' <<< "$pr_data") - base_repo_name=$(jq -r '.baseRepoName' <<< "$pr_data") - compare_url="https://github.com/$base_repo_owner/$base_repo_name/compare/$base_ref_name...$pr_head_label" - status=$(jq -r ' - if .type == "Stacked on" then - if .merged then ":heavy_check_mark: Merged" else ":x: Not Merged (" + .state + ")" end - else - if .state != "Open" then ":white_check_mark: " + .state else ":x: Open" end - end - ' <<< "$pr_data") - type=$(jq -r '.type' <<< "$pr_data") - echo " - $type #$base_pr $status [(compare)]($compare_url)" >> "$COMMENT_PATH" - done < <(jq -c '.[]' <<< "$BLOCKING_DATA") - - { - echo 'body<<EOF'; - cat "${COMMENT_PATH}"; - echo 'EOF'; - } >> "$GITHUB_OUTPUT" - - - name: đŦ PR Comment - if: fromJSON(steps.pr_ids.outputs.prs).numBlocking > 0 - continue-on-error: true - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - COMMENT_BODY: ${{ steps.generate-comment.outputs.body }} - run: | - gh -R ${{ github.repository }} issue comment "$PR_NUMBER" \ - --body "$COMMENT_BODY" \ - --create-if-none \ - --edit-last - diff --git a/meshmc/.github/workflows/build.yml b/meshmc/.github/workflows/build.yml deleted file mode 100644 index 0ed6240b41..0000000000 --- a/meshmc/.github/workflows/build.yml +++ /dev/null @@ -1,185 +0,0 @@ -name: Build - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -on: - push: - branches: - - 'master' - merge_group: - types: [checks_requested] - pull_request: - workflow_call: - inputs: - build-type: - description: Type of build (Debug or Release) - type: string - default: Debug - environment: - description: Deployment environment to run under - type: string - workflow_dispatch: - inputs: - build-type: - description: Type of build (Debug or Release) - type: string - default: Debug - -permissions: {} - -jobs: - build: - name: Build (${{ matrix.artifact-name }}) - - environment: ${{ inputs.environment || '' }} - - permissions: - contents: read - id-token: write - packages: write - - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-24.04 - artifact-name: Linux - cmake-preset: linux - qt-version: 6.10.2 - - - os: ubuntu-24.04-arm - artifact-name: Linux-aarch64 - cmake-preset: linux - qt-version: 6.10.2 - - - os: windows-2022 - artifact-name: Windows-MinGW-w64 - cmake-preset: windows_mingw - msystem: CLANG64 - vcvars-arch: amd64_x86 - - - os: windows-11-arm - artifact-name: Windows-MinGW-arm64 - cmake-preset: windows_mingw - msystem: CLANGARM64 - vcvars-arch: arm64 - - - os: windows-2022 - artifact-name: Windows-MSVC - cmake-preset: windows_msvc - # TODO(@YongDo-Hyun): This is the default in setup-dependencies/windows. Why isn't it working?!?! - vcvars-arch: amd64 - qt-version: 6.10.2 - - - os: windows-11-arm - artifact-name: Windows-MSVC-arm64 - cmake-preset: windows_msvc - vcvars-arch: arm64 - qt-version: 6.10.2 - - - os: macos-26 - artifact-name: macOS - cmake-preset: macos_universal - macosx-deployment-target: 12.0 - qt-version: 6.9.3 - - runs-on: ${{ matrix.os }} - - defaults: - run: - shell: ${{ matrix.msystem != '' && 'msys2 {0}' || 'bash' }} - - env: - ARTIFACT_NAME: ${{ matrix.artifact-name }}-Qt6 - BUILD_PLATFORM: official - BUILD_TYPE: ${{ inputs.build-type || 'Debug' }} - CMAKE_PRESET: ${{ matrix.cmake-preset }} - - MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macosx-deployment-target }} - - steps: - ## - # SETUP - ## - - - name: Checkout - uses: actions/checkout@v6 - with: - submodules: true - - - name: Setup dependencies - id: setup-dependencies - uses: ./.github/actions/setup-dependencies - with: - build-type: ${{ env.BUILD_TYPE }} - artifact-name: ${{ matrix.artifact-name }} - msystem: ${{ matrix.msystem }} - vcvars-arch: ${{ matrix.vcvars-arch }} - qt-version: ${{ matrix.qt-version }} - - ## - # BUILD - ## - - - name: Configure project - run: | - cmake --preset "$CMAKE_PRESET" - - - name: Run build - run: | - cmake --build --preset "$CMAKE_PRESET" --config "$BUILD_TYPE" - - - name: Run tests - run: | - ctest --preset "$CMAKE_PRESET" --build-config "$BUILD_TYPE" - - ## - # PACKAGE - ## - - - name: Get short version - id: short-version - shell: bash - run: | - echo "version=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" - - - name: Package (Linux) - if: ${{ runner.os == 'Linux' }} - uses: ./.github/actions/package/linux - with: - version: ${{ steps.short-version.outputs.version }} - build-type: ${{ steps.setup-dependencies.outputs.build-type }} - artifact-name: ${{ matrix.artifact-name }} - qt-version: ${{ steps.setup-dependencies.outputs.qt-version }} - - gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} - gpg-private-key-id: ${{ secrets.GPG_PRIVATE_KEY_ID }} - - - name: Package (macOS) - if: ${{ runner.os == 'macOS' }} - uses: ./.github/actions/package/macos - with: - version: ${{ steps.short-version.outputs.version }} - build-type: ${{ steps.setup-dependencies.outputs.build-type }} - artifact-name: ${{ matrix.artifact-name }} - - apple-codesign-cert: ${{ secrets.APPLE_CODESIGN_CERT }} - apple-codesign-password: ${{ secrets.APPLE_CODESIGN_PASSWORD }} - apple-codesign-id: ${{ secrets.APPLE_CODESIGN_ID }} - apple-notarize-apple-id: ${{ secrets.APPLE_NOTARIZE_APPLE_ID }} - apple-notarize-team-id: ${{ secrets.APPLE_NOTARIZE_TEAM_ID }} - apple-notarize-password: ${{ secrets.APPLE_NOTARIZE_PASSWORD }} - sparkle-ed25519-key: ${{ secrets.SPARKLE_ED25519_KEY }} - - - name: Package (Windows) - if: ${{ runner.os == 'Windows' }} - uses: ./.github/actions/package/windows - with: - version: ${{ steps.short-version.outputs.version }} - build-type: ${{ env.BUILD_TYPE }} - artifact-name: ${{ matrix.artifact-name }} - windows-codesign-cert: ${{ secrets.WINDOWS_CODESIGN_CERT }} - windows-codesign-password: ${{ secrets.WINDOWS_CODESIGN_PASSWORD }} - msystem: ${{ matrix.msystem }} diff --git a/meshmc/.github/workflows/codeql.yml b/meshmc/.github/workflows/codeql.yml deleted file mode 100644 index 436ae07eef..0000000000 --- a/meshmc/.github/workflows/codeql.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: "CodeQL Code Scanning" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -on: - merge_group: - types: [checks_requested] - pull_request: - workflow_dispatch: - -permissions: {} - -jobs: - CodeQL: - runs-on: ubuntu-latest - - permissions: - contents: read - security-events: write - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - submodules: "true" - - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - config-file: ./.github/codeql/codeql-config.yml - queries: security-and-quality - languages: cpp, java - - - name: Setup dependencies - uses: ./.github/actions/setup-dependencies - with: - build-type: Debug - qt-version: 6.9.3 - - - name: Configure and Build - run: | - cmake --preset linux -DLauncher_USE_PCH=OFF - cmake --build --preset linux --config Debug - - - name: Run tests - run: | - ctest --preset linux --build-config Debug --extra-verbose --output-on-failure - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 diff --git a/meshmc/.github/workflows/container.yml b/meshmc/.github/workflows/container.yml deleted file mode 100644 index 762eff6c82..0000000000 --- a/meshmc/.github/workflows/container.yml +++ /dev/null @@ -1,177 +0,0 @@ -name: Development Container - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -on: - push: - branches: - - 'master' - merge_group: - types: [checks_requested] - pull_request: - workflow_dispatch: - -permissions: {} - -env: - REGISTRY: ghcr.io - -jobs: - build: - name: Build (${{ matrix.arch }}) - - permissions: - contents: read - packages: write - - outputs: - image-name: ${{ steps.image-name.outputs.image-name }} - - strategy: - fail-fast: false - matrix: - include: - - arch: arm64 - os: ubuntu-24.04-arm - - arch: amd64 - os: ubuntu-24.04-arm - - runs-on: ${{ matrix.os }} - - steps: - - name: Set image name - id: image-name - run: | - echo "image-name=${REGISTRY}/${GITHUB_REPOSITORY_OWNER,,}/devcontainer" >> "$GITHUB_OUTPUT" - - - name: Install Podman - uses: redhat-actions/podman-install@main - # TODO(@YongDo-Hyun): Always use this when the action properly supports ARM - if: ${{ runner.arch == 'X64' || runner.arch == 'X86' }} - with: - github-token: ${{ github.token }} - - - name: Checkout repository - uses: actions/checkout@v6 - - - name: Determine metadata for image - id: image-metadata - uses: docker/metadata-action@v6 - with: - images: | - ${{ steps.image-name.outputs.image-name }} - flavor: | - latest=false - tags: | - type=raw,value=latest,enable=${{ github.event.merge_group.base_ref == 'refs/heads/develop' }} - - type=sha - type=sha,format=long - type=ref,event=branch - type=ref,event=tag - - - name: Build image - id: build-image - uses: redhat-actions/buildah-build@v2 - with: - containerfiles: | - ./Containerfile - tags: ${{ steps.image-metadata.outputs.tags }} - labels: ${{ steps.image-metadata.outputs.labels }} - - - name: Push image - id: push-image - if: ${{ github.event_name != 'pull_request' }} - uses: redhat-actions/push-to-registry@v2 - with: - tags: ${{ steps.build-image.outputs.tags }} - username: ${{ github.repository_owner }} - password: ${{ github.token }} - tls-verify: true - - - name: Export image digest - if: ${{ github.event_name != 'pull_request' }} - env: - DIGEST: ${{ steps.push-image.outputs.digest }} - run: | - mkdir -p "$RUNNER_TEMP"/digests - touch "$RUNNER_TEMP"/digests/"${DIGEST#sha256:}" - - - name: Upload digest artifact - if: ${{ github.event_name != 'pull_request' }} - uses: actions/upload-artifact@v7 - with: - name: digests-${{ matrix.arch }} - path: ${{ runner.temp }}/digests/* - if-no-files-found: error - retention-days: 1 - - manifest: - name: Create manifest - - needs: [ build ] - if: ${{ github.event_name != 'pull_request' }} - - permissions: - contents: read - packages: write - - runs-on: ubuntu-24.04 - - steps: - - name: Download digests - uses: actions/download-artifact@v8 - with: - path: ${{ runner.temp }}/digests - pattern: digests-* - merge-multiple: true - - - name: Install Podman - # TODO(@YongDo-Hyun): Always use this when the action properly supports ARM - if: ${{ runner.arch == 'X64' || runner.arch == 'X86' }} - uses: redhat-actions/podman-install@main - with: - github-token: ${{ github.token }} - - - name: Login to registry - uses: redhat-actions/podman-login@v1 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.repository_owner }} - password: ${{ github.token }} - - - name: Determine metadata for manifest - id: manifest-metadata - uses: docker/metadata-action@v6 - with: - images: | - ${{ needs.build.outputs.image-name }} - flavor: | - latest=false - tags: | - type=raw,value=latest,enable=${{ github.event.merge_group.base_ref == 'refs/heads/develop' }} - - type=sha - type=sha,format=long - type=ref,event=branch - type=ref,event=tag - - - name: Create manifest list - working-directory: ${{ runner.temp }}/digests - env: - IMAGE_NAME: ${{ needs.build.outputs.image-name }} - run: | - while read -r tag; do - podman manifest create "$tag" \ - $(printf "$IMAGE_NAME@sha256:%s " *) - done <<< "$DOCKER_METADATA_OUTPUT_TAGS" - - - name: Push manifest - uses: redhat-actions/push-to-registry@v2 - with: - tags: ${{ steps.manifest-metadata.outputs.tags }} - username: ${{ github.repository_owner }} - password: ${{ github.token }} - tls-verify: true diff --git a/meshmc/.github/workflows/merge-blocking-pr.yml b/meshmc/.github/workflows/merge-blocking-pr.yml deleted file mode 100644 index 3542a470e0..0000000000 --- a/meshmc/.github/workflows/merge-blocking-pr.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: Merged Blocking Pull Request Automation - -on: - pull_request_target: - types: - - closed - workflow_dispatch: - inputs: - pr_id: - description: Local Pull Request number to work on - required: true - type: number - -permissions: {} - -jobs: - update-blocked-status: - name: Update Blocked Status - runs-on: ubuntu-slim - - # a pr that was a `blocking:<id>` label was merged. - # find the open pr's it was blocked by and trigger a refresh of their state - if: "${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'status: blocking') }}" - - steps: - - name: Generate token - id: generate-token - uses: actions/create-github-app-token@v3 - with: - app-id: ${{ vars.PULL_REQUEST_APP_ID }} - private-key: ${{ secrets.PULL_REQUEST_APP_PRIVATE_KEY }} - - - name: Gather Dependent PRs - id: gather_deps - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - PR_NUMBER: ${{ inputs.pr_id || github.event.pull_request.number }} - run: | - blocked_prs=$( - gh -R ${{ github.repository }} pr list --label 'status: blocked' --json 'number,body' \ - | jq -c --argjson pr "$PR_NUMBER" ' - reduce ( .[] | select( - .body | - scan("(?:blocked (?:by|on)|stacked on):? #([0-9]+)") | - map(tonumber) | - any(.[]; . == $pr) - )) as $i ([]; . + [$i]) - ' - ) - { - echo "deps=$blocked_prs" - echo "numdeps=$(jq -r '. | length' <<< "$blocked_prs")" - } >> "$GITHUB_OUTPUT" - - - name: Trigger Blocked PR Workflows for Dependants - if: fromJSON(steps.gather_deps.outputs.numdeps) > 0 - env: - GH_TOKEN: ${{ steps.generate-token.outputs.token }} - DEPS: ${{ steps.gather_deps.outputs.deps }} - run: | - while read -r pr ; do - gh -R ${{ github.repository }} workflow run 'blocked-prs.yml' -r "${{ github.ref_name }}" -f pr_id="$pr" - done < <(jq -c '.[].number' <<< "$DEPS") - diff --git a/meshmc/.github/workflows/nix.yml b/meshmc/.github/workflows/nix.yml deleted file mode 100644 index a62d9c0aff..0000000000 --- a/meshmc/.github/workflows/nix.yml +++ /dev/null @@ -1,138 +0,0 @@ -name: Nix - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -on: - push: - branches: - - "master" - - "release-*" - tags: - - "*" - paths: - # File types - - "**.cpp" - - "**.h" - - "**.java" - - "**.ui" - - "**.md" - - # Build files - - "**.nix" - - "nix/**" - - "flake.lock" - - # Directories - - "buildconfig/**" - - "cmake/**" - - "launcher/**" - - "libraries/**" - - "branding/**" - - "tests/**" - - # Files - - "CMakeLists.txt" - - # Workflows - - ".github/workflows/nix.yml" - pull_request: - paths: - # File types - - "**.cpp" - - "**.h" - - "**.java" - - "**.ui" - - "**.md" - - # Build files - - "**.nix" - - "nix/**" - - "flake.lock" - - # Directories - - "buildconfig/**" - - "cmake/**" - - "launcher/**" - - "libraries/**" - - "branding/**" - - "tests/**" - - # Files - - "CMakeLists.txt" - - # Workflows - - ".github/workflows/nix.yml" - workflow_dispatch: - -permissions: {} - -env: - DEBUG: ${{ github.ref_type != 'tag' }} - -jobs: - build: - name: Build (${{ matrix.system }}) - - permissions: - contents: read - - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-22.04 - system: x86_64-linux - - - os: ubuntu-22.04-arm - system: aarch64-linux - - - os: macos-14 - system: aarch64-darwin - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - - - name: Install Nix - uses: cachix/install-nix-action@v31 - - # For PRs - - name: Setup Nix Magic Cache - if: ${{ github.event_name == 'pull_request' }} - uses: DeterminateSystems/magic-nix-cache-action@v13 - with: - diagnostic-endpoint: "" - use-flakehub: false - - # For in-tree builds - - name: Setup Cachix - if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} - uses: cachix/cachix-action@v17 - with: - name: meshmc - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - - - name: Run Flake checks - run: | - nix flake check --print-build-logs --show-trace - - - name: Build debug package - if: ${{ env.DEBUG == 'true' }} - run: | - nix build \ - --no-link --print-build-logs --print-out-paths \ - .#meshmc-debug >> "$GITHUB_STEP_SUMMARY" - - - name: Build release package - if: ${{ env.DEBUG == 'false' }} - env: - TAG: ${{ github.ref_name }} - SYSTEM: ${{ matrix.system }} - run: | - nix build --no-link --print-out-paths .#meshmc \ - | tee -a "$GITHUB_STEP_SUMMARY" \ - | xargs cachix pin meshmc "$TAG"-"$SYSTEM" diff --git a/meshmc/.github/workflows/publish.yml b/meshmc/.github/workflows/publish.yml deleted file mode 100644 index 9d2b3e06b9..0000000000 --- a/meshmc/.github/workflows/publish.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Publish - -on: - release: - types: [ released ] - -permissions: {} - -jobs: - winget: - name: Winget - - permissions: - contents: read - - runs-on: ubuntu-slim - - steps: - - name: Publish on Winget - uses: vedantmgoyal2009/winget-releaser@v2 - with: - identifier: ProjectTick.MeshMC - version: ${{ github.event.release.tag_name }} - installers-regex: 'MeshMC-Windows-MSVC(:?-arm64|-Legacy)?-Setup-.+\.exe$' - token: ${{ secrets.WINGET_TOKEN }} diff --git a/meshmc/.github/workflows/release.yml b/meshmc/.github/workflows/release.yml deleted file mode 100644 index 8ce7409b2d..0000000000 --- a/meshmc/.github/workflows/release.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Build Application and Make Release - -on: - push: - tags: - - "*" - -permissions: {} - -jobs: - build_release: - name: Build Release - uses: ./.github/workflows/build.yml - permissions: - contents: read - id-token: write - packages: write - with: - build-type: Release - environment: Release - secrets: inherit - - create_release: - needs: build_release - permissions: - contents: write - runs-on: ubuntu-slim - outputs: - upload_url: ${{ steps.create_release.outputs.upload_url }} - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - submodules: "true" - path: "MeshMC-source" - - name: Download artifacts - uses: actions/download-artifact@v8 - - name: Grab and store version - run: | - tag_name=$(echo ${{ github.ref }} | grep -oE "[^/]+$") - echo "VERSION=$tag_name" >> $GITHUB_ENV - - name: Package artifacts properly - run: | - mv ${{ github.workspace }}/MeshMC-source MeshMC-${{ env.VERSION }} - mv MeshMC-Linux-Qt6-Portable*/MeshMC-portable.tar.gz MeshMC-Linux-Qt6-Portable-${{ env.VERSION }}.tar.gz - mv MeshMC-Linux-aarch64-Qt6-Portable*/MeshMC-portable.tar.gz MeshMC-Linux-aarch64-Qt6-Portable-${{ env.VERSION }}.tar.gz - mv MeshMC-*.AppImage/MeshMC-*-x86_64.AppImage MeshMC-Linux-x86_64.AppImage - mv MeshMC-*.AppImage.zsync/MeshMC-*-x86_64.AppImage.zsync MeshMC-Linux-x86_64.AppImage.zsync - mv MeshMC-*.AppImage/MeshMC-*-aarch64.AppImage MeshMC-Linux-aarch64.AppImage - mv MeshMC-*.AppImage.zsync/MeshMC-*-aarch64.AppImage.zsync MeshMC-Linux-aarch64.AppImage.zsync - mv MeshMC-macOS*/MeshMC.zip MeshMC-macOS-${{ env.VERSION }}.zip - mv MeshMC-macOS*/MeshMC.dmg MeshMC-macOS-${{ env.VERSION }}.dmg - - tar --exclude='.git' -czf MeshMC-${{ env.VERSION }}.tar.gz MeshMC-${{ env.VERSION }} - - for d in MeshMC-Windows-MSVC*; do - cd "${d}" || continue - LEGACY="$(echo -n ${d} | grep -o Legacy || true)" - ARM64="$(echo -n ${d} | grep -o arm64 || true)" - INST="$(echo -n ${d} | grep -o Setup || true)" - PORT="$(echo -n ${d} | grep -o Portable || true)" - NAME="MeshMC-Windows-MSVC" - test -z "${LEGACY}" || NAME="${NAME}-Legacy" - test -z "${ARM64}" || NAME="${NAME}-arm64" - test -z "${PORT}" || NAME="${NAME}-Portable" - test -z "${INST}" || mv MeshMC-*.exe ../${NAME}-Setup-${{ env.VERSION }}.exe - test -n "${INST}" || zip -r -9 "../${NAME}-${{ env.VERSION }}.zip" * - cd .. - done - - for d in MeshMC-Windows-MinGW-w64*; do - cd "${d}" || continue - INST="$(echo -n ${d} | grep -o Setup || true)" - PORT="$(echo -n ${d} | grep -o Portable || true)" - NAME="MeshMC-Windows-MinGW-w64" - test -z "${PORT}" || NAME="${NAME}-Portable" - test -z "${INST}" || mv MeshMC-*.exe ../${NAME}-Setup-${{ env.VERSION }}.exe - test -n "${INST}" || zip -r -9 "../${NAME}-${{ env.VERSION }}.zip" * - cd .. - done - - for d in MeshMC-Windows-MinGW-arm64*; do - cd "${d}" || continue - INST="$(echo -n ${d} | grep -o Setup || true)" - PORT="$(echo -n ${d} | grep -o Portable || true)" - NAME="MeshMC-Windows-MinGW-arm64" - test -z "${PORT}" || NAME="${NAME}-Portable" - test -z "${INST}" || mv MeshMC-*.exe ../${NAME}-Setup-${{ env.VERSION }}.exe - test -n "${INST}" || zip -r -9 "../${NAME}-${{ env.VERSION }}.zip" * - cd .. - done - - - name: Create release - id: create_release - uses: softprops/action-gh-release@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - tag_name: ${{ github.ref }} - name: MeshMC ${{ env.VERSION }} - draft: true - prerelease: false - fail_on_unmatched_files: true - files: | - MeshMC-Linux-x86_64.AppImage - MeshMC-Linux-x86_64.AppImage.zsync - MeshMC-Linux-aarch64.AppImage - MeshMC-Linux-aarch64.AppImage.zsync - MeshMC-Linux-Qt6-Portable-${{ env.VERSION }}.tar.gz - MeshMC-Linux-aarch64-Qt6-Portable-${{ env.VERSION }}.tar.gz - MeshMC-Windows-MinGW-w64-${{ env.VERSION }}.zip - MeshMC-Windows-MinGW-w64-Portable-${{ env.VERSION }}.zip - MeshMC-Windows-MinGW-w64-Setup-${{ env.VERSION }}.exe - MeshMC-Windows-MinGW-arm64-${{ env.VERSION }}.zip - MeshMC-Windows-MinGW-arm64-Portable-${{ env.VERSION }}.zip - MeshMC-Windows-MinGW-arm64-Setup-${{ env.VERSION }}.exe - MeshMC-Windows-MSVC-arm64-${{ env.VERSION }}.zip - MeshMC-Windows-MSVC-arm64-Portable-${{ env.VERSION }}.zip - MeshMC-Windows-MSVC-arm64-Setup-${{ env.VERSION }}.exe - MeshMC-Windows-MSVC-${{ env.VERSION }}.zip - MeshMC-Windows-MSVC-Portable-${{ env.VERSION }}.zip - MeshMC-Windows-MSVC-Setup-${{ env.VERSION }}.exe - MeshMC-macOS-${{ env.VERSION }}.zip - MeshMC-macOS-${{ env.VERSION }}.dmg - MeshMC-${{ env.VERSION }}.tar.gz diff --git a/meshmc/.github/workflows/update-flake.yml b/meshmc/.github/workflows/update-flake.yml deleted file mode 100644 index 9aa57ec2e4..0000000000 --- a/meshmc/.github/workflows/update-flake.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Update Flake Lockfile - -on: - schedule: - # run weekly on sunday - - cron: "0 0 * * 0" - workflow_dispatch: - -permissions: {} - -jobs: - update-flake: - if: github.repository == 'Project-Tick/MeshMC' - - permissions: - contents: write - pull-requests: write - - runs-on: ubuntu-slim - - steps: - - uses: actions/checkout@v6 - - uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 # v31 - - - uses: DeterminateSystems/update-flake-lock@v28 - with: - commit-msg: "chore(nix): update lockfile" - pr-title: "chore(nix): update lockfile" - pr-labels: | - platform: Linux - area: packaging - complexity: low - priority: low - type: robot - changelog:omit diff --git a/neozip/.github/FUNDING.yml b/neozip/.github/FUNDING.yml deleted file mode 100644 index 7cd8129153..0000000000 --- a/neozip/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: zlib-ng diff --git a/neozip/.github/dependabot.yml b/neozip/.github/dependabot.yml deleted file mode 100644 index 8ac6b8c498..0000000000 --- a/neozip/.github/dependabot.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "monthly" diff --git a/neozip/.github/workflows/analyze.yml b/neozip/.github/workflows/analyze.yml deleted file mode 100644 index 195bfde9cf..0000000000 --- a/neozip/.github/workflows/analyze.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: Static Analysis -on: [workflow_call, workflow_dispatch] -jobs: - static-analysis: - name: GCC-14 - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Add ubuntu mirrors - run: | - # Github Actions caching proxy is at times unreliable - echo -e 'http://azure.archive.ubuntu.com/ubuntu\tpriority:1\n' | sudo tee /etc/apt/mirrors.txt - curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt - sudo sed -i 's#http://azure.archive.ubuntu.com/ubuntu/#mirror+file:/etc/apt/mirrors.txt#' /etc/apt/sources.list - - - name: Install packages (Ubuntu) - run: sudo apt-get install -y gcc-14 - - - name: Generate project files - run: | - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=OFF \ - -DWITH_FUZZERS=OFF \ - -DWITH_CODE_COVERAGE=OFF \ - -DWITH_MAINTAINER_WARNINGS=OFF - env: - CC: gcc-14 - CFLAGS: - -fanalyzer - -Werror - -Wanalyzer-double-fclose - -Wanalyzer-double-free - -Wanalyzer-exposure-through-output-file - -Wanalyzer-file-leak - -Wanalyzer-free-of-non-heap - -Wanalyzer-malloc-leak - -Wanalyzer-null-argument - -Wanalyzer-null-dereference - -Wanalyzer-possible-null-argument - -Wanalyzer-possible-null-dereference - -Wanalyzer-stale-setjmp-buffer - -Wanalyzer-tainted-array-index - -Wanalyzer-unsafe-call-within-signal-handler - -Wanalyzer-use-after-free - -Wanalyzer-use-of-pointer-in-stale-stack-frame - CI: true - - - name: Compile source code - run: cmake --build . -j5 --config Release > /dev/null - - Clang: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Install packages (Ubuntu) - run: sudo apt-get install -y clang-tools - - - name: Generate project files - run: | - scan-build --status-bugs \ - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=OFF \ - -DWITH_FUZZERS=OFF \ - -DWITH_CODE_COVERAGE=OFF \ - -DWITH_MAINTAINER_WARNINGS=OFF - env: - CI: true - - - name: Compile source code - run: | - scan-build --status-bugs \ - cmake --build . -j5 --config Release > /dev/null diff --git a/neozip/.github/workflows/cmake.yml b/neozip/.github/workflows/cmake.yml deleted file mode 100644 index 7792571e51..0000000000 --- a/neozip/.github/workflows/cmake.yml +++ /dev/null @@ -1,956 +0,0 @@ -name: CMake -on: [workflow_call, workflow_dispatch] -env: - TERM: xterm-256color - GTEST_COLOR: 1 - -jobs: - cmake: - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - timeout-minutes: 80 - strategy: - fail-fast: false - matrix: - include: - - name: Ubuntu GCC ASAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cxxflags: -Wno-maybe-uninitialized - cmake-args: -DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON - coverage: ubuntu_gcc - - - name: Ubuntu GCC Native Instructions - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON - coverage: ubuntu_gcc_native_inst - - - name: Ubuntu GCC Native Instructions (AVX) - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE="-mavx -mpclmul" - coverage: ubuntu_gcc_native_inst_avx - - - name: Ubuntu GCC Symbol Prefix -O3 - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DZLIB_SYMBOL_PREFIX=zTest_ -DWITH_BENCHMARKS=ON - cflags: -O3 - # Skipping coverage to allow -O3 - - - name: Ubuntu GCC Compat Symbol Prefix - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DZLIB_COMPAT=ON -DZLIB_SYMBOL_PREFIX=zTest_ -DWITH_BENCHMARKS=ON - coverage: ubuntu_gcc_compat_sprefix - - - name: Ubuntu GCC -O1 UBSAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_SANITIZER=Undefined - cflags: -O1 - # Skipping coverage to allow -O1 - - - name: Ubuntu GCC 32-bit - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_SHARED_LINKER_FLAGS=-m32 -DCMAKE_EXE_LINKER_FLAGS=-m32 -DWITH_BENCHMARKS=ON - packages: gcc-multilib g++-multilib - coverage: ubuntu_gcc_m32 - - - name: Ubuntu GCC C17 MMAP - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DCMAKE_C_STANDARD=17 - cflags: -DUSE_MMAP - coverage: ubuntu_gcc_c17_mmap - - - name: Ubuntu GCC C23 REDUCED_MEM - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DCMAKE_C_STANDARD=23 -DWITH_REDUCED_MEM=ON - coverage: ubuntu_gcc_c23_reduced_mem - - - name: Ubuntu GCC No Chorba - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_CHORBA=OFF - coverage: ubuntu_gcc_no_chorba - - - name: Ubuntu GCC SSE2 UBSAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_SSSE3=OFF -DWITH_SSE42=OFF -DWITH_AVX2=OFF -DWITH_AVX512=OFF -DWITH_SANITIZER=Undefined - coverage: ubuntu_gcc_sse2 - - - name: Ubuntu GCC SSSE3 UBSAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_SSE42=OFF -DWITH_AVX2=OFF -DWITH_AVX512=OFF -DWITH_SANITIZER=Undefined - coverage: ubuntu_gcc_ssse3 - - - name: Ubuntu GCC SSE4.2 UBSAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_AVX2=OFF -DWITH_AVX512=OFF -DWITH_SANITIZER=Undefined - coverage: ubuntu_gcc_sse42 - - - name: Ubuntu GCC No PCLMULQDQ UBSAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_PCLMULQDQ=OFF -DWITH_SANITIZER=Undefined - coverage: ubuntu_gcc_no_pclmulqdq - - - name: Ubuntu GCC No AVX512VNNI UBSAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DWITH_AVX512VNNI=OFF -DWITH_SANITIZER=Undefined - coverage: ubuntu_gcc_no_avx512vnni - - - name: Ubuntu GCC Compat No Opt ASAN - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Address - cflags: -DNOT_TWEAK_COMPILER - coverage: ubuntu_gcc_compat_no_opt - - - name: Ubuntu GCC ARM SF - os: ubuntu-24.04-arm - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake - packages: qemu-user crossbuild-essential-armel - gcov-exec: arm-linux-gnueabi-gcov - coverage: ubuntu_gcc_armsf - - - name: Ubuntu GCC ARM SF Compat No Opt - os: ubuntu-24.04-arm - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF - packages: qemu-user crossbuild-essential-armel - gcov-exec: arm-linux-gnueabi-gcov - coverage: ubuntu_gcc_armsf_compat_no_opt - - - name: Ubuntu GCC ARM HF ASAN - os: ubuntu-24.04-arm - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_BENCHMARKS=ON -DWITH_SANITIZER=Address - cxxflags: -Wno-psabi -Wno-maybe-uninitialized - asan-options: detect_leaks=0 - packages: qemu-user crossbuild-essential-armhf - gcov-exec: arm-linux-gnueabihf-gcov - coverage: ubuntu_gcc_armhf_asan - - - name: Ubuntu GCC ARM HF No Neon No ARMv8 ASAN - os: ubuntu-24.04-arm - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_NEON=OFF -DWITH_ARMV8=OFF -DWITH_SANITIZER=Address - asan-options: detect_leaks=0 - packages: qemu-user crossbuild-essential-armhf - gcov-exec: arm-linux-gnueabihf-gcov - coverage: ubuntu_gcc_armhf_no_neon_no_armv8 - - - name: Ubuntu GCC ARM HF Compat UBSAN - os: ubuntu-24.04-arm - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DZLIB_COMPAT=ON -DWITH_SANITIZER=Undefined - packages: qemu-user crossbuild-essential-armhf - gcov-exec: arm-linux-gnueabihf-gcov - coverage: ubuntu_gcc_armhf_compat_ubsan - - - name: Ubuntu GCC AARCH64 ASAN - os: ubuntu-24.04-arm - cmake-args: -DWITH_BENCHMARKS=ON -DWITH_SANITIZER=Address - asan-options: detect_leaks=0 - coverage: ubuntu_gcc_aarch64_asan - - - name: Ubuntu GCC AARCH64 Compat UBSAN - os: ubuntu-24.04-arm - cmake-args: -DZLIB_COMPAT=ON -DWITH_SANITIZER=Undefined - coverage: ubuntu_gcc_aarch64_compat_ubsan - - - name: Ubuntu Clang AARCH64 MSAN - os: ubuntu-24.04-arm - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_SANITIZER=Memory - # Coverage disabled, causes MSAN errors - - - name: Ubuntu GCC MIPS - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips.cmake - packages: qemu-user crossbuild-essential-mips - gcov-exec: mips-linux-gnu-gcov - coverage: ubuntu_gcc_mips - - - name: Ubuntu GCC MIPS64 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips64.cmake -DWITH_BENCHMARKS=ON - packages: qemu-user crossbuild-essential-mips64 - gcov-exec: mips64-linux-gnuabi64-gcov - coverage: ubuntu_gcc_mips64 - - - name: Ubuntu GCC PPC - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake - packages: qemu-user crossbuild-essential-powerpc - gcov-exec: powerpc-linux-gnu-gcov - coverage: ubuntu_gcc_ppc - - - name: Ubuntu GCC PPC No Power8 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake -DWITH_POWER8=OFF - packages: qemu-user crossbuild-essential-powerpc - gcov-exec: powerpc-linux-gnu-gcov - coverage: ubuntu_gcc_ppc_no_power8 - - - name: Ubuntu GCC PPC64 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64.cmake -DWITH_BENCHMARKS=ON - packages: qemu-user gcc-powerpc64-linux-gnu g++-powerpc64-linux-gnu libc-dev-ppc64-cross - ldflags: -static - gcov-exec: powerpc64-linux-gnu-gcov - coverage: ubuntu_gcc_ppc64 - - - name: Ubuntu GCC PPC64 Power9 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64-power9.cmake - packages: qemu-user gcc-powerpc64-linux-gnu g++-powerpc64-linux-gnu libc-dev-ppc64-cross - ldflags: -static - gcov-exec: powerpc64-linux-gnu-gcov - coverage: ubuntu_gcc_ppc64_power9 - - - name: Ubuntu Clang PPC64 Power9 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64-clang.cmake - packages: qemu-user clang binutils-powerpc64-linux-gnu libgcc-11-dev-ppc64-cross libc-dev-ppc64-cross libstdc++-11-dev-ppc64-cross - # Coverage disabled for clang on power9, errors - - - name: Ubuntu GCC PPC64LE - os: ubuntu-latest - # gtest illegal instruction (related? https://bugs.launchpad.net/qemu/+bug/1781281) - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake -DWITH_GTEST=OFF - packages: qemu-user crossbuild-essential-ppc64el - gcov-exec: powerpc64le-linux-gnu-gcov - # mcpu required to test power8 with qemu-ppc64le -cpu power8 (see issue 1378) - cflags: -mcpu=power8 - cxxflags: -mcpu=power8 - coverage: ubuntu_gcc_ppc64le - - - name: Ubuntu GCC PPC64LE No VSX - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le-power9.cmake -DWITH_POWER8=OFF -DWITH_POWER9=OFF - packages: qemu-user crossbuild-essential-ppc64el - gcov-exec: powerpc64le-linux-gnu-gcov - coverage: ubuntu_gcc_ppc64le_novsx - - - name: Ubuntu GCC PPC64LE Power9 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le-power9.cmake - packages: qemu-user crossbuild-essential-ppc64el - gcov-exec: powerpc64le-linux-gnu-gcov - coverage: ubuntu_gcc_ppc64le_power9 - - - name: Ubuntu Clang PPC64LE Power9 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le-clang.cmake - packages: qemu-user crossbuild-essential-ppc64el - # Coverage disabled for clang on power9, errors - - - name: Ubuntu GCC RISC-V - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-riscv.cmake -DWITH_BENCHMARKS=ON - packages: qemu-user crossbuild-essential-riscv64 - gcov-exec: riscv64-linux-gnu-gcov - coverage: ubuntu_gcc_riscv64 - - - name: Ubuntu Clang RISC-V - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-riscv-clang.cmake - packages: qemu-user crossbuild-essential-riscv64 - # Coverage disabled for clang on riscv, errors - - - name: Ubuntu GCC 14 LoongArch64 - os: ubuntu-latest - cmake-args: -DCOMPILER_SUFFIX=-14 -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-loongarch64-gcc.cmake -DWITH_BENCHMARKS=ON - packages: qemu-user gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu libc-dev-loong64-cross - ldflags: -static - gcov-exec: loongarch64-linux-gnu-gcov-14 - coverage: ubuntu_gcc14_loongarch64 - - - name: Ubuntu GCC 14 LoongArch64 No LASX - os: ubuntu-latest - cmake-args: -DCOMPILER_SUFFIX=-14 -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-loongarch64-gcc.cmake -DWITH_BENCHMARKS=ON -DWITH_LASX=OFF - packages: qemu-user gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu libc-dev-loong64-cross - ldflags: -static - gcov-exec: loongarch64-linux-gnu-gcov-14 - coverage: ubuntu_gcc14_loongarch64_no_lasx - - - name: Ubuntu GCC SPARC64 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-sparc64.cmake - packages: qemu-user gcc-sparc64-linux-gnu g++-sparc64-linux-gnu libc-dev-sparc64-cross - ldflags: -static - gcov-exec: sparc64-linux-gnu-gcov - coverage: ubuntu_gcc_sparc64 - - - name: Ubuntu GCC S390x - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DWITH_BENCHMARKS=ON - packages: qemu-user crossbuild-essential-s390x - ldflags: -static - gcov-exec: s390x-linux-gnu-gcov - coverage: ubuntu_gcc_s390x - - - name: Ubuntu GCC S390X No vectorized CRC32 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DWITH_CRC32_VX=OFF - packages: qemu-user crossbuild-essential-s390x - ldflags: -static - gcov-exec: s390x-linux-gnu-gcov - coverage: ubuntu_gcc_s390x_no_crc32 - - - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10' || 'Ubuntu' }} GCC S390X DFLTCC Compat - os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }} - compiler: gcc - cxx-compiler: g++ - cmake-args: >- - ${{ github.repository != 'zlib-ng/zlib-ng' && '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake' || '' }} - -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON -DWITH_BENCHMARKS=ON -DZLIB_COMPAT=ON - packages: qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross - ldflags: -static - gcov-exec: ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcov' || 's390x-linux-gnu-gcov' }} - coverage: ${{ github.repository == 'zlib-ng/zlib-ng' && 'el10_gcc_s390x_dfltcc' || 'ubuntu_gcc_s390x_dfltcc' }} - - - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10 Clang S390X DFLTCC ASAN' || 'Ubuntu GCC S390X DFLTCC' }} - os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }} - compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'clang' || 'gcc' }} - cxx-compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'clang++' || 'g++' }} - cmake-args: >- - ${{ github.repository == 'zlib-ng/zlib-ng' && '-DWITH_SANITIZER=Address' || '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake' }} - -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON - packages: qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross - asan-options: detect_leaks=0 - gcov-exec: ${{ github.repository == 'zlib-ng/zlib-ng' && 'llvm-cov gcov' || 's390x-linux-gnu-gcov' }} - coverage: ${{ github.repository == 'zlib-ng/zlib-ng' && 'el10_clang_s390x_dfltcc_asan' || 'ubuntu_gcc_s390x_dfltcc' }} - - - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10 Clang' || 'Ubuntu GCC' }} S390X DFLTCC UBSAN - os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }} - compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'clang' || 'gcc' }} - cxx-compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'clang++' || 'g++' }} - cmake-args: >- - ${{ github.repository != 'zlib-ng/zlib-ng' && '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake' || '' }} - -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON -DWITH_SANITIZER=Undefined - packages: qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross - gcov-exec: ${{ github.repository == 'zlib-ng/zlib-ng' && 'llvm-cov gcov' || 's390x-linux-gnu-gcov' }} - coverage: ${{ github.repository == 'zlib-ng/zlib-ng' && 'el10_clang_s390x_dfltcc_ubsan' || 'ubuntu_gcc_s390x_dfltcc_ubsan' }} - - - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10 Clang' || 'Ubuntu GCC' }} S390X DFLTCC ${{ (github.repository == 'zlib-ng/zlib-ng' && 'MSAN') || 'Compat' }} - os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }} - compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'clang' || 'gcc' }} - cxx-compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'clang++' || 'g++' }} - cmake-args: >- - ${{ github.repository == 'zlib-ng/zlib-ng' && '-GNinja -DWITH_SANITIZER=Memory' || '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DZLIB_COMPAT=ON' }} - -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON - packages: qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross - # Coverage disabled, causes MSAN errors - - - name: Ubuntu MinGW i686 - os: ubuntu-22.04 - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw-i686.cmake - packages: wine wine32 gcc-mingw-w64-i686 g++-mingw-w64-i686 libpcre2-8-0=10.39-3ubuntu0.1 libpcre2-8-0:i386=10.39-3ubuntu0.1 libodbc1=2.3.9-5ubuntu0.1 libodbc1:i386=2.3.9-5ubuntu0.1 libodbc2=2.3.9-5ubuntu0.1 libodbc2:i386=2.3.9-5ubuntu0.1 libodbccr2=2.3.9-5ubuntu0.1 libodbccr2:i386=2.3.9-5ubuntu0.1 libwine:i386=6.0.3~repack-1 libgphoto2-6:i386=2.5.27-1build2 libsane:i386=1.1.1-5 libgd3=2.3.0-2ubuntu2 libgd3:i386=2.3.0-2ubuntu2 libgcc-s1:i386 libstdc++6:i386 - ldflags: -static - gcov-exec: i686-w64-mingw32-gcov-posix - coverage: ubuntu_gcc_mingw_i686 - # Limit parallel test jobs to prevent wine errors - parallel-jobs: 1 - - - name: Ubuntu MinGW x86_64 - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw-x86_64.cmake -DWITH_BENCHMARKS=ON - packages: wine wine64 gcc-mingw-w64 g++-mingw-w64 - cxxflags: -Wno-unused-parameter - ldflags: -static - gcov-exec: x86_64-w64-mingw32-gcov-posix - coverage: ubuntu_gcc_mingw_x86_64 - # Limit parallel test jobs to prevent wine errors - parallel-jobs: 1 - - - name: Ubuntu Clang-15 - os: ubuntu-latest - compiler: clang-15 - cxx-compiler: clang++-15 - cmake-args: -DCMAKE_LINKER_TYPE=LLD - packages: clang-15 lld - gcov-exec: llvm-cov-15 gcov - # Coverage disabled for clang-15, errors - - - name: Ubuntu Clang C17 MMAP - os: ubuntu-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DCMAKE_LINKER_TYPE=LLD -DCMAKE_C_STANDARD=17 - cflags: -DUSE_MMAP - packages: llvm-18 lld - gcov-exec: llvm-cov-18 gcov - coverage: ubuntu_clang_c17_mmap - - - name: Ubuntu Clang-20 C23 - os: ubuntu-latest - compiler: clang-20 - cxx-compiler: clang++-20 - cmake-args: -DCMAKE_LINKER_TYPE=LLD -DCMAKE_C_STANDARD=23 - packages: clang-20 lld - # Coverage disabled for clang-20, errors - - # Check for undefined symbols in the version script for the modern api - - name: Ubuntu Clang-20 Undefined Symbols - os: ubuntu-latest - compiler: clang-20 - cxx-compiler: clang++-20 - cmake-args: -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld -Wl,--no-undefined-version" -DZLIBNG_ENABLE_TESTS=OFF - build-shared: 'ON' - packages: clang-20 lld - # Coverage disabled, no tests run - - # Check for undefined symbols in the version script for the compat api - - name: Ubuntu Clang-20 Undefined Symbols Compat - os: ubuntu-latest - compiler: clang-20 - cxx-compiler: clang++-20 - cmake-args: -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld -Wl,--no-undefined-version" -DZLIBNG_ENABLE_TESTS=OFF -DZLIB_COMPAT=ON - build-shared: 'ON' - packages: clang-20 lld - # Coverage disabled, no tests run - - - name: Ubuntu Clang Inflate Strict REDUCED_MEM - os: ubuntu-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_INFLATE_STRICT=ON -DWITH_REDUCED_MEM=ON - packages: llvm-18 - gcov-exec: llvm-cov-18 gcov - coverage: ubuntu_clang_inflate_strict_reduced_mem - - - name: Ubuntu Clang Inflate Allow Invalid Dist - os: ubuntu-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_INFLATE_ALLOW_INVALID_DIST=ON - packages: llvm-18 - gcov-exec: llvm-cov-18 gcov - coverage: ubuntu_clang_inflate_allow_invalid_dist - - - name: Ubuntu Clang Compat Debug - os: ubuntu-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DZLIB_COMPAT=ON - packages: llvm-18 - gcov-exec: llvm-cov-18 gcov - build-config: Debug - coverage: ubuntu_clang_compat_debug - - - name: Ubuntu Clang-20 MSAN - os: ubuntu-latest - compiler: clang-20 - cxx-compiler: clang++-20 - cmake-args: -GNinja -DWITH_SANITIZER=Memory - packages: ninja-build clang-20 llvm-20 libclang-rt-20-dev - gcov-exec: llvm-cov-20 gcov - build-config: Debug - # https://github.com/llvm/llvm-project/issues/55785 - msan-options: use_sigaltstack=0 - # Coverage disabled for clang-20, errors - - - name: Ubuntu Emscripten WASM32 - os: ubuntu-latest - chost: wasm32 - cmake-args: -DCMAKE_TOOLCHAIN_FILE=${EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_C_COMPILER_TARGET=wasm32 -DCMAKE_CROSSCOMPILING_EMULATOR=${EMSDK_NODE} -DZLIB_COMPAT=ON - # Coverage disabled for wasm - - - name: Windows MSVC 2026 v145 Win64 C23 - os: windows-2025-vs2026 - compiler: cl - cmake-args: -G "Visual Studio 18 2026" -A x64 -T v145 -DCMAKE_C_STANDARD=23 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v143 Win32 - os: windows-latest - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A Win32 -T v143 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v143 Win64 - os: windows-latest - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A x64 -T v143 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v143 Win64 Native Instructions (AVX) - os: windows-latest - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A x64 -T v143 -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE=/arch:AVX - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v143 Win64 C17 - os: windows-latest - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A x64 -T v143 -DCMAKE_C_STANDARD=17 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v142 Win32 - os: windows-latest - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A Win32 -T v142 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v142 Win64 - os: windows-latest - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A x64 -T v142 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v141 Win32 - os: windows-2022 - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A Win32 -T v141 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v141 Win64 - os: windows-2022 - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A x64 -T v141 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v140 Win32 - os: windows-2022 - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A Win32,version=10.0.14393.0 -T v140 -DCMAKE_SYSTEM_VERSION=10.0.14393.0 - # Coverage disabled for msvc - - - name: Windows MSVC 2022 v140 Win64 - os: windows-2022 - compiler: cl - cmake-args: -G "Visual Studio 17 2022" -A x64,version=10.0.14393.0 -T v140 -DCMAKE_SYSTEM_VERSION=10.0.14393.0 - # Coverage disabled for msvc - - - name: Windows MSVC ARM No Test - os: windows-latest - compiler: cl - cmake-args: -A ARM,version=10.0.22621.0 - # Coverage disabled for msvc - - - name: Windows MSVC ARM64 - os: windows-11-arm - compiler: cl - cmake-args: -A ARM64 - # Coverage disabled for msvc - - - name: Windows MSVC ARM64EC - os: windows-11-arm - compiler: cl - cmake-args: -A ARM64EC - # Coverage disabled for msvc - - - name: Windows ClangCl Win32 - os: windows-latest - cmake-args: -T ClangCl -A Win32 - # Coverage disabled for clangcl - - - name: Windows ClangCl Win64 - os: windows-latest - cmake-args: -T ClangCl -A x64 - # Coverage disabled for clangcl - - - name: Windows ClangCl Win64 Native Instructions (AVX) - os: windows-latest - cmake-args: -T ClangCl -A x64 -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE="-mavx -mpclmul" - # Coverage disabled for clangcl - - - name: Windows GCC - os: windows-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -G Ninja - coverage: win64_gcc - - - name: Windows GCC Native Instructions (AVX) - os: windows-2022 - compiler: gcc - cxx-compiler: g++ - cmake-args: -G Ninja -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE="-mavx -mpclmul" - coverage: win64_gcc_native_avx - - - name: Windows GCC Compat No Opt - os: windows-latest - compiler: gcc - cxx-compiler: g++ - cmake-args: -G Ninja -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF - coverage: win64_gcc_compat_no_opt - - - name: macOS Clang (Intel, Target 10.10) - os: macos-15-intel - compiler: clang - cxx-compiler: clang++ - cmake-args: -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DWITH_BENCHMARKS=ON - ldflags: -ld_classic - coverage: macos_clang_intel - - - name: macOS Clang (Intel) ASAN - os: macos-15-intel - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_SANITIZER=Address - coverage: macos_clang_intel_asan - - - name: macOS Clang (Intel) UBSAN - os: macos-15-intel - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_SANITIZER=Undefined - coverage: macos_clang_intel_ubsan - - - name: macOS Clang (Intel) Native Instructions - os: macos-15-intel - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON - coverage: macos_clang_native_intel - - - name: macOS Clang (ARM64) ASAN - os: macos-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_SANITIZER=Address - coverage: macos_clang_arm64 - - - name: macOS Clang (ARM64) UBSAN - os: macos-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_SANITIZER=Undefined - coverage: macos_clang_arm64_ubsan - - - name: macOS Clang (ARM64) Native Instructions - os: macos-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DWITH_NATIVE_INSTRUCTIONS=ON - coverage: macos_clang_arm64_native - - - name: Ubuntu LCC e2kv4 - os: ubuntu-latest - cmake-args: -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.16.e2k-v4.linux-6.1 -DQEMU_CPU=elbrus-v4 -DBENCHMARK_ENABLE_WERROR=OFF -DBENCHMARK_FORCE_WERROR=OFF - toolchain: 1.29.16.e2k-v4.linux-6.1 - cflags: -march=elbrus-v4 - cxxflags: -march=elbrus-v4 -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY - ldflags: -static - # Skipping coverage to allow optimized build - - - name: Ubuntu LCC e2kv5 - os: ubuntu-latest - cmake-args: -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.16.e2k-v5.linux-6.1 -DQEMU_CPU=elbrus-v5 -DBENCHMARK_ENABLE_WERROR=OFF -DBENCHMARK_FORCE_WERROR=OFF - toolchain: 1.29.16.e2k-v5.linux-6.1 - cflags: -march=elbrus-v5 - cxxflags: -march=elbrus-v5 -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY - ldflags: -static - # Skipping coverage to allow optimized build - - - name: Ubuntu LCC e2kv5 (coverage) - os: ubuntu-latest - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.16.e2k-v5.linux-6.1 -DQEMU_CPU=elbrus-v5 - toolchain: 1.29.16.e2k-v5.linux-6.1 - cflags: -march=elbrus-v5 - cxxflags: -march=elbrus-v5 - ldflags: -static - gcov-exec: /opt/mcst/lcc-1.29.16.e2k-v5.linux-6.1/gcov/bin/gcov - coverage: linux_mcst_lcc_e2kv5 - - - name: Ubuntu LCC e2kv6 - os: ubuntu-latest - cmake-args: -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-e2k-lcc.cmake -DMCST_LCC_PREFIX=/opt/mcst/lcc-1.29.16.e2k-v6.linux-6.1 -DQEMU_CPU=elbrus-v6 -DBENCHMARK_ENABLE_WERROR=OFF -DBENCHMARK_FORCE_WERROR=OFF - toolchain: 1.29.16.e2k-v6.linux-6.1 - cflags: -march=elbrus-v6 - cxxflags: -march=elbrus-v6 -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY - ldflags: -static - # Skipping coverage to allow optimized build - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: false - - - name: Checkout test corpora - uses: actions/checkout@v6 - # Don't test against all corpora with MinGW due to Wine being unable to run parallel jobs - # without connection timeout. Without parallel jobs test runs using Wine take close to an hour. - # Also don't test the extra corpora with Sanitizer builds or RISC-V or e2k, due to their slow testing. - if: ${{ !contains(matrix.name, 'MinGW') && !contains(matrix.name, 'RISC-V') && !contains(matrix.name, 'e2k') && !contains(matrix.cmake-args, 'WITH_SANITIZER') }} - with: - repository: zlib-ng/corpora - path: test/data/corpora - show-progress: false - - - name: Add repositories (Wine) - if: contains(matrix.packages, 'wine32') - run: sudo dpkg --add-architecture i386 - - - name: Add ubuntu mirrors - if: runner.os == 'Linux' && !contains(matrix.os, 'z15') - # Github Actions caching proxy is at times unreliable - run: | - echo -e 'http://azure.archive.ubuntu.com/ubuntu\tpriority:1\n' | sudo tee /etc/apt/mirrors.txt - curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt - sudo sed -i 's#http://azure.archive.ubuntu.com/ubuntu/#mirror+file:/etc/apt/mirrors.txt#' /etc/apt/sources.list - - - name: Install packages (Ubuntu) - if: runner.os == 'Linux' && !contains(matrix.os, 'z15') - run: | - sudo apt-get update - sudo apt-get install -y --allow-downgrades --no-install-recommends \ - ${{ matrix.packages || 'libgtest-dev libbenchmark-dev' }} - - - name: Install packages (Windows) - if: runner.os == 'Windows' - run: | - # strawberryperl installs /c/Strawberry/c/bin/libstdc++-6.dll, which is incompatible with the mingw64 one. - # zlib-ng does not need perl, so simply remove it. - choco uninstall --no-progress strawberryperl - choco install --no-progress ninja ${{ matrix.packages }} - - - name: Install Visual Studio toolset v140 (Windows) - if: contains(matrix.name, 'v140') - run: | - # Windows 10 SDK (10.0.14393.795) - # https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/index-legacy - Invoke-WebRequest -Method Get -Uri https://go.microsoft.com/fwlink/p/?LinkId=838916 -OutFile sdksetup.exe -UseBasicParsing - Unblock-File sdksetup.exe - Start-Process -Wait sdksetup.exe -ArgumentList "/q", "/norestart", "/ceip off", "/features OptionId.WindowsSoftwareDevelopmentKit" - - Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\" - $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" - $componentsToInstall= @( - "Microsoft.VisualStudio.Component.VC.140" - ) - [string]$workloadArgs = $componentsToInstall | ForEach-Object {" --add " + $_} - $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache') - # should be run twice - $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden - $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden - - - name: Install Visual Studio toolset v141 (Windows) - if: contains(matrix.name, 'v141') - run: | - Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\" - $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" - $componentsToInstall= @( - "Microsoft.VisualStudio.Component.VC.v141.x86.x64" - ) - [string]$workloadArgs = $componentsToInstall | ForEach-Object {" --add " + $_} - $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache') - # should be run twice - $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden - $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden - - - name: Install Windows 11 SDK (ARM) - if: contains(matrix.name, 'MSVC ARM ') - run: | - # Windows 11 SDK (10.0.22621.2428) - # https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/index-legacy - Invoke-WebRequest -Method Get -Uri https://go.microsoft.com/fwlink/p/?LinkId=2250105 -OutFile sdksetup.exe -UseBasicParsing - Unblock-File sdksetup.exe - Start-Process -Wait sdksetup.exe -ArgumentList "/q", "/norestart", "/ceip off" - - - name: Install packages (macOS) - if: runner.os == 'macOS' - run: brew install ninja ${{ matrix.packages }} - env: - HOMEBREW_NO_INSTALL_CLEANUP: 1 - - - name: Install Emscripten - if: contains(matrix.name, 'WASM32') - uses: mymindstorm/setup-emsdk@v14 - - # Get MCST LCC from github actions cache or download from dev.mcst.ru and save to cache - - name: Cache MCST LCC ${{ matrix.toolchain }} (Ubuntu) - if: contains(matrix.name, 'e2k') - id: cache-lcc - uses: actions/cache@v5 - with: - path: /opt/mcst - key: cache-lcc-${{ matrix.toolchain }} - - - name: Install MCST LCC ${{ matrix.toolchain }} (Ubuntu) - if: contains(matrix.name, 'e2k') && steps.cache-lcc.outputs.cache-hit != 'true' - shell: bash - run: | - wget -q https://dev.mcst.ru/downloads/2026-03-13/cross-sp-public-osl-${{ matrix.toolchain }}_64.tgz - sudo tar -xzf cross-sp-public-osl-${{ matrix.toolchain }}_64.tgz -C / - rm -f cross-sp-public-osl-${{ matrix.toolchain }}_64.tgz - - # Get qemu-e2k-static from github actions cache or download from dev.mcst.ru and save to cache - - name: Cache MCST QEMU (Ubuntu) - if: contains(matrix.name, 'e2k') - id: cache-qemu-e2k-static - uses: actions/cache@v5 - with: - path: /usr/local/bin/qemu-e2k-static - key: cache-qemu-e2k-static-2026-02-24 - - - name: Install MCST QEMU (Ubuntu) - if: contains(matrix.name, 'e2k') && steps.cache-qemu-e2k-static.outputs.cache-hit != 'true' - shell: bash - run: | - wget -q https://dev.mcst.ru/downloads/2026-02-24/qemu-e2k-static - chmod +x qemu-e2k-static - sudo mv qemu-e2k-static /usr/local/bin - - - name: Initialize Wine - # Prevent parallel test jobs from initializing Wine at the same time - if: contains(matrix.packages, 'wine') - run: wineboot --init - - - name: Set LLVM_BUILD_DIR for LLVM C++ libraries (MSAN) - if: contains(matrix.name, 'MSAN') && startsWith(matrix.compiler, 'clang') - run: | - echo "LLVM_BUILD_DIR=`pwd`/llvm-project/build" >> $GITHUB_ENV - - - name: Get latest hash change for LLVM C++ libraries (MSAN) - if: contains(matrix.name, 'MSAN') && startsWith(matrix.compiler, 'clang') - id: llvm-remote-hash - run: | - HASH=$(git ls-remote https://github.com/llvm/llvm-project refs/heads/release/20.x | cut -f1) - if [ -z "$HASH" ]; then - echo "Failed to fetch LLVM remote hash" - exit 1 - fi - echo "value=$HASH" >> $GITHUB_OUTPUT - - - name: Cache LLVM C++ libraries (MSAN) - if: contains(matrix.name, 'MSAN') && startsWith(matrix.compiler, 'clang') - id: cache-llvm - uses: actions/cache@v5 - with: - path: | - ${{ env.LLVM_BUILD_DIR }}/lib - ${{ env.LLVM_BUILD_DIR }}/include - key: cache-llvm-${{ matrix.os }}-${{ runner.arch }}-${{ matrix.compiler }}-${{ steps.llvm-remote-hash.outputs.value }} - - - name: Compile LLVM C++ libraries (MSAN) - if: contains(matrix.name, 'MSAN') && startsWith(matrix.compiler, 'clang') && steps.cache-llvm.outputs.cache-hit != 'true' - run: | - # Use sparse-checkout to download only the folders we need (176MB instead of 2302MB) - git clone --depth=1 --filter=blob:none https://github.com/llvm/llvm-project --no-checkout --branch release/20.x - cd llvm-project - git sparse-checkout set cmake runtimes libc libcxx libcxxabi llvm/cmake - git checkout - cmake -S runtimes -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \ - -DLLVM_USE_SANITIZER=MemoryWithOrigins \ - -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \ - -DLIBCXX_ENABLE_STATIC=OFF \ - -DLIBCXX_INCLUDE_BENCHMARKS=OFF \ - -DLLVM_INCLUDE_TESTS=OFF \ - -DLLVM_INCLUDE_DOCS=OFF - cmake --build build -j5 -- cxx cxxabi - env: - CFLAGS: -O2 - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.cxx-compiler }} - - - name: Generate project files - shell: bash - # Shared libraries turned off for qemu ppc* and sparc & reduce code coverage sources - run: | - cmake -S . ${{ matrix.cmake-args }} \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} \ - -DBUILD_SHARED_LIBS=${{ matrix.build-shared || 'OFF' }} \ - -DWITH_FUZZERS=ON \ - -DWITH_MAINTAINER_WARNINGS=ON \ - ${{ matrix.coverage && '-DWITH_CODE_COVERAGE=ON' }} - env: - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.cxx-compiler }} - CFLAGS: ${{ matrix.cflags }} - CXXFLAGS: ${{ matrix.cxxflags }} - LDFLAGS: ${{ matrix.ldflags }} - CI: true - - - name: Compile source code - run: cmake --build . --verbose -j5 --config ${{ matrix.build-config || 'Release' }} - - - name: Run test cases - # Don't run tests on 32-bit Windows ARM - if: runner.os != 'Windows' || contains(matrix.name, 'ARM') == false || runner.arch == 'ARM64' - run: ctest --verbose -C ${{ matrix.build-config || 'Release' }} -E benchmark_zlib --output-on-failure --max-width 120 -j ${{ matrix.parallel-jobs || '5' }} - env: - ASAN_OPTIONS: ${{ matrix.asan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - MSAN_OPTIONS: ${{ matrix.msan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - TSAN_OPTIONS: ${{ matrix.tsan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - LSAN_OPTIONS: ${{ matrix.lsan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - UBSAN_OPTIONS: ${{ matrix.ubsan-options || 'verbosity=0' }}:print_stacktrace=1:abort_on_error=1:halt_on_error=1 - - - name: Generate coverage report - if: matrix.coverage - shell: bash - run: | - python3 -u -m venv ./venv - source ./venv/${{ runner.os == 'Windows' && 'Scripts' || 'bin' }}/activate - python3 -u -m pip install gcovr - python3 -m gcovr -j 5 --gcov-ignore-parse-errors --verbose \ - --exclude '(.*/|^)(_deps|benchmarks)/.*' \ - --exclude-unreachable-branches \ - --merge-mode-functions separate \ - --merge-lines \ - --gcov-executable "${{ matrix.gcov-exec || 'gcov' }}" \ - --xml --output ${{ matrix.coverage }}.xml - - - name: Upload job coverage report to coveralls - uses: coverallsapp/github-action@v2 - env: - COVERALLS_REPO_TOKEN: "${{ secrets.COVERALLS_REPO_TOKEN }}" - if: | - matrix.codecov - && !contains(matrix.os, 'z15') - && (env.COVERALLS_REPO_TOKEN != '' || github.repository == 'zlib-ng/zlib-ng') - with: - file: ${{ matrix.coverage }}.xml - flag-name: "${{ matrix.name }}-${{ github.event_name }}" - parallel: true - - - name: Test benchmarks (crashtest only, no coverage data collection) - if: contains(matrix.cmake-args, '-DWITH_BENCHMARKS=ON') - run: ctest --verbose -C Release -R ^benchmark_zlib$ --output-on-failure --max-width 120 -j ${{ matrix.parallel-jobs || '5' }} - env: - ASAN_OPTIONS: ${{ matrix.asan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - MSAN_OPTIONS: ${{ matrix.msan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - TSAN_OPTIONS: ${{ matrix.tsan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - LSAN_OPTIONS: ${{ matrix.lsan-options || 'verbosity=0' }}:abort_on_error=1:halt_on_error=1 - UBSAN_OPTIONS: ${{ matrix.ubsan-options || 'verbosity=0' }}:print_stacktrace=1:abort_on_error=1:halt_on_error=1 - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: ${{ matrix.name }} (cmake) - path: | - **/CMakeFiles/CMakeConfigureLog.yaml - **/CMakeFiles/CMakeOutput.log - **/CMakeFiles/CMakeError.log - **/Testing/Temporary/* - ${{ matrix.coverage }}.xml - retention-days: 30 diff --git a/neozip/.github/workflows/configure.yml b/neozip/.github/workflows/configure.yml deleted file mode 100644 index 952ab847ab..0000000000 --- a/neozip/.github/workflows/configure.yml +++ /dev/null @@ -1,289 +0,0 @@ -name: Configure -on: [workflow_call, workflow_dispatch] -jobs: - configure: - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - name: Ubuntu GCC - os: ubuntu-latest - compiler: gcc - configure-args: --warn - - - name: Ubuntu GCC OSB Symbol Prefix No VPCLMUL - os: ubuntu-latest - compiler: gcc - configure-args: --warn --sprefix=zTest_ --without-vpclmulqdq - build-dir: ../build - build-src-dir: ../zlib-ng - - - name: Ubuntu GCC Compat No Opt Reduced Mem - os: ubuntu-latest - compiler: gcc - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies --with-reduced-mem - - - name: Ubuntu GCC Compat Symbol Prefix - os: ubuntu-latest - compiler: gcc - configure-args: --warn --zlib-compat --sprefix=zTest_ - - - name: Ubuntu GCC ARM SF - os: ubuntu-24.04-arm - compiler: arm-linux-gnueabi-gcc - configure-args: --warn - chost: arm-linux-gnueabi - packages: qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross - - - name: Ubuntu GCC ARM SF Compat No Opt No Gzfileops - os: ubuntu-24.04-arm - compiler: arm-linux-gnueabi-gcc - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies --without-gzfileops - chost: arm-linux-gnueabi - packages: qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross - - - name: Ubuntu GCC ARM HF - os: ubuntu-24.04-arm - compiler: arm-linux-gnueabihf-gcc - configure-args: --warn - chost: arm-linux-gnueabihf - packages: qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross - - - name: Ubuntu GCC ARM HF No Neon No ARMv8 - os: ubuntu-24.04-arm - compiler: arm-linux-gnueabihf-gcc - configure-args: --warn --without-neon --without-armv8 - chost: arm-linux-gnueabihf - packages: qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross - - - name: Ubuntu GCC ARM HF Compat No Opt - os: ubuntu-24.04-arm - compiler: arm-linux-gnueabihf-gcc - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies - chost: arm-linux-gnueabihf - packages: qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross - - - name: Ubuntu GCC AARCH64 - os: ubuntu-24.04-arm - compiler: gcc - configure-args: --warn - - - name: Ubuntu GCC AARCH64 Compat No Opt - os: ubuntu-24.04-arm - compiler: gcc - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies - - - name: Ubuntu GCC MIPS - os: ubuntu-latest - compiler: mips-linux-gnu-gcc - configure-args: --warn - chost: mips-linux-gnu - packages: qemu-user gcc-mips-linux-gnu libc-dev-mips-cross - - - name: Ubuntu GCC MIPS64 - os: ubuntu-latest - compiler: mips64-linux-gnuabi64-gcc - configure-args: --warn - chost: mips64-linux-gnuabi64 - packages: qemu-user gcc-mips64-linux-gnuabi64 libc-dev-mips64-cross - - - name: Ubuntu GCC PPC - os: ubuntu-latest - compiler: powerpc-linux-gnu-gcc - configure-args: --warn --static - chost: powerpc-linux-gnu - packages: qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross - cflags: -static - ldflags: -static - - - name: Ubuntu GCC PPC No Opt - os: ubuntu-latest - compiler: powerpc-linux-gnu-gcc - configure-args: --warn --without-optimizations - chost: powerpc-linux-gnu - packages: qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross - - - name: Ubuntu GCC PPC64 - os: ubuntu-latest - compiler: powerpc64-linux-gnu-gcc - configure-args: --warn --static - chost: powerpc-linux-gnu - packages: qemu-user gcc-powerpc64-linux-gnu libc-dev-ppc64-cross - cflags: -static - ldflags: -static - - - name: Ubuntu GCC PPC64LE - os: ubuntu-latest - compiler: powerpc64le-linux-gnu-gcc - configure-args: --warn - chost: powerpc64le-linux-gnu - packages: qemu-user gcc-powerpc64le-linux-gnu libc-dev-ppc64el-cross - - - name: Ubuntu GCC S390X - os: ubuntu-latest - compiler: s390x-linux-gnu-gcc - configure-args: --warn --static - chost: s390x-linux-gnu - packages: qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross - cflags: -static - ldflags: -static - - - name: Ubuntu GCC S390X No vectorized CRC32 - os: ubuntu-latest - compiler: s390x-linux-gnu-gcc - configure-args: --warn --static --without-crc32-vx - chost: s390x-linux-gnu - packages: qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross - cflags: -static - ldflags: -static - - - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10' || 'Ubuntu' }} GCC S390X DFLTCC - os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }} - compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcc' || 's390x-linux-gnu-gcc' }} - configure-args: --warn --static --with-dfltcc-deflate --with-dfltcc-inflate - chost: ${{ github.repository != 'zlib-ng/zlib-ng' && 's390x-linux-gnu' || '' }} - packages: ${{ github.repository != 'zlib-ng/zlib-ng' && 'qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross' || '' }} - cflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }} - ldflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }} - - - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10' || 'Ubuntu' }} GCC S390X DFLTCC Compat - os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }} - compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcc' || 's390x-linux-gnu-gcc' }} - configure-args: --warn --zlib-compat --static --with-dfltcc-deflate --with-dfltcc-inflate - chost: ${{ github.repository != 'zlib-ng/zlib-ng' && 's390x-linux-gnu' || '' }} - packages: ${{ github.repository != 'zlib-ng/zlib-ng' && 'qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross' || '' }} - cflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }} - ldflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }} - - - name: Ubuntu Emscripten WASM32 - os: ubuntu-latest - chost: wasm32 - configure-args: --warn --zlib-compat --static - configure-prefix: emconfigure - cflags: -static - ldflags: -static - emu-run: node - - - name: macOS Clang (Intel) - os: macos-15-intel - compiler: clang - configure-args: --warn - - - name: macOS Clang (Intel) Compat No Opt - os: macos-15-intel - compiler: clang - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies - - - name: macOS Clang (ARM64) - os: macos-latest - compiler: clang - cflags: -std=gnu11 - configure-args: --warn - - - name: macOS Clang (ARM64) Compat No Opt - os: macos-latest - compiler: clang - cflags: -std=gnu11 - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies - - - name: Ubuntu GCC RISCV64 - os: ubuntu-latest - compiler: riscv64-linux-gnu-gcc - configure-args: --warn - chost: riscv64-linux-gnu - packages: qemu-user crossbuild-essential-riscv64 - - - name: Ubuntu GCC RISCV64 No RVV No ZBC - os: ubuntu-latest - compiler: riscv64-linux-gnu-gcc - configure-args: --warn --without-rvv --without-zbc - chost: riscv64-linux-gnu - packages: qemu-user crossbuild-essential-riscv64 - - - name: Ubuntu GCC RISCV64 Compat No Opt - os: ubuntu-latest - compiler: riscv64-linux-gnu-gcc - configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies - chost: riscv64-linux-gnu - packages: qemu-user crossbuild-essential-riscv64 - - - name: Ubuntu GCC 14 LoongArch64 - os: ubuntu-latest - compiler: loongarch64-linux-gnu-gcc-14 - configure-args: --warn --static - chost: loongarch64-linux-gnu - packages: qemu-user gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu libc-dev-loong64-cross - cflags: -static - ldflags: -static - - - name: Ubuntu GCC 14 LoongArch64 Compat No Opt - os: ubuntu-latest - compiler: loongarch64-linux-gnu-gcc-14 - configure-args: --warn --static --zlib-compat --without-optimizations --without-new-strategies - chost: loongarch64-linux-gnu - packages: qemu-user gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu libc-dev-loong64-cross - cflags: -static - ldflags: -static - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Add ubuntu mirrors - if: runner.os == 'Linux' && matrix.packages - # Github Actions caching proxy is at times unreliable - run: | - echo -e 'http://azure.archive.ubuntu.com/ubuntu\tpriority:1\n' | sudo tee /etc/apt/mirrors.txt - curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt - sudo sed -i 's#http://azure.archive.ubuntu.com/ubuntu/#mirror+file:/etc/apt/mirrors.txt#' /etc/apt/sources.list - - - name: Install packages (Ubuntu) - if: runner.os == 'Linux' && matrix.packages - run: | - sudo apt-get update - sudo apt-get install -y ${{ matrix.packages }} - - - name: Install packages (macOS) - if: runner.os == 'macOS' - run: brew install ninja ${{ matrix.packages }} - env: - HOMEBREW_NO_INSTALL_CLEANUP: 1 - - - name: Install Emscripten - if: contains(matrix.name, 'WASM32') - uses: mymindstorm/setup-emsdk@v14 - - - name: Generate project files - run: | - mkdir ${{ matrix.build-dir || '.not-used' }} - cd ${{ matrix.build-dir || '.' }} - ${{ matrix.configure-prefix }} ${{ matrix.build-src-dir || '.' }}/configure ${{ matrix.configure-args }} - env: - CC: ${{ matrix.compiler }} - CFLAGS: ${{ matrix.cflags }} - LDFLAGS: ${{ matrix.ldflags }} - CHOST: ${{ matrix.chost }} - EMU_RUN: ${{ matrix.emu-run }} - CI: true - - - name: Compile source code - run: make -j5 - working-directory: ${{ matrix.build-dir }} - - - name: Run test cases - run: make test - working-directory: ${{ matrix.build-dir }} - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: ${{ matrix.name }} (configure) - path: | - **/Makefile - **/configure.log - retention-days: 30 diff --git a/neozip/.github/workflows/fuzz.yml b/neozip/.github/workflows/fuzz.yml deleted file mode 100644 index 9954926722..0000000000 --- a/neozip/.github/workflows/fuzz.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: OSS-Fuzz -on: - pull_request: - workflow_dispatch: - push: - branches: - - stable - - develop - - pre-release - - '2.*' - tags: - - '*' -concurrency: - # Group by workflow name and branch/PR to only cancel runs on the same branch - group: ${{ github.workflow }}-${{ github.ref }} - # Only cancels in-progress runs if the branch is not 'stable' or 'develop' - cancel-in-progress: ${{ !contains(fromJSON('["refs/heads/stable", "refs/heads/develop"]'), github.ref) }} - -jobs: - fuzzing: - name: Fuzzing - runs-on: ubuntu-latest - steps: - - name: Build Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master - with: - oss-fuzz-project-name: 'zlib-ng' - dry-run: false - - - name: Run Fuzzers - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master - with: - oss-fuzz-project-name: 'zlib-ng' - fuzz-seconds: 600 - dry-run: false - - - name: Upload Crash - uses: actions/upload-artifact@v7 - if: failure() - with: - name: artifacts - path: ./out/artifacts diff --git a/neozip/.github/workflows/libpng.yml b/neozip/.github/workflows/libpng.yml deleted file mode 100644 index 99e690bf76..0000000000 --- a/neozip/.github/workflows/libpng.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Libpng -on: [workflow_call, workflow_dispatch] -jobs: - libpng: - name: Ubuntu Clang - runs-on: ubuntu-latest - steps: - - name: Checkout repository (zlib-ng) - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Generate project files (zlib-ng) - run: | - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=OFF \ - -DZLIB_COMPAT=ON \ - -DZLIB_ENABLE_TESTS=OFF - env: - CC: clang - CFLAGS: -fPIC - CI: true - - - name: Compile source code (zlib-ng) - run: cmake --build . -j5 --config Release - - - name: Checkout repository (libpng) - uses: actions/checkout@v6 - with: - repository: glennrp/libpng - path: libpng - show-progress: 'false' - - - name: Generate project files (libpng) - run: | - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DPNG_TESTS=ON \ - -DPNG_STATIC=OFF \ - -DZLIB_INCLUDE_DIR=.. \ - -DZLIB_LIBRARY=$PWD/../libz.a - working-directory: libpng - env: - CC: clang - CI: true - - - name: Compile source code (libpng) - run: cmake --build . -j5 --config Release - working-directory: libpng - - - name: Run test cases (libpng) - run: ctest -j5 -C Release --output-on-failure --max-width 120 - working-directory: libpng diff --git a/neozip/.github/workflows/link.yml b/neozip/.github/workflows/link.yml deleted file mode 100644 index d90571cb97..0000000000 --- a/neozip/.github/workflows/link.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Link -on: [workflow_call, workflow_dispatch] -jobs: - zlib: - name: Link zlib - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Checkout zlib repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - repository: madler/zlib - path: zlib - - - name: Generate project files (zlib) - run: cmake -S zlib -B zlib/build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF - - - name: Compile source code (zlib) - run: cmake --build zlib/build -j5 --config Release - - - name: Generate project files (native) - run: cmake -S . -B native -DZLIB_COMPAT=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DZLIB_LIBRARIES=../zlib/build/libz.a -DZLIB_INCLUDE_DIR="../zlib/build;../zlib" - - - name: Compile source code (native) - run: cmake --build native -j5 --config Release - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: Link zlib (CMake Logs) - path: | - **/CMakeFiles/CMakeOutput.log - **/CMakeFiles/CMakeError.log - retention-days: 30 - - zlib-ng-compat: - name: Link zlib-ng compat - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Generate project files (compat) - run: cmake -S . -B compat -DZLIB_COMPAT=ON -DZLIB_ENABLE_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_MAINTAINER_WARNINGS=ON - - - name: Compile source code (compat) - run: cmake --build compat -j5 --config Release - - - name: Generate project files (native) - run: cmake -S . -B native -DZLIB_COMPAT=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DZLIB_LIBRARIES=../compat/libz.a -DZLIB_INCLUDE_DIR=../compat - - - name: Compile source code (native) - run: cmake --build native -j5 --config Release - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: Link zlib-ng compat (CMake Logs) - path: | - **/CMakeFiles/CMakeOutput.log - **/CMakeFiles/CMakeError.log - retention-days: 30 diff --git a/neozip/.github/workflows/lint.yml b/neozip/.github/workflows/lint.yml deleted file mode 100644 index 29c15d3519..0000000000 --- a/neozip/.github/workflows/lint.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Lint -on: [pull_request, workflow_dispatch] - -jobs: - lint: - name: Lint - runs-on: ubuntu-slim - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Whitespace errors - run: | - BASE_SHA="${{ github.event.pull_request.base.sha }}" - BASE_SHA="${BASE_SHA:-4b825dc642cb6eb9a060e54bf8d69288fbee4904}" - git config core.whitespace blank-at-eol - git diff --color --check "$BASE_SHA" -- './*' ':!*.patch' ':!*.pdf' ':!/test/data/' diff --git a/neozip/.github/workflows/orchestrator.yml b/neozip/.github/workflows/orchestrator.yml deleted file mode 100644 index fdcc66d317..0000000000 --- a/neozip/.github/workflows/orchestrator.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Orchestrator -on: [push, pull_request, workflow_dispatch] -concurrency: - # Group by workflow name and branch/PR to only cancel runs on the same branch - group: ${{ github.workflow }}-${{ github.ref }} - # Only cancels in-progress runs if the branch is not 'stable' or 'develop' - cancel-in-progress: ${{ !contains(fromJSON('["refs/heads/stable", "refs/heads/develop"]'), github.ref) }} - -jobs: - # Workflows not handled here: fuzz, lint, release - - # OSB runs first, the rest won't start unless it succeeds - # This guards against spending a lot of time testing code that is unable to compile. - osb: - name: OSB - uses: ./.github/workflows/osb.yml - secrets: inherit - - analyze: - name: Static Analysis - needs: osb - uses: ./.github/workflows/analyze.yml - secrets: inherit - - cmake: - name: CMake - needs: osb - uses: ./.github/workflows/cmake.yml - secrets: inherit - - codeql: - name: CodeQL - needs: osb - uses: ./.github/workflows/codeql.yml - secrets: inherit - - configure: - name: Configure - needs: osb - uses: ./.github/workflows/configure.yml - secrets: inherit - - libpng: - name: Libpng - needs: osb - uses: ./.github/workflows/libpng.yml - secrets: inherit - - link: - name: Link - needs: osb - uses: ./.github/workflows/link.yml - secrets: inherit - - pigz: - name: Pigz - needs: osb - uses: ./.github/workflows/pigz.yml - secrets: inherit - - pkgcheck: - name: Package Check - needs: osb - uses: ./.github/workflows/pkgcheck.yml - secrets: inherit - - # This job only starts if both cmake and pigz workflows above succeed - final-upload: - needs: [cmake, pigz] - runs-on: ubuntu-slim - if: success() - steps: - - name: Coveralls - Finalize - uses: coverallsapp/github-action@v2 - if: (env.COVERALLS_REPO_TOKEN != '' || github.repository == 'zlib-ng/zlib-ng') - with: - parallel-finished: true - env: - COVERALLS_REPO_TOKEN: "${{ secrets.COVERALLS_REPO_TOKEN }}" diff --git a/neozip/.github/workflows/osb.yml b/neozip/.github/workflows/osb.yml deleted file mode 100644 index 8330211cce..0000000000 --- a/neozip/.github/workflows/osb.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: OSB -on: [workflow_call, workflow_dispatch] -jobs: - cmake: - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - timeout-minutes: 80 - strategy: - fail-fast: false - matrix: - include: - - name: Ubuntu GCC OSB - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - build-dir: ../build - build-src-dir: ../zlib-ng - cmake-args: -DWITH_BENCHMARKS=ON - - - name: Ubuntu GCC OSB add_subdirectory - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - build-dir: ../build - build-src-dir: ../zlib-ng/test/add-subdirectory-project - cmake-args: -DWITH_BENCHMARKS=ON - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: false - - - name: Make source tree read-only - shell: bash - run: chmod -R a-w . - - - name: Generate project files - shell: bash - run: | - cmake -S ${{ matrix.build-src-dir || '.' }} -B ${{ matrix.build-dir || '.' }} \ - ${{ matrix.cmake-args }} \ - -DWITH_MAINTAINER_WARNINGS=ON - env: - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.cxx-compiler }} - CI: true - - - name: Compile source code - run: cmake --build ${{ matrix.build-dir || '.' }} --verbose -j5 - - - name: Run test cases - run: ctest --verbose -C Release --output-on-failure --max-width 120 -j 5 - working-directory: ${{ matrix.build-dir || '.' }} - - - name: Make source tree writable - shell: bash - run: chmod -R +w . - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: ${{ matrix.name }} - path: | - **/CMakeFiles/CMakeOutput.log - **/CMakeFiles/CMakeError.log - **/Testing/Temporary/* - retention-days: 30 diff --git a/neozip/.github/workflows/pigz.yml b/neozip/.github/workflows/pigz.yml deleted file mode 100644 index 9cc5ff3e55..0000000000 --- a/neozip/.github/workflows/pigz.yml +++ /dev/null @@ -1,135 +0,0 @@ -name: Pigz -on: [workflow_call, workflow_dispatch] -jobs: - pigz: - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - name: Ubuntu GCC - os: ubuntu-latest - compiler: gcc - coverage: ubuntu_gcc_pigz - - - name: Ubuntu GCC Symbol Prefix - os: ubuntu-latest - compiler: gcc - coverage: ubuntu_gcc_pigz_prefix - cmake-args: -DZLIB_SYMBOL_PREFIX=zTest_ - - - name: Ubuntu Clang - os: ubuntu-latest - compiler: clang - packages: llvm-15 llvm-15-tools - gcov-exec: llvm-cov-15 gcov - coverage: ubuntu_clang_pigz - - - name: Ubuntu Clang No Optim - os: ubuntu-latest - compiler: clang - packages: llvm-15 llvm-15-tools - gcov-exec: llvm-cov-15 gcov - coverage: ubuntu_clang_pigz_no_optim - cmake-args: -DWITH_OPTIM=OFF - - # Use v2.6 due to NOTHREADS bug https://github.com/madler/pigz/issues/97 - - name: Ubuntu Clang No Threads - os: ubuntu-latest - compiler: clang - packages: llvm-15 llvm-15-tools - gcov-exec: llvm-cov-15 gcov - coverage: ubuntu_clang_pigz_no_threads - cmake-args: -DWITH_THREADS=OFF -DPIGZ_VERSION=v2.6 - - - name: Ubuntu GCC AARCH64 - os: ubuntu-24.04-arm - coverage: ubuntu_gcc_pigz_aarch64 - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Checkout test corpora - uses: actions/checkout@v6 - with: - repository: zlib-ng/corpora - path: test/data/corpora - show-progress: 'false' - - - name: Add ubuntu mirrors - if: runner.os == 'Linux' && matrix.packages - # Github Actions caching proxy is at times unreliable - run: | - echo -e 'http://azure.archive.ubuntu.com/ubuntu\tpriority:1\n' | sudo tee /etc/apt/mirrors.txt - curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt - sudo sed -i 's#http://azure.archive.ubuntu.com/ubuntu/#mirror+file:/etc/apt/mirrors.txt#' /etc/apt/sources.list - - - name: Install packages (Ubuntu) - if: runner.os == 'Linux' && matrix.packages - run: | - sudo apt-get update - sudo apt-get install -y ${{ matrix.packages }} - - - name: Generate project files - run: | - cmake ${{ matrix.cmake-args }} \ - -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} \ - -DBUILD_SHARED_LIBS=OFF \ - -DZLIB_ROOT=../.. \ - -DWITH_CODE_COVERAGE=ON \ - -DWITH_MAINTAINER_WARNINGS=ON - working-directory: test/pigz - env: - CC: ${{ matrix.compiler }} - CFLAGS: ${{ matrix.cflags }} - LDFLAGS: ${{ matrix.ldflags }} - CI: true - - - name: Compile source code - run: cmake --build . -j5 --config ${{ matrix.build-config || 'Release' }} - working-directory: test/pigz - - - name: Run test cases - run: ctest --verbose -C Release --output-on-failure --max-width 120 -j ${{ matrix.parallel-jobs || '5' }} - working-directory: test/pigz - - - name: Generate coverage report - if: matrix.coverage - run: | - python3 -u -m pip install gcovr - python3 -m gcovr -j 5 --gcov-ignore-parse-errors --verbose \ - --exclude '(.*/|^)(_deps|benchmarks)/.*' \ - --exclude-unreachable-branches \ - --merge-mode-functions separate \ - --merge-lines \ - --gcov-executable "${{ matrix.gcov-exec || 'gcov' }}" \ - --root . \ - --xml --output ${{ matrix.coverage }}.xml - - - name: Upload job coverage report to coveralls - uses: coverallsapp/github-action@v2 - env: - COVERALLS_REPO_TOKEN: "${{ secrets.COVERALLS_REPO_TOKEN }}" - if: | - matrix.codecov - && (env.COVERALLS_REPO_TOKEN != '' || github.repository == 'zlib-ng/zlib-ng') - with: - file: ${{ matrix.codecov }}.xml - flag-name: "${{ matrix.name }}-${{ github.event_name }}" - parallel: true - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: ${{ matrix.name }} (cmake) - path: | - **/CMakeFiles/CMakeOutput.log - **/CMakeFiles/CMakeError.log - **/Testing/Temporary/* - ${{ matrix.coverage }}.xml - retention-days: 30 diff --git a/neozip/.github/workflows/pkgcheck.yml b/neozip/.github/workflows/pkgcheck.yml deleted file mode 100644 index 8c8d17ea3c..0000000000 --- a/neozip/.github/workflows/pkgcheck.yml +++ /dev/null @@ -1,189 +0,0 @@ -name: Package Check -on: [workflow_call, workflow_dispatch] -jobs: - pkgcheck: - name: ${{ matrix.name }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - name: Ubuntu GCC - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - - - name: Ubuntu GCC -m32 - os: ubuntu-latest - compiler: gcc - cxx-compiler: g++ - packages: gcc-multilib g++-multilib - cmake-args: -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 - cflags: -m32 - cxxflags: -m32 - ldflags: -m32 - - - name: Ubuntu GCC ARM HF - os: ubuntu-24.04-arm - chost: arm-linux-gnueabihf - compiler: arm-linux-gnueabihf-gcc - cxx-compiler: arm-linux-gnueabihf-g++ - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake - packages: qemu-user gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-dev-armhf-cross - - - name: Ubuntu GCC AARCH64 - os: ubuntu-24.04-arm - compiler: gcc - cxx-compiler: g++ - - - name: Ubuntu GCC MIPS - os: ubuntu-latest - chost: mips-linux-gnu - compiler: mips-linux-gnu-gcc - cxx-compiler: mips-linux-gnu-g++ - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips.cmake - packages: qemu-user gcc-mips-linux-gnu g++-mips-linux-gnu libc6-dev-mips-cross - - - name: Ubuntu GCC MIPS64 - os: ubuntu-latest - chost: mips64-linux-gnuabi64 - compiler: mips64-linux-gnuabi64-gcc - cxx-compiler: mips64-linux-gnuabi64-g++ - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips64.cmake - packages: qemu-user gcc-mips64-linux-gnuabi64 g++-mips64-linux-gnuabi64 libc6-dev-mips64-cross - - - name: Ubuntu GCC PPC - os: ubuntu-latest - chost: powerpc-linux-gnu - compiler: powerpc-linux-gnu-gcc - cxx-compiler: powerpc-linux-gnu-g++ - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake - packages: qemu-user gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc6-dev-powerpc-cross - - - name: Ubuntu GCC PPC64LE - os: ubuntu-latest - chost: powerpc64le-linux-gnu - compiler: powerpc64le-linux-gnu-gcc - cxx-compiler: powerpc64le-linux-gnu-g++ - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake - packages: qemu-user gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu libc6-dev-ppc64el-cross - - - name: Ubuntu GCC RISC-V - os: ubuntu-latest - chost: riscv64-linux-gnu - compiler: riscv64-linux-gnu-gcc - cxx-compiler: riscv64-linux-gnu-g++ - cmake-args: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-riscv.cmake - packages: qemu-user gcc-riscv64-linux-gnu g++-riscv64-linux-gnu libc6-dev-riscv64-cross - - - name: macOS Clang - os: macOS-latest - compiler: clang - cxx-compiler: clang++ - - - name: macOS Clang Symbol Prefix - os: macOS-latest - compiler: clang - cxx-compiler: clang++ - cmake-args: -DZLIB_SYMBOL_PREFIX=zTest_ - configure-args: --sprefix=zTest_ - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - show-progress: 'false' - - - name: Add ubuntu mirrors - if: runner.os == 'Linux' && matrix.packages - run: | - # Github Actions caching proxy is at times unreliable - echo -e 'http://azure.archive.ubuntu.com/ubuntu\tpriority:1\n' | sudo tee /etc/apt/mirrors.txt - curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt - sudo sed -i 's#http://azure.archive.ubuntu.com/ubuntu/#mirror+file:/etc/apt/mirrors.txt#' /etc/apt/sources.list - - - name: Install packages (Ubuntu) - if: runner.os == 'Linux' - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends ${{ matrix.packages }} \ - abigail-tools \ - diffoscope \ - ninja-build - - - name: Install packages (macOS) - if: runner.os == 'macOS' - run: brew install ninja diffoscope ${{ matrix.packages }} - env: - HOMEBREW_NO_INSTALL_CLEANUP: 1 - - - name: Select Xcode version (macOS) - if: runner.os == 'macOS' - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: '16.4' - - - name: Compare builds - run: sh test/pkgcheck.sh - env: - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.cxx-compiler }} - CFLAGS: ${{ matrix.cflags }} - CXXFLAGS: ${{ matrix.cxxflags }} - CHOST: ${{ matrix.chost }} - CMAKE_ARGS: ${{ matrix.cmake-args }} -DWITH_ALL_FALLBACKS=ON - CONFIGURE_ARGS: ${{ matrix.configure-args }} - LDFLAGS: ${{ matrix.ldflags }} - - - name: Compare builds (compat) - run: sh test/pkgcheck.sh --zlib-compat - env: - CC: ${{ matrix.compiler }} - CFLAGS: ${{ matrix.cflags }} - CHOST: ${{ matrix.chost }} - CMAKE_ARGS: ${{ matrix.cmake-args }} -DWITH_ALL_FALLBACKS=ON - CONFIGURE_ARGS: ${{ matrix.configure-args }} - LDFLAGS: ${{ matrix.ldflags }} - - - name: Check ABI - # macOS runner does not contain abigail - if: runner.os != 'macOS' - run: sh test/abicheck.sh --refresh-if - env: - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.cxx-compiler }} - CFLAGS: ${{ matrix.cflags }} - CXXFLAGS: ${{ matrix.cxxflags }} - CHOST: ${{ matrix.chost }} - CMAKE_ARGS: ${{ matrix.cmake-args }} - CONFIGURE_ARGS: ${{ matrix.configure-args }} - LDFLAGS: ${{ matrix.ldflags }} - - - name: Check ABI (compat) - # macOS runner does not contain abigail - if: runner.os != 'macOS' - run: sh test/abicheck.sh --zlib-compat --refresh-if - env: - CC: ${{ matrix.compiler }} - CXX: ${{ matrix.cxx-compiler }} - CFLAGS: ${{ matrix.cflags }} - CXXFLAGS: ${{ matrix.cxxflags }} - CHOST: ${{ matrix.chost }} - CMAKE_ARGS: ${{ matrix.cmake-args }} - CONFIGURE_ARGS: ${{ matrix.configure-args }} - LDFLAGS: ${{ matrix.ldflags }} - - - name: Upload build errors - uses: actions/upload-artifact@v7 - if: failure() - with: - name: ${{ matrix.name }} - path: | - **/*.abi - btmp1/configure.log - btmp1/CMakeFiles/CMakeOutput.log - btmp1/CMakeFiles/CMakeError.log - btmp2/configure.log - btmp2/CMakeFiles/CMakeOutput.log - btmp2/CMakeFiles/CMakeError.log - retention-days: 30 diff --git a/tomlplusplus/.github/FUNDING.yml b/tomlplusplus/.github/FUNDING.yml deleted file mode 100644 index c1c954eb2a..0000000000 --- a/tomlplusplus/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: marzer diff --git a/tomlplusplus/.github/ISSUE_TEMPLATE/bug_report.md b/tomlplusplus/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 6b2709c26b..0000000000 --- a/tomlplusplus/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -name: Bug report -about: Regular ol' bugs. -title: '' -labels: [ "bug" ] -assignees: marzer - ---- - -<!-- - Replace the HTML comments below with the requested information. - - Please be as thorough as possible, and don't delete this template and roll your own. - I'm a human being with a busy life and concerns of my own - if you force me to jump through many - information-gathering hoops without first making an effort yourself, there's a high chance I'll - summarily close your issue as 'not a bug'. - - Also please *don't* paste screenshots of logs, compiler messages, et cetera. Paste their actual text. - I can't copy/paste/search text from an image. - - Thanks for contributing! ---> - - - -## Environment -**toml++ version and/or commit hash:** -<!-- - If you're using the single-header version of the library, the version number is right at the top of the file. - Otherwise you can find it by opening toml++/impl/version.h; it'll be represented by three defines - - TOML_LIB_MAJOR, TOML_LIB_MINOR and TOML_LIB_PATCH. - - If you're not using any particular release and have just cloned the repository directly, - please also include the the commit hash. ---> - - -**Compiler:** -<!-- - The compiler & version, e.g. "Clang 9" ---> - - - -**C++ standard mode:** -<!-- - The C++ standard level you were targeting, e.g. 17, 20, 'latest' ---> - - - -**Target arch:** -<!-- - The architecture you were targeting, e.g. x86, x64, ARM ---> - - - -**Library configuration overrides:** -<!-- - If you've explicitly set any of the library configuration macros, - list them here (e.g. TOML_EXCEPTIONS=0, TOML_ENABLE_UNRELEASED_FEATURES=1, etc.) ---> - - - -**Relevant compilation flags:** -<!-- - Any relevant compilation flags that might help me reproduce your issue exactly (e.g. -fno-exceptions). ---> - - - -## Describe the bug -<!-- - A clear and concise description of the bug goes here. - - Please include compiler error messages as appropriate. - - *DON'T PASTE SCREENSHOTS* ---> - - - -## Steps to reproduce (or a small repro code sample) -<!-- - As above. If you feel that the information you've already given covers it sufficiently and you don't - need this section, you can delete it. ---> - - - -## Additional information -<!-- - Any post-scripts, addendums, or additional pieces of context, as necessary. - - *DON'T PASTE SCREENSHOTS* ---> diff --git a/tomlplusplus/.github/ISSUE_TEMPLATE/config.yml b/tomlplusplus/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ba13e0cec..0000000000 --- a/tomlplusplus/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/tomlplusplus/.github/ISSUE_TEMPLATE/feature_request.md b/tomlplusplus/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 76688cdadc..0000000000 --- a/tomlplusplus/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Feature request -about: Want to see something added or improved? Tell me all about it. -title: '' -labels: feature -assignees: marzer - ---- - -<!-- - Replace the HTML comments below with the requested information. - Please don't delete this template and roll your own! - - Thanks for contributing! ---> - - - -**Is your feature request related to a problem? Please describe.** -<!-- - "I'd like a way to Fooify all Bars in one go. Currently I have to iterate through them and - do it individually myself, which is cumbersome. ---> - - - -**Describe the solution you'd like** -<!-- - A helper function like fooify_all_bars() would be great. ---> - - - - -**Additional context** -<!-- - Add any other context or screenshots about the feature request here. ---> diff --git a/tomlplusplus/.github/ISSUE_TEMPLATE/spec_bug_report.md b/tomlplusplus/.github/ISSUE_TEMPLATE/spec_bug_report.md deleted file mode 100644 index fbb3aeacd8..0000000000 --- a/tomlplusplus/.github/ISSUE_TEMPLATE/spec_bug_report.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: TOML spec conformance bug -about: Bugs relating to the library's TOML spec conformance (or lack thereof). -title: '' -labels: [ "bug", "TOML spec" ] -assignees: marzer - ---- - -<!-- - Replace the HTML/TOML comments below with the requested information. - Please don't delete this template and roll your own! - - Thanks for contributing! ---> - - -## The non-conforming TOML snippet -```toml - -# your TOML here - -``` - - -## What you expected -<!-- - e.g. a link to, or snippet from, the TOML spec, or some reasonable description thereof ---> - - -## What you got -<!-- - e.g toml-test output ---> - - -## Environment -**toml++ version and/or commit hash:** -<!-- - If you're using the single-header version of the library, the version number is right at the top of the file. - Otherwise you can find it by opening toml++/impl/version.h; it'll be represented by three defines - - TOML_LIB_MAJOR, TOML_LIB_MINOR and TOML_LIB_PATCH. - - If you're not using any particular release and are instead just living large at HEAD of master, the commit hash - would be super helpful too, though it's not critical. - ---> - -**Any other useful information:** -<!-- - Anything else you think will help me fix the issue. Since this report is for general spec conformance handling - you probably don't need to worry about compiler versions, compilation flags, et cetera, though include them if - you feel they're relevant. ---> diff --git a/tomlplusplus/.github/pull_request_template.md b/tomlplusplus/.github/pull_request_template.md deleted file mode 100644 index 4632299fe4..0000000000 --- a/tomlplusplus/.github/pull_request_template.md +++ /dev/null @@ -1,38 +0,0 @@ -<!-- - Please replace the HTML comments below with the requested information. - Thanks for contributing! ---> - -**What does this change do?** - -<!-- - Changes all Foos to Bars. ----> - -**Is it related to an exisiting bug report or feature request?** - -<!-- - Fixes #69. ----> - -**Pre-merge checklist** - -<!-- - Not all of these will necessarily apply, particularly if you're not making a code change (e.g. fixing documentation). - That's OK. Tick the ones that do by placing an x in them, e.g. [x] ----> - -- [ ] I've read [CONTRIBUTING.md] -- [ ] I've rebased my changes against the current HEAD of `origin/master` (if necessary) -- [ ] I've added new test cases to verify my change -- [ ] I've regenerated toml.hpp ([how-to]) -- [ ] I've updated any affected documentation -- [ ] I've rebuilt and run the tests with at least one of: - - [ ] Clang 8 or higher - - [ ] GCC 8 or higher - - [ ] MSVC 19.20 (Visual Studio 2019) or higher -- [ ] I've added my name to the list of contributors in [README.md](https://github.com/marzer/tomlplusplus/blob/master/README.md) - -[CONTRIBUTING.md]: https://github.com/marzer/tomlplusplus/blob/master/CONTRIBUTING.md -[how-to]: https://github.com/marzer/tomlplusplus/blob/master/CONTRIBUTING.md#regenerating-tomlhpp -[README.md]: https://github.com/marzer/tomlplusplus/blob/master/README.md diff --git a/tomlplusplus/.github/workflows/ci.yaml b/tomlplusplus/.github/workflows/ci.yaml deleted file mode 100644 index cdf67a42a0..0000000000 --- a/tomlplusplus/.github/workflows/ci.yaml +++ /dev/null @@ -1,200 +0,0 @@ -name: ci - -on: - push: - branches-ignore: - - "gh-pages" - paths: - - "**.h" - - "**.hpp" - - "**.cpp" - - "**.inl" - - "**.py" - - "**/meson.build" - - "**/workflows/**.yaml" - pull_request: - branches-ignore: - - "gh-pages" - paths: - - "**.h" - - "**.hpp" - - "**.cpp" - - "**.inl" - - "**.py" - - "**/meson.build" - - "**/workflows/**.yaml" - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - clang_version: "14" - gcc_version: "11" - -jobs: - linux: - strategy: - fail-fast: false - matrix: - compiler: - - "clang" - - "gcc" - linker: - - "lld" - type: - - "debug" - - "release" - - runs-on: ubuntu-latest - - defaults: - run: - shell: bash - - steps: - - name: Install base dependencies - run: | - sudo apt -y update - sudo apt -y install --no-install-recommends git ninja-build libstdc++-${{ env.gcc_version }}-dev locales-all - - - uses: actions/checkout@v3 - - - name: Install python dependencies - run: | - pip3 install --user --no-cache-dir --upgrade meson - pip3 install --user --no-cache-dir --upgrade -r tools/requirements.txt - - - name: Check toml.hpp - run: | - cd tools - python3 ci_single_header_check.py - - - name: Install lld - if: ${{ startsWith(matrix.linker, 'lld') }} - run: | - sudo apt -y install --no-install-recommends lld-${{ env.clang_version }} - sudo update-alternatives --install /usr/bin/ld.lld ld.lld /usr/bin/ld.lld-${{ env.clang_version }} 1000 - - - name: Install clang - if: ${{ startsWith(matrix.compiler, 'clang') }} - run: | - sudo apt -y install --no-install-recommends clang-${{ env.clang_version }} - sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-${{ env.clang_version }} 1000 - sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-${{ env.clang_version }} 1000 - - - name: Install gcc - if: ${{ startsWith(matrix.compiler, 'gcc') }} - run: | - sudo apt -y install --no-install-recommends gcc-${{ env.gcc_version }} g++-${{ env.gcc_version }} - sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-${{ env.gcc_version }} 1000 - sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-${{ env.gcc_version }} 1000 - - - name: Configure locales - run: | - sudo locale-gen 'en_US.utf8' 'ja_JP.utf8' 'de_DE.utf8' 'it_IT.utf8' 'tr_TR.utf8' 'fi_FI.utf8' 'fr_FR.utf8' 'zh_CN.utf8' - - - name: Configure Meson - run: | - CXX=c++ CXX_LD=${{ matrix.linker }} meson setup build --buildtype=${{ matrix.type }} -Ddevel=true -Db_lto=false - - - name: Build - run: meson compile -C build - - - name: Test - run: meson test -C build --verbose - - windows: - strategy: - fail-fast: false - matrix: - type: - - "debug" - - "release" - permissive: - - false - - true - arch: - - name: "x64" - runner: "windows-2022" - - name: "arm64" - runner: "windows-11-arm" - runs-on: ${{ matrix.arch.runner }} - - defaults: - run: - shell: cmd - - steps: - - name: Install dependencies - run: | - python3 -m pip install -U pip - pip3 install meson ninja - - - uses: actions/checkout@v3 - - - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: ${{ matrix.arch.name }} - - - name: Configure Meson - run: meson setup build --vsenv --buildtype=${{ matrix.type }} -Ddevel=true -Db_lto=false -Dpermissive=${{ matrix.permissive }} - - - name: Build - run: meson compile -C build - - - name: Test - run: meson test -C build --verbose -# tipi-build-linux: -# name: tipi.build project build and dependency resolution -# runs-on: ubuntu-latest -# if: github.ref == 'refs/heads/master' -# container: tipibuild/tipi-ubuntu -# -# env: -# HOME: /root -# -# steps: -# - uses: actions/checkout@v3 -# - run: mkdir -p ~/.tipi -# -# # checking if the tomlplusplus project builds and passes tests -# - name: Build as project target linux-cxx17 (run tests 'odr_test_1' and 'main') -# run: tipi . --dont-upgrade --verbose -t linux-cxx17 --test "odr_test_1|main" -# -# - name: Build as project target linux-cxx20 (run tests 'odr_test_1' and 'main') -# run: tipi . --dont-upgrade --verbose -t linux-cxx20 --test "odr_test_1|main" -# -# - name: Cleanup project builds -# run: rm -r ./build -# -# - name: "Get branch name and save to env" -# env: -# IS_PR: ${{ github.EVENT_NAME == 'pull_request' }} -# run: | -# if ${IS_PR}; then -# BRANCH_NAME="${GITHUB_HEAD_REF}" -# else -# BRANCH_NAME="${GITHUB_REF##*/}" -# fi -# echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV -# -# # trying if pulling the dependency with tipi works properly -# - name: Build as dependency -# run: | -# cd examples/ -# -# # create test directory and copy the simple_parser.cpp in there -# mkdir test-as-dep -# cp examples.h test-as-dep/. -# cp simple_parser.cpp test-as-dep/. -# cd test-as-dep/ -# -# # create a deps file referencing the commit that triggered this build as dependency -# mkdir .tipi -# echo '{ "requires": { "${{ github.event.repository.full_name }}": { "@": "${{ env.BRANCH_NAME }}" } } }' > .tipi/deps -# -# # build -# tipi . --dont-upgrade --verbose -t linux-cxx17 -# ./build/linux-cxx17/bin/simple_parser ../example.toml diff --git a/tomlplusplus/.github/workflows/gh-pages.yaml b/tomlplusplus/.github/workflows/gh-pages.yaml deleted file mode 100644 index 2a1f3c6667..0000000000 --- a/tomlplusplus/.github/workflows/gh-pages.yaml +++ /dev/null @@ -1,48 +0,0 @@ -name: gh-pages - -on: - push: - branches: - - master - paths: - - "**.h" - - "**.hpp" - - "**.dox" - - "**.md" - - "docs/**" - - "**/gh-pages.yaml" - workflow_dispatch: - -jobs: - gh-pages: - runs-on: ubuntu-latest - - defaults: - run: - shell: bash - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Install dependencies - run: | - sudo apt -y update - sudo apt -y install --no-install-recommends git doxygen - pip3 install --user --upgrade poxy - - - name: Generate docs - run: | - git fetch origin master:refs/remotes/origin/master --tags --force - git remote set-head origin -a - git checkout master - git pull --force - cd docs - poxy --verbose --git-tags - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs/html diff --git a/uvim/.github/FUNDING.yml b/uvim/.github/FUNDING.yml deleted file mode 100644 index 1d7ad39f95..0000000000 --- a/uvim/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -custom: https://www.vim.org/sponsor/index.php diff --git a/uvim/.github/ISSUE_TEMPLATE/bug_report.yml b/uvim/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 7be95d263a..0000000000 --- a/uvim/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: Bug report -description: Create a report to help us improve Vim. -labels: [bug] - -body: - - type: markdown - attributes: - value: | - Thanks for reporting issues of Vim! - - If you want to report a security issue, instead of reporting it here publicly, - please disclose it privately via mail to vim-security@googlegroups.com. - (It's a private list read only by the maintainers, - but anybody can post, after moderation.) - - If you find a problem with syntax, indent and other runtime files, **please - first try to contact the maintainer directly**. - Look in the header of the file for the name, email address, github handle and/or - upstream repository. You may also check the MAINTAINERS file. - If the maintainer **does not respond**, open an issue here. - - To make it easier for us to help you please enter detailed information below. - - type: textarea - attributes: - label: Steps to reproduce - placeholder: | - 1. - 2. - 3. - 4. - validations: - required: true - - type: textarea - attributes: - label: Expected behaviour - placeholder: A clear and concise description of what you expected to happen. - validations: - required: true - - type: input - attributes: - label: Version of Vim - description: > - Including patch level, use ":version" to see it [e.g. 8.2.1234] - validations: - required: true - - type: textarea - attributes: - label: Environment - description: > - OS [e.g. Ubuntu 21.10], terminal [e.g. GNOME Terminal 3.38.1], value of $TERM, shell [e.g. bash 5.1.8]; anything that might matter - placeholder: | - Operating system: - Terminal: - Value of $TERM: - Shell: - validations: - required: true - - type: textarea - attributes: - label: Logs and stack traces - placeholder: Insert log or other text here (if necessary) - render: shell diff --git a/uvim/.github/ISSUE_TEMPLATE/feature_request.md b/uvim/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 8fa535d540..0000000000 --- a/uvim/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -name: Feature request -about: Suggest an enhancement for Vim -title: '' -labels: enhancement - ---- - -_Instructions: Replace the template text and remove irrelevant text (including this line)_ - -**Is your feature request about something that is currently impossible or hard to do? Please describe the problem.** -A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...] -(If it is related to runtime files, please check their header for where to discuss enhancements.) - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/uvim/.github/MAINTAINERS b/uvim/.github/MAINTAINERS deleted file mode 100644 index 17458f2d26..0000000000 --- a/uvim/.github/MAINTAINERS +++ /dev/null @@ -1,746 +0,0 @@ -# Lines starting with '#' are comments. -# Each line is a file pattern followed by one or more owners. -# You can use github users with @user or email addresses - -# These owners will be the default owners for everything in the repo. -#* @brammool - -# Order is important. The last matching pattern has the most precedence. -# So if a pull request only touches javascript files, only these owners -# will be requested to review. - -nsis/lang/russian.nsi @RestorerZ -runtime/autoload/context.vim @lifepillar -runtime/autoload/freebasic.vim @dkearns -runtime/autoload/hare.vim @selenebun -runtime/autoload/hcl.vim @gpanders -runtime/autoload/javascriptcomplete.vim @jsit -runtime/autoload/modula2.vim @dkearns -runtime/autoload/rubycomplete.vim @segfault @dkearns -runtime/autoload/rust.vim @lilyball -runtime/autoload/typeset.vim @lifepillar -runtime/autoload/xmlformat.vim @chrisbra -runtime/autoload/dist/json.vim @habamax -runtime/colors/blue.vim @habamax @romainl @neutaaaaan -runtime/colors/catppuccin.vim @mao-yining -runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan -runtime/colors/default.vim @habamax @romainl @neutaaaaan -runtime/colors/delek.vim @habamax @romainl @neutaaaaan -runtime/colors/desert.vim @habamax @romainl @neutaaaaan -runtime/colors/elflord.vim @habamax @romainl @neutaaaaan -runtime/colors/evening.vim @habamax @romainl @neutaaaaan -runtime/colors/habamax.vim @habamax @romainl @neutaaaaan -runtime/colors/industry.vim @habamax @romainl @neutaaaaan -runtime/colors/koehler.vim @habamax @romainl @neutaaaaan -runtime/colors/lunaperche.vim @habamax @romainl @neutaaaaan -runtime/colors/morning.vim @habamax @romainl @neutaaaaan -runtime/colors/murphy.vim @habamax @romainl @neutaaaaan -runtime/colors/pablo.vim @habamax @romainl @neutaaaaan -runtime/colors/peachpuff.vim @habamax @romainl @neutaaaaan -runtime/colors/quiet.vim @habamax @romainl @neutaaaaan -runtime/colors/retrobox.vim @habamax @romainl @neutaaaaan -runtime/colors/ron.vim @habamax @romainl @neutaaaaan -runtime/colors/shine.vim @habamax @romainl @neutaaaaan -runtime/colors/slate.vim @habamax @romainl @neutaaaaan -runtime/colors/sorbet.vim @habamax @romainl @neutaaaaan -runtime/colors/tools @habamax @romainl @neutaaaaan -runtime/colors/torte.vim @habamax @romainl @neutaaaaan -runtime/colors/wildcharm.vim @habamax @romainl @neutaaaaan -runtime/colors/zaibatsu.vim @habamax @romainl @neutaaaaan -runtime/colors/zellner.vim @habamax @romainl @neutaaaaan -runtime/compiler/bash.vim @Konfekt -runtime/compiler/biome.vim @Konfekt -runtime/compiler/cabal.vim @mateoxh -runtime/compiler/checkstyle.vim @dkearns -runtime/compiler/cm3.vim @dkearns -runtime/compiler/context.vim @lifepillar -runtime/compiler/cppcheck.vim @Konfekt -runtime/compiler/cucumber.vim @tpope -runtime/compiler/dart.vim @dkearns -runtime/compiler/dart2js.vim @dkearns -runtime/compiler/dart2native.vim @dkearns -runtime/compiler/dartanalyser.vim @dkearns -runtime/compiler/dartdevc.vim @dkearns -runtime/compiler/dartdoc.vim @dkearns -runtime/compiler/dartfmt.vim @dkearns -runtime/compiler/dotnet.vim @nickspoons -runtime/compiler/eruby.vim @dkearns -runtime/compiler/fbc.vim @dkearns -runtime/compiler/gawk.vim @dkearns -runtime/compiler/gjs.vim @dkearns -runtime/compiler/gm2.vim @dkearns -runtime/compiler/go.vim @dbarnett -runtime/compiler/groff.vim @Konfekt -runtime/compiler/haml.vim @tpope -runtime/compiler/hare.vim @selenebun -runtime/compiler/icon.vim @dkearns -runtime/compiler/javac.vim @dkearns -runtime/compiler/jest.vim @dkearns -runtime/compiler/jjs.vim @dkearns -runtime/compiler/jq.vim @vito-c -runtime/compiler/jshint.vim @dkearns -runtime/compiler/jsonlint.vim @dkearns -runtime/compiler/just.vim @Alarcritty -runtime/compiler/make.vim @Konfekt -runtime/compiler/mypy.vim @Konfekt -runtime/compiler/pandoc.vim @Konfekt -runtime/compiler/perl.vim @petdance @heptite -runtime/compiler/perlcritic.vim @petdance @dkearns -runtime/compiler/php.vim @dkearns -runtime/compiler/phpstan.vim @dietrichm -runtime/compiler/podchecker.vim @petdance @dkearns -runtime/compiler/powershell.vim @heaths -runtime/compiler/pyright.vim @Konfekt -runtime/compiler/pytest.vim @Konfekt -runtime/compiler/raco.vim @benknoble -runtime/compiler/racomake.vim @benknoble -runtime/compiler/racosetup.vim @benknoble -runtime/compiler/racotest.vim @benknoble -runtime/compiler/rake.vim @tpope @dkearns -runtime/compiler/rhino.vim @dkearns -runtime/compiler/rspec.vim @tpope @dkearns -runtime/compiler/rubocop.vim @dkearns -runtime/compiler/ruby.vim @tpope @dkearns -runtime/compiler/rubyunit.vim @dkearns -runtime/compiler/sass.vim @tpope -runtime/compiler/se.vim @dkearns -runtime/compiler/shellcheck.vim @dkearns -runtime/compiler/sml.vim @dkearns -runtime/compiler/spectral.vim @romainl -runtime/compiler/stylelint.vim @dkearns -runtime/compiler/svelte-check.vim @Konfekt -runtime/compiler/tcl.vim @dkearns -runtime/compiler/tidy.vim @dkearns -runtime/compiler/tombi.vim @Konfekt -runtime/compiler/ts-node.vim @dkearns -runtime/compiler/tsc.vim @dkearns -runtime/compiler/ty.vim @Konfekt -runtime/compiler/typedoc.vim @dkearns -runtime/compiler/xmllint.vim @dkearns -runtime/compiler/xo.vim @dkearns -runtime/compiler/yamllint.vim @romainl -runtime/compiler/zsh.vim @dkearns -runtime/doc/ft_hare.txt @selenebun -runtime/doc/evim-ru.1 @RestorerZ -runtime/doc/evim-ru.UTF-8.1 @RestorerZ -runtime/doc/vim-ru.1 @RestorerZ -runtime/doc/vim-ru.UTF-8.1 @RestorerZ -runtime/doc/vimdiff-ru.1 @RestorerZ -runtime/doc/vimdiff-ru.UTF-8.1 @RestorerZ -runtime/doc/vimtutor-ru.1 @RestorerZ -runtime/doc/vimtutor-ru.UTF-8.1 @RestorerZ -runtime/doc/xxd-ru.1 @RestorerZ -runtime/doc/xxd-ru.UTF-8.1 @RestorerZ -runtime/ftplugin/abaqus.vim @costerwi -runtime/ftplugin/abnf.vim @A4-Tacks -runtime/ftplugin/antlr4.vim @jiangyinzuo -runtime/ftplugin/apache.vim @dubgeiser -runtime/ftplugin/arduino.vim @k-takata -runtime/ftplugin/astro.vim @romainl -runtime/ftplugin/asy.vim @avidseeker -runtime/ftplugin/autohotkey.vim @telemachus -runtime/ftplugin/awk.vim @dkearns -runtime/ftplugin/basic.vim @dkearns -runtime/ftplugin/bicep.vim @scottmckendry -runtime/ftplugin/bicep-params.vim @scottmckendry -runtime/ftplugin/brighterscript.vim @ribru17 -runtime/ftplugin/brightscript.vim @ribru17 -runtime/ftplugin/bst.vim @tpope -runtime/ftplugin/bpftrace.vim @sgruszka -runtime/ftplugin/c3.vim @ttytm -runtime/ftplugin/cabal.vim @ribru17 -runtime/ftplugin/cedar.vim @ribru17 -runtime/ftplugin/cfg.vim @chrisbra -runtime/ftplugin/chatito.vim @ObserverOfTime -runtime/ftplugin/chicken.vim @evhan -runtime/ftplugin/clojure.vim @axvr -runtime/ftplugin/cmakecache.vim @ribru17 -runtime/ftplugin/codeowners.vim @jparise -runtime/ftplugin/context.vim @lifepillar -runtime/ftplugin/cook.vim @ribru17 -runtime/ftplugin/cs.vim @nickspoons -runtime/ftplugin/csh.vim @dkearns -runtime/ftplugin/css.vim @dkearns -runtime/ftplugin/csv.vim @habamax -runtime/ftplugin/cucumber.vim @tpope -runtime/ftplugin/cuda.vim @ribru17 -runtime/ftplugin/dart.vim @ribru17 -runtime/ftplugin/dax.vim @anarion80 -runtime/ftplugin/deb822sources.vim @jamessan -runtime/ftplugin/debchangelog.vim @jamessan -runtime/ftplugin/debcontrol.vim @jamessan -runtime/ftplugin/debsources.vim @jamessan -runtime/ftplugin/desktop.vim @e-kwsm -runtime/ftplugin/dnsmasq.vim @dringsim -runtime/ftplugin/dosbatch.vim @mrdubya -runtime/ftplugin/editorconfig.vim @ribru17 -runtime/ftplugin/eiffel.vim @dkearns -runtime/ftplugin/elixir.vim @mhanberg -runtime/ftplugin/erlang.vim @hcs42 -runtime/ftplugin/eruby.vim @tpope @dkearns -runtime/ftplugin/expect.vim @dkearns -runtime/ftplugin/exports.vim @mperry2 -runtime/ftplugin/fennel.vim @gpanders -runtime/ftplugin/fetchmail.vim @dkearns -runtime/ftplugin/fga.vim @ribru17 -runtime/ftplugin/forth.vim @jkotlinski -runtime/ftplugin/fpcmake.vim @dkearns -runtime/ftplugin/freebasic.vim @dkearns -runtime/ftplugin/fstab.vim @rid9 -runtime/ftplugin/gdb.vim @xeyownt -runtime/ftplugin/gdscript.vim @habamax -runtime/ftplugin/gdshader.vim @habamax -runtime/ftplugin/git.vim @tpope -runtime/ftplugin/gitattributes.vim @ObserverOfTime -runtime/ftplugin/gitcommit.vim @tpope -runtime/ftplugin/gitconfig.vim @tpope -runtime/ftplugin/gitignore.vim @ObserverOfTime -runtime/ftplugin/gitrebase.vim @tpope -runtime/ftplugin/gitsendemail.vim @tpope -runtime/ftplugin/gleam.vim @kirillmorozov -runtime/ftplugin/go.vim @dbarnett -runtime/ftplugin/goaccess.vim @meonkeys -runtime/ftplugin/gomod.vim @yu-yk -runtime/ftplugin/gprof.vim @dpelle -runtime/ftplugin/graphql.vim @jparise -runtime/ftplugin/groff.vim @e-kwsm -runtime/ftplugin/gyp.vim @ObserverOfTime -runtime/ftplugin/haml.vim @tpope -runtime/ftplugin/hare.vim @selenebun -runtime/ftplugin/haredoc.vim @selenebun -runtime/ftplugin/hcl.vim @gpanders -runtime/ftplugin/heex.vim @cvincent -runtime/ftplugin/hgcommit.vim @k-takata -runtime/ftplugin/hlsplaylist.vim @avidseeker -runtime/ftplugin/hog.vim @wtfbbqhax -runtime/ftplugin/html.vim @dkearns -runtime/ftplugin/http.vim @ribru17 -runtime/ftplugin/hyprlang.vim @ribru17 -runtime/ftplugin/i3config.vim @hiqua -runtime/ftplugin/icon.vim @dkearns -runtime/ftplugin/indent.vim @dkearns -runtime/ftplugin/ishd.vim @dkearns -runtime/ftplugin/j.vim @glts -runtime/ftplugin/java.vim @zzzyxwvut -runtime/ftplugin/javacc.vim @ribru17 -runtime/ftplugin/javascript.vim @dkearns -runtime/ftplugin/javascriptreact.vim @dkearns -runtime/ftplugin/jjdescription.vim @gpanders -runtime/ftplugin/jq.vim @vito-c -runtime/ftplugin/json.vim @dbarnett -runtime/ftplugin/json5.vim @dkearns -runtime/ftplugin/jsonc.vim @izhakjakov -runtime/ftplugin/julia.vim @carlobaldassi -runtime/ftplugin/just.vim @pbnj -runtime/ftplugin/kconfig.vim @chrisbra -runtime/ftplugin/kdl.vim @imsnif @jiangyinzuo -runtime/ftplugin/kerml.vim @daumantas-kavolis-sensmetry -runtime/ftplugin/kitty.vim @rivenirvana -runtime/ftplugin/kivy.vim @ribru17 -runtime/ftplugin/kotlin.vim @udalov -runtime/ftplugin/lc.vim @ribru17 -runtime/ftplugin/ldapconf.vim @ribru17 -runtime/ftplugin/leex.vim @jparise -runtime/ftplugin/leo.vim @ribru17 -runtime/ftplugin/less.vim @genoma -runtime/ftplugin/lex.vim @ribru17 -runtime/ftplugin/lf.vim @andis-sprinkis -runtime/ftplugin/liquid.vim @tpope -runtime/ftplugin/logtalk.dict @pmoura -runtime/ftplugin/logtalk.vim @pmoura -runtime/ftplugin/lua.vim @dkearns -runtime/ftplugin/lynx.vim @dkearns -runtime/ftplugin/m17ndb.vim @dseomn -runtime/ftplugin/m3build.vim @dkearns -runtime/ftplugin/m3quake.vim @dkearns -runtime/ftplugin/markdown.vim @tpope -runtime/ftplugin/mbsync.vim @fymyte -runtime/ftplugin/mediawiki.vim @avidseeker -runtime/ftplugin/meson.vim @Liambeguin -runtime/ftplugin/mf.vim @lifepillar -runtime/ftplugin/modula2.vim @dkearns -runtime/ftplugin/modula3.vim @dkearns -runtime/ftplugin/mojo.vim @ribru17 -runtime/ftplugin/mp.vim @lifepillar -runtime/ftplugin/mss.vim @Freed-Wu -runtime/ftplugin/nginx.vim @chr4 -runtime/ftplugin/nickel.vim @ribru17 -runtime/ftplugin/nim.vim @ribru17 -runtime/ftplugin/nroff.vim @averms -runtime/ftplugin/nsis.vim @k-takata -runtime/ftplugin/nu.vim @elkasztano -runtime/ftplugin/octave.vim @dkearns -runtime/ftplugin/ondir.vim @jparise -runtime/ftplugin/opencl.vim @Freed-Wu -runtime/ftplugin/openscad.vim @squibid -runtime/ftplugin/openvpn.vim @ObserverOfTime -runtime/ftplugin/pascal.vim @dkearns -runtime/ftplugin/pbtxt.vim @lakshayg -runtime/ftplugin/pdf.vim @tpope -runtime/ftplugin/perl.vim @petdance @dkearns -runtime/ftplugin/php.vim @dkearns -runtime/ftplugin/pkl.vim @ribru17 -runtime/ftplugin/plsql.vim @lee-lindley -runtime/ftplugin/pod.vim @petdance @dkearns -runtime/ftplugin/poefilter.vim @ObserverOfTime -runtime/ftplugin/postscr.vim @mrdubya -runtime/ftplugin/pq.vim @anarion80 -runtime/ftplugin/prisma.vim @ribru17 -runtime/ftplugin/proto.vim @Limero -runtime/ftplugin/ps1.vim @heaths -runtime/ftplugin/ps1xml.vim @heaths -runtime/ftplugin/ptx.vim @jiangyinzuo -runtime/ftplugin/purescript.vim @ribru17 -runtime/ftplugin/pymanifest.vim @ObserverOfTime -runtime/ftplugin/python.vim @tpict -runtime/ftplugin/qb64.vim @dkearns -runtime/ftplugin/qml.vim @ChaseKnowlden -runtime/ftplugin/racket.vim @benknoble -runtime/ftplugin/rasi.vim @fymyte -runtime/ftplugin/readline.vim @dkearns -runtime/ftplugin/remind.vim @joereynolds -runtime/ftplugin/rescript.vim @ribru17 -runtime/ftplugin/routeros.vim @zainin -runtime/ftplugin/rst.vim @marshallward -runtime/ftplugin/ruby.vim @tpope @dkearns -runtime/ftplugin/rust.vim @lilyball -runtime/ftplugin/samba.vim @mperry2 -runtime/ftplugin/sass.vim @tpope -runtime/ftplugin/scala.vim @derekwyatt -runtime/ftplugin/scheme.vim @evhan -runtime/ftplugin/scss.vim @tpope -runtime/ftplugin/sed.vim @dkearns -runtime/ftplugin/sh.vim @dkearns -runtime/ftplugin/shaderslang.vim @mTvare6 -runtime/ftplugin/slint.vim @ribru17 -runtime/ftplugin/sml.vim @tocariimaa -runtime/ftplugin/snakemake.vim @ribru17 -runtime/ftplugin/solidity.vim @coti-z -runtime/ftplugin/solution.vim @dkearns -runtime/ftplugin/soy.vim @ribru17 -runtime/ftplugin/spajson.vim @dseomn -runtime/ftplugin/spec.vim @ignatenkobrain -runtime/ftplugin/squirrel.vim @ribru17 -runtime/ftplugin/ssa.vim @ObserverOfTime -runtime/ftplugin/sshdconfig.vim @jiangyinzuo -runtime/ftplugin/svelte.vim @igorlfs -runtime/ftplugin/sway.vim @ribru17 -runtime/ftplugin/swayconfig.vim @jamespeapen -runtime/ftplugin/sysml.vim @daumantas-kavolis-sensmetry -runtime/ftplugin/systemverilog.vim @Kocha -runtime/ftplugin/swig.vim @jmarrec -runtime/ftplugin/tap.vim @petdance -runtime/ftplugin/tcsh.vim @dkearns -runtime/ftplugin/tera.vim @MuntasirSZN -runtime/ftplugin/terraform.vim @JannoTjarks -runtime/ftplugin/tf.vim @ribru17 -runtime/ftplugin/thrift.vim @jiangyinzuo -runtime/ftplugin/tiasm.vim @Freed-Wu -runtime/ftplugin/tidy.vim @dkearns -runtime/ftplugin/tmux.vim @ericpruitt -runtime/ftplugin/toml.vim @averms -runtime/ftplugin/tt2html.vim @petdance -runtime/ftplugin/twig.vim @ribru17 -runtime/ftplugin/typescript.vim @dkearns -runtime/ftplugin/typescriptreact.vim @dkearns -runtime/ftplugin/uc.vim @ribru17 -runtime/ftplugin/unison.vim @chuwy -runtime/ftplugin/v.vim @ribru17 -runtime/ftplugin/vdf.vim @ObserverOfTime -runtime/ftplugin/vim.vim @dkearns -runtime/ftplugin/wget.vim @dkearns -runtime/ftplugin/wget2.vim @dkearns -runtime/ftplugin/wks.vim @anakin4747 -runtime/ftplugin/xcompose.vim @ObserverOfTime -runtime/ftplugin/xml.vim @chrisbra -runtime/ftplugin/xs.vim @petdance -runtime/ftplugin/yacc.vim @ribru17 -runtime/ftplugin/zsh.vim @chrisbra -runtime/import/dist/vimhighlight.vim @lacygoill -runtime/indent/arduino.vim @k-takata -runtime/indent/astro.vim @wuelnerdotexe -runtime/indent/basic.vim @dkearns -runtime/indent/bpftrace.vim @sgruszka -runtime/indent/bst.vim @tpope -runtime/indent/cdl.vim @dkearns -runtime/indent/chatito.vim @ObserverOfTime -runtime/indent/clojure.vim @axvr -runtime/indent/config.vim @dkearns -runtime/indent/context.vim @lifepillar -runtime/indent/cs.vim @nickspoons -runtime/indent/css.vim @dkearns -runtime/indent/cucumber.vim @tpope -runtime/indent/d.vim @dkearns -runtime/indent/dosbatch.vim @k-takata -runtime/indent/dtd.vim @dkearns -runtime/indent/dylan.vim @dkearns -runtime/indent/eiffel.vim @jocelyn -runtime/indent/elm.vim @andys8 -runtime/indent/erlang.vim @hcs42 -runtime/indent/eruby.vim @tpope @dkearns -runtime/indent/eterm.vim @dkearns -runtime/indent/falcon.vim @steveno -runtime/indent/framescript.vim @dkearns -runtime/indent/freebasic.vim @dkearns -runtime/indent/gdscript.vim @habamax -runtime/indent/gitconfig.vim @tpope -runtime/indent/gitolite.vim @sitaramc -runtime/indent/glsl.vim @gpanders -runtime/indent/go.vim @dbarnett -runtime/indent/graphql.vim @jparise -runtime/indent/gyp.vim @ObserverOfTime -runtime/indent/haml.vim @tpope -runtime/indent/handlebars.vim @sukima -runtime/indent/hare.vim @selenebun -runtime/indent/hcl.vim @gpanders -runtime/indent/hog.vim @wtfbbqhax -runtime/indent/idlang.vim @dkearns -runtime/indent/j.vim @glts -runtime/indent/java.vim @xuhdev -runtime/indent/javascript.vim @bounceme -runtime/indent/json.vim @elzr -runtime/indent/jsonc.vim @izhakjakov -runtime/indent/julia.vim @carlobaldassi -runtime/indent/just.vim @pbnj -runtime/indent/kdl.vim @imsnif @jiangyinzuo -runtime/indent/kotlin.vim @udalov -runtime/indent/krl.vim @KnoP-01 -runtime/indent/ld.vim @dkearns -runtime/indent/lf.vim @andis-sprinkis -runtime/indent/less.vim @genoma -runtime/indent/liquid.vim @tpope -runtime/indent/logtalk.vim @pmoura -runtime/indent/lua.vim @marcuscf -runtime/indent/m17ndb.vim @dseomn -runtime/indent/make.vim @dkearns -runtime/indent/meson.vim @Liambeguin -runtime/indent/mf.vim @lifepillar -runtime/indent/mma.vim @dkearns -runtime/indent/mojo.vim @ribru17 -runtime/indent/mp.vim @lifepillar -runtime/indent/nginx.vim @chr4 -runtime/indent/nsis.vim @k-takata -runtime/indent/nu.vim @elkasztano -runtime/indent/occam.vim @dkearns -runtime/indent/perl.vim @petdance -runtime/indent/php.vim @2072 -runtime/indent/postscr.vim @mrdubya -runtime/indent/prolog.vim @dkearns -runtime/indent/proto.vim @Limero -runtime/indent/ps1.vim @heaths -runtime/indent/qb64.vim @dkearns -runtime/indent/qml.vim @ChaseKnowlden -runtime/indent/racket.vim @benknoble -runtime/indent/rapid.vim @KnoP-01 -runtime/indent/readline.vim @dkearns -runtime/indent/ruby.vim @AndrewRadev @dkearns -runtime/indent/sass.vim @tpope -runtime/indent/scala.vim @derekwyatt -runtime/indent/scheme.vim @evhan -runtime/indent/scss.vim @tpope -runtime/indent/sh.vim @chrisbra -runtime/indent/solidity.vim @coti-z -runtime/indent/spajson.vim @dseomn -runtime/indent/systemverilog.vim @Kocha -runtime/indent/tcl.vim @dkearns -runtime/indent/tcsh.vim @dkearns -runtime/indent/teraterm.vim @k-takata -runtime/indent/terraform.vim @gpanders -runtime/indent/thrift.vim @jiangyinzuo -runtime/indent/typescript.vim @HerringtonDarkholme -runtime/indent/vroom.vim @dbarnett -runtime/indent/xml.vim @chrisbra -runtime/indent/zsh.vim @chrisbra -runtime/keymap/armenian-eastern_utf-8.vim @blinskey -runtime/keymap/armenian-western_utf-8.vim @blinskey -runtime/keymap/brazilian_portuguese-abnt.vim @LuMarquesIlva -runtime/keymap/brazilian_portuguese-compact.vim @LuMarquesIlva -runtime/keymap/russian-typograph.vim @RestorerZ -runtime/keymap/tamil_tscii.vim @yegappan -runtime/keymap/ukrainian-enhanced.vim @Dolfost -runtime/lang/menu_en_gb.latin1.vim @mrdubya -runtime/lang/menu_ru_ru.cp1251.vim @RestorerZ -runtime/lang/menu_ru_ru.koi8-r.vim @RestorerZ -runtime/lang/menu_ru_ru.utf-8.vim @RestorerZ -runtime/pack/dist/opt/cfilter/plugin/cfilter.vim @yegappan -runtime/pack/dist/opt/comment/ @habamax -runtime/pack/dist/opt/helptoc/ @kennypete -runtime/pack/dist/opt/matchit/ @chrisbra -runtime/pack/dist/opt/nohlsearch/ @habamax -runtime/plugin/manpager.vim @Konfekt -runtime/syntax/shared/hgcommitDiff.vim @vegerot -runtime/syntax/abaqus.vim @costerwi -runtime/syntax/abnf.vim @A4-Tacks -runtime/syntax/aidl.vim @dpelle -runtime/syntax/amiga.vim @sodero -runtime/syntax/ant.vim @dkearns -runtime/syntax/antlr4.vim @jiangyinzuo -runtime/syntax/arduino.vim @johshoff -runtime/syntax/asciidoc.vim @aerostitch -runtime/syntax/asm.vim @dkearns -runtime/syntax/asmh8300.vim @dkearns -runtime/syntax/asterisk.vim @jaunis -runtime/syntax/astro.vim @wuelnerdotexe -runtime/syntax/asy.vim @avidseeker -runtime/syntax/autohotkey.vim @mmikeww -runtime/syntax/awk.vim @dkearns -runtime/syntax/basic.vim @dkearns -runtime/syntax/bpftrace.vim @sgruszka -runtime/syntax/bst.vim @tpope -runtime/syntax/bzl.vim @dbarnett -runtime/syntax/bzr.vim @hdima -runtime/syntax/cabal.vim @coot -runtime/syntax/cabalconfig.vim @coot -runtime/syntax/cabalproject.vim @coot -runtime/syntax/cangjie.vim @WuJunkai2004 -runtime/syntax/cf.vim @ernstvanderlinden -runtime/syntax/chatito.vim @ObserverOfTime -runtime/syntax/chicken.vim @evhan -runtime/syntax/chuck.vim @andreacfromtheapp -runtime/syntax/clojure.vim @axvr -runtime/syntax/codeowners.vim @jparise -runtime/syntax/context.vim @lifepillar -runtime/syntax/cs.vim @nickspoons -runtime/syntax/csh.vim @dkearns -runtime/syntax/css.vim @jsit -runtime/syntax/csv.vim @habamax -runtime/syntax/cucumber.vim @tpope -runtime/syntax/d.vim @JesseKPhillips -runtime/syntax/dart.vim @pr3d4t0r -runtime/syntax/datascript.vim @dpelle -runtime/syntax/dax.vim @anarion80 -runtime/syntax/deb822sources.vim @jamessan -runtime/syntax/debchangelog.vim @jamessan -runtime/syntax/debcontrol.vim @jamessan -runtime/syntax/debcopyright.vim @jamessan -runtime/syntax/debsources.vim @jamessan -runtime/syntax/dep3patch.vim @jamessan -runtime/syntax/desktop.vim @e-kwsm -runtime/syntax/dosbatch.vim @mrdubya -runtime/syntax/dosini.vim @xuhdev -runtime/syntax/dot.vim @mmottl -runtime/syntax/doxygen.vim @frogonwheels -runtime/syntax/dtd.vim @chrisbra -runtime/syntax/dts.vim @zonque -runtime/syntax/editorconfig.vim @gpanders -runtime/syntax/eiffel.vim @jocelyn -runtime/syntax/erlang.vim @hcs42 -runtime/syntax/eruby.vim @tpope @dkearns -runtime/syntax/expect.vim @dkearns -runtime/syntax/falcon.vim @steveno -runtime/syntax/fetchmail.vim @dkearns -runtime/syntax/forth.vim @jkotlinski -runtime/syntax/fpcmake.vim @dkearns -runtime/syntax/freebasic.vim @dkearns -runtime/syntax/fstab.vim @rid9 -runtime/syntax/gdb.vim @dkearns -runtime/syntax/gdresource.vim @habamax -runtime/syntax/gdscript.vim @habamax -runtime/syntax/gdshader.vim @habamax -runtime/syntax/git.vim @tpope -runtime/syntax/gitattributes.vim @ObserverOfTime -runtime/syntax/gitcommit.vim @tpope -runtime/syntax/gitconfig.vim @tpope -runtime/syntax/gitignore.vim @ObserverOfTime -runtime/syntax/gitolite.vim @sitaramc -runtime/syntax/gitrebase.vim @tpope -runtime/syntax/gleam.vim @kirillmorozov -runtime/syntax/glimmer.vim @sukima -runtime/syntax/glsl.vim @gpanders -runtime/syntax/go.vim @bhcleek -runtime/syntax/goaccess.vim @meonkeys -runtime/syntax/godoc.vim @dbarnett -runtime/syntax/gp.vim @KBelabas -runtime/syntax/gprof.vim @dpelle -runtime/syntax/graphql.vim @jparise -runtime/syntax/groff.vim @jmarshall -runtime/syntax/gyp.vim @ObserverOfTime -runtime/syntax/haml.vim @tpope -runtime/syntax/handlebars.vim @sukima -runtime/syntax/hare.vim @selenebun -runtime/syntax/haredoc.vim @selenebun -runtime/syntax/haskell.vim @coot -runtime/syntax/hcl.vim @gpanders -runtime/syntax/help.vim @dkearns -runtime/syntax/help_ru.vim @RestorerZ -runtime/syntax/hgcommit.vim @k-takata -runtime/syntax/hitest.vim @lacygoill -runtime/syntax/hog.vim @wtfbbqhax -runtime/syntax/hollywood.vim @sodero -runtime/syntax/html.vim @dkearns -runtime/syntax/htmlangular.vim @dlvandenberg -runtime/syntax/i3config.vim @hiqua -runtime/syntax/icon.vim @dkearns -runtime/syntax/indent.vim @dkearns -runtime/syntax/j.vim @glts -runtime/syntax/jargon.vim @h3xx -runtime/syntax/java.vim @zzzyxwvut -runtime/syntax/javascript.vim @fleiner -runtime/syntax/jinja.vim @gpanders -runtime/syntax/jjdescription.vim @gpanders -runtime/syntax/json.vim @vito-c -runtime/syntax/jsonc.vim @izhakjakov -runtime/syntax/julia.vim @carlobaldassi -runtime/syntax/just.vim @pbnj -runtime/syntax/jq.vim @vito-c -runtime/syntax/karel.vim @kirillmorozov -runtime/syntax/kconfig.vim @chrisbra -runtime/syntax/kitty.vim @OXY2DEV -runtime/syntax/kivy.vim @prophittcorey -runtime/syntax/kotlin.vim @udalov -runtime/syntax/kdl.vim @imsnif @jiangyinzuo -runtime/syntax/krl.vim @KnoP-01 -runtime/syntax/leex.vim @jparise -runtime/syntax/less.vim @genoma -runtime/syntax/lf.vim @andis-sprinkis -runtime/syntax/liquid.vim @tpope -runtime/syntax/log.vim @mao-yining -runtime/syntax/logtalk.vim @pmoura -runtime/syntax/lua.vim @marcuscf -runtime/syntax/lynx.vim @dkearns -runtime/syntax/lyrics.vim @ObserverOfTime -runtime/syntax/m17ndb.vim @dseomn -runtime/syntax/m3build.vim @dkearns -runtime/syntax/m3quake.vim @dkearns -runtime/syntax/mailcap.vim @dkearns -runtime/syntax/mallard.vim @jhradilek -runtime/syntax/markdown.vim @tpope -runtime/syntax/mbsync.vim @fymyte -runtime/syntax/mason.vim @petdance -runtime/syntax/mediawiki.vim @avidseeker -runtime/syntax/meson.vim @Liambeguin -runtime/syntax/mf.vim @lifepillar -runtime/syntax/modula2.vim @dkearns -runtime/syntax/modula2/opt/iso.vim @trijezdci -runtime/syntax/modula2/opt/pim.vim @trijezdci -runtime/syntax/modula2/opt/r10.vim @trijezdci -runtime/syntax/modula3.vim @dkearns -runtime/syntax/mp.vim @lifepillar -runtime/syntax/mss.vim @Freed-Wu -runtime/syntax/n1ql.vim @pr3d4t0r -runtime/syntax/nginx.vim @chr4 -runtime/syntax/ninja.vim @nico -runtime/syntax/nix.vim @equill -runtime/syntax/nroff.vim @jmarshall -runtime/syntax/nsis.vim @k-takata -runtime/syntax/nu.vim @elkasztano -runtime/syntax/odin.vim @habamax -runtime/syntax/omnimark.vim @kennypete -runtime/syntax/ondir.vim @jparise -runtime/syntax/opencl.vim @Freed-Wu -runtime/syntax/openvpn.vim @ObserverOfTime -runtime/syntax/pacmanlog.vim @rpigott -runtime/syntax/pascal.vim @dkearns -runtime/syntax/pbtxt.vim @lakshayg -runtime/syntax/pdf.vim @tpope -runtime/syntax/perl.vim @petdance -runtime/syntax/php.vim @TysonAndre -runtime/syntax/pkl.vim @jclsn -runtime/syntax/plsql.vim @lee-lindley -runtime/syntax/pod.vim @petdance -runtime/syntax/poefilter.vim @ObserverOfTime -runtime/syntax/postscr.vim @mrdubya -runtime/syntax/pq.vim @anarion80 -runtime/syntax/privoxy.vim @dkearns -runtime/syntax/progress.vim @rdnlsmith -runtime/syntax/prolog.vim @XVilka -runtime/syntax/prql.vim @vanillajonathan -runtime/syntax/ps1.vim @heaths -runtime/syntax/ps1xml.vim @heaths -runtime/syntax/psl.vim @danielkho -runtime/syntax/ptx.vim @jiangyinzuo -runtime/syntax/pymanifest.vim @ObserverOfTime -runtime/syntax/qb64.vim @dkearns -runtime/syntax/qml.vim @ChaseKnowlden -runtime/syntax/racket.vim @benknoble -runtime/syntax/raml.vim @in3d -runtime/syntax/rapid.vim @KnoP-01 -runtime/syntax/ratpoison.vim @trapd00r -runtime/syntax/rasi.vim @fymyte -runtime/syntax/rc.vim @chrisbra -runtime/syntax/rcs.vim @hdima -runtime/syntax/rebol.vim @mrdubya -runtime/syntax/rego.vim @zenmatic -runtime/syntax/resolv.vim @rid9 -runtime/syntax/rng.vim @jhradilek -runtime/syntax/routeros.vim @zainin -runtime/syntax/rst.vim @marshallward -runtime/syntax/ruby.vim @dkearns -runtime/syntax/salt.vim @gpanders -runtime/syntax/sass.vim @tpope -runtime/syntax/scala.vim @derekwyatt -runtime/syntax/scheme.vim @evhan -runtime/syntax/scss.vim @tpope -runtime/syntax/sed.vim @dkearns -runtime/syntax/shared/debversions.vim @jamessan -runtime/syntax/shaderslang.vim @mTvare6 -runtime/syntax/skhd.vim @kiyoon -runtime/syntax/solidity.vim @coti-z -runtime/syntax/spajson.vim @dseomn -runtime/syntax/spec.vim @ignatenkobrain -runtime/syntax/sqloracle.vim @chrisbra -runtime/syntax/squirrel.vim @zenmatic -runtime/syntax/srt.vim @ObserverOfTime -runtime/syntax/ssa.vim @ObserverOfTime -runtime/syntax/sshconfig.vim @Jakuje -runtime/syntax/sshdconfig.vim @Jakuje -runtime/syntax/sudoers.vim @e-kwsm -runtime/syntax/svn.vim @hdima -runtime/syntax/swayconfig.vim @jamespeapen -runtime/syntax/swig.vim @jmarrec -runtime/syntax/systemverilog.vim @Kocha -runtime/syntax/tap.vim @petdance -runtime/syntax/tcsh.vim @dkearns -runtime/syntax/tera.vim @MuntasirSZN -runtime/syntax/teraterm.vim @k-takata -runtime/syntax/terraform.vim @gpanders -runtime/syntax/thrift.vim @jiangyinzuo -runtime/syntax/tiasm.vim @Freed-Wu -runtime/syntax/tidy.vim @dkearns -runtime/syntax/tmux.vim @ericpruitt -runtime/syntax/toml.vim @averms -runtime/syntax/tt2.vim @petdance -runtime/syntax/tt2html.vim @petdance -runtime/syntax/tt2js.vim @petdance -runtime/syntax/typescript.vim @HerringtonDarkholme @rhysd -runtime/syntax/typescriptreact.vim @HerringtonDarkholme @rhysd -runtime/syntax/typst.vim @gpanders -runtime/syntax/shared/typescriptcommon.vim @HerringtonDarkholme @rhysd -runtime/syntax/unison.vim @chuwy -runtime/syntax/vdf.vim @ObserverOfTime -runtime/syntax/vroom.vim @dbarnett -runtime/syntax/wdl.vim @zenmatic -runtime/syntax/wget.vim @dkearns -runtime/syntax/wget2.vim @dkearns -runtime/syntax/wks.vim @anakin4747 -runtime/syntax/xbl.vim @dkearns -runtime/syntax/xcompose.vim @ObserverOfTime -runtime/syntax/xml.vim @chrisbra -runtime/syntax/xs.vim @petdance -runtime/syntax/xslt.vim @Boobies -runtime/syntax/zserio.vim @dpelle -runtime/syntax/zsh.vim @chrisbra -runtime/tools/preproc_indent.vim @h-east -runtime/tutor/tutor1.eo @dpelle -runtime/tutor/tutor1.fr @dpelle -runtime/tutor/tutor1.ru @RestorerZ -src/iscygpty.* @k-takata -src/libvterm/ @leonerd -src/po/ca.po @nfdisco -src/po/de.po @chrisbra -src/po/eo.po @dpelle -src/po/es.po @victorhck -src/po/fi.po @flammie -src/po/fr.po @dpelle -src/po/ga.po @kscanne -src/po/hy.po @gagikh -src/po/it.po @azc100 -src/po/ja.po @k-takata -src/po/ru.po @RestorerZ -src/po/sr.po @eevan78 -src/po/tr.po @bitigchi -src/po/uk.po @sakhnik -src/proto/gen_prototypes.py @h-east -src/xxd/ @jnweiger - -# vim:ft=codeowners diff --git a/uvim/.github/actions/test_artifacts/action.yml b/uvim/.github/actions/test_artifacts/action.yml deleted file mode 100644 index 79d1aa82f6..0000000000 --- a/uvim/.github/actions/test_artifacts/action.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: 'test_artifacts' -description: "Upload failed test artifacts" -runs: - using: "composite" - steps: - - name: Collect matrix properties for naming - uses: actions/github-script@v8 - id: matrix-props - env: - MATRIX_PROPS: ${{ toJSON(matrix) }} - with: - # An array-flattening-to-string JavaScript function. - script: | - const f = function (x) { return x.toString().length > 0; } - const g = function (x) { - return (Array.isArray(x)) - ? x.filter(f) - .map((function (h) { return function (y) { return h(y); }; })(g)) - .join('-') - : x; - } - return Object.values(JSON.parse(process.env.MATRIX_PROPS)) - .filter(f) - .map(g) - .join('-'); - # By default, the JSON-encoded return value of the function is - # set as the "result". - result-encoding: string - - name: Upload failed tests - uses: actions/upload-artifact@v7 - with: - # Name of the artifact to upload. - name: ${{ format('GH-{0}-{1}-{2}-{3}-{4}-failed-tests', - github.run_id, - github.run_attempt, - github.job, - strategy.job-index, - steps.matrix-props.outputs.result) }} - - # A file, directory or wildcard pattern that describes what - # to upload. - path: | - ${{ github.workspace }}/runtime/indent/testdir/*.fail - ${{ github.workspace }}/runtime/syntax/testdir/failed/* - ${{ github.workspace }}/src/testdir/failed/* - # The desired behavior if no files are found using the - # provided path. - if-no-files-found: ignore - - # Duration after which artifact will expire in days. 0 means - # using repository settings. - retention-days: 0 - - # If true, an artifact with a matching name will be deleted - overwrite: true diff --git a/uvim/.github/dependabot.yml b/uvim/.github/dependabot.yml deleted file mode 100644 index 5e841dde2c..0000000000 --- a/uvim/.github/dependabot.yml +++ /dev/null @@ -1,16 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directories: - - "/" - - "/.github/actions/**/*" - schedule: - interval: "weekly" - commit-message: - prefix: "CI" - cooldown: - default-days: 7 - groups: - github-actions: - patterns: - - "*" diff --git a/uvim/.github/labeler.yml b/uvim/.github/labeler.yml deleted file mode 100644 index 720765d383..0000000000 --- a/uvim/.github/labeler.yml +++ /dev/null @@ -1,156 +0,0 @@ -# list of labels and minimatch globs to match to apply the label. - -CI: - - all: - - changed-files: - - any-glob-to-any-file: - - '.cirrus.yml' - - '.github/dependabot.yml' - - '.github/labeler.yml' - - '.github/workflows/*' - - '.appveyor.yml' - - '.codecov.yml' - -documentation: - - all: - - changed-files: - - any-glob-to-all-files: - - '*/doc/*' - -translation: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/po/*.po' - -if_lua: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/if_lua.c' - - 'src/proto/if_lua.pro' - - 'runtime/doc/if_lua.txt' - -if_mzscheme: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/if_mzsch.c' - - 'src/if_mzsch.h' - - 'src/proto/if_mzsch.pro' - - 'runtime/doc/if_mzsch.txt' - -if_perl: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/if_perl.xs' - - 'src/proto/if_perl.pro' - - 'runtime/doc/if_perl.txt' - -if_python: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/if_py_both.h' - - 'runtime/doc/if_pyth.txt' - - 'src/if_python.c' - - 'src/if_python3.c' - - 'src/proto/if_python.pro' - - 'src/proto/if_python3.pro' - -if_ruby: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/if_ruby.c' - - 'src/proto/if_ruby.pro' - - 'runtime/doc/if_ruby.txt' - -if_tcl: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/if_tcl.c' - - 'src/proto/if_tcl.pro' - - 'runtime/doc/if_tcl.txt' - -installer: - - all: - - changed-files: - - any-glob-to-any-file: - - 'nsis/**' - - 'src/dosinst.*' - - 'src/uninstall.c' - -platform-mac: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/INSTALLmac.txt' - - 'src/os_mac*' - - 'src/proto/os_mac*' - -platform-windows: - - all: - - changed-files: - - any-glob-to-any-file: - - 'nsis/**' - - 'src/*.bat' - - 'src/*.bmp' - - 'src/*.ico' - - 'src/GvimExt/*' - - 'src/INSTALLpc.txt' - - 'src/Make_cyg*.mak' - - 'src/Make_ming.mak' - - 'src/Make_mvc.mak' - - 'src/dosinst.*' - - 'src/gui_dwrite.*' - - 'src/gui_w32*' - - 'src/if_ole.*' - - 'src/iid_ole.c' - - 'src/os_mswin*' - - 'src/os_w32*' - - 'src/os_win32.*' - - 'src/proto/gui_w32.pro' - - 'src/proto/os_mswin.pro' - - 'src/proto/os_win32.pro' - - 'src/proto/winclip.pro' - - 'src/uninstall.c' - - 'src/vim.manifest' - - 'src/vim.rc' - - 'src/vimrun.c' - - 'src/winclip.c' - - 'src/xpm/**' - - 'src/xpm_w32.*' - -runtime: - - all: - - changed-files: - - any-glob-to-any-file: - - 'runtime/autoload/**/*.vim' - - 'runtime/colors/**/*.vim' - - 'runtime/compiler/**/*.vim' - - 'runtime/ftplugin/**/*.vim' - - 'runtime/indent/**/*.vim' - - 'runtime/syntax/**/*.vim' - - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' - -termdebug: - - all: - - changed-files: - - any-glob-to-any-file: - - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' - -plugin-netrw: - - all: - - changed-files: - - any-glob-to-any-file: - - 'runtime/plugin/netrwPlugin.vim' - - 'runtime/pack/dist/opt/netrw/**' - -xxd: - - all: - - changed-files: - - any-glob-to-any-file: - - 'src/xxd/*' diff --git a/uvim/.github/workflows/ci.yml b/uvim/.github/workflows/ci.yml deleted file mode 100644 index 5a3f2f6f0f..0000000000 --- a/uvim/.github/workflows/ci.yml +++ /dev/null @@ -1,853 +0,0 @@ -name: GitHub CI - -on: - push: - branches: ['**'] - pull_request: - -# Cancels all previous workflow runs for pull requests that have not completed. -concurrency: - # The concurrency group contains the workflow name and the branch name for - # pull requests or the commit hash for any other events. - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - linux: - runs-on: ${{ matrix.architecture == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} - - env: - CC: ${{ matrix.compiler }} - GCC_VER: 14 - CLANG_VER: 21 - TEST: test - SRCDIR: ./src - LEAK_CFLAGS: -DEXITFREE - LOG_DIR: ${{ github.workspace }}/logs - TERM: xterm - DISPLAY: ':99' - DEBIAN_FRONTEND: noninteractive - - strategy: - fail-fast: false - matrix: - features: [tiny, normal, huge] - compiler: [clang, gcc] - extra: [[]] - # Only use non-native architecture when features != huge. - # features=huge tries to install python3-dev, which fails to install - # for the non-native architecture. - architecture: [native] - include: - - features: tiny - compiler: clang - extra: [nogui] - - features: tiny - compiler: gcc - extra: [nogui, syn_test_execs] - - features: tiny - compiler: gcc - extra: [nogui] - architecture: arm64 - - features: normal - shadow: ./src/shadow - compiler: gcc - architecture: i386 - - features: huge - coverage: true - - features: huge - compiler: clang - interface: dynamic - python3: stable-abi - - features: huge - compiler: gcc - coverage: true - interface: dynamic - extra: [uchar, testgui] - - features: huge - compiler: clang - # Lua5.1 is the most widely used version (since it's what LuaJIT is - # compatible with), so ensure it works - lua_ver: '5.1' - extra: [asan] - - features: huge - compiler: gcc - coverage: true - extra: [unittests] - - features: huge - compiler: gcc - coverage: true - extra: [unittests] - architecture: arm64 - - features: normal - compiler: gcc - extra: [vimtags, proto, preproc_indent, encoding, codestyle] - - features: huge - compiler: gcc - extra: [no_x11_wl] - - steps: - - name: Checkout repository from github - uses: actions/checkout@v6 - - - name: Check Filelist (for packaging) - run: | - # If any files in the repository are not listed in Filelist this will - # exit with an error code and list the missing entries. - make -f ci/unlisted.make - - - name: Check hlgroups (are any new hlgroups added, but not handled in highlight.c) - run: | - # If any highlight groups have been documented, but not handled in - # highlight.c, nor listed as 'intentionally left out' in hlgroups.ignore, - # exit with an error code and list the missing entries. - make -C ci -f hlgroups.make - - - name: Report executable syntax tests - if: contains(matrix.extra, 'syn_test_execs') - run: | - # Search and list all found executable syntax tests, and exit with - # an error code. - make -C runtime/syntax executables - - - run: sudo dpkg --add-architecture i386 - if: matrix.architecture == 'i386' - - - name: Uninstall snap - run: | - sudo bash ci/remove_snap.sh - - - name: Enable debug packages - run: | - # Some of the ASAN suppressions are in libraries linked with dlopen - # and symbolization of them requires these debug packages. - sudo apt install ubuntu-dbgsym-keyring - sudo cp ci/ddebs.list /etc/apt/sources.list.d/ddebs.list - sudo cp ci/pinned-pkgs /etc/apt/preferences.d/pinned-pkgs - - - name: Install packages - run: | - # This is added by default, and it is often broken, but we don't need anything from it - sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list - PKGS=( \ - gettext \ - x11-utils \ - labwc \ - wl-clipboard \ - wayland-utils \ - libgtk-3-dev:${{ matrix.architecture }} \ - libgtk-3-bin:${{ matrix.architecture }} \ - desktop-file-utils \ - libc6-dbgsym:${{ matrix.architecture }} \ - libtool-bin \ - libncurses-dev:${{ matrix.architecture }} \ - libxt-dev:${{ matrix.architecture }} \ - libegl-mesa0:${{ matrix.architecture }} \ - libegl1:${{ matrix.architecture }} \ - libegl1-mesa-dev:${{ matrix.architecture }} \ - libepoxy-dev:${{ matrix.architecture }} \ - libwayland-egl1:${{ matrix.architecture }} \ - libwayland-client0:${{ matrix.architecture }} \ - libwayland-cursor0:${{ matrix.architecture }} \ - locales-all \ - software-properties-common \ - ) - if ${{ contains(matrix.extra, 'asan') }} && ${{ contains(matrix.architecture, 'native') }}; then - PKGS+=( \ - libepoxy0-dbgsym:${{ matrix.architecture }} \ - libxdamage1-dbgsym:${{ matrix.architecture }} \ - libxcb1-dbgsym:${{ matrix.architecture }} \ - libgtk-3-bin-dbgsym:${{ matrix.architecture }} \ - libgtk-3-0t64-dbgsym:${{ matrix.architecture }} \ - libglib2.0-0t64-dbgsym:${{ matrix.architecture }} \ - libglib2.0-bin-dbgsym:${{ matrix.architecture }} \ - libglib2.0-dev-bin-dbgsym:${{ matrix.architecture }} \ - ) - fi - if ${{ matrix.features == 'huge' }}; then - LUA_VER=${{ matrix.lua_ver || '5.4' }} - PKGS+=( \ - autoconf \ - gdb \ - lcov \ - libcanberra-dev \ - libperl-dev \ - python3-dev \ - liblua${LUA_VER}-dev \ - lua${LUA_VER} \ - ruby-dev \ - tcl-dev \ - cscope \ - libsodium-dev \ - attr \ - libattr1-dev - ) - fi - if ${{ contains(matrix.extra, 'proto') }}; then - PKGS+=( python3-clang ) - fi - sudo apt-get update && sudo apt-get upgrade -y --allow-downgrades && sudo apt-get install -y --allow-downgrades "${PKGS[@]}" - - - name: Install gcc-${{ env.GCC_VER }} - if: matrix.compiler == 'gcc' - run: | - # ubuntu-toolchain-r/test PPA for gcc-13 compiler - # disabled because the installation failed, causing test failures - # sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y - sudo apt-get update -y - sudo apt-get install -y gcc-${{ env.GCC_VER }}:${{ matrix.architecture }} - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ env.GCC_VER }} 100 - sudo update-alternatives --set gcc /usr/bin/gcc-${{ env.GCC_VER }} - - - name: Install clang-${{ env.CLANG_VER }} - if: matrix.compiler == 'clang' - run: | - . /etc/lsb-release - curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/llvm-archive-keyring.gpg > /dev/null - echo "Types: deb - URIs: https://apt.llvm.org/${DISTRIB_CODENAME}/ - Suites: llvm-toolchain-${DISTRIB_CODENAME}-${{ env.CLANG_VER }} - Components: main - Signed-By: /usr/share/keyrings/llvm-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/llvm-toolchain.sources > /dev/null - sudo apt-get update -y - sudo apt-get install -y clang-${{ env.CLANG_VER }} llvm-${{ env.CLANG_VER }} - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${{ env.CLANG_VER }} 100 - sudo update-alternatives --set clang /usr/bin/clang-${{ env.CLANG_VER }} - sudo update-alternatives --install /usr/bin/llvm-cov llvm-cov /usr/bin/llvm-cov-${{ env.CLANG_VER }} 100 - sudo update-alternatives --install /usr/bin/asan_symbolize asan_symbolize /usr/bin/asan_symbolize-${{ env.CLANG_VER }} 100 - - - name: Set up environment - run: | - mkdir -p "${LOG_DIR}" - mkdir -p "${HOME}/bin" - echo "${HOME}/bin" >> $GITHUB_PATH - ( - echo "LINUX_VERSION=$(uname -r)" - echo "NPROC=$(getconf _NPROCESSORS_ONLN)" - echo "TMPDIR=$(mktemp -d -p /tmp)" - - case "${{ matrix.features }}" in - tiny) - echo "TEST=testtiny" - if ${{ contains(matrix.extra, 'nogui') }}; then - CONFOPT="--disable-gui" - fi - ;; - normal) - ;; - huge) - echo "TEST=scripttests test_libvterm indenttest syntaxtest" - INTERFACE=${{ matrix.interface || 'yes' }} - if ${{ matrix.python3 == 'stable-abi' }}; then - PYTHON3_CONFOPT="--with-python3-stable-abi=3.8" - fi - # The ubuntu-24.04 CI runner does not provide a python2 package. - CONFOPT="--enable-perlinterp=${INTERFACE} --enable-pythoninterp=no --enable-python3interp=${INTERFACE} --enable-rubyinterp=${INTERFACE} --enable-luainterp=${INTERFACE} --enable-tclinterp=${INTERFACE} ${PYTHON3_CONFOPT}" - ;; - esac - - if ${{ contains(matrix.extra, 'no_x11_wl') }}; then - CONFOPT="${CONFOPT} --without-x --disable-gui --without-wayland --enable-socketserver" - fi - if ${{ matrix.coverage == true }}; then - CFLAGS="${CFLAGS} --coverage -DUSE_GCOV_FLUSH" - echo "LDFLAGS=--coverage" - fi - if ${{ contains(matrix.extra, 'uchar') }}; then - CFLAGS="${CFLAGS} -funsigned-char" - fi - if ${{ contains(matrix.extra, 'testgui') }}; then - echo "TEST=-C src testgui" - fi - if ${{ contains(matrix.extra, 'unittests') }}; then - echo "TEST=unittests" - fi - if ${{ contains(matrix.extra, 'asan') }}; then - echo "SANITIZER_CFLAGS=-g -O0 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize-recover=all -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" - echo "ASAN_OPTIONS=print_stacktrace=1:log_path=${LOG_DIR}/asan" - echo "UBSAN_OPTIONS=print_stacktrace=1:log_path=${LOG_DIR}/ubsan" - echo "LSAN_OPTIONS=suppressions=${GITHUB_WORKSPACE}/src/testdir/lsan-suppress.txt" - fi - if ${{ contains(matrix.extra, 'vimtags') }}; then - echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim" - fi - if ${{ contains(matrix.extra, 'proto') }}; then - echo "TEST=-C src protoclean proto" - fi - echo "CFLAGS=${CFLAGS}" - echo "CONFOPT=${CONFOPT}" - # Disables GTK attempt to integrate with the accessibility service that does run in CI. - echo "NO_AT_BRIDGE=1" - ) >> $GITHUB_ENV - - - name: Set up system - run: | - if [[ ${CC} = clang ]]; then - # Use llvm-cov instead of gcov when compiler is clang. - ln -fs /usr/bin/llvm-cov ${HOME}/bin/gcov - fi - sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 - sudo usermod -a -G audio "${USER}" - sudo bash ci/setup-xvfb.sh - - - name: Check autoconf - if: contains(matrix.extra, 'unittests') - run: | - make -C src autoconf - - - name: Set up shadow dir - if: matrix.shadow - run: | - make -C src shadow - echo "SRCDIR=${{ matrix.shadow }}" >> $GITHUB_ENV - echo "SHADOWOPT=-C ${{ matrix.shadow }}" >> $GITHUB_ENV - - - name: Configure - run: | - ./configure --with-features=${{ matrix.features }} ${CONFOPT} --enable-fail-if-missing - # Append various warning flags to CFLAGS. - sed -i -f ci/config.mk.sed ${SRCDIR}/auto/config.mk - sed -i -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk - if [[ ${CC} = clang ]]; then - # Suppress some warnings produced by clang 12 and later. - sed -i -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk - fi - - - name: Build - if: (!contains(matrix.extra, 'unittests')) - run: | - make ${SHADOWOPT} -j${NPROC} - - - name: Check version - if: (!contains(matrix.extra, 'unittests')) - run: | - "${SRCDIR}"/vim --version - "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit - "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit - if ${{ matrix.features == 'huge' }}; then - # Also check that optional and dynamic features are configured and working - "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \ - -c "let g:required=['gettext', 'sodium', 'sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \ - -S ci/if_feat_check.vim -c quit - fi - - - name: Test - timeout-minutes: 45 - run: | - make ${SHADOWOPT} ${TEST} - - # Enable to debug failing tests live and ssh into the CI runners - # - name: Setup tmate session - # if: ${{ failure() }} - # uses: mxschmitt/action-tmate@v3 - # with: - # limit-access-to-actor: true - - - if: ${{ !cancelled() }} - uses: ./.github/actions/test_artifacts - - - name: Vim tags - if: contains(matrix.extra, 'vimtags') - run: | - # This will exit with an error code if the generated vim tags differs from source. - ( - cd runtime/doc - git diff --exit-code -- tags - make html; rm *.html tags.ref; - test -f errors.log && exit 3; - true - ) - - - name: Generate Proto files - if: contains(matrix.extra, 'proto') - run: | - # This will exit with an error code if the generated proto files differ from source - ( - git diff --exit-code -- src/proto/ - true - ) - - - name: Check Source Code style - if: contains(matrix.extra, 'codestyle') - run: | - make -C src/testdir codestyle - - - name: Check preprocessor indent - if: contains(matrix.extra, 'preproc_indent') - run: | - # This will exit with an error code if the files differ from source - ( - "${SRCDIR}"/vim -u NONE --not-a-term -esNX +"cd runtime/tools" -S preproc_indent.vim - git diff --exit-code -- src/*.[ch] src/xxd/xxd.c - true - ) - - - name: Check encoding of utf-8 runtime files - if: contains(matrix.extra, 'encoding') - run: | - # This will exit with an error code if utf-8 runtime files are not in utf-8 encoding - ( - find . -type f -name "*utf-8*.vim" -exec sh -c \ - 'iconv -f utf-8 -t utf-8 "$1" >/dev/null 2>&1 || echo "non utf-8 encoding detected in $1"' \ - find-sh {} \; |grep "non utf-8 encoding" && exit 3 - true - ) - - - name: Generate gcov files - if: matrix.coverage - run: | - cd "${SRCDIR}" - find . -type f -name '*.gcno' -exec gcov -pb {} + || true - - - name: Codecov - timeout-minutes: 20 - if: matrix.coverage - uses: codecov/codecov-action@v5 - with: - flags: linux,${{ matrix.features }}-${{ matrix.compiler }}-${{ join(matrix.extra, '-') }} - token: ${{ secrets.CODECOV_TOKEN }} - - - name: ASan logs - if: contains(matrix.extra, 'asan') && !cancelled() - run: | - for f in $(grep -lR '#[[:digit:]]* *0x[[:xdigit:]]*' "${LOG_DIR}"); do - echo "$f" - asan_symbolize -l "$f" - false # in order to fail a job - done - - macos: - runs-on: ${{ matrix.runner }} - - env: - CC: clang - TEST: test - SRCDIR: ./src - LEAK_CFLAGS: -DEXITFREE - TERM: xterm - - strategy: - fail-fast: false - matrix: - features: [tiny, normal, huge] - runner: [macos-15-intel, macos-26] - - steps: - - name: Checkout repository from github - uses: actions/checkout@v6 - - - name: Install packages - if: matrix.features == 'huge' - run: | - brew install lua libtool - echo "LUA_PREFIX=$(brew --prefix)" >> $GITHUB_ENV - - - name: Set up environment - run: | - ( - echo "NPROC=$(getconf _NPROCESSORS_ONLN)" - case "${{ matrix.features }}" in - tiny) - echo "TEST=testtiny" - echo "CONFOPT=--disable-gui" - ;; - normal) - ;; - huge) - echo "CONFOPT=--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp" - ;; - esac - ) >> $GITHUB_ENV - - - name: Configure - run: | - ./configure --with-features=${{ matrix.features }} ${CONFOPT} --enable-fail-if-missing - # Append various warning flags to CFLAGS. - # BSD sed needs backup extension specified. - sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk - # On macOS, the entity of gcc is clang. - sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk - # Suppress some warnings produced by clang 12 and later. - if clang --version | grep -qs 'Apple clang version \(1[3-9]\|[2-9]\)\.'; then - sed -i.bak -f ci/config.mk.clang-12.sed ${SRCDIR}/auto/config.mk - fi - - - name: Build - env: - LC_ALL: C - run: | - make -j${NPROC} - - - name: Check version - run: | - "${SRCDIR}"/vim --version - "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit - "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit - if ${{ matrix.features == 'huge' }}; then - # Also check that optional and dynamic features are configured and working - "${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 \ - -c "let g:required=['sound', 'perl', 'python3', 'lua', 'ruby', 'tcl']" \ - -S ci/if_feat_check.vim -c quit - fi - - - name: Install packages for testing - run: | - # Apple diff is broken. Use GNU diff instead. See #14032. - brew install diffutils - - - name: Test - timeout-minutes: 25 - run: | - make ${TEST} - - - if: ${{ !cancelled() }} - uses: ./.github/actions/test_artifacts - - windows: - runs-on: windows-2022 - - env: - # Interfaces - # Lua - LUA_VER: 54 - LUA_VER_DOT: '5.4' - LUA_RELEASE: 5.4.2 - LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip - LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip - LUA_DIR: D:\Lua - # do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l - LUA_DIR_SLASH: D:/Lua - # Python 2 - PYTHON_VER: 27 - PYTHON_VER_DOT: '2.7' - PYTHON_DIR: 'C:\Python27' - # Python 3 - PYTHON3_VER: 313 - PYTHON3_VER_DOT: '3.13' - # Other dependencies - # winpty - WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip - # libsodium - SODIUM_VER: '1.0.20' - # SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip - SODIUM_MSVC_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-msvc.zip - SODIUM_MSVC_VER: v143 - # SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz - SODIUM_MINGW_URL: https://github.com/jedisct1/libsodium/releases/download/%SODIUM_VER%-RELEASE/libsodium-%SODIUM_VER%-mingw.tar.gz - SODIUM_MINGW_VER: 26 - # Gettext-tools, iconv and libraries - GETTEXT32_URL: https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-32.zip - GETTEXT64_URL: https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-64.zip - # Escape sequences - COL_RED: "\x1b[31m" - COL_GREEN: "\x1b[32m" - COL_YELLOW: "\x1b[33m" - COL_RESET: "\x1b[m" - - strategy: - fail-fast: false - matrix: - include: - - { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, python3: stable } - - { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: yes, arch: x86, python3: stable, coverage: yes } - - { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: yes, arch: x86 } - - { features: HUGE, toolchain: mingw, VIMDLL: yes, GUI: no, arch: x64, coverage: yes } - - { features: HUGE, toolchain: msvc, VIMDLL: no, GUI: no, arch: x64, ttytype: conpty } - - { features: NORMAL, toolchain: msvc, VIMDLL: yes, GUI: no, arch: x86 } - - { features: NORMAL, toolchain: mingw, VIMDLL: no, GUI: yes, arch: x64 } - - { features: TINY, toolchain: msvc, VIMDLL: yes, GUI: yes, arch: x64 } - - { features: TINY, toolchain: mingw, VIMDLL: no, GUI: no, arch: x86 } - - steps: - - name: Initialize - id: init - shell: bash - run: | - # Show Windows version - cmd /c ver - - if ${{ matrix.arch == 'x64' }}; then - cygreg=registry - pyreg= - echo "VCARCH=amd64" >> $GITHUB_ENV - echo "WARCH=x64" >> $GITHUB_ENV - echo "BITS=64" >> $GITHUB_ENV - echo "MSYSTEM=MINGW64" >> $GITHUB_ENV - else - cygreg=registry32 - pyreg=-32 - echo "VCARCH=x86" >> $GITHUB_ENV - echo "WARCH=ia32" >> $GITHUB_ENV - echo "BITS=32" >> $GITHUB_ENV - echo "MSYSTEM=MINGW32" >> $GITHUB_ENV - fi - - echo "VCVARSALL=$(vswhere -products \* -latest -property installationPath)\\VC\\Auxiliary\\Build\\vcvarsall.bat" >> $GITHUB_ENV - if ${{ matrix.features != 'TINY' }}; then - if ${{ matrix.arch == 'x86' }}; then - choco install python2 --no-progress --forcex86 - else - choco install python2 --no-progress - fi - fi - python3_dir=$(cat "/proc/$cygreg/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}$pyreg/InstallPath/@") - echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV - - if ${{ matrix.toolchain == 'msvc' }}; then - SODIUM_DIR=D:\\libsodium - echo "SODIUM_LIB=${SODIUM_DIR}\\${{ matrix.arch == 'x64' && 'x64' || 'Win32' }}\\Release\\${SODIUM_MSVC_VER}\\dynamic" >> $GITHUB_ENV - else - SODIUM_DIR=D:\\libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }} - # do not want \L to end up in pathdef.c and compiler complaining about unknown escape sequences \l - SODIUM_DIR_SLASH=D:/libsodium-win${{ matrix.arch == 'x64' && '64' || '32' }} - echo "SODIUM_LIB=${SODIUM_DIR}\\bin" >> $GITHUB_ENV - echo "SODIUM_DIR_SLASH=${SODIUM_DIR_SLASH}" >> $GITHUB_ENV - fi - echo "SODIUM_DIR=${SODIUM_DIR}" >> $GITHUB_ENV - echo "GETTEXT_PATH=D:\gettext${{ matrix.arch == 'x64' && '64' || '32' }}" >> $GITHUB_ENV - - - uses: msys2/setup-msys2@v2 - if: matrix.toolchain == 'mingw' - with: - update: true - install: tar - pacboy: >- - make:p gcc:p - msystem: ${{ env.MSYSTEM }} - release: false - - - name: Checkout repository from github - uses: actions/checkout@v6 - - - name: Create a list of download URLs - shell: cmd - run: | - type NUL > urls.txt - echo %LUA_RELEASE%>> urls.txt - echo %WINPTY_URL%>> urls.txt - echo %SODIUM_VER%>> urls.txt - echo %GETTEXT32_URL%>> urls.txt - echo %GETTEXT64_URL%>> urls.txt - - - name: Cache downloaded files - uses: actions/cache@v5 - with: - path: downloads - key: ${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('urls.txt') }} - - - name: Download dependencies - shell: cmd - run: | - path C:\Program Files\7-Zip;%path% - if not exist downloads mkdir downloads - - echo %COL_GREEN%Download Lua%COL_RESET% - call :downloadfile %LUA${{ env.BITS }}_URL% downloads\lua.zip - 7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1 - - if not "${{ matrix.ttytype }}" == "conpty" ( - echo %COL_GREEN%Download winpty%COL_RESET% - call :downloadfile %WINPTY_URL% downloads\winpty.zip - 7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1 - copy /Y D:\winpty\%WARCH%\bin\winpty.dll src\winpty%BITS%.dll - copy /Y D:\winpty\%WARCH%\bin\winpty-agent.exe src\ - ) - - echo %COL_GREEN%Download libsodium%COL_RESET% - if "${{ matrix.toolchain }}"=="msvc" ( - call :downloadfile %SODIUM_MSVC_URL% downloads\libsodium.zip - 7z x -y downloads\libsodium.zip -oD:\ > nul || exit 1 - ) else ( - call :downloadfile %SODIUM_MINGW_URL% downloads\libsodium.tar.gz - 7z x -y downloads\libsodium.tar.gz -so | 7z x -si -ttar -oD:\ > nul || exit 1 - mklink %SODIUM_LIB%\libsodium.dll %SODIUM_LIB%\libsodium-%SODIUM_MINGW_VER%.dll - ) - - echo %COL_GREEN%Download Gettext%COL_RESET% - call :downloadfile %GETTEXT${{ env.BITS }}_URL% downloads\gettext${{ env.BITS }}.zip - 7z e -y downloads\gettext${{ env.BITS }}.zip -oD:\gettext${{ env.BITS }} > nul || exit 1 - copy /y D:\gettext${{ env.BITS }}\libintl-8.dll src\ || exit 1 - copy /y D:\gettext${{ env.BITS }}\libiconv-2.dll src\ || exit 1 - - goto :eof - - :downloadfile - :: call :downloadfile <URL> <localfile> - if not exist %2 ( - curl -f -L %1 -o %2 - ) - if ERRORLEVEL 1 ( - rem Retry once. - curl -f -L %1 -o %2 || exit 1 - ) - goto :eof - - - name: Build (MSVC) - if: matrix.toolchain == 'msvc' - shell: cmd - run: | - call "%VCVARSALL%" %VCARCH% - cd src - if "${{ matrix.VIMDLL }}"=="yes" ( - set GUI=yes - ) else ( - set GUI=${{ matrix.GUI }} - ) - if "${{ matrix.python3 }}"=="stable" ( - set PYTHON3_STABLE=yes - ) else ( - set PYTHON3_STABLE=no - ) - if "${{ matrix.features }}"=="HUGE" ( - nmake -nologo -f Make_mvc.mak ^ - FEATURES=${{ matrix.features }} ^ - GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^ - DYNAMIC_LUA=yes LUA=%LUA_DIR% ^ - DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^ - DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR% ^ - DYNAMIC_PYTHON3_STABLE_ABI=%PYTHON3_STABLE% ^ - DYNAMIC_SODIUM=yes SODIUM=%SODIUM_DIR% ^ - CI_FLAGS=/we4267 - ) else ( - nmake -nologo -f Make_mvc.mak ^ - FEATURES=${{ matrix.features }} ^ - GUI=%GUI% IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} ^ - CI_FLAGS=/we4267 - ) - - - name: Build (MinGW) - if: matrix.toolchain == 'mingw' - shell: msys2 {0} - run: | - cd src - if [ "${{ matrix.VIMDLL }}" = "yes" ]; then - GUI=yes - else - GUI=${{ matrix.GUI }} - fi - if [ "${{ matrix.python3 }}" = "stable" ]; then - PYTHON3_STABLE=yes - else - PYTHON3_STABLE=no - fi - if [ "${{ matrix.features }}" = "HUGE" ]; then - mingw32-make -f Make_ming.mak -j2 \ - FEATURES=${{ matrix.features }} \ - GUI=$GUI IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} \ - DYNAMIC_LUA=yes LUA=${LUA_DIR_SLASH} \ - DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \ - DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \ - DYNAMIC_PYTHON3_STABLE_ABI=${PYTHON3_STABLE} \ - DYNAMIC_SODIUM=yes SODIUM=${SODIUM_DIR_SLASH} \ - STATIC_STDCPLUS=yes COVERAGE=${{ matrix.coverage }} - else - mingw32-make -f Make_ming.mak -j2 \ - FEATURES=${{ matrix.features }} \ - GUI=$GUI IME=yes ICONV=yes VIMDLL=${{ matrix.VIMDLL }} \ - STATIC_STDCPLUS=yes - fi - - - name: Check version - shell: cmd - run: | - PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH% - if "${{ matrix.GUI }}"=="yes" ( - start /wait src\gvim -u NONE -i NONE -c "redir > version.txt | ver | q" || exit 1 - type version.txt - echo. - start /wait src\gvim -u NONE -i NONE -c "redir! > version.txt | so ci\if_ver-1.vim | q" - start /wait src\gvim -u NONE -i NONE -c "redir >> version.txt | so ci\if_ver-2.vim | q" - type version.txt - del version.txt - ) else ( - src\vim --version || exit 1 - src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit - src\vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit - if "${{ matrix.features }}"=="HUGE" ( - src\vim -u NONE -i NONE --not-a-term -esNX -V1 ^ - -c "let g:required=['gettext', 'sodium', 'sound', 'python3', 'lua']" ^ - -S ci/if_feat_check.vim -c quit - ) - ) - - #- name: Prepare Artifact - # shell: cmd - # run: | - # mkdir artifacts - # copy src\*vim.exe artifacts - # copy src\vim*.dll artifacts - # - #- name: Upload Artifact - # uses: actions/upload-artifact@v7 - # with: - # name: vim${{ matrix.bits }}-${{ matrix.toolchain }} - # path: ./artifacts - - # disabled because of https://github.com/tunisiano187/Chocolatey-packages/issues/3916 - #- name: Install packages for testing - # shell: bash - # run: | - # if ${{ matrix.features != 'TINY' }}; then - # if ${{ matrix.arch == 'x64' }}; then - # choco install netbeans --no-progress - # else - # exit 0 - # fi - # fi - - - name: Test and show the result of testing gVim - if: matrix.GUI == 'yes' || matrix.VIMDLL == 'yes' - shell: cmd - timeout-minutes: 15 - run: | - PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%;%SODIUM_LIB% - call "%VCVARSALL%" %VCARCH% - - echo %COL_GREEN%Test gVim:%COL_RESET% - cd src\testdir - if "${{ matrix.GUI }}"=="yes" ( - nmake -nologo -f Make_mvc.mak VIMPROG=..\gvim || exit 1 - ) else ( - @rem Run only tiny tests. - nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\gvim || exit 1 - ) - - - name: Test and show the result of testing Vim - if: matrix.GUI == 'no' || matrix.VIMDLL == 'yes' - shell: cmd - timeout-minutes: 15 - run: | - PATH %LUA_DIR%;C:\msys64\%MSYSTEM%\bin;%PYTHON3_DIR%;%PATH%;%SODIUM_LIB% - call "%VCVARSALL%" %VCARCH% - - echo %COL_GREEN%Test Vim:%COL_RESET% - cd src\testdir - nmake -nologo -f Make_mvc.mak clean - if "${{ matrix.GUI }}"=="no" ( - nmake -nologo -f Make_mvc.mak VIMPROG=..\vim || exit 1 - ) else ( - @rem Run only tiny tests. - nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\vim || exit 1 - ) - - - if: ${{ !cancelled() }} - uses: ./.github/actions/test_artifacts - - - name: Generate gcov files - if: matrix.coverage - shell: msys2 {0} - run: | - cd src - find . -type f -name '*.gcno' -exec gcov -pb {} + || true - - - name: Codecov - timeout-minutes: 20 - if: matrix.coverage - uses: codecov/codecov-action@v5 - with: - directory: src - flags: windows,${{ matrix.toolchain }}-${{ matrix.arch }}-${{ matrix.features }} - token: ${{ secrets.CODECOV_TOKEN }} diff --git a/uvim/.github/workflows/codeql-analysis.yml b/uvim/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 3364adf340..0000000000 --- a/uvim/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,76 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -name: "CodeQL" - -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] - schedule: - - cron: '0 18 * * 1' - -# Cancels all previous workflow runs for pull requests that have not completed. -concurrency: - # The concurrency group contains the workflow name and the branch name for - # pull requests or the commit hash for any other events. - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - analyze: - permissions: - contents: read # to fetch code (actions/checkout) - security-events: write # (github/codeql-action/autobuild) - - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - # Override automatic language detection by changing the below list - # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] - language: ['cpp', 'python'] - # Learn more... - # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection - - steps: - - name: Checkout repository from github - uses: actions/checkout@v6 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v4 - - # âšī¸ Command-line programs to run using the OS shell. - # đ https://git.io/JvXDl - - # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 diff --git a/uvim/.github/workflows/label.yml b/uvim/.github/workflows/label.yml deleted file mode 100644 index e413603bd4..0000000000 --- a/uvim/.github/workflows/label.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This workflow will triage pull requests and apply a label based on the -# paths that are modified in the pull request. -# -# To use this workflow, you will need to set up a .github/labeler.yml -# file with configuration. For more information, see: -# https://github.com/actions/labeler - -name: Labeler -on: [pull_request_target] - -jobs: - label: - - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - - steps: - - uses: actions/labeler@v6 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" |
