Skip to content

ci: prepare CI for asynchronous support#311

Merged
Daan Timmer (daantimmer) merged 32 commits intomainfrom
feature/prepare-ci-jobs-for-synchronous-and-asynchronous-support
Mar 19, 2026
Merged

ci: prepare CI for asynchronous support#311
Daan Timmer (daantimmer) merged 32 commits intomainfrom
feature/prepare-ci-jobs-for-synchronous-and-asynchronous-support

Conversation

@daantimmer
Copy link
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings March 18, 2026 09:15
@github-actions
Copy link

github-actions bot commented Mar 18, 2026

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 6 0 0 0.03s
✅ CPP clang-format 229 0 0 0 1.93s
✅ DOCKERFILE hadolint 1 0 0 0.03s
⚠️ MARKDOWN markdownlint 7 4 17 0 1.24s
✅ MARKDOWN markdown-table-formatter 7 4 0 0 0.33s
✅ REPOSITORY git_diff yes no no 0.02s
✅ REPOSITORY grype yes no no 33.0s
✅ REPOSITORY ls-lint yes no no 0.11s
✅ REPOSITORY secretlint yes no no 4.7s
✅ REPOSITORY syft yes no no 1.92s
✅ REPOSITORY trivy yes no no 11.45s
✅ REPOSITORY trivy-sbom yes no no 0.21s
✅ REPOSITORY trufflehog yes no no 4.89s
⚠️ SPELL lychee 84 1 0 21.26s
✅ YAML prettier 10 0 0 0 0.86s
✅ YAML v8r 10 0 0 8.2s
✅ YAML yamllint 10 0 0 0.59s

Detailed Issues

⚠️ SPELL / lychee - 1 error
[404] https://github.com/yourname/amp-cucumber-cpp-runner.git | Network error: Not Found
📝 Summary
---------------------
🔍 Total..........158
✅ Successful.....157
⏳ Timeouts.........0
🔀 Redirected.......0
👻 Excluded.........0
❓ Unknown..........0
🚫 Errors...........1

Errors in CONTRIBUTING.md
[404] https://github.com/yourname/amp-cucumber-cpp-runner.git | Network error: Not Found
⚠️ MARKDOWN / markdownlint - 17 errors
CHANGELOG.md:30 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:37 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
CHANGELOG.md:45 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:49 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:58 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:64 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
CHANGELOG.md:72 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:76 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:81 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]
CHANGELOG.md:90 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:101 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
CHANGELOG.md:109 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:113 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:138 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]
CHANGELOG.md:145 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
cmake/WindowsToolchainFilesProvidedBy.md:1 error MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "<https://github.com/MarkSchofi..."]
README.md:114 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.4.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,CPP_CLANG_FORMAT,DOCKERFILE_HADOLINT,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_GIT_DIFF,REPOSITORY_GRYPE,REPOSITORY_LS_LINT,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions
Copy link

github-actions bot commented Mar 18, 2026

Test Results

27 tests  ±0   27 ✅ ±0   28s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 7c44a6a. ± Comparison against base commit 379a56b.

♻️ This comment has been updated with latest results.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates CMake presets and the GitHub Actions CI workflow to distinguish “synchronous” builds (as groundwork for adding asynchronous variants later) and consolidates CI builds into a devcontainer-based job.

Changes:

  • Renames the host-single-Debug preset(s) to host-single-Debug-synchronous.
  • Refactors CI to build both Host and Windows targets via a matrix devcontainer job.
  • Updates the host build/test job to parameterize presets by type (currently synchronous) and expands OS coverage.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
CMakePresets.json Renames host single-config debug presets to include -synchronous and updates corresponding build/test preset references.
.github/workflows/ci.yml Reworks CI jobs into a devcontainer build matrix and updates host build/test preset names and log upload path.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 18, 2026 10:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CMake/CI setup to support adding asynchronous build/test variants by parameterizing preset selection and centralizing compiler-cache launcher configuration in CMake.

Changes:

  • Move compiler cache launcher setup from CI/presets into CMakeLists.txt via RULE_LAUNCH_COMPILE with ccache/sccache autodetection.
  • Rename the single-config Debug host preset to include a -synchronous suffix and update CI to use host-single-Debug-${{ matrix.type }}.
  • Consolidate CI builds into a devcontainer job matrix for Host and Windows, and fix the test-log artifact path.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
CMakePresets.json Removes per-preset compiler launcher cache vars and renames the host single-config Debug preset to -synchronous.
CMakeLists.txt Adds auto-detection for ccache/sccache and sets RULE_LAUNCH_COMPILE globally.
.github/workflows/static-analysis.yml Removes explicit -DCMAKE_*_COMPILER_LAUNCHER=ccache args and relies on CMake-side detection.
.github/workflows/ci.yml Restructures jobs with matrices (target/type), removes explicit compiler-launcher args, and updates artifact paths.
Comments suppressed due to low confidence (2)

.github/workflows/ci.yml:44

  • The build cache key for ccache-action is currently just ${{ github.job }} even though this job runs a matrix.target for Host vs Windows. That can cause cache pollution/evictions between different toolchains. Include matrix.target (and ideally relevant compiler/toolchain identifiers) in the cache key.
        run: ./get-winsdk.sh
      - uses: hendrikmuhs/ccache-action@1bbbcda0748b3e340dee71a314fa68ffcbd6df79 # v1.2.21
        with:
          key: ${{ github.job }}

.github/workflows/ci.yml:92

  • The ccache-action cache key here is ${{ github.job }}-${{ matrix.os }}. Since you’re introducing a matrix.type dimension (and presumably will add more values later), include matrix.type in the key to avoid sharing a cache between synchronous vs asynchronous builds when that matrix expands.
        with:
          persist-credentials: false
      - uses: hendrikmuhs/ccache-action@1bbbcda0748b3e340dee71a314fa68ffcbd6df79 # v1.2.21
        with:
          key: ${{ github.job }}-${{ matrix.os }}
          max-size: 2G

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 18, 2026 10:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CMake/CI setup to support upcoming “synchronous vs asynchronous” CI variants by renaming presets, centralizing compiler-cache launcher selection in CMake, and simplifying workflow configuration.

Changes:

  • Move compiler cache launcher configuration from presets/workflows into CMakeLists.txt (auto-detect ccache/sccache).
  • Rename the single-config debug preset to host-single-Debug-synchronous and update workflow usage accordingly.
  • Refactor CI to use a matrix build in the devcontainer and remove per-job preset launcher args.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
CMakePresets.json Renames the host single-config Debug preset to include -synchronous and updates build/test presets to match.
CMakeLists.txt Adds ccache/sccache detection and sets a global compile launcher property.
.github/workflows/static-analysis.yml Removes preset launcher args now that caching is handled by CMake.
.github/workflows/ci.yml Consolidates builds into a devcontainer matrix, updates preset names, and removes preset launcher args.
Comments suppressed due to low confidence (1)

CMakePresets.json:39

  • The preset is labeled as using a "Single Config Generator", but it doesn't set generator (so it will fall back to the platform default, which can be multi-config on some runners). To make the preset behavior match its name/displayName and keep CI consistent across OSes, explicitly set a single-config generator (e.g., Ninja) here (or adjust the name/displayName if multi-config is acceptable).
            "name": "host-single-Debug-synchronous",
            "displayName": "Configuration for Host Tooling and Tests, Single Config Generator, Debug, synchronous",
            "inherits": "defaults",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug"
            }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 18, 2026 13:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates CMake configuration and GitHub Actions workflows to make CI configuration/preset selection extensible for upcoming “asynchronous” support, while centralizing compiler-cache launcher selection inside CMake.

Changes:

  • Move compiler cache launcher selection (sccache/ccache) from CI/presets into CMakeLists.txt.
  • Rename the host-single-Debug preset family to host-single-Debug-synchronous and update CI to use a {type} suffix.
  • Simplify CI by consolidating devcontainer builds into a matrix job and removing per-job configurePresetAdditionalArgs.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
CMakePresets.json Removes compiler launcher cache vars; renames host single-config debug preset to *-synchronous and updates build/test presets accordingly.
CMakeLists.txt Adds standalone logic to auto-enable sccache/ccache via RULE_LAUNCH_COMPILE (and MSVC debug-info adjustment when using sccache).
.github/workflows/static-analysis.yml Drops explicit compiler-launcher args now that caching is configured in CMake.
.github/workflows/ci.yml Consolidates builds into a devcontainer matrix and updates host build/test to use the new synchronous preset naming.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 19, 2026 12:07
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CMake preset structure and GitHub Actions workflows to introduce explicit synchronous build/test presets (as groundwork for future asynchronous support), while also adding new Windows/MSVC toolchain helper modules and shifting ccache launcher configuration into CMake.

Changes:

  • Add new CMake presets + workflow presets for *-Debug-synchronous across ubuntu/windows/macos.
  • Add MSVC/VS discovery helper CMake modules (VSWhere/WSL) and a new Windows.MSVC.toolchain.cmake.
  • Simplify CI/static-analysis workflows by relying on in-project ccache detection instead of passing launcher args via workflows.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
cmake/WindowsToolchainFilesProvidedBy.md Adds attribution link for the toolchain source.
cmake/Windows.MSVC.toolchain.cmake Introduces an MSVC toolchain for non-VS generators; configures VS toolset, libraries, and predefines.
cmake/WSL.cmake Adds helper functions for WSL registry reads and Windows path conversion.
cmake/VSWhere.cmake Adds vswhere-based VS discovery + validation helper used by the MSVC toolchain.
CMakePresets.json Adds synchronous presets/workflows and removes default ccache launcher cache variables.
CMakeLists.txt Adds standalone-only auto-detection and enablement of ccache as compiler launcher.
.github/workflows/static-analysis.yml Removes explicit CMAKE_*_COMPILER_LAUNCHER args; relies on CMakeLists behavior.
.github/workflows/ci.yml Refactors CI jobs (devcontainer matrix + workflowPreset-based host build/test); adjusts artifact paths.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 19, 2026 12:26
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s CMake presets and GitHub Actions workflows to support a new “synchronous” configuration set and introduces a native Windows MSVC (non–Visual Studio generator) toolchain to broaden CI/build support.

Changes:

  • Added CMake toolchain modules for locating/configuring MSVC + Windows SDK tooling (incl. VSWhere + Windows Kits helpers).
  • Reworked CMakePresets.json to add OS-specific *-Debug-synchronous configure/build/test/workflow presets.
  • Updated CI/static-analysis workflows to use presets/workflow presets and moved compiler launcher selection (ccache) into CMakeLists.txt.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
cmake/WindowsToolchainFilesProvidedBy.md Adds provenance link for the imported Windows toolchain logic.
cmake/Windows.MSVC.toolchain.cmake New MSVC toolchain for Ninja/non-VS-generator builds on Windows.
cmake/Windows.Kits.cmake New Windows SDK discovery/config for toolchain usage (and WSL support).
cmake/WSL.cmake Adds helper functions for reading Windows registry/converting paths under WSL.
cmake/VSWhere.cmake Adds VS discovery via vswhere plus helper validation utilities.
CMakePresets.json Introduces *-Debug-synchronous presets and workflow presets; removes launcher settings from defaults.
CMakeLists.txt Auto-enables ccache launcher when building standalone.
.github/workflows/static-analysis.yml Removes explicit launcher args; relies on CMakeLists.txt ccache detection.
.github/workflows/ci.yml Refactors CI jobs (matrix + workflow presets), adds devcontainer matrix build, adjusts cache usage.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 19, 2026 12:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the CMake/CI configuration to support a “synchronous” build/test preset workflow across platforms, including adding a native MSVC (non–Visual Studio generator) toolchain and restructuring CI jobs to use CMake workflow presets.

Changes:

  • Added Windows/MSVC toolchain support (VS discovery, Windows SDK selection, and WSL helpers).
  • Extended CMakePresets.json with synchronous configure/build/test + workflow presets for ubuntu/windows/macos.
  • Updated GitHub Actions workflows to rely on presets/workflow presets and removed explicit compiler-launcher configure args; added launcher auto-detection in CMakeLists.txt.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
cmake/WindowsToolchainFilesProvidedBy.md Adds attribution link for the toolchain source.
cmake/Windows.MSVC.toolchain.cmake New MSVC toolchain for Ninja/non-VS generators (VS + toolset discovery, program path setup).
cmake/Windows.Kits.cmake New Windows SDK discovery/config (incl. FASTBuild env override handling).
cmake/WSL.cmake New helpers for registry reads and Windows→WSL path conversion.
cmake/VSWhere.cmake New VS discovery wrapper around vswhere plus validation helper.
CMakePresets.json Introduces synchronous presets + workflow presets and adjusts launcher defaults.
CMakeLists.txt Adds standalone auto-detection for sccache (MSVC) / ccache (others).
.github/workflows/static-analysis.yml Removes explicit preset args for compiler launchers.
.github/workflows/ci.yml Restructures CI jobs and switches host build/test to workflowPreset.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 19, 2026 13:01
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s CMake presets and GitHub Actions workflows to support new “synchronous” build/test workflows across OSes, and introduces Windows MSVC toolchain support (including VS/Windows SDK discovery helpers) to enable those CI paths.

Changes:

  • Add Windows MSVC toolchain + helper CMake modules to locate Visual Studio / Windows SDK (including WSL support).
  • Restructure CMakePresets.json to add OS-specific *-Debug-synchronous configure/build/test/workflow presets.
  • Update CI workflows to use workflow presets and remove explicit compiler launcher args (moving launcher selection into CMake).

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
cmake/WindowsToolchainFilesProvidedBy.md Records source/reference for the Windows toolchain files.
cmake/Windows.MSVC.toolchain.cmake Adds a Ninja/non-VS-generator MSVC toolchain setup for Windows.
cmake/Windows.Kits.cmake Adds Windows SDK discovery and kit paths/tool setup.
cmake/WSL.cmake Adds WSL helpers for registry reads and path conversion.
cmake/VSWhere.cmake Adds vswhere-based Visual Studio discovery and VS file validation.
CMakePresets.json Adds synchronous OS workflow presets and adjusts preset layout for CI.
CMakeLists.txt Adds compiler launcher auto-detection logic (ccache/sccache).
.mega-linter.yml Disables JSON linting in mega-linter config.
.github/workflows/static-analysis.yml Removes explicit launcher args; relies on CMake launcher auto-detection.
.github/workflows/ci.yml Reworks CI into matrix-based devcontainer builds and OS workflowPreset-based build/test.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 19, 2026 14:52
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors CI/CMake preset wiring to introduce “synchronous” build/test workflows (as groundwork for future async support) and adds Windows MSVC toolchain support via new CMake toolchain/modules.

Changes:

  • Introduces OS-specific *-Debug-synchronous configure/build/test/workflow presets and updates CI to use workflow presets.
  • Adds new Windows-related CMake modules: VS discovery (vswhere), Windows SDK (Kits) resolution, and WSL registry/path helpers, plus an MSVC Ninja toolchain file.
  • Updates CI/static-analysis workflows and MegaLinter configuration accordingly.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
cmake/WindowsToolchainFilesProvidedBy.md Adds attribution/source link for the toolchain files.
cmake/Windows.MSVC.toolchain.cmake New MSVC (non-VS generator) toolchain setup for Ninja builds.
cmake/Windows.Kits.cmake New Windows SDK discovery/configuration helper.
cmake/WSL.cmake Adds WSL helpers for registry reads and path conversion.
cmake/VSWhere.cmake Adds vswhere-based VS discovery and validation helpers.
CMakePresets.json Adds synchronous presets + workflow presets and updates generators for single-config usage.
.mega-linter.yml Adjusts enabled linters (notably removing JSON from ENABLE).
.github/workflows/static-analysis.yml Removes explicit launcher args and relies more on presets.
.github/workflows/ci.yml Refactors CI jobs (devcontainer build matrix + workflowPreset-based host build/test).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings March 19, 2026 15:01
@sonarqubecloud
Copy link

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares CI and CMake presets/toolchains to support a “synchronous” build/test workflow across Ubuntu, Windows, and macOS, including adding a native MSVC (non–Visual Studio generator) toolchain for Windows runners.

Changes:

  • Add MSVC-oriented CMake toolchain + helpers (VSWhere/Windows SDK/WSL registry helpers) under cmake/.
  • Expand CMakePresets.json with *-Debug-synchronous configure/build/test/workflow presets and update CI to use workflow presets.
  • Simplify CI/static-analysis preset arguments by relying on preset-defined compiler launchers (ccache).

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
cmake/WindowsToolchainFilesProvidedBy.md Adds attribution/source link for the Windows toolchain files.
cmake/Windows.MSVC.toolchain.cmake New MSVC toolchain file to drive Ninja-based builds using Visual Studio toolsets/SDK.
cmake/Windows.Kits.cmake New helper to locate/configure Windows SDK paths/tools and add include/link directories.
cmake/WSL.cmake New helper functions for WSL registry reads and path conversion.
cmake/VSWhere.cmake New helper to locate Visual Studio instances via vswhere and validate VS file presence.
CMakePresets.json Introduces synchronous presets + workflow presets; sets default ccache launcher via defaults.
.mega-linter.yml Disables JSON in enabled linters list.
.github/workflows/static-analysis.yml Removes explicit preset args for compiler launchers (now provided by presets).
.github/workflows/ci.yml Refactors CI into devcontainer build matrix + OS workflow-preset-based build/test matrix.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@daantimmer Daan Timmer (daantimmer) merged commit 0811f80 into main Mar 19, 2026
24 checks passed
@daantimmer Daan Timmer (daantimmer) deleted the feature/prepare-ci-jobs-for-synchronous-and-asynchronous-support branch March 19, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants