Tags

Tags give the ability to mark specific points in history as being important
  • 04.06.00

    New MINOR release 04.06.00
    
    Changes since 04.05.01:
    
    - fix(python): GIL assertion on termination
    - feat(python): set array slices in 1D accessors
    - chore: improve debugMakeConnections comment
  • 04.02.03

    795450e6 · chore: Bump patch version ·
    New BACKPORT release 04.02.03
    
    Changes since 04.02.02:
    
    - chore: Bump patch version
    - fix: Rework the ReverseRecoveryDecorator
    - fix: Handle special case of promoting WO consumer
    - fix: Show config parsing error on app start
    - fix: Promote CS consumer to bi-directional
    - feat: Implement appConfig.getArray
    - chore: improve message if Application does not shutdown()
    - fix(ConfigReader): don't print error when using default value
    - feat(ConfigReader): allow leading slash in get()
  • 04.05.01

    New PATCH release 04.05.01
    
    Changes since 04.05.00:
    
    - fix: Rework the ReverseRecoveryDecorator
  • 04.05.00

    New MINOR release 04.05.00
    
    Changes since 04.04.00:
    
    - fix: Handle special case of promoting WO consumer
    - feat: Also log unmapped optimisation
    - fix: Show config parsing error on app start
    - fix: Promote CS consumer to bi-directional
    - fix: Fix example to match built-in config reader
    - feat: improve warning from CircularDependencyDetector
  • 04.04.00

    New MINOR release 04.04.00
    
    Changes since 04.03.01:
    
    - feat: FanIn
    - fix(ConfigReader): don't print error when using default value
    
    - feat(Python): Implement appConfig.getArray
    - feat(Python): Bind UserInputValidator
    - fix(Python): Protect calling __repr__ unintialised
    - fix(Python): Infinite loops in __repr__ calls
    - fix: PyApplication testable mode race condition
    
    - feat: improve warning from CircularDependencyDetector
    - feat(TestableMode): no terminate if stalled in debugger
    - chore: improve message if Application does not shutdown()
    - feat(ConfigReader): allow leading slash in get()
    - feat: add concepts for accessors
    
    - fix: compilation on clang
    - fix: XML schema now allows multiple peers
    - fix: Make UserInputValidator work with base class
    
    - chore: remove unused header file
    - chore: Split up add() function
  • 04.02.02

    New BACKPORT release 04.02.02
    
    Changes since 04.02.01:
    
    - fix: Issue with missing MatcherBase type
    - fix(Python): Protect calling __repr__ unintialised
    - fix(Python): Infinite loops in __repr__ calls
    - feat(Python): Bind UserInputValidator
    - fix: Make UserInputValidator work with base class
    - chore: Split up add() function
  • 04.02.01

    9ca93936 · chore: Bump patch version ·
    New BACKPORT release 04.02.01
    
    Changes since 04.02.00:
    
    - chore: Bump patch version
    - chore/fix: refactor tests and make them more robust
    - fix(DeviceManager): reportException() does not call Device::setException()
    - chore: Clean-up debugMakeConnections() output
    - fix(PyScalarAccessor): Remove double binding
    - chore: Minor simplification of PyTransferElement
    - fix(python): Add VoidAccessor bindings
    - fix(UserInputValidator): Check if in valid state
    - fix: Add binding for ChimeraTK::Boolean
    - fix: Remove wrong [[deprecated]] tag
    - feat(Python): Bind new reverse recovery accessors
    - fix: heap-use-after-free (reported by TSAN)
    - feat: Implement the reverse recovery
    - feat: Skip write to tagged registers
    - feat: Import tags from device into model
    - chore(StatusAggregator): Port to DeviceAccess tags
  • 04.03.01

    New PATCH release 04.03.01
    
    Changes since 04.03.00:
    
    - fix(PyScalarAccessor): Remove double binding
    - chore: Minor simplification of PyTransferElement
    - fix(python): Add VoidAccessor bindings
    - fix(UserInputValidator): Check if in valid state
    - fix: Add binding for ChimeraTK::Boolean
    - fix: Remove wrong [[deprecated]] tag
    - feat(Python): Bind new reverse recovery accessors
  • 04.03.00

    New MINOR release 04.03.00
    
    Changes since 04.01.00:
    
    - fix(test): increase retry-count for testDeepBackwardsPropagation
    - fix: heap-use-after-free (reported by TSAN)
    - fix: mixing struct and class leads to clang warning
    - fix: workaround for TSAN false positive
    - chore: performance improvement of TestableMode
    - chore: performance improvement in DeviceManager
    - fix: for earlier regression fix for recovery groups
    - feat(TestableMode): print thread ID when test stalled
    - chore(test): improve test diagonstics
    - feat: thread name for CircularDependencyDetector
    - fix: regression for testable mode with recovery groups
    - test: add test for triggerFanOut with device init handler
    - fix(test): linter warnings
    - chore: Clean-up debugMakeConnections() output
    - feat: Implement the reverse recovery
    - feat: Skip write to tagged registers
    - feat: Import tags from device into model
    - chore(StatusAggregator): Port to DeviceAccess tags
    - fix(test): race conditions
    - fix(tests): increase timeouts to fight spurious fails on Jenkins
    - feat: allow turning off version propagation from input
    - feat: extend DataConsistencyGroup by MatchingMode::historized
    - fix: use ChimeraTK::logic_error instead std::logic_error
    - chore: bump minor version (twice, 04.02 was from branch)
    - chore/fix: refactor tests and make them more robust
    - fix: python paths
    - chore: finalise exception handling spec V1.1
    - fix: put PyApplicationCore bindings into versioned directory
    - feat!: close device before calling init handler
    - feat: recovery groups
    - fix: doxygen reference
    - chore: add recovery groups to spec
    - fix(DeviceManager): reportException() does not call Device::setException()
    - fix: code formatting with clang-format-19
    - feat: get DeviceModule from Model (DeviceModuleProxy)
    - feat: funnel return channels for FeedingFanOut
    - feat: add module class name to CircularDependencyDetector messages
  • 04.02.00

    New BACKPORT release 04.02.00
    
    Changes since 04.01.00:
    
    - feat: get DeviceModule from Model (DeviceModuleProxy)
    - feat: funnel return channels for FeedingFanOut
    - feat: add module class name to CircularDependencyDetector messages
  • 04.01.01

    42cb77cb · fix: python paths ·
    New BACKPORT release 04.01.01
    
    Changes since 04.01.00:
    
    - fix: put PyApplicationCore bindings into versioned directory
  • 04.01.00

    New MINOR release 04.01.00
    
    Changes since 04.00.00:
    
    - fix(test): workaround for older python versions
    - fix: allow running stubgen without docstrings
    - fix: removed unused header
    - chore: lower required version for pybind11
    - fix: terminate application while still waitig for init values
    - feat: more info on connection logic_errors
    - chore: Drop BitMask modules
    - fix: Suppress libxml2 warning for missing config
    - fix: race condition
  • 04.00.00

    New MAJOR release 04.00.00
    
    Changes since 03.09.00:
    
    Note: There are two changes which are technically not backwards compatible, but
    it is rather unlikely that any application is affected by this:
    
    - feat!: throw in case of trailing/redundant slashes in module or variable names
    - fix!: compilation issue with clang 18, required a changed return type of
      ProcessVariableProxy::getNodes()
    
    Major added features:
    
    - feat: runtime-provided ApplicationModules written in Python
    - feat: Each application has one ConfigReader
    - feat: overriding ConfigReader values from TestFacility
    
    Further changes:
    
    - chore: remove deprecated AC 2.x compatibility
    
    - fix: Prevent modules from connecting themselves
    - fix: FeedingFanOut w/ return and unmapped PV optimisation
    - fix: Disallow move/delete of connected variables
    
    - refactor: Improve error message in ConfigReader.cc
    
    - chore: re-organise config files used by tests
    - chore: improve tests
    - fix: warnings
    - fix: compatibility with newer C++ standards
    - tests: move DataValidity test to DeviceAccess
  • 03.09.00

    New MINOR release 03.09.00
    
    Changes since 03.08.01:
    
    - feat: data validity propagation configurable via special tag
    - feat: negated tags
    - feat: custom warn-mixed message in StatusAggregator
    
    - fix: input path for autoClearEventMessage
    - fix: Missing assignment operator in EventMessageAggregator
    - fix: ScriptedInitHander might drop last lines of output
    
    - fix: several tsan warnings
    - fix: leaking the model in all apps
    - fix(test): race condition
    
    - fix: compilation against boost 1.71
    - chore/doc: move all tests to namespace to help Doxygen
    - chore: adpot small API changes in ControlSystemAdapter
    
    - fix: linter warnings
    - fix: remove unused var local vars
    - fix: compiler warnings
    - fix: coding style
  • 03.08.01

    New PATCH release 03.08.01
    
    Changes since 03.08.00:
    
    - fix: StatusAggregator does not detect mixed_warn condition
    - chore: improve StatusAggregator debug printout
  • 03.08.00

    New MINOR release 03.08.00
    
    Changes since 03.07.00:
    
    - fix: StatusAgggregator
  • 03.07.00

    New MINOR release 03.07.00
    
    Changes since 03.06.00:
    
    - feat: Application-wide logger
    - feat: EventMessageAggregator and AggregatableMessage
    - feat: improve diagnostics for connection errors
    
    - fix: CircularDependencyDetector recursion
    - fix: Use local include path for new aggregator
    - fix: linter warnings
    - fix(tests): race condition
    
    - feat: Add oven simulator script (#349)
    
    - style: move min version to top in cmakelists
  • 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