ESMValTool tutorial is an open-source project in
ESMValGroup and we greatly value contributions of all kinds:
fixes to this tutorial, bug reports, reviews of pull requests, infrastructure
improvements, community help, and outreach. We value the time you invest in
contributing and strive to make the process as easy as possible. If you have
suggestions for improving the process of contributing, please open an
issue. To do so, click on New issue
in the issues
tab of this
repository and choose the Suggestion
template.
The format of this tutorial is based on the Software Carpentry, which is an open-source project.
By contributing, you agree that we may redistribute your work under our license. In exchange, we will address your issues and/or assess your change proposal as promptly as we can, and help you become a member of our community. Everyone involved in this tutorial agrees to abide by our code of conduct.
There are many ways to contribute:
-
If you do not have a GitHub account, you can send us comments by email. However, we will be able to respond more quickly when you use one of the other methods described below.
-
If you have a GitHub account, work in this repository, which can be viewed at the tutorial site. You can ask your questions, report problems or suggest improvements by creating an issue. This is the easiest way to tell us about your ideas, and a good way to introduce yourself and to meet some of our community members. This allows us to assign the item to someone and to respond to it in a threaded discussion. To open an issue, click on
New issue
in theissues
tab of this repository and choose a template from the list as described below:- for asking a question, please use
Question and answer
. - for reporting a bug, please use
Bug reports
. - for developing lesson material, please use
New lesson material
. - for adding a feature to the repository, please use
Suggestion
.
- for asking a question, please use
-
If you would like to add what is already discussed in an issue, you can submit a pull request and make use of the
pull request checklist
. Each pull request is reviewed at least by one reviewer who is a community volunteer. The maintainers have final say over what gets merged into the tutorial. -
Information on how to write a software carpentry lesson, can be found here.
-
Guidelines on how to develop a software carpentry style curriculum can be found here.
This section demonstrates all the instructions for developing a lesson in the ESMValTool tutorial. The tutorial is a set of lessons (or episodes) that together teach basic skills needed to work with ESMValTool in climate-related domains.
The content of this tutorial is mainly developed based on the Carpentries Curriculum Development Handbook. The handbook explains why we teach the way we do, and why our lessons are designed the way they are. If you are contributing to existing lesson materials, please make sure the content conforms to the concepts provided in the handbook.
We recommend using software to check spelling or grammatical errors. The following link will guide you through a list of tools for several editors: http://wiki.languagetool.org/software-that-supports-languagetool-as-a-plug-in-or-add-on
Each lesson is made up of episodes, which are focused on a particular topic and include time for both teaching and exercises. If you are making a new episode, please make sure the content conforms to the Carpentries lesson organization.
Episodes are Markdown files. If you are making a new episode or contributing to existing ones, please make sure the content conforms to the Carpentries lesson formatting.
We also recommend using a linter to check errors in Markdown files. For example, a markdownlint can be installed as an extension in Visual Studio Code. Alternatively, a linter can be installed with:
gem install mdl
and can be used as:
mdl your_markdown_filename
We use Codacy as an automated code analysis services. To run the analyis locally on Markdown files with Docker use
docker run \
--rm=true \
--env CODACY_CODE=${PWD} \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume ${PWD}:${PWD} \
--volume /tmp:/tmp \
codacy/codacy-analysis-cli \
analyse --tool remark-int
If you are making a new episode or contributing to existing ones, please preview changes on your machine before submitting a pull request. To do so, you need to install the software described below:
# apt (Ubuntu/Devian)
sudo apt install ruby-dev ruby-bundler
or
# dnf (Fedora/Redhat)
sudo dnf install rubygem-bundler ruby-devel
Alternatively, there is an environment file available which can be installed with:
conda env create -f environment.yml -n esmvaltool_tutorial
To install the required ruby packages, run the following command in the tutorial's main directory to build and serve the website locally:
make serve
The output on the terminal will contain a line similar to:
Server address: http://127.0.0.1:4000
This address can be opened in your browser to preview the tutorial website.
General discussion of the tutorial happens in ESMValTool User Engagement Team. Please see information on how to subscribe to user mailing list.