Try   HackMD

CodeRefinery at PDC summer school 2025

PDC Summer school webpage: https://www.pdc.kth.se/summer-school/2025

Timing: 14:30-17:30 (- few minutes in beginning and 15 min break in middle)

Mix of lecture and hands-on!
- working with neighbor?

Plan

  • Samantha does lecture
  • Johan assistant, asking questions and supporting answering of tricky questions
  • Short break in beginning
  • Longer break in middle
  • 2 larger exercise sessions
  • people run on own laptop (fallback: Dardel)
  • Reconnect Tue 15.7
  • Johan on vacation: 21.7-3.8

Meeting notes

16.7 Johan, Samantha

  • learners do not have any project work
  • more exercises than time, mark as optional
  • slides vs materials -> Samantha still undecided :/ but materials will stay availabe even if slides will be used for the presentation
  • main exercises for the lesson: git & documentation
  • "Let's bring us all to same level" instead of "this will be boring for some of you"
  • dependency management for compiled languages ? (compiling etc is being discussed on Fri before by Johan)
    • cmake: non-intrusive, separate machinery, define order in which to execute files to compile + buildtime and runtime availability, constraints are defined (between x and y), scans computer for availability: if not available it throws an error (for non-optional)
    • Johan will add a brief info box on that

during PASC25: Johan, Alessandra, Parasuram, Samantha
People should understand:

  • licensing as a concept
  • collaborative coding
  • documentation
  • short on git
  • testing as a concept (within a minute)
  • packaging (no containers)

7.3 Johan, Samantha

  • Plan: co-teaching
  • We decided to go with slides
  • And limit the content to really fit the timeframe, keep other stuff as extra reading material
    • eg the course has no immediate need for containers
  • Johan to discuss with Allessandra what are the most important aspects of this lecture + hands-on to see what to focus on
  • After that another meeting to split the content "who does what" and then start preparing

To do

  • Installation & setup instructions (to be sent before summer school) -> link to CR install instructions from material
  • Introduce point of exercises: Get hands dirty, no time to do all, so do not worry, all have solutions and can be done on own time
  • Schedule
  • Materials
    • Slides
      • [] Remove what is covered in Exercises
    • Exercises
      • Test for timing
      • Solutions
    • Rest of materials
    • Extra slides "what we did not talk about"
      • Containers
      • Testing
  • connect materials to HPC
  • add collaborative git?
  • wrap up - what is needed when?
  • Johan add something on reproducibility for compiled languages
  • Note box in reproducibility: Module versioning (default often the latest version, often but not always stable)
  • Zenodo

Parts

  • Why we are here talking about RSE
    • PDC flagship codes will be presented (Gromacs, Veloxchem and neko) -> exemplary projects for implementation of what is taught here; all sizes!
  • Introduction of the example project
    • Share the link to the example repository
      Ask questions:
      • Would you know what to do with that?
      • What would you wish for?
      • Could you run it?
        -> link to lessons!
  • Version control
  • Documentation
  • Reproducibile dependencies and environments
    • Focus on concept
  • Sharing (licensing and publishing)
  • (Testing)
  • (Automation and reproducible workflows)
  • When what is needed

Preparation instructions

  • GitHub account
  • Sphinx?

Schedule

14.30 - 14.35 context break 5 min
14.35 - 14.50 Why are we talking about this + example intro 15 min
14.50 - 15.10 Version control 20 min
15.10 - 15.30 Exercise I 20 min (GitHub)
15.30 - 15.50 Reproducibility 20 min
15.50 - 16.10 Break 20 min
16.10 - 16.30 Documentation 20 min
16.30 - 16.50 Exercise II 20 min (ReadMe + Sphinx)
16.50 - 17.00 Sharing and reusing 10 min
17.00 - 17.20 Exercise III 20 min (own org, Derivative work, Licensing situation)
17.20 - 17.30 wrapup 10 min

Exercise sessions

Exercise I (20 min)

  • Version control

Git-1: Turn a project to a Git repo and share it
Git-2: Contribute to the example repository
Git-3: Archaeology using Git annotate (“blame”)

Exercise II (20 min)

  • Documentation

Documentation-1: Comments
TODO: Documentation-2: ReadMe
Documentation-3a: Sphinx
Documentation-3b: Add more content to your example Sphinx documentation

Exercise III (20 min)

Sharing-1: Licensing
Sharing-2: CITATION.cff and Zenodo sandbox
Sharing-3: What constitutes derivative work?
Sharing-4: Licensing situations

Mini exercises

  • Example project

  • Reproducibility

Reproducibility-1: Time-capsule of dependencies