Skip to content

coderefinery/research-software-engineering

Repository files navigation

DOI

Research software engineering ("CodeRefinery in 1 hour")

"CodeRefinery in 1 hour" - What are good tools and practices in research software engineering?


Overview

  • What is "research software"?
  • CodeRefinery
  • 6 most important topics? (in the HPC context)
  • Exercises (separate webpage)

Version control

  • 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?

Documentation

  • Why?
  • Checklist
  • In-code documentation
  • Often a README is enough
  • When projects grow out of a README

Reproducibility and containers

  • 6 helpful steps
  • It all starts with a good directory structure ...
  • Recording dependencies
  • Containers
  • Recording computational steps

Building code with CMake

  • Why is Make not enough?
  • CMake is not a build system
  • How do CMakeLists.txt files look?
  • Why CMake?

Automated testing

  • Technical possibilities
  • Motivation
  • Where to start

Sharing and reusing

  • 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

About

"CodeRefinery in 1 hour" - What are good tools and practices in research software engineering?

Resources

License

Stars

Watchers

Forks