Skip to content

feat: add KVS showcase example binaries - #573

Open
Subramanian-K812 wants to merge 1 commit into
eclipse-score:mainfrom
qorix-group:Subramanian-K812_add_kvs_showcase
Open

Subramanian-K812 wants to merge 1 commit into
eclipse-score:mainfrom
qorix-group:Subramanian-K812_add_kvs_showcase

Conversation

@Subramanian-K812

Copy link
Copy Markdown
Contributor

Summary

Part of eclipse-score/reference_integration#229

Adds two runnable showcase binaries for the KVS module. These will be consumed by a subsequent
reference_integration PR that packages them into the platform image via score_pkg_bundle and
runs them as platform integration tests.

What's changed

File Change
src/rust/rust_kvs/examples/kvs_persist_reload.rs New — showcase 1: write typed values, flush to disk, reopen instance, read back
src/rust/rust_kvs/examples/kvs_default_values.rs New — showcase 2: factory defaults, runtime override, reset_key recovery
src/rust/rust_kvs/examples/BUILD New — two rust_binary targets

Showcases

KVS Persist and Reload — opens a KVS instance, writes three values of different types
(i32, String, bool), flushes to disk, drops the instance, reopens with the same
InstanceId from the same directory, and asserts all values are intact. Demonstrates the
write → flush → reopen API pattern that backs non-volatile storage.

KVS Default Values — writes a defaults file with factory values, opens a KVS instance with
KvsDefaults::Required, reads defaults, overrides one key, verifies is_value_default flips,
calls reset_key, and verifies recovery to the factory value. Demonstrates the defaults
mechanism that differentiates KVS from a plain config store.

Visibility is //visibility:public so the downstream reference_integration score_pkg_bundle
can reference @score_persistency//src/rust/rust_kvs/examples:kvs_persist_reload and
@score_persistency//src/rust/rust_kvs/examples:kvs_default_values.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Starting local Bazel server (8.7.0) and connecting to it...
INFO: Invocation ID: 5191d85f-ab55-4173-9ec8-8846f1813cae
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 2 packages loaded
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Loading: 2 packages loaded
    currently loading: 
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)
Analyzing: target //:license-check (3 packages loaded, 0 targets configured)

Analyzing: target //:license-check (51 packages loaded, 14 targets configured)

Analyzing: target //:license-check (92 packages loaded, 14 targets configured)

Analyzing: target //:license-check (140 packages loaded, 823 targets configured)

Analyzing: target //:license-check (143 packages loaded, 3232 targets configured)

Analyzing: target //:license-check (143 packages loaded, 3232 targets configured)

Analyzing: target //:license-check (143 packages loaded, 3232 targets configured)

Analyzing: target //:license-check (143 packages loaded, 3232 targets configured)

Analyzing: target //:license-check (143 packages loaded, 3232 targets configured)

Analyzing: target //:license-check (181 packages loaded, 3425 targets configured)

Analyzing: target //:license-check (193 packages loaded, 6503 targets configured)

Analyzing: target //:license-check (198 packages loaded, 9932 targets configured)

Analyzing: target //:license-check (198 packages loaded, 9932 targets configured)

Analyzing: target //:license-check (199 packages loaded, 10334 targets configured)

Analyzing: target //:license-check (203 packages loaded, 16323 targets configured)

Analyzing: target //:license-check (203 packages loaded, 16323 targets configured)

INFO: Analyzed target //:license-check (204 packages loaded, 16449 targets configured).
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 50 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
[14 / 16] [Prepa] JavaToolchainCompileBootClasspath external/rules_java+/toolchains/platformclasspath.jar
[15 / 16] Building license.check.license_check.jar (); 0s disk-cache, multiplex-worker
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 37.347s, Critical Path: 2.53s
INFO: 16 processes: 12 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 16 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
[main] INFO Querying Eclipse Foundation for license data for 42 items.
[main] INFO Found 32 items.
[main] INFO Querying ClearlyDefined for license data for 10 items.
[main] INFO Found 10 items.
[main] INFO License information could not be automatically verified for the following content:
[main] INFO 
[main] INFO crate/cratesio/-/lazy_static/1.5.1
[main] INFO 
[main] INFO This content is either not correctly mapped by the system, or requires review.

@github-actions

Copy link
Copy Markdown
Contributor

Documentation preview for this pull request is available at:
pr-573: https://eclipse-score.github.io/persistency/pr-573/

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

new examples (or when we touch them) we should introduce in the top level examples folder of the repo and they should have a own "bazel setup" (bazelrc / MODULE.bazel) see for example https://github.com/eclipse-score/baselibs/blob/main/examples/integration/MODULE.bazel#L14

  • more a "real world" example showing the usage and the integration of the module
  • if code stays in the score folder it is considered for coverage measures and testing aso and need to fullfil all quality needs (which might be overkill sometimes)

@Subramanian-K812
Subramanian-K812 force-pushed the Subramanian-K812_add_kvs_showcase branch from 9f11e39 to 0b17a90 Compare October 23, 2026 09:12
@Subramanian-K812
Subramanian-K812 deployed to workflow-approval October 23, 2026 09:12 — with GitHub Actions Active
@Subramanian-K812
Subramanian-K812 deployed to workflow-approval October 23, 2026 09:12 — with GitHub Actions Active
@PiotrKorkus

Copy link
Copy Markdown
Contributor

new examples (or when we touch them) we should introduce in the top level examples folder of the repo and they should have a own "bazel setup" (bazelrc / MODULE.bazel) see for example https://github.com/eclipse-score/baselibs/blob/main/examples/integration/MODULE.bazel#L14

  • more a "real world" example showing the usage and the integration of the module
  • if code stays in the score folder it is considered for coverage measures and testing aso and need to fullfil all quality needs (which might be overkill sometimes)

Hi @umaucher,

I believe examples could stay as public targets that can be called to demonstrate basic functionality. This is also what we are using for the showcases in reference_integration repository. The code is not in score/ but root of the repo examples so there should be no issue with the coverage.

Currently we have mixed approach some modules create examples, other standalone module, others have tutorial among their implementation.

I think even module template is out of sync, as the repo https://github.com/eclipse-score/module_template has examples/ in root but https://eclipse-score.github.io/score/main/contribute/general/folder.html#module-folder-structure has it defined as optional directly next to implementation. I think we should discuss it briefly on Monday tech alignment to clarify how the modules should handle and use common approach.

The goal is to make it usable in https://eclipse-score.github.io/reference_integration/main/integration_process/step_4_platforms.html#add-a-runtime-showcase which for persistency is currently missing.

@Subramanian-K812 - please check if baselibs-like approach can be loaded as showcase without any patches and used in ref_int.

This branch was successfully deployed

1 active deployment
workflow-approval — 0b17a90a Deployed Oct 23, 2026 by Subramanian-K812 via qnx-build (score-qnx-aarch64) / approval #1303
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.

3 participants