CONTRIBUTING.html 12.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
<!DOCTYPE html>
<html>

  <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Image Analysis Training</title>
  <meta name="description" content="A collection of material for teaching image analysis. Includes concept maps, exercises, example data
">

  <link rel="stylesheet" href="/image-analysis-training-resources/css/main.css">
  <link rel="canonical" href="http://localhost:4000/image-analysis-training-resources/CONTRIBUTING.html">
  <link rel="alternate" type="application/rss+xml" title="Image Analysis Training" href="http://localhost:4000/image-analysis-training-resources/feed.xml">
  <script src="https://unpkg.com/mermaid@8.0.0/dist/mermaid.min.js"></script>
  <script>mermaid.initialize({startOnLoad:true});</script>
</head>


  <body>

    <header class="site-header">

  <div class="wrapper">

    <a class="site-title" href="/image-analysis-training-resources/">Image Analysis Training</a>

    <nav class="site-nav">
      <a href="#" class="menu-icon">
        <svg viewBox="0 0 18 15">
          <path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
          <path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
          <path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
        </svg>
      </a>

      <div class="trigger">
        
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/basic_image_analysis_workflow.html">Basic image analysis workflow</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/binarization.html">Image binarization</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/calibration.html">Image calibration</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/connected_components.html">Connected components</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/display.html">Image display</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/example-images/">Example Images</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/filter_convolution.html">Image math</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/filter_difference_of_gaussian.html">Difference of Gaussian</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/">Image Analysis Training Material</a>
          
        
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/measure_intensities.html">Intensity measurements</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/measure_shapes.html">Object shape measurements</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/object_splitting.html">Object splitting</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/pixel_data_types.html">Pixel data types</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/pixel_math.html">Image math</a>
          
        
          
          <a class="page-link" href="/image-analysis-training-resources/modules/pixels.html">Pixels</a>
          
        
      </div>
    </nav>

  </div>

</header>


    <div class="page-content">
      <div class="wrapper">
        <h1 id="guidelines-for-contributing">Guidelines for Contributing</h1>
<p>Contributions to this project are very welcome.
Changes should be submitted by merge request from a new branch to <code>master</code>.
Merge requests should be reviewed by at least one Maintainer before merging.</p>
<p>See <code>README.md</code> for information on the structure of the repository.</p>
<h2 id="step-by-step-guide">Step by step guide</h2>
<p>To contribute to this project, please follow those steps:</p>
<ol>
<li>Clone this repository: <code>git clone https://git.embl.de/grp-bio-it/image-analysis-training-resources.git</code></li>
<li>On your computer, make a new branch. For example, if you would like to contribute python code to the binarization.md module you may: <code>git checkout -b pythonBinarization</code></li>
<li>Now add your changes on your computer (staying in this branch) - see &quot;Adding a new module&quot; section, below.</li>
<li>When you are done, please <code>git add .; git commit -m &quot;some message&quot;</code></li>
<li>Now you can upload your branch to the online repository by typing: <code>git push --set-upstream origin pythonBinarization</code>.</li>
<li>Go to the online repository on gitlab: https://git.embl.de/grp-bio-it/image-analysis-training-resources</li>
<li>On gitlab, there will now be button at the top of the page. Click this button to stage a &quot;merge request&quot; of your contribution (in your branch) to the master branch. There will also a possibility to assign a project maintainer to review your contribution and to merge it. Please select someone appropriate here.</li>
<li>Thank you for your contribution!</li>
</ol>
<h2 id="adding-a-new-module">Adding a new module</h2>
<p>Each module page is built from a template (<code>_layouts/module.html</code>),
ensuring a consistent structure and style for the whole collection.
To create a new module, you will need to add a few files
in a few different places in this repository.</p>
<h3 id="module-file">Module file</h3>
<p>Most important is the module file itself.
This module file should be saved with a short, descriptive name (no spaces!)
ending with the <code>.md</code> (Markdown) extension.
Typically, the only content of this Markdown file should be a header
written in YAML. See the specification below.
All fields not marked as optional are required for the page to build.
You can check that your YAML is valid with <a href="http://www.yamllint.com/">this tool</a>.</p>
<pre><code class="language-yaml">---
title:     Title of the Module
layout:    module               # don't change this
prerequisites:
  - &quot;a list of things that learners should know&quot;
  - &quot;in order to understand this module&quot;
objectives:
  - &quot;a list of learning objectives&quot;
  - &quot;see note 1 below for more info&quot;
motivation: &gt;
  A description of *why* you would want to learn this.
  Can be written in
  (GitHub-flavoured) [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
  and split
  across
  multiple
  lines.
concept_map: &gt; # see note 2
  graph TD
      A[Christmas] --&gt;|Get money| B(Go shopping)
      B --&gt; C{Let me think}
      C --&gt;|One| D[Laptop]
      C --&gt;|Two| E[iPhone]
      C --&gt;|Three| F[fa:fa-car Car];
figure: /figures/mymodule.png # store the example image for your module in the `figures` folder and provide the absolute path from the root of the site here.
figure_legend: Some description of the figure. (optional)
activity_preface: &gt;
  Some general description of the activity for
  that learners will do while studying the module.
  It will be followed by platform-specific instructions/example code.
  (optional)
activities: # platform-specific activity instruction/example code files (see note 3) (optional)
  &quot;ImageJ GUI&quot;: &quot;mymodule/activities/mymodule_imagejgui.md&quot;
  &quot;ImageJ Macro&quot;: &quot;mymodule/activities/mymodule_imagejmacro.md&quot;
  &quot;Jython&quot;: &quot;mymodule/activities/mymodule_jython.md&quot;
exercises_preface: &gt;
  You could put general, language-agnostic questions here...
  (optional)
exercises: # platform-specific exercises (in Markdown files) (see note 3) (optional)
  &quot;ImageJ GUI&quot;: &quot;mymodule/exercises/mymodule_imagejgui.md&quot;
  &quot;ImageJ Macro&quot;: &quot;mymodule/exercises/mymodule_imagejmacro.md&quot;
  &quot;Jython&quot;: &quot;mymodule/exercises/mymodule_jython.md&quot;
  &quot;MATLAB&quot;: &quot;mymodule/exercises/mymodule_matlab.md&quot;
learn_next: # see note 4
  - &quot;[name_of_one](calibration)&quot;
  - &quot;[or_more_modules](object_splitting)&quot;
  - &quot;[to link to next](display)&quot;
external_links:
  - &quot;[link to](https://external.page.com)&quot;
---
</code></pre>
<p>Notes:</p>
<ol>
<li>Learning objectives should be worded as endings to a sentence beginning &quot;After completing this lesson, learners should be able to...&quot;. We recommend starting each learning objective with a verb from <a href="https://cft.vanderbilt.edu/guides-sub-pages/blooms-taxonomy/">Bloom's Taxonomy</a></li>
<li>Concept maps are drawn with <a href="https://mermaidjs.github.io/flowchart.html">Mermaid.js</a>. The indentation of the chart description is important, so be careful!</li>
<li>The <code>activities</code> and <code>exercises</code> fields should be populated with key-value pairs, where the key is the name of the platform (e.g. &quot;ImageJ GUI&quot;, &quot;Python&quot;, etc) and the value is the path (relative to <code>_includes/</code>) to the file containing the activity instructions/exercises for that platform.</li>
<li>The points in &quot;Learn Next&quot; are Markdown links, which should be formed as <code>[Module Title](modulefilename)</code>, where the extension has been removed from the filename.</li>
</ol>
<h3 id="associated-files">Associated files</h3>
<p>Below is a list of all the other files that you should provide
to accompany a new module,
as well as the appropriate location for each
(relative to the top level of the repository).
Examples are given for a <code>/modules/mymodule.md</code></p>
<ul>
<li>The <code>figure</code> image
<ul>
<li>an file containing an example image to illustrate the concept being taught in the module</li>
<li>location: <code>/figures/mymodule.md</code></li>
</ul>
</li>
<li>The <code>activities</code> files
<ul>
<li>Markdown files containing instructions and/or example code for an activity that learners should follow to learn how to apply the concept on a particular platform (ImageJ Macro, MATLAB, etc)</li>
<li>location: <code>_includes/mymodule/activities/mymodule_platformnospaces.md</code></li>
</ul>
</li>
<li>The <code>exercises</code> files
<ul>
<li>Markdown files containing exercises to test the learner's understanding of applying the concept on a particular platform</li>
<li>location: <code>_includes/mymodule/exercises/mymodule_platformnospaces.md</code></li>
</ul>
</li>
</ul>
<h2 id="adding-exercisesactivity-instructions-for-a-new-platform">Adding exercises/activity instructions for a new platform</h2>
<p>Contributions of instructions and exercises for more platforms are very welcome - please see the &quot;Associated files&quot; subsection above for details of where these contributed files should be added.</p>
<h2 id="questions-about-the-module-layout">Questions about the module layout</h2>
<p>If you have questions about the module layout, please contact <a href="mailto:toby.hodges@embl.de">Toby Hodges</a>.</p>

      </div>
    </div>

    <footer class="site-footer">

  <div class="wrapper">

    <h2 class="footer-heading">Image Analysis Training</h2>

    <div class="footer-col-wrapper">
      <div class="footer-col footer-col-1">
        <ul class="contact-list">
          <li>Image Analysis Training</li>
          <li><a href="mailto:image-analysis-support@embl.de">image-analysis-support@embl.de</a></li>
          <li><a href="https://git.embl.de/grp-bio-it/image-analysis-training-resources/">Source code</a></li>
          <li><a href="/image-analysis-training-resources/CONTRIBUTING">Contributions to this material are very welcome.</a></li>
        </ul>
      </div>

      <div class="footer-col footer-col-2">
        
      </div>

      <div class="footer-col footer-col-3">
        <p>A collection of material for teaching image analysis. Includes concept maps, exercises, example data
</p>
        <p>Use of this site falls under <a href="https://www.embl.de/aboutus/privacy_policy/index.html">EMBL's Privacy Policy</a>.</p>
      </div>
    </div>

  </div>

</footer>


  </body>

</html>