Skip to content
Tags give the ability to mark specific points in history as being important
  • 03.06.00
    New MINOR release 03.06.00
    
    Changes since 03.05.00:
    
    - chore: Bump patch version (#347)
    - feat: Better data validity propagation for return channels (#346)
    - fix: StatusWithMessageInput owner type
  • 03.05.00
    New MINOR release 03.05.00
    
    Changes since 03.04.00:
    
    - chore: make use of new DataType::getMinimumDataType()
    - chore: breaking change in DeviceAccess
    - fix: XML generator fails when using DeviceModule (#341)
    - fix: code formatting
    - fix: prevent model modifications while iterating/visiting
    - fix: Escape device name in initialisation handler (#335)
    - fix: modify model while visiting
    - fix: use after free
  • 03.04.00
    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
  • 03.03.00
    New MINOR release 03.03.00
    
    Changes since 03.02.03:
    
    - chore: increase minor version. previous patch release was invalid!
  • 03.02.03
    New PATCH release 03.02.03
    
    Changes since 03.02.02:
    
    - fix: writeIfDifferent causes invalidity lockups
    
    - feat: circular network diagnostics
    - fix: example2a to actually work (#307)
    - fix: code formatting
  • 03.02.02
    New PATCH release 03.02.02
    
    Changes since 03.02.01:
    
    - fix: missing constructor argument
  • 03.02.01
    New PATCH release 03.02.01
    
    Changes since 03.02.00:
    
    - feat: print demangled types on connection error
    - fix: writeIfDifferent accounts for DataValidity
    - fix: cmakelists for example2
    - doc: clarify [[deprecated]] annotations
  • 03.02.00
    747d4918 · increase minor version ·
    New MINOR release 03.02.00
    
    Changes since 03.01.00:
    
    - fix: breaking changes in DeviceAccess 3.10 (interrupts) (#298)
    - fix: bidirectional network and readable device consumers
    - fix: type collisions with constants
  • 03.01.00
    54673e1a · cmake threads usage ·
    New MINOR release 03.01.00
    
    Changes since 03.00.02:
    * use lib install dir defined by GNUInstallDirs
      this should fix library search problems on Tumbleweed
    * chore: modernise cmake (#287)
        use imported targets where possible
        also for the export
        remove explicit definitions for downstream projects
        remove --export-dynamic linker flag
    
    * remove unit from void accessors
  • 03.00.02
    e3f7f986 · increase patch level ·
    New PATCH release 03.00.02
    
    Changes since 03.00.01:
    
    - fix data type for non 64-bit systems
    - remove forgotten (and potentially crashing) debug output from test
    - add test of exception handling with readAny
  • 03.00.01
    ef840487 · increase patch level ·
    New PATCH release 03.00.01
    
    Changes since 03.00.00:
    
    - exception handling: do not delay Void writes (cf. #9989, includes
      specification change!)
    - fix xml generator spamming debug messages
    - fix test failing if previous run aborted at wrong point
  • 03.00.00
    New MAJOR release 03.00.00
    
    Changes since 02.11.00:
    
    This major release is incompatible with previous releases of
    ApplicationCore. See doc/Migration_Guide_v2_to_v3.md for a guide how to
    migrate.
    
    - connections are now always defined by matching fully qualified PV name
    - remove no longer functional/relevant classes/functions
      - ControlSystemModule - VirtualModule - findTag - excludeTag
    - introduce new Application model - rework connection making code
    - rework DeviceModule
    - change signature of device recovery handler
    
    - modernise example template project (#8360) - fix examples
    - modernise interface of status monitors (#257)
    
    - throw logical_error if there is no PVManager
    - TestFacility: fix not sending initial values for Void variables
    - fix exceptions in constructor not shown properly
    - fix shutdown issues when waiting for devices (cf. #10029)
    
    - move modules Logging and ServerHistory to separate projects
    - cleanup and remove obsolete code
    - remove obsolete tests
    - split the Application class into multiple classes
    - fix module class hierarchies
    
    - Mac OS compatibility (#265)
    - fix type mismatch on some platforms (long vs long long)
  • 02.11.01
    73a52068 · increase patch level ·
    New BACKPORT release 02.11.01
    
    Changes since 02.11.00:
    
    - Logging module: Fix issue with initial message content.
    - ServerHistory module:
      - Allow non-automatic only connected PVs. Assume devices are connected.
      - Fix timestamp
  • 02.11.00
    8ee215c1 · increase minor version ·
    New MINOR release 02.11.00
    
    Changes since 02.10.00:
    
    - improve History module
    - improve Logging module
    - remove Profiler
    - remove unused header file
    - remove use of ApplicationCore.h convenience header (#8367)
    - move tests to cmake subdirectory
    - move inline implementations out of line
    
    - enable coding style check
    - improve documentation
    - fix code formatting
    - fix Doxygen warnings
    - fix file headers (SPDX, copyright and license)
    - update project template
  • 02.10.00
    New MINOR release 02.10.00
    
    Changes since 02.09.01:
    - Add VoidAccessor (#238)
       The VoidAccessor comes along with the convenience classes VoidInput and VoidOutput,
       and the TestFacility function getVoid()
  • 02.09.01
    dbbb0c6b · increase patch level ·
    New PATCH release 02.09.01
    
    Changes since 02.09.00:
    
    - fix Booleans in ConfigReader
    - do not recover registers with old VersionNumber (cf. #9961)
  • 02.09.00
    New MINOR release 02.09.00
    
    Changes since 02.08.00:
    
    - introduce application-defined messages in Status reporting system
    - fix device status not being aggregated by the StatusAggregator
    - add StatusAggregator debugging option
    
    - fix move operations for uninitialized VariableGroup (with test)
    - add ConfigReader::get() with default value (part of #9628)
    - XMLGeneratorVisitor returns the correct type string for Boolean and Void
    
    - example2 uses set_control_system_adapter.cmake instead of hard-coding it to Doocs
    - update build environment
  • 02.08.00
    New MINOR release 02.08.00
    
    Changes since 02.06.00:
    - TestableMode: detect deadlocks and print culprit (#225)
      -- Simply add timeout to acquiring the testable mode lock and print an error message with the last thread which successfully obtained the thread. Finally throw an exception to help debugging.
    
    - fix for bool and void (#219)
    - allow direct use of bool in TestFacility::writeScalar etc. (#223)
    
    - PeriodicTrigger: add missing move constructor/assignment (#224)
      -- Without them, the references become invalid in move operations which leads to subsequent segfaults.
    
    - optimization for StatusAggregator (#220)
      -- make getPriority faster by making prio map static and reduce evaluation frequency
    
    - fix DeviceModule throws when using CDD containing slashes (#222)
      -- Slashes are not allowed in module names, but the DeviceModule crates a status module using the CDD (or alias) as a name. The slashes are now replaced by underscores.
    
    - fix for API changes in DeviceAccess (RegisterCatalogue) (#218)
      -- See #7425
    
    - add connection information to XML file
      -- parse new information from XML file to generate server overview
      -- update XML schema (#9393)
    
    - fix headers not being shown in QtCreator
    
    - add UserInputValidator class
  • 02.07.00
    New MINOR release 02.07.00
    
    Changes since 02.06.00:
    - added ModifyHierarchy to PeriodicTrigger::tick and ::period
  • 02.06.00
    3f170b1a · fix imcomplete license ·
    New MINOR release 02.06.00
    
    Changes since 02.05.00:
    
    - introduce ScriptedInitialisationHandler
    - add writeIfDifferent to accessors
    - introduce TestFacility::canStepApplication()
    
    - fix the TimerDummyDevice in the first example after introduction Void and Boolean
    - fix race conditions in testInitialValueSpecD8
    
    - fix imcomplete license