Skip to content

time_daemon component requirements follow-up - #256

Open
ryan-steel wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:fix/time_daemon-reqs-review-153
Open

ryan-steel wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:fix/time_daemon-reqs-review-153

Conversation

@ryan-steel

Copy link
Copy Markdown
Contributor

Improvement

Description

Follow-up to #153 (merged). Addresses the post-merge review comments from @lavrovvalera on the time_daemon component requirements, using the direction @BjoernAtBosch gave in his replies.

Review comments addressed

Comment Requirement Change
Not atomic comp_req__time_daemon__startup Split into startup (config + unit initialization), new init_retry and new init_timeout. Also fixed a copy error: it now ends the time_daemon process, not time_slave.
Which stop signal / publishing loop? comp_req__time_daemon__shutdown Stop signal named as SIGINT/SIGTERM (per Björn). "Publishing loop" removed. Wording matches comp_req__time_slave__shutdown.
ts_client is design comp_req__time_daemon__gptp_shm_reception → comp_req__time_daemon__time_sync_reception Text unchanged: naming ts_client is fine at component level (per Björn). ID no longer contains shm.
Library / time component is design comp_req__time_daemon__time_data_publishing No change: time_daemon talks to the time component, not to application code (per Björn).
Multiple reqs in one comp_req__time_daemon__published_data_content The field list stays one interface requirement. The raw Sync/FollowUp and Pdelay data moved to a new comp_req__time_daemon__published_raw_data. Removed a trailing comma in :derived_from:.
Published where? Several reqs comp_req__time_daemon__time_point_qualifier Rewritten as one rule: the qualifier of the data given to the time component is derived from sync, time jump and timeout status.
Why fixed interval? What if no new data? comp_req__time_daemon__publish_interval Removed. Björn agreed it is an implementation detail. Missing data is handled by timeout detection. "At a fixed interval" also removed from the component overview.
Describes current design comp_req__time_daemon__non_blocking / new comp_req__time_daemon__client_read_access Replaced the shmem/lock-free requirement with Björn's proposal: time_daemon provides the time component with functionality to read the published time data.
Non-blocking is design, use performance reqs comp_req__time_daemon__non_blocking, comp_req__time_daemon__multi_client Rewritten from the reader's side, per Björn: reads must not block the reader thread indefinitely (non_blocking), and multiple clients can read in parallel on different CPU cores (multi_client). No timing limit, because it depends on hardware.
Logging requirement needed? comp_req__time_daemon__error_reporting Kept as the minimal log content, traced to the feature log requirement (per Björn) and matching time_slave. "Shared memory access" changed to "IPC access".
Needed? Sync state? When to stop? comp_req__time_daemon__time_jump_reaction → comp_req__time_daemon__error_reaction Merged with the timeout reaction into one requirement saying errors are non-fatal: publishing continues on time jump, timeout or loss of sync, with the matching status set. Publishing has no stop condition.
Reference timeout detection / needed? comp_req__time_daemon__timeout_reaction Removed, merged into comp_req__time_daemon__error_reaction (see above).
shmem is design comp_req__time_daemon__platform_support Shmem/IPC wording dropped (Björn agreed). Fixed the "SDPplatforms" typo.
Drop shmem from AoU; separate file? aou_req__time_daemon__gptp_shm_available → aou_req__time_daemon__time_slave_running Shmem dropped (per Björn, the IPC is a ts_client detail). The AoU now requires time_slave to be running or to become available within the init timeout. AoUs stay in the same file, as in time_slave and ts_client. Component overview AoU updated to match.

ID changes

Removed / renamed Replacement
comp_req__time_daemon__gptp_shm_reception comp_req__time_daemon__time_sync_reception
comp_req__time_daemon__publish_interval — (removed)
comp_req__time_daemon__time_jump_reaction comp_req__time_daemon__error_reaction
comp_req__time_daemon__timeout_reaction comp_req__time_daemon__error_reaction
aou_req__time_daemon__gptp_shm_available aou_req__time_daemon__time_slave_running

No other files in this repo reference the removed or renamed IDs.

Related ticket

part of #64

@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: 2c828260-154c-4053-9e94-dd5df9ba01f7
Computing main repo mapping: 
Computing main repo mapping: 
WARNING: For repository 'platforms', the root module requires module version platforms@1.0.0, but got platforms@1.1.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_tooling', the root module requires module version score_tooling@2.2.1, but got score_tooling@2.2.2 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'rules_oci', the root module requires module version rules_oci@2.2.7, but got rules_oci@2.3.0 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
WARNING: For repository 'score_devcontainer', the root module requires module version score_devcontainer@1.8.0, but got score_devcontainer@1.11.1 in the resolved dependency graph. Please update the version in your MODULE.bazel or set --check_direct_dependencies=off
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 3 packages loaded
WARNING: Target pattern parsing failed.
ERROR: Skipping '//:license-check': no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/time/time/BUILD
ERROR: no such target '//:license-check': target 'license-check' not declared in package '' defined by /home/runner/work/time/time/BUILD
INFO: Elapsed time: 16.837s
INFO: 0 processes.
ERROR: Build did NOT complete successfully
ERROR: Build failed. Not running target

This branch is waiting to be deployed

1 waiting deployment
workflow-approval — 02593b21 Waiting Oct 20, 2026 by ryan-steel via qnx-build (x86_64-qnx) / approval #1018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant