Skip to content

add time_daemon component requirements - #153

Open
ryan-steel wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:add-time_daemon-component-requirements
Open

add time_daemon component requirements#153
ryan-steel wants to merge 3 commits into
eclipse-score:mainfrom
etas-contrib:add-time_daemon-component-requirements

Conversation

@ryan-steel

@ryan-steel ryan-steel commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Improvement

Description

Add initial component documentation for time_daemon following S-CORE process

Related ticket

Part of #64

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

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: a81ac6bf-185b-487e-bbb4-e19ac66413b1
Computing main repo mapping: 
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
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
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)

Analyzing: target //:license-check (71 packages loaded, 10 targets configured)

Analyzing: target //:license-check (91 packages loaded, 10 targets configured)

Analyzing: target //:license-check (151 packages loaded, 3143 targets configured)

Analyzing: target //:license-check (160 packages loaded, 7382 targets configured)

Analyzing: target //:license-check (160 packages loaded, 9318 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9405 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9417 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9417 targets configured)

Analyzing: target //:license-check (172 packages loaded, 9417 targets configured)

Analyzing: target //:license-check (173 packages loaded, 9419 targets configured)

Analyzing: target //:license-check (176 packages loaded, 11429 targets configured)

INFO: Analyzed target //:license-check (177 packages loaded, 11555 targets configured).
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 2 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
[13 / 16] JavaToolchainCompileClasses external/rules_java+/toolchains/platformclasspath_classes; 0s disk-cache, processwrapper-sandbox
[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: 31.067s, Critical Path: 2.38s
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>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

Copilot AI 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.

Pull request overview

Adds initial S-CORE process documentation scaffolding for the score/time_daemon component, establishing requirement artifacts and architecture boilerplate to support traceability and future inspection.

Changes:

  • Added component requirements document and requirements inspection checklist under score/time_daemon/docs/requirements/.
  • Added architecture boilerplate and architecture inspection checklist under score/time_daemon/docs/architecture/.
  • Added component-level docs entry point and toctree wiring for requirements + architecture.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
score/time_daemon/docs/requirements/requirements.rst Introduces initial comp_req entries for time_daemon (draft/invalid baseline).
score/time_daemon/docs/requirements/index.rst Adds requirements section toctree for the component docs.
score/time_daemon/docs/requirements/chklst_req_inspection.rst Adds requirements inspection checklist template for the component.
score/time_daemon/docs/index.rst Adds the component documentation landing page linking requirements and architecture.
score/time_daemon/docs/architecture/index.rst Adds architecture section toctree for the component docs.
score/time_daemon/docs/architecture/component_architecture.rst Adds component architecture boilerplate, including comp and static/dynamic view placeholders.
score/time_daemon/docs/architecture/chklst_arc_inspection.rst Adds architecture inspection checklist template for the component.
Suppressed comments (2)

score/time_daemon/docs/architecture/component_architecture.rst:102

  • The "comp_arc_dyn" need has an empty ":fulfils:" option. If requirement allocation is not decided yet, avoid empty relation fields to prevent Sphinx-Needs warnings/errors.
   :belongs_to: comp__time_daemon
   :fulfils:

score/time_daemon/docs/architecture/chklst_arc_inspection.rst:178

  • Extra quote characters in the note: ""n/a"" should be "n/a".
Note: If a Review ID is not applicable for your architecture, then state ""n/a" in status and comment accordingly in remarks.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread score/time_daemon/docs/index.rst Outdated
Comment thread score/time_daemon/docs/architecture/component_architecture.rst Outdated
Comment thread score/time_daemon/docs/architecture/component_architecture.rst Outdated
Comment thread score/time_daemon/docs/architecture/component_architecture.rst Outdated
Comment thread score/time_daemon/docs/architecture/chklst_arc_inspection.rst Outdated
Comment thread score/time_daemon/docs/architecture/component_architecture.rst Outdated
Comment thread score/time_daemon/docs/requirements/chklst_req_inspection.rst
Comment thread score/time_daemon/docs/requirements/requirements.rst Outdated
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from 20e33f8 to 2c79177 Compare August 6, 2026 15:11
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from 55625e2 to 2c79177 Compare August 7, 2026 13:53
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch 2 times, most recently from 2c79177 to 210b4ce Compare August 13, 2026 10:25
@ryan-steel
ryan-steel marked this pull request as draft August 13, 2026 11:57
Comment thread score/time_daemon/docs/requirements/requirements.rst Outdated
Comment thread score/time_daemon/docs/requirements/requirements.rst Outdated
Comment thread score/time_daemon/docs/architecture/component_architecture.rst Outdated
Comment thread score/time_daemon/docs/requirements/requirements.rst Outdated
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from 210b4ce to c8600ef Compare August 14, 2026 09:34
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from 901a9dd to 3406c3a Compare August 18, 2026 13:21
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from b6ec48f to de42f18 Compare August 19, 2026 13:30
@ryan-steel
ryan-steel marked this pull request as ready for review August 19, 2026 13:42
@ryan-steel
ryan-steel marked this pull request as draft August 19, 2026 16:02
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from e5b427d to 6c5353e Compare August 25, 2026 08:54
@ryan-steel
ryan-steel force-pushed the add-time_daemon-component-requirements branch from f9fcb3c to 9835a27 Compare August 28, 2026 16:19
Comment thread score/time_daemon/docs/index.rst Outdated
:version: 1
:satisfied_by: comp__time_daemon

The time_daemon component shall initialize the gPTP shared memory reader, time data verification (synchronization validation, time jump detection, timeout detection), and IPC publisher during initialization. Initialization shall fail if not completed within 20 seconds.

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.

Where do the 20s come from?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Initialization of SVT handler jobs: https://github.com/etas-contrib/score_time/blob/5333532c32fab9b8e2a63bb311d3ddae4ea2ef3c/score/time_daemon/src/application/svt/svt_handler.cpp#L57

If these fail the ctrl flow divider and gptp publisher aren't started.

Comment thread score/time_daemon/docs/requirements/index.rst Outdated
Comment thread score/time_daemon/docs/requirements/index.rst Outdated
Comment thread score/time_daemon/docs/requirements/index.rst Outdated
:status: valid
:version: 1

The user shall ensure gPTP shared memory is initialized and the time_slave component is running before starting time_daemon. Starting time_daemon without an initialized shared memory region will cause shared memory access failures or reading of stale/uninitialized time data during startup.

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.

Imho wrong order: I'd say - if at all - time_daemon should start first. Better would be if both sides check if shmem is already initialized and do if not.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The time_slave creates the shmem resource, time_daemon just tries to open it and fails if it doesn't exist. For current implementation I think this req is correct - can update so current impl doesn't actually implement this req if you want?

@BjoernAtBosch BjoernAtBosch Sep 4, 2026

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.

You're right - saw this while reviewing the ts_client requirements. Currently it's a broadcast mechanism: one sender/writer, multiple receivers/readers. This would not have been required because it's actually a one-to-one interface between time slave and daemon. Which is different for the interface from time_daemon to applications ...

My intuition told me "the daemon is a more carefully developed component, so it shall maintain the shmem". In the end it should be possible that one of both components can crash, be restarted and the communication is continued.

But for now let's keep it as is.

Comment thread score/time_daemon/docs/requirements/index.rst Outdated
Comment thread score/time_daemon/docs/requirements/index.rst Outdated
Comment thread score/time_daemon/docs/requirements/index.rst Outdated
Comment thread score/time_daemon/docs/requirements/index.rst Outdated
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.

3 participants