"CodeRefinery in 1 hour" - What are good tools and practices in research software engineering?
- What is "research software"?
- CodeRefinery
- 6 most important topics? (in the HPC context)
- Exercises (separate webpage)
- Motivation for version control
- Commits: keeping track of changes
- Features: roll-back, branching, merging, collaboration
- Reproducibility
- Talking about code
- Collaboration through branches or forks
- Code review
- Where to start?
- Why?
- Checklist
- In-code documentation
- Often a README is enough
- When projects grow out of a README
- 6 helpful steps
- It all starts with a good directory structure ...
- Recording dependencies
- Containers
- Recording computational steps
- Why is Make not enough?
- CMake is not a build system
- How do CMakeLists.txt files look?
- Why CMake?
- Technical possibilities
- Motivation
- Where to start
- Why software licenses matter
- When should I add a license?
- Is your work derivative work or not?
- How do I add a license to my work?
- Make it persistent and citable
- Great resources