Releases: ethlo/chronograph
v5.0.0
We are excited to announce the release of Chronograph 5.0.0! This version introduces a Java module descriptor, making the library fully modular and improving compatibility with modern Java applications. Due to this change, all packages have been moved from com.ethlo.time to com.ethlo.chronograph.
🔄 Breaking Changes:
- Package Renaming:
- All classes previously under
com.ethlo.timeare now located incom.ethlo.chronograph. - If you are upgrading from 4.x, you will need to update your imports accordingly.
- All classes previously under
- Java Module Support:
- Chronograph now includes a
module-info.javadescriptor. The module name iscom.ethlo.chronograph.
- Chronograph now includes a
🚀 Why the Major Version Bump?
This release does not introduce new functionality but requires package changes, which could break existing imports in your codebase. To maintain semantic versioning best practices, we have incremented the major version to 5.0.0.
📌 Upgrade Guide:
- Update your dependency version to
5.0.0. - Replace all
com.ethlo.time.*imports withcom.ethlo.chronograph.*. - If using JPMS (Java Platform Module System), add
requires com.ethlo.chronograph;to yourmodule-info.javafile.
v4.0.0
🚀 New Features
- Nested Task Support: Chronograph now properly handles nested tasks. Tasks executed within other tasks no longer contribute to the total time of their parent, ensuring accurate statistics.
- Self-Time Calculation: Added a self-time metric to track the time a task spends executing, excluding its nested subtasks.
- Hierarchy-Aware Summary Table: The ASCII summary table now visually represents nested tasks with indentation , making it easier to interpret hierarchical task structures.
- Task Stack for Execution Context: Internally, a stack-based approach is now used to track task execution order and reconstruct hierarchy when reporting.
🔧 Improvements
- Improved Formatting: The summary table layout has been refined to better display execution statistics in a readable format.
- Enhanced API Usability: Cleaned up the data structure, so it is easier to pull the data you need after an execution.
🔄 Upgrade Notes
The main usability change is that the prettyprint methods have been removed from the Chronograph. You can use the default toString method for one off outputs, or you should use the TableOutputFormatter or the new JsonOutputFormatter, if that is your thing.
📥 Feedback & Contributions
We welcome feedback and contributions! If you encounter any issues or have feature requests, please open an issue or submit a pull request on our repository.
Enjoy Chronograph 4.0! 🚀
