Skip to content

BastienBrugger/ERESV-github

Repository files navigation

ERES V Github workshop

Conveners: Ishan Mishra, Ryan Petersburg, Bastien Brugger

Description

Coding makes up a significant part of a researcher’s time, yet scientists are known to have kept bad habits from early days of programming. The modern open-source community has developed tools and good practices for making software available and maintainable, useful for the reproducibility of studies required by scientific guidelines. This workshop will focus on GitHub, a code-hosting platform, to explain how version control systems work and can be used to improve the quality and quantity of programming among researchers. We will also go through other options offered by GitHub, such as creating your own website, and supplementary resources available within the open-source community.

Agenda

9:00 - 10:15 Topic
15 min 1. Motivation for this workshop
30 min 2. How do Git & GitHub work: creating your account & first repo
30 min 3. Actual test project: fork repo, create new branch, edit files, pull request, merge
10:15 - 10:45 Break
10:45 - 12:00 Topic
15 min 4. Best practices for code accessibility and documentation
30 min 5. From a simple python script to a publishable package
15 min 6. Creating your website with GitHub Pages
15 min Discussion

Material

Parts 1 & 2: motivation and functioning (PDF)

Part 3: test project (PDF)

Part 4: best practices for code accessibility and documentation

Part 5: From a simple python file/notebook to a publishable python package (document)

Summary:

Topic Tools
Refactoring code to have 1) data downloadable through link (2) functions 3) tests for functions Jupyter notebook, assert
How to setup a small Python library (though the example is in python, participants are encouraged to use their own research code in whichever language they prefer) Python packaging guide
Use doc-strings for functions and modules Python Docstring Convention (PEP 257), other resources from Part 4
Overview of version control with git and setting up an online repository resources from Parts 1-3
Discussion on choosing an open-source license Choose a license, OSI Licenses
Including a Code of Conduct and Contributing Guidelines Contributor Covenant, Code of Conduct
How to write automated tests in Python Pytest
Setup continuous integration services to check that the code is tested on every update TravisCI
Write and publish documentation on ReadTheDocs, a free hosting service for open source software projects ReadTheDocs

Part 6: website with GitHub Pages (document)

Markup languages guides:

  1. Basic markdown guides
  1. Primers on HTML and CSS styling.

Other interesting GitHub based resources for your research:

Tool Description
GitHub Guides A set of guides to GitHub (check also their videos)
GitHub for Atom A GitHub plugin for the Atom text editor, in case you don't want to install a complete Git GUI client
Start Bootstrap A library of free open-source website themes and templates that you can download or directly view on GitHub
Zenodo, Figshare For sharing large data files used in your research; version control; DOIs for data
CorTex A living paper! The paper lives in a GitHub repository. Figures are generated by python scripts and maintained up to date by Travis-CI
Git Lfs Version control for large data files

Screencast of workshop on Youtube

Have other resources to suggest? Feel free to add an issue to this repository! :)

About

Material for the ERES V Github workshop

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published