-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
This issue is meant as parent issue for different tasks that are meant to improve the codebase from different points of view. The following check-list is shortly explaining each task and GitHub offer the possibility to convert each item in a new dedicated issue. @elfnerhannah I compiled the list with @RobinSattler who had taken notes of possible ideas, combining his input with my list. We can also decide together when to do what and who to assign. I will already open issues for tasks that I believe should be done soon-ish.
- Set up GitHub actions
These are meant to check if the codebase compiles, format it (from within the actions with a commit done by the GitHub bot) and run tests. PRs should then be mergeable only if actions pass. Issue Add formatter script to sampler codebase #30 should be tackled before this. - Rewrite CMake code to set up the project #53
- Better testing
A unit testing framework is in place and it should be easily possible to add unit tests when working on the code e.g. about the other issues here around or adding new functionality. It would be worth adding some CMake functionality to create new tests as needed. - Use C++ STL
std::filesystem
for output everywhere
At the moment some C-stylesystem
call are used, but C++ offers since C++17 all needed tools to deal with this. While tackling this, it would be nice to add a mechanism that prevents existing output from being overwritten. - Make a copy of config file into the output folder adding to it relevant metadata
This is important for data reproducibility. It would be nice to ignore comments when parsing the config, such that this stored config can directly be reused. - Consider using YAML for the config file
Since SMASH does so and the handler uses SMASH as a library, this would be basically for free. Thesmash::Configuration
object might probably even be used (although without validation ATM). - Improve standard output
The user needs to know a lot of details to understand what the program is printing to the screen. This might be simply improved making it descriptive. - Think about a documentation strategy
At the moment there is nothing else beyond the README file. - Add a
CONTRIBUTING.md
file #46 - Apply IOSP (integration-operation segregation principle) as much as possible
This would make the top-level of the code much more readable as entry point (basicallymain
just calls functions).
Most of the tasks above can be used as exercise for new students to make them get familiar with the GitHub infrastructure. @yukarpenko This might be also useful in case you have new people in your group. 😊
Metadata
Metadata
Assignees
Labels
No labels