Skip to content

fix(yaml-cpp): bump to 0.9.0 for modern GCC compatibility#268

Merged
olantwin merged 1 commit into
mainfrom
yaml-cpp
May 22, 2026
Merged

fix(yaml-cpp): bump to 0.9.0 for modern GCC compatibility#268
olantwin merged 1 commit into
mainfrom
yaml-cpp

Conversation

@olantwin

@olantwin olantwin commented May 21, 2026

Copy link
Copy Markdown
Contributor

The pinned 0.8.0 tarball fails to build on GCC 13+ / libstdc++ because src/emitterutils.cpp uses uint16_t and uint32_t without including ; the transitive include path that previously provided it was removed in newer libstdc++ releases. Upstream 0.9.0 (4 Feb 2026) adds the missing #include directly.

The new upstream tag is yaml-cpp-0.9.0 (prefixed), unlike the bare 0.8.0 it replaces. Strip the yaml-cpp- prefix inside prefer_system_check so pkg-config --atleast-version still receives a clean semver. Keep version: "%(tag_basename)s" so the tag remains the single source of truth.

Related #234.

Summary by CodeRabbit

  • Bug Fixes

    • Bumped yaml-cpp to 0.9.0 to fix build failures with newer GCC toolchains (GCC 13+), restoring reliable compilation on affected environments.
  • Chores

    • Updated packaging/recipe checks and scripts to recognize and require the newer yaml-cpp release, improving version detection and build reproducibility.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bc065c26-18e5-47aa-82ba-bb07f84df8c2

📥 Commits

Reviewing files that changed from the base of the PR and between 45c3ccc and cac1dc0.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • yaml-cpp.sh

📝 Walkthrough

Walkthrough

The PR bumps yaml-cpp to 0.9.0, updates the yaml-cpp.sh recipe tag and normalizes REQUESTED_VERSION by stripping yaml-cpp- and v before the pkg-config minimum-version check, changes script shebangs to #!/bin/bash -e, and adds a changelog entry noting the GCC 13+ build fix.

Changes

yaml-cpp 0.9.0 update

Layer / File(s) Summary
Version bump, prefer_system_check normalization, and shebang update
yaml-cpp.sh, CHANGELOG.md
yaml-cpp.sh tag set to yaml-cpp-0.9.0; prefer_system_check now strips leading yaml-cpp- and v from REQUESTED_VERSION before pkg-config --atleast-version; script shebangs changed to #!/bin/bash -e. CHANGELOG.md adds an Unreleased → Fixed bullet documenting the 0.9.0 bump and GCC 13+ build fix (missing #include <cstdint> in src/emitterutils.cpp).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • ShipSoft/shipdist#214: Related yaml-cpp recipe updates with overlapping prefer_system_check and version-check handling.
  • ShipSoft/shipdist#229: Overlapping changes to the yaml-cpp recipe and recipe shell-script logic.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: bumping yaml-cpp to 0.9.0 to fix GCC 13+ compatibility.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch yaml-cpp

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@yaml-cpp.sh`:
- Around line 9-10: The prefer_system_check here is missing the required shebang
which triggers ali:bad-shebang; update the heredoc for prefer_system_check so
its first line is the aliBuild-standard shebang (match the script's existing
shebang, e.g. #!/bin/sh) so the embedded script starts with that header; modify
the prefer_system_check block (symbol: prefer_system_check) to include the
shebang as its first line.
🪄 Autofix (Beta)

✅ Autofix completed


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 31932245-501e-4857-a4f4-e85182ae6a0d

📥 Commits

Reviewing files that changed from the base of the PR and between 6c45e48 and f013570.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • yaml-cpp.sh

Comment thread yaml-cpp.sh
@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 1 file(s) based on 1 unresolved review comment.

Files modified:

  • yaml-cpp.sh

Commit: f6ef699e66b3e9307b6311ac412476fd520c3d59

The changes have been pushed to the yaml-cpp branch.

Time taken: 2m 43s

@antonioiuliano2 antonioiuliano2 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All clear to me, thanks!
Antonio

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
yaml-cpp.sh (1)

10-10: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Shebang still doesn't match aliBuild convention.

The previous review asked for the aliBuild-standard #!/bin/bash -e header, but the embedded script now uses #!/bin/sh. alidistlint continues to emit ali:bad-shebang for line 10, and the same applies to line 17.

Suggested patch
 prefer_system_check: |
-  #!/bin/sh
+  #!/bin/bash -e
   REQUESTED_VERSION=${REQUESTED_VERSION#yaml-cpp-}
   REQUESTED_VERSION=${REQUESTED_VERSION#v}
@@
 ---
-#!/bin/sh
+#!/bin/bash -e

Also applies to: 17-17

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@yaml-cpp.sh` at line 10, Replace the non-conforming shebangs in the shell
scripts from "#!/bin/sh" to the aliBuild standard "#!/bin/bash -e": update the
top-level shebang in yaml-cpp.sh and the embedded script shebang (the second
occurrence currently at line 17) so both use "#!/bin/bash -e" to satisfy
alidistlint's ali:bad-shebang check.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@yaml-cpp.sh`:
- Line 10: Replace the non-conforming shebangs in the shell scripts from
"#!/bin/sh" to the aliBuild standard "#!/bin/bash -e": update the top-level
shebang in yaml-cpp.sh and the embedded script shebang (the second occurrence
currently at line 17) so both use "#!/bin/bash -e" to satisfy alidistlint's
ali:bad-shebang check.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 43e44d3a-d18d-409d-86de-42add6558835

📥 Commits

Reviewing files that changed from the base of the PR and between f6ef699 and 45c3ccc.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • yaml-cpp.sh
✅ Files skipped from review due to trivial changes (1)
  • CHANGELOG.md

The pinned 0.8.0 tarball fails to build on GCC 13+ / libstdc++ because
src/emitterutils.cpp uses uint16_t and uint32_t without including
<cstdint>; the transitive include path that previously provided it was
removed in newer libstdc++ releases. Upstream 0.9.0 (4 Feb 2026) adds the
missing #include directly.

The new upstream tag is `yaml-cpp-0.9.0` (prefixed), unlike the bare
`0.8.0` it replaces. Strip the `yaml-cpp-` prefix inside
prefer_system_check so pkg-config --atleast-version still receives a clean
semver. Keep `version: "%(tag_basename)s"` so the tag remains the single
source of truth.
@olantwin olantwin merged commit 62dbdac into main May 22, 2026
6 checks passed
@olantwin olantwin deleted the yaml-cpp branch May 22, 2026 08:33
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.

2 participants