Skip to content

Latest commit

 

History

History
392 lines (276 loc) · 11.8 KB

File metadata and controls

392 lines (276 loc) · 11.8 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

Fixed

  • daemon servers no longer keep all recieved messages in memory
  • removed asyncio syntax that was removed in python 3.14
  • type hints for IsSensor attributes are appropriate for n-dimensional data

Fixed

  • Fixed memory leak in daemon server that scaled with number of connections

Added

  • fake-has-transformed-position for testing purposes
  • has-transformed-position can read native_limits as a config option

Fixed

  • Fixes has_transformed_position which had inheiritance issue

Changed

  • Upgraded appdirs to platformdirs
  • moved to hatchling build system

Fixed

  • Text for two methods for has-transformed-position for pedagogical reasons
  • Wrapped call to start_server in create_task for Python 3.11 compatibility

Fixed

  • behavior of measurement_id for has-measure-trigger has been implemented incorrectly since beginning

Added

  • has-transformed-position
  • has-dependents ABC

Changed

Fixed

  • measurement_id in memory was off by one from measured_dict

Changed

  • Use tomli[-w] for toml reading/writing rather than toml

Added

  • is-discrete now implements get_position_identifier_options, an extra method that returns the keys rather than full mapping

Changed

  • Update for fastavro 1.4, pin version

Added

  • is-sensor now implements get_measurement_id as defined in YEP-302

Fixed

  • access of incorrect attribute when exception raised on restart

Changed

  • updated has-turret trait for string identifiers rather than int

Added

  • ASerial now supports eol configuration, used during areadline

Added

  • HasMapping trait support, see YEP-311

Changed

  • HasMeasureTrigger: measurement_id updates even while looping
  • Handling of incomming requests is now asynchronous and non blocking

Changed

  • state file is only written if state changes
  • state file is written even if busy is never toggled

Fixed

  • Fixed bug where HasMeasureTrigger _runner loop escaped garbage collection during restart

Fixed

  • Named types used within compound types in config and state
  • Shared Settings properly escaped, log message corrected

Changed

  • Apply type defined defaults for config and state

Changed

  • major refactor: each trait is now represented by one class

Added

  • Support for nested named types

Changed

  • changed logging location to user log directory

Changed

  • Updated to fastavro 0.24.0 named schema behavior

Added

  • new testing submodule: provides decorators to run daemons in context of single function
  • Now handle schema-defined types (e.g. ndarray)

Fixed

  • fixed tuple handling (e.g. get_channel_shapes) by pinning to fastavro>=0.23.6

2020.07.2

There are no actual code changes, this release is to update the release pipeline

Changed

Changed

  • distribute with - instead of _

Fixed

  • Unpacking of union types as message request parameters
  • Correct python requires, allowing python 3.7

Changed

  • migrated to flit build system
  • Less verbose log messages for avro unpacking and performing message calls

Added

  • --protocol entry point to print the avro protocol

Changed

  • removed pkg_resources in favor of path manipulation when accessing .avpr files
  • Behavior of VERSION entry point, now prints module and package version, no individual daemon version

Changed

  • Remove msgpack based rpc, replace with Apache Avro
    • This is a breaking change which requires updates to daemon

Added

  • now explicity testing against Python 3.7, 3.8 and latest

Fixed

  • remove old (now incorrect) references to abstract daemons in README
  • remove task.get_name feature which was introduced in Python 3.8 (fixing broken 3.7)

Added

  • added DiscreteHardware class, implementing new trait is-discrete

Changed

  • required methods for subclasses now raise NotImplementedError rather than having default fallbacks with undesired behavior
  • hardware class futureproofed in case base daemon ever has state to save or load

Removed

  • entry points for hardware and continuous-hardware: use yaqd-fakes instead

Fixed

  • correctly handle shared-settings at startup

Added

  • Add CHANGELOG to MANIFEST.in

Fixed

  • correctly await and return aread and areadline

Added

  • added git branch information to daemon, package version
  • added gitlab-ci testing stage for entry points

Changed

  • refactored gitlab-ci

Fixed

  • fixed _version attribute mypy type for abstract daemons

Added

  • added get_version as described in YEP-105
  • added changelog
  • logging level can be set with the --log-level and --verbose cli options YEP-106
  • default configuration options for "log-level" and "log-to-file"
  • added version entry point
  • updated README

Changed

  • from now on, yaqd-core-python will use calendar-based versioning
  • logging is now done with separate loggers per daemon (rather than per file) YEP-106

Added

  • Add handling of ndarray type msgpack extension, see YEP-110

Changed

  • Uses msgpack RPC as described by YEP-100 rather than JSON-RPC

Added

  • Locks for aserial operations
  • awrite_then_read method
  • Restarting over the RPC interface

Changed

  • config_filepath changed to get_config_filepath

Removed

  • yaqd-base and yaqd-sensor entry points

Added

  • hardware have get_units method
  • new method get_traits (and associated class variable for defining implemented traits)
  • hardware now have set_relative method
  • aserial subpackage for asyncronous serial I/O

Changed

  • Limits now have a single range, rather than a list of ranges
  • out_of_limits defaults to "closest", rather than "error"
  • defaults now properly get preserved when subclassing

Removed

  • get_lineage method

Changed

  • Fix bug in sensor assertion

Added

Changed

  • Clean up implementation of RPC protocol
  • Channel information now three separate fields for "name", "units", and "shape", new methods to access each

Removed

  • "entry" top level configuration parameter no longer respected

Added

  • Manifest file for distribution of the LICENSE and README

Added

  • Communicate type annotations

Changed

  • Ensure parsing of multiple incomming requests at the same time
  • Improved testing infrastructure

Removed

  • set_action decorator

Added

  • Handling of UNIX Signals SIGTERM, SIGHUP, SIGINT
  • PEP-484 Type Hints

Changed

  • Correct calls when running files directly
  • Fix inf usage without importing
  • Update distribution information

Added

  • pre-commit hooks
  • Add continuous integration
  • Add version attribute
  • Sensor daemon
  • get_lineage method to see parents
  • Hooks for connecting and disconnecting clients
  • Logging infrastructure

Changed

  • Use "method" rather than "command"
  • Use consistent names for classes, entry points

Removed

Initial release

  • The base daemon implementation
  • JSON-RPC implementation
  • Generic Client
  • Continuous hardware base daemon