Best practices for modern open-source research codes (AGU)



This half-day workshop was taught at the 2018 AGU Fall Meeting in Washington DC, USA. It was organized by myself, Lindsey Heagy, Lion Krischer, and Florian Wagner. Our goal was to help people who are already programming and want to take the next step towards developing open-source software.


Modern science increasingly relies on code, ranging from small scripts to workflows with many interacting parts. Reproducibility and extension of studies employing these codes require that they are accessible. The open-source community has established modern best-practices for making software available, usable, and maintainable. In this workshop, we will demonstrate a workflow for publishing research code following these best-practices. We will cover open-source licenses, version control, automated testing, documentation, and continuous integration. The workshop will be hands-on: participants will work to set up a project using sample code provided by the instructors. By the end, participants will have the knowledge needed to continue learning independently and apply these practices to their own research code. These resources can be applied to any programming language or scientific discipline.

Learning Objectives

Our aim with this workshop is for participants to:

  1. Gain awareness of tools available to researchers within the open-source ecosystem including Jupyter, git, ReadTheDocs, continuous integration services (for testing), etc
  2. Learn modern best-practices for structuring a repository for research software that promotes accessibility, reusability, and reproducibility
  3. Learn about the tools available for testing, publishing documentation, and versioning that can be immediately applied to their own codes

Related pages

Comments? Leave one below or let me know on Twitter @leouieda.
Found a typo/mistake? Send a fix through Github and I'll happily merge it (plus you'll feel great because you helped someone). All you need is an account and 5 minutes!