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 |
||
| (3 intermediate revisions by one other user not shown) | |||
| Line 28: | Line 28: | ||
}} | }} | ||
{{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 | |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; however, much of what we show 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!) | ||
| Line 53: | Line 54: | ||
|CSDMS meeting youtube code=0 | |CSDMS meeting youtube code=0 | ||
|CSDMS meeting youtube views={{Youtube_0}} | |CSDMS meeting youtube views={{Youtube_0}} | ||
|CSDMS meeting participants= | |CSDMS meeting participants=50 | ||
}} | }} | ||
{{Presenters keywords temp | {{Presenters keywords temp | ||
Latest revision as of 19:06, 11 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; however, much of what we show 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:
