Presenters-0719

From CSDMS
Revision as of 14:58, 9 January 2026 by Mpiper (talk | contribs)
CSDMS 2026: Modeling Landscapes in Motion


How Can I Share My Code? Building a Community-Ready Scientific Software Repository



Mark Piper

CSDMS, United States
mark.piper@colorado.edu
Eric Hutton CSDMS United States
Tian Gan CSDMS United States


Abstract
Do you have code that you'd like to share with others—maybe you've written a model for your thesis, or perhaps you're required to do so by a journal—but you're not sure of the best way to go about it? We'll try to address this problem in this clinic. We'll use Python because it's the standard language of CSDMS. Much of what we show, however, can be translated to other languages.


This clinic has two parts. First, we'll show how to properly package Python code so that it can easily be used by others. Second, we'll configure a GitHub repository with files and services that will help make the code FAIR and sustainable over time—a "community-ready" repository.


The following topics address what could be included in such a repository. While we probably won't be able to cover all of these in the clinic, we list them for reference.

  • Writing an informative README (and adding status badges!)
  • Choosing a software license
  • Packaging, using guidance from the Python Packaging Authority (PyPA)
  • Automating repository tasks with nox
  • Linting with black, flake8, and pre-commit
  • Unit testing with pytest
  • Continuous integration with GitHub Actions
  • Building documentation with sphinx
  • Adding a Digital Object Identifier (DOI) with Zenodo
  • Creating a citation file with cffinit
  • Including instructions for contributors, and a code of conduct
  • Crediting contributors
  • Acknowledging funding support

References will be provided for each topic for further exploration.

Participants will leave with a clear, practical template for sharing scientific software in a way that supports reuse, citation, and long-term community engagement.




Please acknowledge the original contributors when you are using this material. If there are any copyright issues, please let us know (CSDMSweb@colorado.edu) and we will respond as soon as possible.

Of interest for:
  • Terrestrial Working Group
  • Coastal Working Group
  • Marine Working Group
  • Education and Knowledge Transfer (EKT) Working Group
  • Cyberinformatics and Numerics Working Group
  • Hydrology Focus Research Group
  • Chesapeake Focus Research Group
  • Critical Zone Focus Research Group
  • Human Dimensions Focus Research Group
  • Geodynamics Focus Research Group
  • Ecosystem Dynamics Focus Research Group
  • Coastal Vulnerability Initiative
  • Continental Margin Initiative
  • Artificial Intelligence & Machine Learning Initiative
  • Modeling Platform Interoperability Initiative
  • River Network Modeling Initiative