How can I contribute in "advanced" mode?
Most of the content is written in GitHub Flavored Markdown with some metadata (or variables) found in YAML files. Everything is stored on our GitHub repository. Each training material is related to a topic. All training materials (slides, tutorials, etc) related to a topic are found in a dedicated directory (e.g. transcriptomics
directory contains the material related to transcriptomic analysis). Each topic has the following structure:
- a metadata file in YAML format
- a directory with the topic introduction slide deck in Markdown with introductions to the topic
-
a directory with the tutorials:
Inside the tutorials directory, each tutorial related to the topic has its own subdirectory with several files:
- a tutorial file written in Markdown with hands-on
- an optional slides file in Markdown with slides to support the tutorial
- a directory with Galaxy Interactive Tours to reproduce the tutorial
- a directory with workflows extracted from the tutorial
- a YAML file with the links to the input data needed for the tutorial
- a YAML file with the description of needed tools to run the tutorial
- a directory with the Dockerfile describing the details to build a container for the topic (self-study environments).
To manage changes, we use GitHub flow based on Pull Requests (check our tutorial):
- Create a fork of this repository on GitHub
- Clone your fork of this repository to create a local copy on your computer and initialize the required submodules (
git submodule init
andgit submodule update
) - Create a new branch in your local copy for each significant change
- Commit the changes in that branch
- Push that branch to your fork on GitHub
- Submit a pull request from that branch to the original repository
- If you receive feedback, make changes in your local clone and push them to your branch on GitHub: the pull request will update automatically
- Pull requests will be merged by the training team members after at least one other person has reviewed the Pull request and approved it.
Globally, the process of development of new content is open and transparent:
- Creation of a branch derived from the main branch of the GitHub repository
- Initialization of a new directory for the tutorial
- Filling of the metadata with title, questions, learning objectives, etc
- Generation of the input dataset for the tutorial
- Filling of the tutorial content
- Extraction of the workflows of the tutorial
- Automatic extraction of the required tools to populate the tool file
- Automatic annotation of the public Galaxy servers
- Generation of an interactive tour for the tutorial with the Tourbuilder web-browser extension
- Upload of the datasets to Zenodo and addition of the links in the data library file.
- Once ready, opening a Pull Request
- Automatic checks of the changes are automatically checked for the right format and working links using continuous integration testing on Travis CI
- Review of the content by several other instructors via discussions
- After the review process, merge of the content into the main branch, starting a series of automatic steps triggered by Travis CI
- Regeneration of the website and publication on https://training.galaxyproject.org/training-material/
- Generation of PDF artifacts of the tutorials and slides and upload on the FTP server
- Population of TeSS, the ELIXIR’s Training Portal, via the metadata
To learn how to add new content, check out our series of tutorials on creating new content:
- Creating a new tutorial
- Overview of the Galaxy Training Material
- Contributing with GitHub via command-line
- Creating Slides
- Adding Quizzes to your Tutorial
- Creating Interactive Galaxy Tours
- Including a new topic
- Tools, Data, and Workflows for tutorials
- Adding auto-generated video to your slides
- Contributing with GitHub via its interface
- Generating PDF artefacts of the website
- Updating diffs in admin training
- Design and plan session, course, materials
- Running the GTN website online using GitPod
- Running the GTN website locally
- GTN Metadata
- Principles of learning and how they apply to training and teaching
- Teaching Python
- Creating content in Markdown
- FAIR Galaxy Training Material
We also strongly recommend you read and follow The Carpentries recommendations on lesson design and lesson writing if you plan to add or change some training materials, and also to check the structure of the training material above.