Template:FAQs Model Contribution
- Why Open-Source?
Science is advanced through mutual cooperation. Community modeling involves the collective efforts of individuals that code, debug, test, document, run, and apply models and modeling frameworks. Community modeling relies on open-source code to address the practical need of contributing developers to examine and modify the code. Open-source code provides complete information transfer. This transparency is important because code is the ultimate statement of the scientific hypotheses embodied in a numerical model, and their implementation.
In the world of software, details are important. A scientific article describing code may provide the theoretical equations, but the solution to these equations can take numerous forms, and each solution has its pyramid of assumptions and limitations. Therefore open-source code allows for full peer review and replication of results — the foundation of modern science.
Open source code allows for reuse, often in new and clever ways. This certainly reduces redundancy. Open source does not mean that the original developer is not recognized. Developers are recognized with the metadata associated with each model, with GPL2 software license protection, through community exposure, vetting and recognition, and through accelerated citations within peer-reviewed publications.
In the world of science, software code is often considered “research grade”. That means that it is often relatively untested, may contain bugs, and might not be at the standards required for true “commercial grade” or “operational grade” code. Coding glitches in research grade code are often unknown by the original author. With wider community use, such problems are discovered and either rectified by the original author or by the bug discoverer. Research grade code should be widely available to the community of scientists through an appropriate international repository such as the CSDMS Model Repository.
Too often code is issued with an open source license but access to the code is restricted to access through the author. Unfortunately this allows the author to decide who they will give the code to. This runs contrary to the transparency needed in science, and we discourage this level of availability.
See also: Ince, D.C., Hatton, L., and Graham-Cumming, J. (2012) The case for open computer programs. Nature 482, 485-488. doi:10.1038/nature10836
- Where can I upload my model to make it available to the community?
First, complete the model questionnaire. CSDMS will create a special website for your model were you, yourself, can upload it, start a discussion page or create a page that explains some of the routines of your model. Have a look at one of the model pages currently hosted by CSDMS at our Models page.
- Why is CSDMS promoting the development of free open source code?
Since we’re working in the public domain, the general opinion is that the research should be public and community centered as well. One goal of CSDMS is to change the current culture, encouraging more open collaboration and cooperation as a community. Not long ago the climate community experienced such a cultural shift, which resulted in better funding and vastly improved, integrated modeling. Working together will make the earth-surface dynamics community more effective. There will be less duplication of effort, more ways to connect models, and these models will be open to be built upon.
- How are coders recognized?
- Through the CSDMS web site,
- with the metadata following the model,
- with GPL2 software license protection,
- through community exposure, vetting and recognition,
- through accelerated citations within CSDMS-supported peer-reviewed publications.
The CSDMS Integration Facility will insist on best practices to ensure that proper credit is provided by those who use CSDMS products, along with proper protection of, for example, contributions by graduate students. CSDMS has the advantage of following in the footsteps of the CCSM and CIG initiatives.
- I’m afraid to give my source code away. Can you ease my fears?
It’s ok to be a little apprehensive. It can be a bit intimidating to publish your code for all to see. Some things to remember: it is a way to advertise your code; your license will ensure that your name will stay with the code; most importantly, your model will be better for it because there will potentially be more people using it. You get credit for your work by making it public. Since you’re the most experienced user, you are probably also the best person to do a simulation. As more people learn about and use your model, there will likely be more opportunities to collaborate with you for proposals.
- How do I keep track of different versions of my model?
We encourage model owners to use some form of version control, like Subversion (SVN). If you are unable or just don’t want to host such a server, there are many other options. Perhaps the best solution is for model owners to create a SourceForge or Google Code project. These sites provide Subversion hosting as well as many other useful tools for managing a modeling project. If you don’t want to do this, CSDMS can also store your model in its subversion repository.
- Whoa there! I don’t want just anyone making changes to my model!
If you prefer, you can allow only a small group of people to have permission to make changes to your code. If someone makes an unwanted change, you can easily roll back to a previous version.
- What is my responsibility after submitting my model?
The owner of the model stays owner of their own model. CSDMS is providing the opportunity to store and make it available to the community. Once the code is available to the community, other people could, depending on your model license, add or change the code and create a new version if desired, but the original owner should always be recognized. By proving code, the owner is more or less responsible to answer possible questions that could arise or to fix bugs if that’s necessary. The nice thing about the CSDMS website is that other people may also answer questions or fix the bugs if they want. That's a major benefit of working with the greater modeling community.
- How can I make sure that I’m not overloaded with questions?
By making your model available on the CSDMS web site, other users can also answer questions or fix bugs; remember, this is a WIKI, any registered member can reply to questions on the model pages. Once a question is asked and answered on the model website, you needn’t answer it again and again.
- But if I give my model to the community, they’ll find bugs!
Not really a question. Yes, they probably will. This is a good thing. Sometimes you will be able to fix these bugs. Sometimes the community will fix them for you. Sometimes they will go unfixed. Users would rather a bug be identified and not fixed than not be identified in the first place. Don’t worry, users understand that you are busy and can’t get to every bug immediately (if at all).