Update opensomeip to v0.1.0 - #2
Conversation
Bump the opensomeip dependency from v0.0.4 to v0.1.0 across all platforms. The new release is fully backward-compatible with the existing examples. - C++ FetchContent: GIT_TAG v0.0.4 → v0.1.0 - CI Zephyr job: OPENSOMEIP_COMMIT v0.0.4 → v0.1.0 - Docker Zephyr image: OPENSOMEIP_COMMIT v0.0.4 → v0.1.0 - Python requirements: opensomeip>=0.1.2 → opensomeip>=0.1.0 Closes #1 Co-authored-by: Cursor <cursoragent@cursor.com>
|
Warning Review limit reached
More reviews will be available in 49 minutes and 25 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughBumps OpenSOMEIP references to v0.1.0 across CMake, Docker, Python, and CI; rewrites Zephyr SDK extraction, workspace init, example build loop, and native_sim test verification; toggles two Renode board config flags for s32k388_renode. ChangesDependency and Zephyr CI updates
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 @.github/workflows/ci.yml:
- Line 228: Replace the mutable OpenSOMEIP tag with the resolved immutable
commit SHA everywhere to make builds reproducible: set OPENSOMEIP_COMMIT to
c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9 in the CI workflow (replace the current
v0.1.0 value), update the ARG/default in Dockerfile.zephyr to the same SHA, and
change the GIT_TAG value in cpp/CMakeLists.txt to
c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9 so all three references
(OPENSOMEIP_COMMIT, the Dockerfile ARG, and the GIT_TAG in CMakeLists) point to
the exact commit.
In `@python/requirements.txt`:
- Line 1: Add a CI job that validates compatibility with the declared minimum by
installing opensomeip==0.1.0 and running the test suite; specifically, in your
CI workflow add a lane that (1) installs dependencies from
python/requirements.txt but overrides or pins opensomeip to 0.1.0 (e.g., pip
install opensomeip==0.1.0 after -r), (2) runs the same test commands used in
existing lanes, and (3) fails the job on test or install errors so any
incompatibility with opensomeip==0.1.0 is caught early.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 3c9f560b-4f42-47bf-9b6f-dbda8095ea33
📒 Files selected for processing (4)
.github/workflows/ci.ymlcpp/CMakeLists.txtdocker/Dockerfile.zephyrpython/requirements.txt
| env: | ||
| ZEPHYR_SDK_VERSION: "0.17.0" | ||
| OPENSOMEIP_COMMIT: "v0.0.4" | ||
| OPENSOMEIP_COMMIT: "v0.1.0" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
TAG="v0.1.0"
echo "Resolved commit for annotated tag ${TAG}:"
git ls-remote --tags https://github.com/vtz/opensomeip.git "${TAG}^{}"
echo
echo "Current OpenSOMEIP refs in repository:"
rg -n 'GIT_TAG\s+v0\.1\.0|OPENSOMEIP_COMMIT.?=.?\"?v0\.1\.0\"?' cpp/CMakeLists.txt .github/workflows/ci.yml docker/Dockerfile.zephyrRepository: vtz/opensomeip-examples
Length of output: 391
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== Show OPENSOMEIP_COMMIT in .github/workflows/ci.yml around line 228 ==="
sed -n '210,245p' .github/workflows/ci.yml | cat -n
echo
echo "=== Show checkout/openSOMEIP usage around lines 250-320 ==="
sed -n '250,320p' .github/workflows/ci.yml | cat -n
echo
echo "=== Resolve tag v0.1.0 to commit SHA ==="
git ls-remote --tags https://github.com/vtz/opensomeip.git 'v0.1.0^{}'
echo
echo "=== Repo search for OPENSOMEIP_COMMIT / v0.1.0 (fixed regex) ==="
rg -n --hidden --no-ignore -S 'OPENSOMEIP_COMMIT|v0\.1\.0|opensomeip\.git|GIT_TAG' \
.github/workflows/ci.yml cpp/CMakeLists.txt docker/Dockerfile.zephyr || trueRepository: vtz/opensomeip-examples
Length of output: 5572
Pin OpenSOMEIP to an immutable commit SHA in CI (and align Docker/CMake).
.github/workflows/ci.yml (line ~228) uses the mutable tag v0.1.0 via OPENSOMEIP_COMMIT: "v0.1.0" and then git checkout $OPENSOMEIP_COMMIT after cloning. The same mutable tag is also used in docker/Dockerfile.zephyr (ARG/default) and cpp/CMakeLists.txt (GIT_TAG v0.1.0), so builds aren’t fully reproducible. Resolve v0.1.0 to c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9 and pin to that SHA everywhere.
Suggested patch shape (replace tag with resolved SHA)
- OPENSOMEIP_COMMIT: "v0.1.0"
+ OPENSOMEIP_COMMIT: "c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9"📝 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.
| OPENSOMEIP_COMMIT: "v0.1.0" | |
| OPENSOMEIP_COMMIT: "c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9" |
🤖 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 @.github/workflows/ci.yml at line 228, Replace the mutable OpenSOMEIP tag
with the resolved immutable commit SHA everywhere to make builds reproducible:
set OPENSOMEIP_COMMIT to c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9 in the CI
workflow (replace the current v0.1.0 value), update the ARG/default in
Dockerfile.zephyr to the same SHA, and change the GIT_TAG value in
cpp/CMakeLists.txt to c66051facd4d01c5c8ccf8d70fc5bb7f903c10c9 so all three
references (OPENSOMEIP_COMMIT, the Dockerfile ARG, and the GIT_TAG in
CMakeLists) point to the exact commit.
There was a problem hiding this comment.
Disagree — using the annotated tag v0.1.0 is standard practice for FetchContent, Docker, and CI version pins. Tags are immutable in this project, and raw SHAs would make the references opaque and harder to maintain. The tag clearly communicates the intended version.
There was a problem hiding this comment.
@vtz, understood — if tags are treated as immutable in this project and the readability of v0.1.0 is preferred over an opaque SHA, that's a perfectly reasonable convention to follow. I'll keep that in mind for future reviews.
(ᴖ‿ᴖ) (ᵕ﹏ᵕ)
✏️ Learnings added
Learnt from: vtz
Repo: vtz/opensomeip-examples PR: 2
File: .github/workflows/ci.yml:228-228
Timestamp: 2026-05-25T02:02:08.524Z
Learning: In the vtz/opensomeip-examples repository, version tags (e.g., `v0.1.0`) are treated as immutable. The project intentionally uses human-readable version tags rather than pinned commit SHAs in CI (`OPENSOMEIP_COMMIT`), Docker (`ARG OPENSOMEIP_COMMIT`), and CMake (`GIT_TAG`) for clarity and maintainability. Do not suggest replacing tags with raw commit SHAs in this repository.
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.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 894b5e6aa7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1,2 +1,2 @@ | |||
| opensomeip>=0.1.2 | |||
| opensomeip>=0.1.0 | |||
There was a problem hiding this comment.
Preserve prior Python dependency floor
This change lowers the minimum supported Python package from opensomeip>=0.1.2 to opensomeip>=0.1.0, which is a regression in the guaranteed baseline for users and CI environments that resolve to the lowest allowed version (for example via constraints files or internal mirrors). Because CI typically installs the newest available version, this downgrade can slip through tests while still allowing older releases that were previously excluded.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
The prior floor of >=0.1.2 was set aspirationally before the v0.1.0 C++ release existed and was never validated. >=0.1.0 aligns the Python requirement with the v0.1.0 C++ release being adopted. The latest available PyPI version (0.1.2) is still installed by CI and satisfies both constraints.
There was a problem hiding this comment.
No longer applicable — we've bumped to opensomeip>=0.1.5 which is the latest available release.
west requires being invoked from within its initialized workspace directory tree (where .west/ lives). The build step was running from $GITHUB_WORKSPACE which has no .west/ config, causing "west: unknown command build". cd into ~/zephyrproject before west build and use $GITHUB_WORKSPACE absolute paths for app sources and build output directories. Co-authored-by: Cursor <cursoragent@cursor.com>
CMake does not expand ~ in paths. When OPENSOMEIP_ROOT was set via YAML env: to ~/opensomeip, CMake received the literal tilde and rejected it as an invalid Zephyr module path. Move OPENSOMEIP_ROOT into the shell script using $HOME so the shell resolves it to an absolute path before passing it to CMake via -D. Co-authored-by: Cursor <cursoragent@cursor.com>
The Zephyr CI was broken because west init pulled the latest unstable main (v4.4.99-dev) which requires SDK >= 1.0, but the workflow installed SDK 0.17.0. - Upgrade Zephyr SDK from 0.17.0 to 1.0.1 (latest) - Pin Zephyr workspace to v4.4.0 (latest stable) via west init --mr - Update toolchain asset names for SDK 1.0 format (gnu_ prefix) - Use shell-expanded $HOME for ZEPHYR_SDK_INSTALL_DIR and OPENSOMEIP_ROOT to avoid tilde issues with CMake Co-authored-by: Cursor <cursoragent@cursor.com>
- Add -DSOC_ROOT for s32k388_renode so Zephyr can find the custom SoC definition from the opensomeip module alongside BOARD_ROOT - Fix native_sim test: the binary doesn't exit after tests complete (expected for Zephyr RTOS), so check output for "0 failed" instead of relying on exit code from timeout Co-authored-by: Cursor <cursoragent@cursor.com>
SDK 1.0 expects toolchains under <sdk>/gnu/ but the individual toolchain tarballs extract without that prefix. Create the gnu/ directory and extract toolchains there so the SDK can find them. Co-authored-by: Cursor <cursoragent@cursor.com>
The s32k388_renode board has no hardware entropy source but the Zephyr networking stack (used by hello_world_server) requires sys_rand_get. Add a board overlay enabling TEST_RANDOM_GENERATOR for this simulation target. Co-authored-by: Cursor <cursoragent@cursor.com>
…conflict The opensomeip SoC provides a custom gettimeofday() in soc/s32k388/gettimeofday.c. Zephyr 4.4.0 now also provides one via XSI_SINGLE_PROCESS (pulled in by POSIX_API). Disable it for this board to avoid the duplicate symbol linker error. Co-authored-by: Cursor <cursoragent@cursor.com>
Pin the minimum Python opensomeip version to the latest available release (0.1.5) to ensure examples use current bindings. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)
213-230:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd explicit least-privilege workflow permissions.
This workflow currently relies on default
GITHUB_TOKENpermissions. Please set explicit read-only permissions to reduce blast radius if any CI step is compromised (Line 213 onward).Suggested patch
name: CI + +permissions: + contents: read on:🤖 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 @.github/workflows/ci.yml around lines 213 - 230, Add an explicit least-privilege permissions block to the zephyr job to avoid using default GITHUB_TOKEN rights: in .github/workflows/ci.yml add a permissions mapping under the zephyr job (job name "zephyr") that grants only read access required by CI, e.g. permissions: contents: read, packages: read, actions: read (and avoid any wildcard write permissions); if a step requires write access later, add the minimal specific permission there instead of leaving defaults.
🤖 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.
Outside diff comments:
In @.github/workflows/ci.yml:
- Around line 213-230: Add an explicit least-privilege permissions block to the
zephyr job to avoid using default GITHUB_TOKEN rights: in
.github/workflows/ci.yml add a permissions mapping under the zephyr job (job
name "zephyr") that grants only read access required by CI, e.g. permissions:
contents: read, packages: read, actions: read (and avoid any wildcard write
permissions); if a step requires write access later, add the minimal specific
permission there instead of leaving defaults.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 16213a76-3f22-45cb-9e55-0bb9045a45d4
📒 Files selected for processing (3)
.github/workflows/ci.ymlpython/requirements.txtzephyr/hello_world_server/boards/s32k388_renode.conf
Restrict the default GITHUB_TOKEN to read-only contents access, reducing blast radius if any CI step is compromised. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Closes #1
Test plan
Made with Cursor
Summary by CodeRabbit