Contribute model: Difference between revisions

From CSDMS
m (GT corrected spelling of "allowed")
No edit summary
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Contribute models =
{{PageTitle|Contribute a Model}}
Submitting your source code to the CSDMS repository is an easy three step process:
__NOTOC__
# Choose a [[License|license]] for your model
 
Submitting your source code to the CSDMS Model Repository is a three-step process:
 
# Choose an open source [[License|license]]
# Fill out a [[Form:Module_questionnaire|model questionnaire]]
# Fill out a [[Form:Module_questionnaire|model questionnaire]]
# Zip / tar your source code and email the compressed file to: [mailto:CSDMSsupport@colorado.edu CSDMSsupport@colorado.edu]
# Email [mailto:CSDMSsupport@colorado.edu CSDMSsupport@colorado.edu] with either a zip or tar.gz file containing the source code for your model, or a link to where your source code can be found online (e.g., GitHub, Bitbucket, a public FTP site, etc.)
 
Best model practices
 
 
Optional actions:
 
# Implement a [[BMI_Description|Basic Model Interface (BMI)]] for your model
# Use [[CSDMS_Standard_Names| CSDMS Standard Names]] that map input and output variable names.


'''Or watch how to contribute a model'''<br>
See also:
* [[Why should you use the CSDMS Model Repository?]]
* [[What does the CSDMS Model Repository provide?]]
* [[SourceCodePeerReview|Peer review of model codes]]
 
 
'''Watch how to contribute a model'''<br>
{{#widget:YouTube|id=il9kSx_solU}}
{{#widget:YouTube|id=il9kSx_solU}}


== Choose a License for your model ==
== Choose an open-source license ==
It is important to choose a license for your source code, once you have decided to make your model freely available on the CSDMS website. CSDMS requires that all source code that is freely available through the CSDMS model repository is licensed. [[License | Read more]] about how to choose the proper license and how to integrate the license into your source code.
Once you have decided to make your model freely available on the CSDMS website, it is important to choose a license for your source code. CSDMS requires that all source code that is freely available through the CSDMS model repository is licensed. [[License | Read more]] about how to choose the proper license and how to integrate the license into your source code.


== Why is there a Model questionnaire ==
== Supply information about your model ==
You first need to provide basic information about your model to the CSDMS community before you can submit the source code. This will make it easier for people to understand how to use your model, what they are allowed to do with your source code and what not. It also provides the opportunity to advertise papers that describe the model in more detail.<br>
You first need to provide basic information about your model to the CSDMS community before you can submit the source code. This will make it easier for people to understand how to use your model, what they are allowed to do with your source code and what not. It also provides the opportunity to advertise papers that describe the model in more detail.<br>
Therefore, please complete this [[Form:Module_questionnaire|questionnaire]]. Feel free to [mailto:CSDMS@colorado.edu contact us] or use the wiki if you want to update the information about a model that is already in the [[Model_download_protal|repository]].
Therefore, please complete this [[Form:Module_questionnaire|questionnaire]]. Feel free to [mailto:CSDMS@colorado.edu contact us] or use the wiki if you want to update the information about a model that is already in the [[Model_download_portal|repository]].
 
== Submit source code ==
Submitting the source code of your model is very straightforward.  Zip or tar the source code and email it to [mailto:CSDMSsupport@colorado.edu CSDMSsupport@colorado.edu]. Let us know if the files are too large -- we can open our FTP site for you so you can upload your model.
A CSDMS staff member will do a few checks (compiling, running code), once you have submitted your source code. The source code will be posted in the repository once the testing is done (most of the times within a few days).
Mention in your email if you want to make use of the [https://github.com/csdms-contrib CSDMS GitHub repository (csdms-contrib)] (source code version control) that CSDMS makes available to all its members.
 
== Implement a Basic Model Interface ==
CSDMS has created the [[BMI_Description|Basic Model Interface (BMI)]], which makes it possible to couple modules to each other.  Implementing a BMI for your model makes your model a plug-and-play component in the CSDMS framework. Adding a BMI introduces no dependencies into your model;  therefore, your model can still be used in a "stand-alone" manner.


== Submit source code to the CSDMS repository ==
== Use CSDMS Standard Names ==
Submitting the source code of your model is very straight forward.  Zip or tar the source code and mail it to: [mailto:CSDMSsupport@colorado.edu CSDMSsupport@colorado.edu], or let us know when the files are to large, we can open a ftp site for you so you can upload your model.<br>
CSDMS developed standards to be able to map input and output variable names, so that models can be coupled to each other. These standards make it possible to automatically determine whether an input variable in one model (or database) is equivalent to (or compatible with) an output variable in another model (or database). Applying these standards does not require to have these standard names to be used '''within''' your model. However, CSDMS requires model contributors to implement the [[BMI_Description|BMI]], and this includes mapping each of the model's input and output variables to a CSDMS Standard Name. [[CSDMS_Standard_Names|More...]]
A CSDMS staff member will do a few checks (compiling, running code), once you have submitted your source code. The source code will be posted in the repository once the testing is done (most of the times within a few days).<br>
Mention in your email if you want to make use of [[SVN|subversion]] (source code version control) that CSDMS makes available to all it's members.

Latest revision as of 11:22, 26 May 2022

Contribute a Model


Submitting your source code to the CSDMS Model Repository is a three-step process:

  1. Choose an open source license
  2. Fill out a model questionnaire
  3. Email CSDMSsupport@colorado.edu with either a zip or tar.gz file containing the source code for your model, or a link to where your source code can be found online (e.g., GitHub, Bitbucket, a public FTP site, etc.)

Best model practices


Optional actions:

  1. Implement a Basic Model Interface (BMI) for your model
  2. Use CSDMS Standard Names that map input and output variable names.

See also:


Watch how to contribute a model

Choose an open-source license

Once you have decided to make your model freely available on the CSDMS website, it is important to choose a license for your source code. CSDMS requires that all source code that is freely available through the CSDMS model repository is licensed. Read more about how to choose the proper license and how to integrate the license into your source code.

Supply information about your model

You first need to provide basic information about your model to the CSDMS community before you can submit the source code. This will make it easier for people to understand how to use your model, what they are allowed to do with your source code and what not. It also provides the opportunity to advertise papers that describe the model in more detail.
Therefore, please complete this questionnaire. Feel free to contact us or use the wiki if you want to update the information about a model that is already in the repository.

Submit source code

Submitting the source code of your model is very straightforward. Zip or tar the source code and email it to CSDMSsupport@colorado.edu. Let us know if the files are too large -- we can open our FTP site for you so you can upload your model. A CSDMS staff member will do a few checks (compiling, running code), once you have submitted your source code. The source code will be posted in the repository once the testing is done (most of the times within a few days). Mention in your email if you want to make use of the CSDMS GitHub repository (csdms-contrib) (source code version control) that CSDMS makes available to all its members.

Implement a Basic Model Interface

CSDMS has created the Basic Model Interface (BMI), which makes it possible to couple modules to each other. Implementing a BMI for your model makes your model a plug-and-play component in the CSDMS framework. Adding a BMI introduces no dependencies into your model; therefore, your model can still be used in a "stand-alone" manner.

Use CSDMS Standard Names

CSDMS developed standards to be able to map input and output variable names, so that models can be coupled to each other. These standards make it possible to automatically determine whether an input variable in one model (or database) is equivalent to (or compatible with) an output variable in another model (or database). Applying these standards does not require to have these standard names to be used within your model. However, CSDMS requires model contributors to implement the BMI, and this includes mapping each of the model's input and output variables to a CSDMS Standard Name. More...