Presenters-0719: Difference between revisions
From CSDMS
Created page with "{{Presenters temp |CSDMS meeting event title=CSDMS 2026: Modeling Landscapes in Motion |CSDMS meeting event year=2026 |CSDMS meeting presentation type=Clinic |CSDMS meeting first name=Mark |CSDMS meeting last name=Piper |CSDMS meeting institute=CSDMS |Country member=United States |CSDMS meeting state=Colorado |CSDMS meeting email address=mark.piper@colorado.edu |CSDMS meeting title presentation=How Can I Share My Code? Building a Community-Ready Scientific Software Repos..." |
No edit summary |
||
| Line 29: | Line 29: | ||
{{Presenters presentation | {{Presenters presentation | ||
|CSDMS meeting abstract presentation=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. | |CSDMS meeting abstract presentation=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. | 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 a | |||
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!) | * Writing an informative README (and adding status badges!) | ||
Revision as of 14:58, 9 January 2026
CSDMS 2026: Modeling Landscapes in Motion
How Can I Share My Code? Building a Community-Ready Scientific Software Repository
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:
