Skip to content

Update opensomeip to v0.1.0 - #2

Open
vtz wants to merge 10 commits into
mainfrom
update-opensomeip-v0.1.0
Open

Update opensomeip to v0.1.0#2
vtz wants to merge 10 commits into
mainfrom
update-opensomeip-v0.1.0

Conversation

@vtz

@vtz vtz commented May 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bump opensomeip from v0.0.4 to v0.1.0 across C++ (FetchContent), CI (Zephyr job), Docker (Zephyr image), and Python (pip requirements)
  • v0.1.0 API changes are fully backward-compatible; no example code changes needed

Closes #1

Test plan

  • C++ build: all 14 binaries compile cleanly with v0.1.0
  • C++ integration tests: hello_world, method_calls, complex_types, large_messages, e2e_protection, events, sd_demo all pass
  • Python tests: hello_world, method_calls, e2e_protection, events, sd_demo pass
  • CI: all jobs green (Python, C++ matrix, Zephyr, cross-language)

Made with Cursor

Summary by CodeRabbit

  • Chores
    • Updated OpenSOMEIP and Zephyr toolchain versions across CI, build images and Python requirements.
    • Adjusted board configuration defaults affecting runtime/test behavior.
  • Tests
    • Improved CI build steps and end-to-end test execution for more reliable, parameterized builds and clearer test output.

Review Change Stack

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>
@coderabbitai

coderabbitai Bot commented May 23, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@vtz, we couldn't start this review because you've reached your PR review rate limit.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d5ce8bb9-9d9a-4c6f-b8f7-4a8019bfbe56

📥 Commits

Reviewing files that changed from the base of the PR and between c1ae32d and 2ae869d.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml
📝 Walkthrough

Walkthrough

Bumps 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.

Changes

Dependency and Zephyr CI updates

Layer / File(s) Summary
OpenSOMEIP version updates
cpp/CMakeLists.txt, docker/Dockerfile.zephyr, python/requirements.txt, .github/workflows/ci.yml
FetchContent GIT_TAG and Docker OPENSOMEIP_COMMIT default set to v0.1.0; Python opensomeip constraint raised to >=0.1.5; CI env var OPENSOMEIP_COMMIT set to v0.1.0.
Zephyr SDK, workspace init, build loop, and e2e test
.github/workflows/ci.yml, zephyr/hello_world_server/boards/s32k388_renode.conf
Zephyr workspace initialized with --mr $ZEPHYR_VERSION; SDK extraction rewritten to create gnu and install Zephyr-ELF toolchains; example build step exports ZEPHYR_SDK_INSTALL_DIR, computes OPENSOMEIP_ROOT, loops apps, passes -DOPENSOMEIP_ROOT and board-specific EXTRA_ARGS (adds -DSOC_ROOT for s32k388_renode); native_sim e2e run logs output and checks for 0 failed; Renode board config toggles CONFIG_TEST_RANDOM_GENERATOR=y and CONFIG_XSI_SINGLE_PROCESS=n.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Poem

🐰 I hopped through tags and CI trails,
Pushed SDK bits into tiny gnu pails,
Builds looped clean and tests wrote logs,
Version bumps danced past old froggy bogs,
A joyful hop — v0.1.0 sails!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Additional board configuration changes (Zephyr CONFIG_TEST_RANDOM_GENERATOR and CONFIG_XSI_SINGLE_PROCESS) and CI/Zephyr environment updates go beyond the stated dependency update requirements in issue #1. Clarify whether board configuration and CI environment changes (Zephyr SDK 1.0.1, Zephyr v4.4.0, s32k388 configs) are part of issue #1 scope or should be separated into a distinct PR.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Update opensomeip to v0.1.0' directly and clearly summarizes the main objective of the PR, which is to update the opensomeip dependency across multiple files from v0.0.4 to v0.1.0.
Linked Issues check ✅ Passed All required coding changes from issue #1 are met: C++ FetchContent updated to v0.1.0 [#1], CI Zephyr job OPENSOMEIP_COMMIT updated to v0.1.0 [#1], Docker Zephyr image OPENSOMEIP_COMMIT updated to v0.1.0 [#1], and Python requirements updated to opensomeip>=0.1.5 [#1].
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update-opensomeip-v0.1.0

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: 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

📥 Commits

Reviewing files that changed from the base of the PR and between 36c0595 and 894b5e6.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml
  • cpp/CMakeLists.txt
  • docker/Dockerfile.zephyr
  • python/requirements.txt

Comment thread .github/workflows/ci.yml
env:
ZEPHYR_SDK_VERSION: "0.17.0"
OPENSOMEIP_COMMIT: "v0.0.4"
OPENSOMEIP_COMMIT: "v0.1.0"

@coderabbitai coderabbitai Bot May 23, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 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.zephyr

Repository: 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 || true

Repository: 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.

Suggested change
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.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@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.

Comment thread python/requirements.txt Outdated

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 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".

Comment thread python/requirements.txt Outdated
@@ -1,2 +1,2 @@
opensomeip>=0.1.2
opensomeip>=0.1.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

No longer applicable — we've bumped to opensomeip>=0.1.5 which is the latest available release.

vtz and others added 8 commits May 24, 2026 23:00
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>

@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.

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 win

Add explicit least-privilege workflow permissions.

This workflow currently relies on default GITHUB_TOKEN permissions. 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

📥 Commits

Reviewing files that changed from the base of the PR and between 894b5e6 and c1ae32d.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • python/requirements.txt
  • zephyr/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>
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.

Update opensomeip dependency to v0.1.0

1 participant