Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CodeRefinery derivatives at Netherlands eScience Center #266

Open
svenvanderburg opened this issue Nov 15, 2024 · 3 comments
Open

CodeRefinery derivatives at Netherlands eScience Center #266

svenvanderburg opened this issue Nov 15, 2024 · 3 comments

Comments

@svenvanderburg
Copy link

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.

@svenvanderburg
Copy link
Author

@samumantha I hope this is a good place to put this feedback, otherwise feel free to move it!

@samumantha
Copy link
Contributor

Thank you so much @svenvanderburg

I will at least link them from our website, if that is ok?

But it would indeed be nice to also have a way to contribute back. We will discuss and get back to this.

But really thank you very much for going through the effort of writing this up ❤️

@svenvanderburg
Copy link
Author

Yes, for sure you can add it to the website! Likewise, we try to give credit to Code Refinery wherever we can, for example on our website.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants