ChimeraTK / ChimeraTK/ApplicationCore

Sanity check for internal variable connections

Open
#20 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement redmine
Dominant language
C++
Stars
1
Forks
5
Avg merge
1m
Merged PRs (30d)
1

Description

When using the "trick" to make ApplicationModule to ApplicationModule connections by connecting them both to the same variables in the ControlSystem, mistakes can be easily made e.g. when variables are renamed in refactoring at only one end of the internal connection. Add an optional sanity check which helps detecting those problems:

  • Write a function, which can be called on Modules (usually the result of findTag()) or on individual accessors (hence technically each one member function), which allows to set certain flags for process variables.
  • One of these flags (the only one in the beginning) will be called something like EnforceInternal.
  • Right after defineConnections(), all process variables with this flag will be checked. The corresponding variable networks should have its feeder and at least one consumer of the type application.

Definition of done:

  • Clarify names, discuss with a second person
  • Implementation
  • Tests
  • Reference documentation (Doxygen inline)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the Module and accessor APIs, the findTag() result, and the code path immediately after defineConnections(). Clarify the flag names and expected application feeder/consumer relationships, then implement the check with tests and add the agreed reference documentation as Doxygen inline text.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.