CHANGES
=======

v9.0.0.rc24
-----------

* added optional gateway to ValidateRequest

v9.0.0.rc23
-----------

* maybe this fixes the race condition?

v9.0.0.rc22
-----------

* minor race condition fix in testcases

v9.0.0.rc21
-----------

* last fixes for deprecation warnings inside openmodule
* presence listener uses new match-type filter, and nicer error messages
* \* dispatcher has now basic executor support, tough shutdown and / or exception handling especially with regards to ContextTerminated exceptions is not well tested \* API class removed, and moved to deprecated code section \* fixed an issue where a exception was not logged in the RPC server when using an executor \* message filters are now defined as functions, not as dictionaries

v9.0.0.rc20
-----------

* removed provider validation test mixin
* idea
* commit that stupid files in .idea

v9.0.0.rc19
-----------

* ticket validation occupant -> session
* fixes an issue if the variable does not exist which is overwritten with override\_settings
* fixes an issue if the rpc server is not used as a thread. the shutdown now closes the sockets in this case
* validation response reworked
* .idea files
* renamed some models, reduced the base64 validator
* match\_type is now True by default, the main test mixin now always kills the process on shutdown/cleanup
* fixed imports
* fixed database test cases
* added message field to validation response
* fixes an issue introduced by the previous changes in test database utils
* avoid evaluating the test module at import time
* add an assertion instead of a silent failure

v9.0.0.rc18
-----------

* present request RPC has to be triggered manually

v9.0.0.rc17
-----------

* fixed bug in latest presence listener change

v9.0.0.rc16
-----------

* is multithreaded
* docstring
* presence request on present listener initialization
* typo fix
* documentation
* rpc client deadlock issue fixed, race condition in rpc client fixed by waiting for the dispatcher. message dispatcher executor added

v9.0.0.rc15
-----------

* fixes testcase

v9.0.0.rc14
-----------

* filter prefix matched rpc requests
* removed unknown\_error

v9.0.0.rc13
-----------

* added validation test provider
* merge from branch freeflow
* orjson decimal default

v9.0.0.rc12
-----------

* added header as authorization for the api class
* fixed default source if

v9.0.0.rc11
-----------

* added a option to pass a executor to the rpc server for more threads
* added unknown\_error to ValidationProviderResponseCommonError

v9.0.0.rc10
-----------

* fixed default source

v9.0.0.rc9
----------

* added base64 validator to payload added some models added default source entry to validate response

v9.0.0.rc8
----------

* added cost entries to the access model

v9.0.0.rc7
----------

* renamed status to state
* ¯\\_(ツ)\_/¯
* added base64\_validator
* added timezone\_validator
* dependencies fix because i forgot setting python interpreter
* changed some validation model typings
* added validation provider template class
* added validatino provider models
* minor change in deprecation warnings [skip ci]
* use assert warnings instead of assert logs for failing testcase
* some docs
* assertion replaced with a warning to prevent unnecessary crashes as it's not breaking

v9.0.0.rc6
----------

* additional logs during startup, and a better default value for broker sub port and broker pub port in the backwards compatibility functions

v9.0.0.rc5
----------

* fixes in the count message definition

v9.0.0.rc4
----------

* refactoring for backends aswell as some message definition cleanups

v9.0.0.rc3
----------

* backwardscompatibility fix for vehicle (all ids must be empty by default)

v9.0.0.rc2
----------

* trigger for dev releases

v9.0.0.rc1
----------

* refactored rpc client, some cleanup and fixes across the board

v8.1.3
------

* Additions to Vehicle and Presence messages

v8.1.2
------

* dont register schemas for mock handlers
* fixes a race condition in the io tests
* update known issues

v8.1.1
------

* adds multiprocessing logging to openmodule requirements

v8.1.0
------

* changelog and breaking changes updated
* \* Adds an IO Listener \* Adds a SigTERM interrupt handler which converts to KeyboardInterrupt so shutdown in Docker containers is easier \* The main Test Mixin was refactored to start a separate process and raise a Interrupt. The other test methods were removed due to being hacky and crashing tox/pytest from time to time. Since this only breaks test code we don't bump the major version. \* The openmodule now waits for a connection with the message broker on startup \* Fixes an issue in the RPCServerTestMixin
* RPCServerTestMixin now only registers one random channel instead of all channels on the server. (Author: Philipp Reitter)
* add infos to CountMessage
* Moved the event to the subprocess. Changed the error for process not shutting down to TimeoutError. Added a signal\_in\_function testcase that calls a function that raises an uncaught exception
* optional vehicle id in CountMessage
* Added multiprocessing\_loggging to test-requirements.txt. This allows for easy piping of logs from child process to parent. Removed exception\_in\_function and custom\_action\_in\_function methods. interrupt\_mixin only allows signal\_in\_function now! Testcases cannot raise a normal Exception anymore! Any signal can be sent to the child. signal\_in\_function raises an AssertionError if the process did not finish gracefully. Removed TestCases calling a normal Exception
* Added line to exception\_in\_function to call new \_signal\_in\_function if exception is a signal or KeyboardInterrupt
* Added signal handler removal to shutdown\_openmodule()
* Reverted changes. Added signal\_in\_function test to interrupt.py. It starts a process that then receives the given singal. Moved docker\_shutdown tests to test\_interrupt.py. Added condition in init\_openmodule, that only the main thread can start the signalhandler
* Initial move over to multiprocessing for interrupt tests
* Initial move over to multiprocessing for interrupt tests
* known issues and migrations written
* do not write default Legacy-0 matching scheme to disk if not existing but use StringIO instead
* Fixed get\_gateway\_states returning an empty IoState if the given Gateway was offline for 5 seconds. Added method descriptions to all callable IoListener methods
* Added last\_timestamp to IoState. Renamed get\_state in IoListener to get\_io\_state. it now returns an IoState with all values 0. Added is\_pin\_valid, get\_gateway\_states and is\_gateway\_valid to IoListener. Added testcases for changes/new additions
* Added Test case for SigTERM signal
* Added a SigTERM interrupt handler, that simply raises a KeyboardInterrupt(). The handler is set in init\_openmodule and can be told not to start by setting catch\_sigterm=False at method call. The two arguments the signal hanlder receives (signal number, frame stack) are ignored (using \*\_)
* added raise\_handler\_errors bool to IoListener for listener.handler exceptions moved message = message.dict() to just before listener calls
* Added OpenModuleModel as inheritance to IoState and moved it to models/io.py
* Added a gateway filter test
* Moved IoListener from io-modbus to openmodule. Added the IoMessage model to models. (only IoMessage and nothing else) Changed IoListener to require registering listeners using add\_listener\_edge\_\* IoListener still collects all pin states. listeners are handled like dispatcher listeners. Changed IoListener tests to work with the changes. Simplified IoSimulator and added a generate\_example\_states for ease of use

v8.0.1
------

* fixed loading empty yamls fixes rpc server not logging info in debug log

v8.0.0
------

* fix in ci job
* drop support for python 3.7
* cleanup and docs
* testcases for the new test method
* better logging for rpc requests, and added a function to the test framework to receive rpc responses async
* moved config yaml path guesser to separate function, removed GUID again because its not a great idea after all
* reduced warnings in the testcases
* GUID type and rpc server changes to better support all pydantic models, in this case Union Types. DEVICE-891
* fixes an issue in rpc server logging, and adds more debug log output

v7.0.0
------

