## Roadmap

* **Data Collection**: Create a module for collecting data from various sources such as system logs, performance counters, monitoring tools, etc.
  * **Script Generation**: Create a module for generating performance data collection scripts to reduce noise generated by the Python runtime.
* **Data Parsing**: Create a module for parsing the collected raw data and converting it into a format that is easy to process and analyze.
* **Data Processing**: Create a module for further processing the parsed data, such as aligning data, segmenting data, etc.
  * **Calculate Performance Metrics**: Calculate various performance metrics based on the collected and processed data.
  * **Data Visualization**: Create a module for visualizing the processed data and performance metrics, allowing users to understand the performance data more intuitively.
* **Performance Analysis**: Create a module for in-depth analysis of performance data, such as bottleneck detection, performance prediction, etc.
* **Others**
  * **Cross-Platform Support**: Ensure the tool can run on multiple platforms such as x86_64, ARM, RISC-V, etc.
  * **Develop User Interface**: Develop a user interface to make the tool more user-friendly.
  * **Write Documentation**: Write detailed user documentation and API documentation to help users understand how to use the tool.
  * **Testing**: Write and execute test cases to ensure all parts of the tool work correctly.
  * **Continuous Integration/Continuous Deployment (CI/CD)**: Set up CI/CD workflows to automate the testing and deployment process.
  * **Performance Optimization**: Optimize the performance of the tool to ensure it maintains good performance when handling large amounts of data.


## TODO

### Version 0.0.6

* [x] Implement data parsing of sar data
* [x] Implement the script generation for global performance data collection
* [x] Fix script generation initiated by pipa, optimizing default parameters
* [x] Implement parallel parsing of sar data / perf-stat
* [x] Implement data parsing of perf-report data
* [x] Implement basic data processing capabilities
* [x] Implement basic data visualization: Export CPI/CPU Util/CPU Freq over time figures

### Version 0.0.7

* [x] Use ps to get process information in PIPA-SHU
* [x] Improve `run-by-user` and set it as default option
* [x] Fix bugs in perf-stat parsing
* [x] Export OS & HW configuration after parsing
* [x] Improve perf events used in perf-stat
* [x] Implement script generation by parsing configuration files
* [x] Set version in the code

### Version 0.0.8

* [x] Extend the metrics in plot_disk_usage
* [x] Implement pipa-version command
* [x] Unified interface specification for robustness
* [x] Support data collection by `emon`
* [x] Integrate key metrics into Grafana. Implement Client/Server with `grpc`.
* [x] Integrate export `perf.data` to `SQLite3`

### Version 0.0.9

* [x] Improve PIPA CLI
* [x] Implement tidy table
* [x] Provides combinations of different performance data collection tools
* [x] Set up format check tools and configuration
* [x] Fix bugs of pipa-generate

### Version 0.0.10

* [x] Fix tidy data
* [x] Improve Grafana table format
* [x] Integrate the automated documentation generation process into CI
* [x] Implement dumping PIPASHU overview data to a file
* [x] Fix PIPA-upload with perf-record data
* [x] Improve unit tests
* [x] Implement PIPA-dump

### Version 0.0.11

* [x] Improve comments
* [x] Support perf-script with call trace
* [x] Build call graph based on perf-script data
* [ ] Improve unit tests coverage
* [ ] Improve documentation