Conversation
… compatibility kit
…r to catch errors
…ta, doc-strings, empty, examples-tables and minimal
…ooks-beforeall-error, hooks, hooks-attachment and hooks-conditional compatibility tests
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|
| ✅ ACTION | actionlint | 6 | 0 | 0 | 0.25s | |
| ✅ CPP | clang-format | 185 | 0 | 0 | 0 | 1.35s |
| ✅ DOCKERFILE | hadolint | 1 | 0 | 0 | 0.27s | |
| ✅ JSON | jsonlint | 8 | 0 | 0 | 0.16s | |
| ✅ JSON | prettier | 8 | 6 | 0 | 0 | 0.51s |
| markdownlint | 6 | 3 | 14 | 0 | 0.89s | |
| ✅ MARKDOWN | markdown-table-formatter | 6 | 3 | 0 | 0 | 0.27s |
| ✅ REPOSITORY | git_diff | yes | no | no | 0.02s | |
| ✅ REPOSITORY | grype | yes | no | no | 29.13s | |
| ✅ REPOSITORY | ls-lint | yes | no | no | 0.07s | |
| ✅ REPOSITORY | secretlint | yes | no | no | 2.01s | |
| ✅ REPOSITORY | syft | yes | no | no | 1.34s | |
| ✅ REPOSITORY | trivy | yes | no | no | 5.51s | |
| ✅ REPOSITORY | trivy-sbom | yes | no | no | 0.12s | |
| ✅ REPOSITORY | trufflehog | yes | no | no | 2.18s | |
| lychee | 83 | 1 | 0 | 3.57s | ||
| ✅ YAML | prettier | 10 | 0 | 0 | 0 | 0.48s |
| ✅ YAML | v8r | 10 | 0 | 0 | 5.65s | |
| ✅ YAML | yamllint | 10 | 0 | 0 | 0.5s |
Detailed Issues
⚠️ SPELL / lychee - 1 error
[404] https://github.com/yourname/amp-cucumber-cpp-runner.git | Network error: Not Found
📝 Summary
---------------------
🔍 Total..........155
✅ Successful.....154
⏳ 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 - 14 errors
CHANGELOG.md:26 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
CHANGELOG.md:38 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:47 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:53 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
CHANGELOG.md:61 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:65 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:70 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]
CHANGELOG.md:79 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:90 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
CHANGELOG.md:98 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:102 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:127 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]
CHANGELOG.md:134 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Chores"]
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.3.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,CPP_CLANG_FORMAT,DOCKERFILE_HADOLINT,JSON_JSONLINT,JSON_PRETTIER,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
Test Results27 tests - 1 26 ✅ - 2 29s ⏱️ +26s For more details on these failures, see this check. Results for commit bcfa4cf. ± Comparison against base commit 42ee292. This pull request removes 6 and adds 5 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
… Argument, Errors, Expression, ParameterRegistry
…tency and remove unused Polyfill.hpp
… tag_expression files
…lication and Timestamp files
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 291 out of 419 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
cucumber_cpp/library/engine/Table.cpp:1
- This file appears to be a header file (with header guards) but has a
.cppextension. This is a mismatch - either rename to.hppor remove the header guards if this is meant to be a source file.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| #include "cucumber_cpp/library/cucumber_expression/ParameterRegistry.hpp" | ||
| #include "fmt/format.h" | ||
| #include <cstddef> | ||
| #include <format> |
There was a problem hiding this comment.
The <format> header is included but never used. All formatting is done with fmt::format. Remove this unused include.
| #include <format> |
…oved clarity in SourceLocationOrder
|
@daantimmer Did the .ts (typescript) placeholders get into the repository by accident? Though I did not find how to actually supply parameter for "optionally supply PATH to redirect formatter output". What is the intended usage? Besides pipeline convenience, also wanted to check if the bug that I addressed in my PR about formatters always outputting something, even when not enabled was still there. Probably not, given all the changes, but was still curious. I have some ideas about implementing meta message. Will try it out after this PR as an exercise to learn how I can hook into the new broadcaster architecture. |
Good remark, forgot to remove them. They are the original step implementation for each compatibility test (CCK) that I needed to re-implement in C++.
Thats some good feedback! Have you noticed the additions made to hooks (optional naming, optional explicit ordering) (hooks are now automatically ordered by
'docs' are a bit WIP. But you can supply them like:
That would be great to have some additional thought going in to the meta message. I am not too sure of the best way getting this working on both mac, windows and linux. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 291 out of 381 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (3)
cucumber_cpp/library/formatter/helper/test/TestDummy.cpp:1
- The namespace is declared as
cucumber_cpp::library::supportbut the test is for theformatter.helperlibrary. This should becucumber_cpp::library::formatter::helperto match the library being tested.
cucumber_cpp/library/assemble/test/TestDummy.cpp:1 - The namespace is declared as
cucumber_cpp::library::supportbut the test is for theassemblelibrary. This should becucumber_cpp::library::assembleto match the library being tested.
cucumber_cpp/library/api/test/TestDummy.cpp:1 - The namespace is declared as
cucumber_cpp::library::supportbut the test is for theapilibrary. This should becucumber_cpp::library::apito match the library being tested.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -0,0 +1,8 @@ | |||
| #include <gtest/gtest.h> | |||
|
|
|||
| namespace cucumber_cpp::library::support | |||
There was a problem hiding this comment.
The namespace is declared as cucumber_cpp::library::support but the test is for the formatter library. This should be cucumber_cpp::library::formatter to match the library being tested.
| namespace cucumber_cpp::library::support | |
| namespace cucumber_cpp::library::formatter |
| #include "cucumber_cpp/library/cucumber_expression/ParameterRegistry.hpp" | ||
| #include "fmt/format.h" | ||
| #include <cstddef> | ||
| #include <format> |
There was a problem hiding this comment.
The <format> header is included but fmt::format is used throughout the file (imported via fmt/format.h on line 4). The standard library <format> include should be removed as it's unused.
| #include <format> |
| const auto& expectedTalbe = dataTable; | ||
|
|
||
| const auto rows = actualTable.rows.size(); | ||
| ASSERT_THAT(rows, testing::Eq(expectedTalbe->rows.size())); | ||
|
|
||
| for (auto rowIdx = 0; rowIdx < rows; ++rowIdx) | ||
| { | ||
| const auto columns = expectedTalbe->rows[rowIdx].cells.size(); | ||
| ASSERT_THAT(columns, testing::Eq(actualTable.rows[rowIdx].cells.size())); | ||
| for (auto colIdx = 0; colIdx < columns; ++colIdx) | ||
| { | ||
| const auto& expectedCell = expectedTalbe->rows[rowIdx].cells[colIdx]; |
There was a problem hiding this comment.
Corrected spelling of 'expectedTalbe' to 'expectedTable'
| const auto& expectedTalbe = dataTable; | |
| const auto rows = actualTable.rows.size(); | |
| ASSERT_THAT(rows, testing::Eq(expectedTalbe->rows.size())); | |
| for (auto rowIdx = 0; rowIdx < rows; ++rowIdx) | |
| { | |
| const auto columns = expectedTalbe->rows[rowIdx].cells.size(); | |
| ASSERT_THAT(columns, testing::Eq(actualTable.rows[rowIdx].cells.size())); | |
| for (auto colIdx = 0; colIdx < columns; ++colIdx) | |
| { | |
| const auto& expectedCell = expectedTalbe->rows[rowIdx].cells[colIdx]; | |
| const auto& expectedTable = dataTable; | |
| const auto rows = actualTable.rows.size(); | |
| ASSERT_THAT(rows, testing::Eq(expectedTable->rows.size())); | |
| for (auto rowIdx = 0; rowIdx < rows; ++rowIdx) | |
| { | |
| const auto columns = expectedTable->rows[rowIdx].cells.size(); | |
| ASSERT_THAT(columns, testing::Eq(actualTable.rows[rowIdx].cells.size())); | |
| for (auto colIdx = 0; colIdx < columns; ++colIdx) | |
| { | |
| const auto& expectedCell = expectedTable->rows[rowIdx].cells[colIdx]; |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 291 out of 381 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (3)
cucumber_cpp/library/formatter/helper/test/TestDummy.cpp:1
- The namespace is
cucumber_cpp::library::supportbut this test file is in theformatter/helperdirectory. The namespace should becucumber_cpp::library::formatter::helperto match the directory structure and purpose.
cucumber_cpp/library/assemble/test/TestDummy.cpp:1 - The namespace is
cucumber_cpp::library::supportbut this test file is in theassembledirectory. The namespace should becucumber_cpp::library::assembleto match the directory structure and purpose.
cucumber_cpp/library/api/test/TestDummy.cpp:1 - The namespace is
cucumber_cpp::library::supportbut this test file is in theapidirectory. The namespace should becucumber_cpp::library::apito match the directory structure and purpose.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 291 out of 381 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (3)
cucumber_cpp/library/formatter/helper/test/TestDummy.cpp:1
- The namespace is
cucumber_cpp::library::supportbut this test is for theformattermodule. The namespace should becucumber_cpp::library::formatterto match the module being tested.
cucumber_cpp/library/assemble/test/TestDummy.cpp:1 - The namespace is
cucumber_cpp::library::supportbut this test is for theassemblemodule. The namespace should becucumber_cpp::library::assembleto match the module being tested.
cucumber_cpp/library/api/test/TestDummy.cpp:1 - The namespace is
cucumber_cpp::library::supportbut this test is for theapimodule. The namespace should becucumber_cpp::library::apito match the module being tested.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.




This (internal) rewrite is to make amp-cucumber-cpp-runner cucumber-messages compatible. Both during runtime and during formatting.
This will enable amp-cucumber-cpp-runner to be compatible with other, standalone, formatters.