<a name="v2.1.0"></a>
[v2.1.0](https://github.com/powerapi-ng/smartwatts-formula/compare/v2.0.1...v2.1.0) (2023-05-05)
Bug Fixes
* **handler:** Use an OrderedDict for ticks storage
Build System
* Bump PowerAPI version to 2.0.2
* Switch to Ruff for code linting
* Remove unused pytest asyncio and timeout dependencies
* Update pylint configuration file
* Bump SmartWatts package version to 2.1.0
* Update dockerignore file for src-layout support
* Migrate from setup.(py|cfg) to pyproject.toml
* Remove influxdb_client dependency that now is inside influxdb
* Bump SmartWatts package version to 2.0.1
* **deps:** Bump powerapi/powerapi from 2.0.2 to 2.0.3
* **deps:** Bump docker/metadata-action from 4.3.0 to 4.4.0
* **deps:** Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5
* **deps-dev:** Bump powerapi[everything] from 2.0.2 to 2.0.3
Code Refactoring
* Cleanup formula __main__
* Cleanup HwPC report handler
* Move scripts into their own directory
* Move actor, handler and model code in their own module
* Move the formula configuration in the actor module
* Use the Formula report of PowerAPI instead of our own
* Move power model code in the model module
* Fix invalid-name pylint warning for logging level/format constants
* Remove unused scripts directory
* Rename exceptions file
* Adapt tests to PowerAPI 2.0.1 refactoring
* Switch project to src-layout
* Fix pylint error about unused **kwargs parameter in formula factories
* **handler:** Fix arguments-renamed pylint warning for handle method
* **handler:** Cleanup send report(s) to pusher(s) loop
* **model:** Rename History class to ReportHistory
* **model:** Add type hints to the methods of the CPUTopology class
* **model:** Move report history into its own file
* **model:** Filter sklearn warnings when training the model
* **model:** Add type hints to the methods of the PowerModel and ReportHistory classes
* **model:** Remove the apply_intercept_share method
* **report:** Use f-string for __repr__ method of formula report
Continuous Integration
* Update codebase paths in workflows for the src-layout
* Switch to Trusted Publishing (OIDC auth) for pypa/gh-action-pypi-publish
* Add CodeQL workflow
* Add dependabot configuration file
* Update secrets of docker/login-action for release workflow
* Rework release workflow
* Rework build/test workflow
* **build:** Add upload of coverage reports to Codecov
* **build:** Use ruff instead of flake8 in code lint step
* **build:** Add pytest step to run unit tests with coverage
Features
* Declare exposed names in __all__ list for each modules
* Add support of FormulaReport (model debug)
* Use more concise logging messages format
* **cli:** Improve cli arguments value checks
Miscellaneous Chores
* Update project description in README
* Add CITATION.cff file
* Update dockerignore to support pyproject.toml
Tests
* Add power model unit tests module
* Add unit test module
* Remove broken acceptation tests
* Fix pylint not-an-iterable error in acceptation tests utils
* **model:** Remove redundant test of _extract_events_value method
* **model:** Add power model unit tests
* **model:** Add reports history unit tests
* **model:** Add CPU topology unit tests