Reproducible research software development using Python
Software environment
Conda environment
Virtual environment
Episodes
Example project: Simulating the motion of planets
Introduction to version control with Git and GitHub
Motivation
Forking, cloning, and browsing
Creating branches and commits
Merging changes and contributing to the project
Conflict resolution
Practical advice: How much Git is necessary?
Optional: How to turn your project to a Git repo and share it
Code documentation
Collaborative version control and code review
Automated testing
How to make the project more reusable
Concepts in refactoring and modular code design
Demo: From a script towards a workflow
Choosing a software license
How to publish your code
Creating a Python package and deploying it to PyPI
Reference
PDF version
Credit
All lessons
CodeRefinery
Reusing
Reproducible research software development using Python
Introduction to version control with Git and GitHub
Edit on GitHub
Introduction to version control with Git and GitHub
Motivation
Forking, cloning, and browsing
Creating branches and commits
Merging changes and contributing to the project
Conflict resolution
Practical advice: How much Git is necessary?
Optional: How to turn your project to a Git repo and share it