### Changed
- Switched to PDM
- Switched to trusted publisher from pypi
- Bump to chaostoolkit-lib 1.42.1 to drop logzero
- Drop logzero expectation
- Drop support Python 3.7
- Build for Python 3.12
- Make sure the
repeat
control doesn't run when it count is less than 2 - Prevent endless looping
- Ensure insertion ordering is correct
- Switched to ruff to lint the code
- Try to not block on exit
- Make safeguard probe that got triggered available to review
cancel_futures
is only support in Python 3.9+
- Better management of ending the experiment
- Indirection to the exeit function so we can override in tests
- Switched to regular thread to check if must interrupted as the future executor is bit painful when it comes to exiting the program
- Reworked how we trigger the actual exit call so that we never block the threads playing the safeguards. Now only one thread can trigger the exit.
- Added a flag to know when the guardian was fully setup
- No need for the safeguard Guardian class to be a thread-local
- Allow for callback to use their own guardian instance in the safeguard control
- The control
chaosaddons.controls.repeat
to run an activity multiple times
- Validate probes in the safeguard control #7, using the new
validate_control
capability of the chaostoolkit core - Export control functions in module variable
__all__
- Requires Python 3.7+ to match Chaos Toolkit itself
- Ensure to not replay safeguard with frequency once triggered
- The
bypass
control to dynamically filter activities that should not be executed - The
idle
action/probe to pause experiments without blocking the process
- Ensure latests setuptools when releasing
- pyproject.toml
- MANIFEST.in
- Initial release