-
Notifications
You must be signed in to change notification settings - Fork 7
feat(taskfile): Add more build tasks and rename others according to latest conventions: #70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This reverts commit f25859e.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (2)
README.md (1)
65-65
: Inline-HTML heading anchor still violates MD033The
<a id="…"/>
technique keeps re-raising MD033 warnings. If you stick with it, consider silencing the rule in.markdownlint.yaml
; otherwise adopt the generated slug (### Using Task
) and rely on GitHub’s auto-IDs.taskfiles/ystdlib.yaml (1)
113-117
: Empty list element still generated when.LIBRARIES
is blankThe multi-line scalar leaves a dangling
-
entry, cluttering the CLI. Previous discussion noted Task’s templating limits, but if you ever revisit this section, switching to anif
/else
block insidecmds:
(instead of in a YAML list) would avoid the artefact.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (3)
README.md
(4 hunks)taskfiles/test.yaml
(1 hunks)taskfiles/ystdlib.yaml
(1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
README.md (11)
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: PacificViking
PR: #65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase ystdlib_
prefix for project-specific CMake variables (e.g., ystdlib_VERSION
, ystdlib_BUILD_TESTING
, ystdlib_INSTALL_CONFIG_DIR
) following the current naming convention standards.
Learnt from: davidlion
PR: #70
File: README.md:66-70
Timestamp: 2025-07-30T02:32:39.877Z
Learning: GitHub Flavored Markdown does not support the {#id} syntax for explicit heading IDs. This syntax works with Jekyll, Hugo, and other static site generators, but not with GitHub's native markdown processor. In GFM, custom heading anchors must use HTML tags with id attributes, which is the correct approach despite triggering markdownlint MD033 warnings.
Learnt from: anlowee
PR: #63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: anlowee
PR: #62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The :utils:boost:download-and-install
task is defined in tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml
at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with the default mvdan.cc/sh
interpreter, without requiring interpreter: bash
. The shopt: ["globstar"]
option will enable recursive globbing patterns like **/*
without additional shell configuration.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.638Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.639Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like {{- if .LIBRARIES }} - "arg" {{- end }}
) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
taskfiles/test.yaml (7)
Learnt from: anlowee
PR: #63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like {{- if .LIBRARIES }} - "arg" {{- end }}
) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
Learnt from: PacificViking
PR: #65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase ystdlib_
prefix for project-specific CMake variables (e.g., ystdlib_VERSION
, ystdlib_BUILD_TESTING
, ystdlib_INSTALL_CONFIG_DIR
) following the current naming convention standards.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with the default mvdan.cc/sh
interpreter, without requiring interpreter: bash
. The shopt: ["globstar"]
option will enable recursive globbing patterns like **/*
without additional shell configuration.
Learnt from: anlowee
PR: #62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The :utils:boost:download-and-install
task is defined in tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml
at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-27T22:57:03.031Z
Learning: In unit tests for ystdlib-cpp, REQUIRE_FALSE
is preferred over REQUIRE(!condition)
for its explicit nature when checking that conditions are false.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
taskfiles/ystdlib.yaml (13)
Learnt from: PacificViking
PR: #65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase ystdlib_
prefix for project-specific CMake variables (e.g., ystdlib_VERSION
, ystdlib_BUILD_TESTING
, ystdlib_INSTALL_CONFIG_DIR
) following the current naming convention standards.
Learnt from: anlowee
PR: #63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: anlowee
PR: #62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The :utils:boost:download-and-install
task is defined in tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml
at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like {{- if .LIBRARIES }} - "arg" {{- end }}
) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with the default mvdan.cc/sh
interpreter, without requiring interpreter: bash
. The shopt: ["globstar"]
option will enable recursive globbing patterns like **/*
without additional shell configuration.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:114-119
Timestamp: 2025-07-24T23:48:46.989Z
Learning: The osIsAbs
template function is available in Task through slim-sprig's paths module (https://go-task.github.io/slim-sprig/paths.html) and provides robust cross-platform absolute path detection using Go's filepath.IsAbs() function, making it superior to simple prefix checks with hasPrefix.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:114-119
Timestamp: 2025-07-24T23:48:46.989Z
Learning: The osIsAbs
template function is available in Task through slim-sprig's paths module (https://go-task.github.io/slim-sprig/paths.html) and provides robust cross-platform absolute path detection using Go's filepath.IsAbs() function, making it superior to simple prefix checks with hasPrefix.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with Task's built-in shell interpreter library, without requiring interpreter: bash
. The shopt: ["globstar"]
option enables recursive globbing patterns like **/*
and can be used globally or per-task without additional shell configuration.
Learnt from: Bill-hbrhbr
PR: #32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr uses a maximum line length of 100 characters in CMake files and prefers to use backslash line continuations to maintain this limit.
Learnt from: Bill-hbrhbr
PR: #32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr maintains a maximum line length of 100 characters in CMake files and uses backslash line continuations to maintain this limit.
🪛 markdownlint-cli2 (0.17.2)
README.md
65-65: Inline HTML
Element: a
(MD033, no-inline-html)
68-68: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
85-85: Inline HTML
Element: a
(MD033, no-inline-html)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: lint-check (ubuntu-24.04)
- GitHub Check: build-ystdlib-cpp (macos-15, debug)
- GitHub Check: build-ystdlib-cpp (macos-15, release)
- GitHub Check: build-ystdlib-cpp (macos-14, debug)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
README.md (2)
68-71
: Insert the required blank line before the fenced blockRule MD031 is still triggered here. Add one empty line after “To build all libraries:” so the code block is surrounded by blank lines.
66-66
: Inline-HTML anchor is intentional – mute MD033 onceThe
<a id="…"/>
anchor is the only portable way to get custom IDs in GFM. Consider exempting<a>
from MD033 in.markdownlint.yaml
instead of changing the syntax again.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
.github/workflows/code-linting-checks.yaml
(1 hunks)README.md
(4 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
.github/workflows/code-linting-checks.yaml (8)
Learnt from: Bill-hbrhbr
PR: #32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr uses a maximum line length of 100 characters in CMake files and prefers to use backslash line continuations to maintain this limit.
Learnt from: Bill-hbrhbr
PR: #32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr maintains a maximum line length of 100 characters in CMake files and uses backslash line continuations to maintain this limit.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: PacificViking
PR: #65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase ystdlib_
prefix for project-specific CMake variables (e.g., ystdlib_VERSION
, ystdlib_BUILD_TESTING
, ystdlib_INSTALL_CONFIG_DIR
) following the current naming convention standards.
Learnt from: anlowee
PR: #63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with the default mvdan.cc/sh
interpreter, without requiring interpreter: bash
. The shopt: ["globstar"]
option will enable recursive globbing patterns like **/*
without additional shell configuration.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with Task's built-in shell interpreter library, without requiring interpreter: bash
. The shopt: ["globstar"]
option enables recursive globbing patterns like **/*
and can be used globally or per-task without additional shell configuration.
README.md (11)
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: PacificViking
PR: #65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase ystdlib_
prefix for project-specific CMake variables (e.g., ystdlib_VERSION
, ystdlib_BUILD_TESTING
, ystdlib_INSTALL_CONFIG_DIR
) following the current naming convention standards.
Learnt from: davidlion
PR: #70
File: README.md:66-70
Timestamp: 2025-07-30T02:32:39.877Z
Learning: GitHub Flavored Markdown does not support the {#id} syntax for explicit heading IDs. This syntax works with Jekyll, Hugo, and other static site generators, but not with GitHub's native markdown processor. In GFM, custom heading anchors must use HTML tags with id attributes, which is the correct approach despite triggering markdownlint MD033 warnings.
Learnt from: anlowee
PR: #63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: anlowee
PR: #62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The :utils:boost:download-and-install
task is defined in tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml
at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with the default mvdan.cc/sh
interpreter, without requiring interpreter: bash
. The shopt: ["globstar"]
option will enable recursive globbing patterns like **/*
without additional shell configuration.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.638Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.639Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like {{- if .LIBRARIES }} - "arg" {{- end }}
) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
🪛 markdownlint-cli2 (0.17.2)
README.md
66-66: Inline HTML
Element: a
(MD033, no-inline-html)
69-69: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
73-73: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
80-80: Inline HTML
Element: a
(MD033, no-inline-html)
89-89: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
108-108: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
133-133: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
🪛 LanguageTool
README.md
[style] ~178-~178: To form a complete sentence, be sure to include a subject.
Context: .... #### Using Task ystdlib_LIBRARIES
can be set in Task by adding it after the t...
(MISSING_IT_THERE)
[style] ~183-~183: For conciseness, consider replacing this expression with an adverb.
Context: ...IBRARIES="containers;io_interface" ``` At the moment, only build and install tasks in the `y...
(AT_THE_MOMENT)
[style] ~188-~188: To form a complete sentence, be sure to include a subject.
Context: ... #### Using CMake ystdlib_LIBRARIES
can be set in CMake using -D
in the gener...
(MISSING_IT_THERE)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, release)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, debug)
- GitHub Check: build-ystdlib-cpp (macos-15, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, release)
- GitHub Check: build-ystdlib-cpp (macos-14, release)
- GitHub Check: build-ystdlib-cpp (macos-15, release)
- GitHub Check: build-ystdlib-cpp (macos-14, debug)
- GitHub Check: lint-check (macos-15)
- GitHub Check: lint-check (ubuntu-24.04)
🔇 Additional comments (1)
.github/workflows/code-linting-checks.yaml (1)
40-49
: Keep existing UV install URL
The non-v
URL (https://astral.sh/uv/0.8.4/install.sh
) follows its 301 redirect and returns HTTP 200 with--location
, whereas thev0.8.4
path 404s. No update required.Likely an incorrect or invalid review comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
README.md (1)
73-73
: Broken internal link fragments – slug must be lower-case#ystdlib_libraries
The anchor generated by GFM for
### \
ystdlib_LIBRARIES`is
ystdlib_libraries`.
All four references still use the outdated upper-case slug, so navigation is broken.-[`ystdlib_LIBRARIES` parameter](#ystdlib_LIBRARIES) +[`ystdlib_LIBRARIES` parameter](#ystdlib_libraries)Apply the same replacement at Lines 73, 89, 108 and 133.
Also applies to: 89-89, 108-108, 133-133
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
README.md
(4 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
README.md (11)
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: PacificViking
PR: #65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase ystdlib_
prefix for project-specific CMake variables (e.g., ystdlib_VERSION
, ystdlib_BUILD_TESTING
, ystdlib_INSTALL_CONFIG_DIR
) following the current naming convention standards.
Learnt from: davidlion
PR: #70
File: README.md:66-70
Timestamp: 2025-07-30T02:32:39.877Z
Learning: GitHub Flavored Markdown does not support the {#id} syntax for explicit heading IDs. This syntax works with Jekyll, Hugo, and other static site generators, but not with GitHub's native markdown processor. In GFM, custom heading anchors must use HTML tags with id attributes, which is the correct approach despite triggering markdownlint MD033 warnings.
Learnt from: anlowee
PR: #63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: anlowee
PR: #62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The :utils:boost:download-and-install
task is defined in tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml
at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: LinZhihao-723
PR: #66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for set
and shopt
options in Taskfile.yaml that work with the default mvdan.cc/sh
interpreter, without requiring interpreter: bash
. The shopt: ["globstar"]
option will enable recursive globbing patterns like **/*
without additional shell configuration.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.638Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.639Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
Learnt from: davidlion
PR: #70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like {{- if .LIBRARIES }} - "arg" {{- end }}
) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
🪛 markdownlint-cli2 (0.17.2)
README.md
66-66: Inline HTML
Element: a
(MD033, no-inline-html)
69-69: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
73-73: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
80-80: Inline HTML
Element: a
(MD033, no-inline-html)
89-89: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
108-108: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
133-133: Link fragments should be valid
Expected: #ystdlib_libraries; Actual: #ystdlib_LIBRARIES
(MD051, link-fragments)
🪛 LanguageTool
README.md
[style] ~183-~183: For conciseness, consider replacing this expression with an adverb.
Context: ...IBRARIES="containers;io_interface" ``` At the moment, only build and install tasks in the `y...
(AT_THE_MOMENT)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, release)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, release)
- GitHub Check: build-ystdlib-cpp (macos-15, debug)
- GitHub Check: build-ystdlib-cpp (macos-15, release)
- GitHub Check: build-ystdlib-cpp (macos-14, debug)
- GitHub Check: build-ystdlib-cpp (macos-14, release)
- GitHub Check: lint-check (macos-15)
- GitHub Check: lint-check (ubuntu-24.04)
```shell | ||
cmake -S . -B ./build -Dystdlib_LIBRARIES="containers;io_interface" | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might want to add a short section for INSTALL_PREFIX
? Even though it's very self-explanatory.
Co-authored-by: Bingran Hu <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
README.md (2)
63-70
: Inline anchor may be unnecessary – consider dropping itBecause GitHub already generates the slug
building-using-task
, the explicit<a>
tag on the next line could be removed to avoid MD033 without losing the deep link.
Same pattern recurs for the CMake and install headings.
66-70
: MD033 resurfaces for the four new headingsThe self-closing
<a>
tags (Lines 66, 81, 103, 120) still trigger markdown-lint. Either whitelist the element once in.markdownlint.yaml
:MD033: - allowed_elements: [] + allowed_elements: ["a"]or rely on GitHub’s auto-generated IDs and drop the inline HTML.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
README.md
(4 hunks)
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
📚 Learning: the readme.md in the ystdlib-cpp repository consistently uses atx style markdown headings (with # sy...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Applied to files:
README.md
📚 Learning: the y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific cmake variable...
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Applied to files:
README.md
📚 Learning: github flavored markdown does not support the {#id} syntax for explicit heading ids. this syntax wor...
Learnt from: davidlion
PR: y-scope/ystdlib-cpp#70
File: README.md:66-70
Timestamp: 2025-07-30T02:32:39.877Z
Learning: GitHub Flavored Markdown does not support the {#id} syntax for explicit heading IDs. This syntax works with Jekyll, Hugo, and other static site generators, but not with GitHub's native markdown processor. In GFM, custom heading anchors must use HTML <a> tags with id attributes, which is the correct approach despite triggering markdownlint MD033 warnings.
Applied to files:
README.md
📚 Learning: in the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in...
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Applied to files:
README.md
📚 Learning: the `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles...
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Applied to files:
README.md
📚 Learning: task (go-task) has native support for `set` and `shopt` options in taskfile.yaml that work with the ...
Learnt from: LinZhihao-723
PR: y-scope/ystdlib-cpp#66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for `set` and `shopt` options in Taskfile.yaml that work with the default `mvdan.cc/sh` interpreter, without requiring `interpreter: bash`. The `shopt: ["globstar"]` option will enable recursive globbing patterns like `**/*` without additional shell configuration.
Applied to files:
README.md
📚 Learning: yscope coding guidelines prefer not to split standard libraries when organizing include statements. ...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.639Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Applied to files:
README.md
📚 Learning: task (go-task) has limitations with go template usage in yaml generation. inline conditional templat...
Learnt from: davidlion
PR: y-scope/ystdlib-cpp#70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like `{{- if .LIBRARIES }} - "arg" {{- end }}`) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
Applied to files:
README.md
📚 Learning: in the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and th...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
66-66: Inline HTML
Element: a
(MD033, no-inline-html)
81-81: Inline HTML
Element: a
(MD033, no-inline-html)
103-103: Inline HTML
Element: a
(MD033, no-inline-html)
120-120: Inline HTML
Element: a
(MD033, no-inline-html)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: build-ystdlib-cpp (macos-15, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, release)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, release)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, debug)
- GitHub Check: lint-check (ubuntu-24.04)
- GitHub Check: build-ystdlib-cpp (macos-15, release)
- GitHub Check: build-ystdlib-cpp (macos-14, debug)
- GitHub Check: lint-check (macos-15)
🔇 Additional comments (1)
README.md (1)
46-47
:uv
requirement addition looks correctStating the minimum
uv
version matches the new workflow-setup steps — no issues here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (2)
README.md (2)
66-66
: Suppress unavoidable MD033 warnings for inline anchors
The HTML<a>
tags are required for custom IDs in GFM; markdownlint will keep flagging them. Add the following to.markdownlint.yaml
once to silence the false positives instead of sprinkling<!-- markdownlint-disable -->
comments:MD033: allowed_elements: ["a"]Also applies to: 81-81, 103-103, 120-120
190-192
: Clarify which tasks honourystdlib_LIBRARIES
Earlier examples show the flag working withtest:
tasks, yet this note implies support is hit-or-miss. Listing the supported namespaces (e.g.,ystdlib:
,test:
) or linking to task descriptions would remove ambiguity.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
README.md
(4 hunks)
🧰 Additional context used
🧠 Learnings (13)
📓 Common learnings
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
📚 Learning: the readme.md in the ystdlib-cpp repository consistently uses atx style markdown headings (with # sy...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Applied to files:
README.md
📚 Learning: the y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific cmake variable...
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Applied to files:
README.md
📚 Learning: github flavored markdown does not support the {#id} syntax for explicit heading ids. this syntax wor...
Learnt from: davidlion
PR: y-scope/ystdlib-cpp#70
File: README.md:66-70
Timestamp: 2025-07-30T02:32:39.877Z
Learning: GitHub Flavored Markdown does not support the {#id} syntax for explicit heading IDs. This syntax works with Jekyll, Hugo, and other static site generators, but not with GitHub's native markdown processor. In GFM, custom heading anchors must use HTML <a> tags with id attributes, which is the correct approach despite triggering markdownlint MD033 warnings.
Applied to files:
README.md
📚 Learning: in the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in...
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Applied to files:
README.md
📚 Learning: the `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles...
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Applied to files:
README.md
📚 Learning: task (go-task) has native support for `set` and `shopt` options in taskfile.yaml that work with the ...
Learnt from: LinZhihao-723
PR: y-scope/ystdlib-cpp#66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for `set` and `shopt` options in Taskfile.yaml that work with the default `mvdan.cc/sh` interpreter, without requiring `interpreter: bash`. The `shopt: ["globstar"]` option will enable recursive globbing patterns like `**/*` without additional shell configuration.
Applied to files:
README.md
📚 Learning: yscope coding guidelines prefer not to split standard libraries when organizing include statements. ...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-04T13:29:59.639Z
Learning: Yscope coding guidelines prefer not to split standard libraries when organizing include statements. Headers should be organized by component group with all standard library includes grouped together.
Applied to files:
README.md
📚 Learning: in the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and th...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-06T20:42:41.772Z
Learning: In the y-scope/ystdlib-cpp project, the linting scope is limited to .h, .hpp, and .cpp files, and the header-only detection logic in CMake checks for .h, .hpp, and .inc extensions.
Applied to files:
README.md
📚 Learning: task (go-task) has limitations with go template usage in yaml generation. inline conditional templat...
Learnt from: davidlion
PR: y-scope/ystdlib-cpp#70
File: taskfiles/ystdlib.yaml:0-0
Timestamp: 2025-07-28T14:16:32.691Z
Learning: Task (go-task) has limitations with Go template usage in YAML generation. Inline conditional templating to control YAML list elements (like `{{- if .LIBRARIES }} - "arg" {{- end }}`) is not supported, so multi-line scalar approaches may be necessary even if they produce empty elements when variables are blank.
Applied to files:
README.md
📚 Learning: in unit tests for ystdlib-cpp, `require_false` is preferred over `require(!condition)` for its expli...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-27T22:57:03.031Z
Learning: In unit tests for ystdlib-cpp, `REQUIRE_FALSE` is preferred over `REQUIRE(!condition)` for its explicit nature when checking that conditions are false.
Applied to files:
README.md
📚 Learning: bill-hbrhbr uses a maximum line length of 100 characters in cmake files and prefers to use backslash...
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr uses a maximum line length of 100 characters in CMake files and prefers to use backslash line continuations to maintain this limit.
Applied to files:
README.md
📚 Learning: task (go-task) has native support for `set` and `shopt` options in taskfile.yaml that work with task...
Learnt from: LinZhihao-723
PR: y-scope/ystdlib-cpp#66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for `set` and `shopt` options in Taskfile.yaml that work with Task's built-in shell interpreter library, without requiring `interpreter: bash`. The `shopt: ["globstar"]` option enables recursive globbing patterns like `**/*` and can be used globally or per-task without additional shell configuration.
Applied to files:
README.md
🪛 markdownlint-cli2 (0.17.2)
README.md
66-66: Inline HTML
Element: a
(MD033, no-inline-html)
81-81: Inline HTML
Element: a
(MD033, no-inline-html)
103-103: Inline HTML
Element: a
(MD033, no-inline-html)
120-120: Inline HTML
Element: a
(MD033, no-inline-html)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, release)
- GitHub Check: build-ystdlib-cpp (ubuntu-22.04, debug)
- GitHub Check: build-ystdlib-cpp (ubuntu-24.04, release)
- GitHub Check: build-ystdlib-cpp (macos-14, release)
- GitHub Check: build-ystdlib-cpp (macos-15, debug)
- GitHub Check: build-ystdlib-cpp (macos-15, release)
- GitHub Check: lint-check (ubuntu-24.04)
- GitHub Check: lint-check (macos-15)
🔇 Additional comments (2)
README.md (2)
46-47
: Add install guidance for the newuv
dependency
You addeduv
(≥ 0.7.10) to the requirements list, but there’s no mention of how users obtain it (Task target, package-manager name, etc.). A short note or a pointer to the correct Task (deps:
scope) would keep the setup instructions self-contained.
74-76
: Internal link slug fixed – nice catch
#ystdlib_libraries
now matches GFM’s generated ID and resolves correctly.Also applies to: 90-91
The library can be built via [Task](#building-using-task) or directly with | ||
[CMake](#building-using-cmake). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Micro-wording tweak for flow
Consider “built with Task or CMake” – the current “via Task or directly with CMake” is a bit clunky.
-The library can be built via [Task](#building-using-task) or directly with
-[CMake](#building-using-cmake).
+The library can be built with [Task](#building-using-task) or with
+[CMake](#building-using-cmake).
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
The library can be built via [Task](#building-using-task) or directly with | |
[CMake](#building-using-cmake). | |
The library can be built with [Task](#building-using-task) or with | |
[CMake](#building-using-cmake). |
🤖 Prompt for AI Agents
In README.md around lines 63 to 65, the phrase "built via Task or directly with
CMake" is awkward. Simplify the wording to "built with Task or CMake" to improve
flow and readability. Replace the existing phrase accordingly without changing
the meaning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
directly
because it's a CMake project. Task
is not the native build tool
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Bill-hbrhbr Thank you for the clarification! You're absolutely right - the distinction between "directly with CMake" (the native build system) and "via Task" (the task runner wrapper) is intentionally precise and technically accurate. I appreciate you explaining the reasoning behind the wording choice.
✏️ Learnings added
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#70
File: README.md:63-65
Timestamp: 2025-07-31T18:28:51.292Z
Learning: In the ystdlib-cpp project, CMake is the native build system and Task is a task runner that provides convenience commands but ultimately invokes CMake. Documentation should use "directly with CMake" and "via Task" to emphasize this technical distinction between the native tool and the wrapper tool.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
🧠 Learnings used
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#62
File: taskfiles/deps.yaml:42-43
Timestamp: 2025-05-31T00:44:47.885Z
Learning: The `:utils:boost:download-and-install` task is defined in `tools/yscope-dev-utils/exports/taskfiles/utils/boost.yaml` at around line 128, providing Boost installation functionality for the project's dependency management.
Learnt from: anlowee
PR: y-scope/ystdlib-cpp#63
File: taskfiles/lint-cpp.yaml:75-83
Timestamp: 2025-05-26T15:34:11.199Z
Learning: In the ystdlib-cpp project taskfiles, prefer keeping command-line flags and their values together in single YAML list entries (e.g., "--config-file '{{.ROOT_DIR}}/.clang-tidy'") rather than separating them into individual entries, unless the values are too long. This improves readability and maintains consistency with the project's style.
Learnt from: LinZhihao-723
PR: y-scope/ystdlib-cpp#66
File: taskfile.yaml:4-4
Timestamp: 2025-05-27T22:22:47.058Z
Learning: Task (go-task) has native support for `set` and `shopt` options in Taskfile.yaml that work with the default `mvdan.cc/sh` interpreter, without requiring `interpreter: bash`. The `shopt: ["globstar"]` option will enable recursive globbing patterns like `**/*` without additional shell configuration.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#0
File: :0-0
Timestamp: 2025-03-01T05:38:37.570Z
Learning: The README.md in the ystdlib-cpp repository consistently uses ATX style markdown headings (with # symbols) throughout the document.
Learnt from: PacificViking
PR: y-scope/ystdlib-cpp#65
File: CMakeLists.txt:87-88
Timestamp: 2025-06-06T15:01:53.987Z
Learning: The y-scope/ystdlib-cpp project uses lowercase `ystdlib_` prefix for project-specific CMake variables (e.g., `ystdlib_VERSION`, `ystdlib_BUILD_TESTING`, `ystdlib_INSTALL_CONFIG_DIR`) following the current naming convention standards.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr uses a maximum line length of 100 characters in CMake files and prefers to use backslash line continuations to maintain this limit.
Learnt from: Bill-hbrhbr
PR: y-scope/ystdlib-cpp#32
File: CMakeLists.txt:0-0
Timestamp: 2025-02-28T05:04:33.616Z
Learning: Bill-hbrhbr maintains a maximum line length of 100 characters in CMake files and uses backslash line continuations to maintain this limit.
For title, how about: |
Title updated based on discussion with Kirk and Bill. |
ystdlib_LIBRARIES
.Description
This PR refactors the following:
Change tasks from using wildcards to determine the target to build to using the
ystdlib_LIBRARIES
CMake variable (introduced in build(cmake)!: Add support for installation and usage as a library in other CMake projects; Add example project to test this use case. #65).Restructures the taskfiles (and therefore namespace):
:build:
->:ystdlib:
for tasks building/cleaning/installing ystdlib or its libraries.:test-*
->:test:run-*
for tasks building/running the ystdlib tests.Rename the following tasks to the
verb-*
pattern:deps:boost
->deps:install-boost
deps:Catch2
->deps:install-catch2
lint:cmake-check
->lint:check-cmake
lint:cpp-check
->lint:check-cpp
lint:yaml-check
->lint:check-yaml
lint:cmake-fix
->lint:fix-cmake
lint:cpp-fix
->lint:fix-cpp
lint:yaml-fix
->lint:fix-yaml
Migrate partially to IWYU style includes.
lint.yaml
structure breaks with multiple definitions of taskfiles, so it is left alone.deps.yaml
we bump the yscope-dev-utils submodule to pull in a fix related todir
usage in the boost tasks.New features added in this PR:
task ystdlib:build-debug
,task test:run-release
,task examples:build-debug
task -a
for a full list.Note for reviewer:
The diff for the changes to
ystdlib.yaml
(build.yaml
) can be found here: e4d8ef0. Github combines these changes with the move/rename making it appear completely new.Checklist
breaking change.
Validation performed
New tasks tested manually and passing in CI.
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Chores
Documentation