Skip to content
New MINOR release 03.04.00

Changes since 03.03.00:

BREAKING CHANGES:

- fix!: check PV name for illegal characters
  Only alphanumeric characters (a-z, A-Z and 0-9) and underscores are allowed.
  This requirement is now enforced, using other characters in PV and module
  names will result in an exception. This was previously tolerated in many
  cases but could lead to undefined behaviour. Application developers might
  need to change their applications and/or logical name mapping files.

- fix!: EntityOwner::constant(), Utilities::stripName() etc.
  These functions were using illegal characters and have been fixed. As a
  consequence, some framework-generated PV names are changed. In particular,
  the status PVs for devices which are directly created from a CDD (instead of
  an alias name) will have different names now. Users might need to adapt their
  mapping files.

Other changes:

- feat: add versionInfoProvider
- feat: deep input validation (#11558)
- feat: UserInputValidator with arrays
- feat/fix: StatusAggregator now has always DataValidity::ok
- feat/fix: StatusAggregator with messages
- feat: PVs with funneled return channel (only control system to application PVs)
- feat: set value of StatusWithMessage without writing
- feat: StatusWithMessage::writeIfDifferent() etc.
- feat: add DOT file generation (#317)
- feat: ApplicationFactory in convenience header

- fix: setAndWrite() used wrong VersionNumber
- fix: workaround for open() not thread safe (#11478)
- fix: modify model while visiting (#11012)
- fix: shutdown FeedingFanOut with unwritten return channel
- fix: UserInputValidator crashes without setErrorFunction()
- fix: missing default constructor for PeriodicTrigger

- doc: improve conceptual overview
- doc: modernise example(s)

- chore: formal code cleaning (#316)
- chore: enable linter build target
- feat(example): add linter target
- chore: code cleaning StatusWithMessage
- test: add reproduction test for #11105
- test: add tests for UserInputValidator
- fix: warning in release builds
- fix: add missing spdx header