Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Developer visits the contributor web page 
    Jira
    serverJIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
    keyBD-956
    1. Contributor page explains at a high level how they can develop and contribute a two types of tools to the Brown Dog catalog.
    2. Explains benefits of contributing
    3. Explains intellectual property around contributing
    4. Examples and links to contributions by others 
    5. Tools catalogue page has some information on this.
    6. Provide a link to the contributor web page from Tools Catalogue and Brown Dog web pages.
  2. Developer visits either extractor or converter how-to page:
    1. Explains where their module fits within system diagram
    2. Explains development instructions step-by-step
      1. how to modify the template
      2. install path for any dependencies and source code
      3. input file description
      4. expected output
      5. how to upload the script to opensource repository.
    3. Provides links to resources they need 
    4. Jira
      serverJIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
      keyBD-957

    5. Jira
      serverJIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
      keyBD-958
  3. Developer installs prerequisites
    1. VirtualBox or other VM kit
    2. Development VM (if they need a foreign OS)
    3. Docker
    4. Python packages: python, python-pip
  4. Developer downloads a project template with all of the basics for an extractor or converter project.
    1. This is an empty project without functionality or dependencies, equivalent to "hello world".  (What does exactly Project Template mean?  I am assuming that it means a sample for writing extractor/converter- Smruti Padhy)
    2. Template project is documented, with placeholders where contributed code might go.
    3. Might include template files for tools catalog info (A tool metadata file that would be posted upon submission)
    4. Jira
      serverJIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
      keyBD-959

      1. (Rui Liu has started this). Converter Scripts within Polyglot can be found here (https://opensource.ncsa.illinois.edu/bitbucket/projects/POL/repos/polyglot/browse/scripts). Use these as reference to write the template (point (e)).
      2. May need a template project per target OS?
    5. Jira
      serverJIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
      keyBD-960
       
      1. Sample-extractors can be found in the pyClowder Library repo (https://opensource.ncsa.illinois.edu/bitbucket/projects/CATS/repos/pyclowder/browse) . Use this as reference to write the template extractor (point (d)).
    6. I think, there are two approaches to this: developer downloads example template such as imagemagick to run example extractor, see its working, study the code and later customizes it. But this will need the dependencies for that extractor which the developer may not need in future with the customization. So, the other way is to give just the skeleton of the extractor and the developer can install dependencies and write code. – Smruti Padhy 
      1. I agree, I think the empty template is more useful. We can document it thoroughly and throw in some dummy extracted data ("hello world"), without introducing more dependencies.
  5. Developer writes and tests code within template project.
    1. This involves edits to python or customization of a VM image (converters)
    2. Involves edits to the supplied Dockerfile for new dependencies, etc..
      1. For extractors this should contain only the tool, its dependencies, and the extractor
      2. For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script 
    3. Involves docker-compose up for testing
    4. Jira
      serverJIRA
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
      keyBD-961

      1. Developer could edit a template test script for this.
      2. Tests could be run on catalog submission as a validation step.
  6. Developer add sample data files to the sample data folder.
  7. Developer edits tool info file (for tools catalog entry)
  8. Developer runs Brown Dog contributor script, which submits the key data in the project 
    Jira
    serverJIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverIdb14d4ad9-eb00-3a94-88ac-a843fb6fa1ca
    keyBD-962
    1. Uses their Brown Dog account
    2. Includes interface script(s), dockerfile, sample input, sample output
    3. If you are submitting a dockerfile file, it should contain the interface scripts. 

...