-
Notifications
You must be signed in to change notification settings - Fork 41
Description
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.