List view
## Description Performance is a key aspect of our package, `GraphProperties.jl`, especially as it scales to handle larger and more complex graph structures. To ensure that our functions are optimized and to identify any performance regressions, we need to integrate benchmarking into our development workflow. ## Goals * Set up a benchmarking suite using BenchmarkTools.jl. * Establish baseline performance metrics for current functions. * Automate benchmarking to run with CI for pull requests and commits. * Store and track benchmark data to observe performance over time. * Document benchmarking procedures for contributors. ## Tasks - [ ] Research the best practices for benchmarking in Julia. - [ ] Identify key functions and algorithms within `GraphProperties.jl` that would benefit most from benchmarking. - [ ] Install and configure `BenchmarkTools.jl` in the project. - [ ] Write benchmark tests for identified functions. - [ ] Update CI configuration to run benchmarks automatically. - [ ] Determine a method for storing benchmark history (e.g., using GitHub Actions artifacts or a separate benchmarking dashboard). - [ ] Update contributor documentation to include guidelines on writing benchmark tests for new features. - [ ] Review and merge benchmarking setup into the main branch. ## Impact Implementing benchmarks will allow us to quantify the performance impact of code changes and help maintain the efficiency of GraphProperties.jl as it grows. It will also provide contributors with immediate feedback on the performance implications of their contributions.
Overdue by 1 year(s)•Due by February 1, 2024•0/8 issues closed### Summary This milestone marks the alpha release of GraphProperties.jl, which includes the foundational features required for community detection and graph invariant analysis. The goal of this release is to solidify core functionalities, establish testing frameworks, and initiate documentation for early adopters. ### Goals for 0.1.0 Alpha Release - [ ] **Feature Completeness**: Ensure that all planned alpha features are implemented. These features should be functional but not necessarily final. - [ ] **Testing Framework**: Establish a comprehensive testing framework that covers key functionalities introduced in the alpha features. - [ ] **Initial Documentation**: Provide basic documentation that covers installation, quick start guides, and API references for the included features. - [ ] **Feedback Mechanism**: Implement a process for collecting feedback from early users, including issue templates and communication channels. ### Checklist - [ ] Implement core algorithms and structures under `Communities` and `Invariants` directories. - [ ] Set up continuous integration (CI) for automated testing. - [ ] Create a basic set of usage examples and tutorials for new users. - [ ] Review and merge all feature branches related to this release. ### Testing All features should have corresponding unit tests with a focus on the following: - `Communities`: Ensure correctness of community detection algorithms. - `Invariants`: Validate graph invariants and properties computations. ### Documentation Provide documentation for the following modules: - [ ] `GraphIO`: Loading and saving graph structures. - [ ] `Algorithms`: Usage of community detection and other graph algorithms. - [ ] `Community Structure`: Analysis and interpretation of community structures. - [ ] `Graph Constructors`: Building new graphs with predefined properties. ### Deadline **Target Date**: `2024-01-01` – This date should provide sufficient time to implement the alpha features, perform initial tests, and prepare basic documentation. ### Additional Notes This alpha release is not yet considered stable for production use and is aimed at users who are willing to work with early versions of the software. Please refer to the package tree in the repository for a detailed structure of the project. ### Feedback For any feedback regarding this release, please open an issue with the tag `alpha-feedback` or comment directly on this milestone. ---
Overdue by 1 year(s)•Due by March 1, 2024•6/9 issues closed