Skip to content

CodeRefinery derivatives at Netherlands eScience Center #266

@svenvanderburg

Description

@svenvanderburg

This is to inform you about some derivatives of CodeRefinery material that we have developed at the Netherlands eScience Center.

What can we do with this information

  • Inform you about our efforts
  • Show the impact you have with CodeRefinery material
  • Perhaps there are some ingredients that we can contribute back, I leave that up to you.

Why the deviation?

We are always in favour of adapting existing material and we have contributed to CodeRefinery material in the past. But we teach these workshops about 8 times a year with different teams of instructors. At some point we had so much internal complicated instructor notes (from this lesson do this, then do this from that lesson) it was worth the effort to create fresh lesson material with our version.

1 dayCollaborative version control with Git and GitHub lesson

This is basically a merge of a stripped down much quicker and lighter to teach version of SWC git novice lesson together with some parts of Coderefinery collaborative git and our slides to introduce concepts.

The goal is to teach participants how to collaborate with git and GitHub in one day. We teach this about 6 times a year at the eScience center, therefore we took the effort and put some bits and pieces together. Often we also add a 2nd day with this lesson: https://esciencecenter-digital-skills.github.io/good-practices-lesson/

We think it would be useful to share with the community even though there is substantial overlap with other lessons.

Syllabus:
Introduction to version control with Git

  • What is version control and why should I use it?
  • Setting up Git locally
  • Creating a Git repository
  • Tracking changes: git status, git add & git commit
  • Exploring history: identify and recover old versions of files
  • Ignoring things with .gitignore files
  • Remote repositories in GitHub

Collaboration with Git and Github

  • Submitting changes through pull requests in Github
  • The peer review process
  • Good practices for collaboration: using issues and the git workflow
  • Contributing to repositories as external contributor through forks

[1-day Good practices in research software development](https://esciencecenter-digital-skills.github.io/good-practices-lesson/

)
We have nice slides that live in .md files in GitHub.

Syllabus:
Code Documentation

  • In-code documentation
  • Readme files
  • Writing documentation with sphinx and ReadTheDocs or Github pages

Modular Code Development

  • How can you create blocks of code that can be reused?

Testing

  • Introduction to testing: motivation, unit testing, integration testing
  • Writing tests with pytest

Continuous Integration

  • Introduction to Continuous Integration
  • Setting up Continuous Integration with Github Workflows
  • Linting and automated testing

How we teach with this material

We do either a 1 day Collaborative version control with Git and GitHub or a 2 day Good practices for research software development in which the first day is Collaborative version control and the 2nd day is the Good practices material. If we teach online 1 day is spread out over 2 consecutive mornings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions