You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

This story board concentrates on the way a developer would contribute an extractor or a format converter to the Brown Dog service. It includes setup of the development environment, testing, packaging/description and submission.

I am leaning more toward having the developer begin from the template project, i.e. an empty or bare-bones extractor or converter. We can include all the docker files that are necessary for the runtime environment with the template project, making it easy install/start/stop whatever is needed via docker-compose.

Question: Is there any way to make the docker container can describe itself in more detail and maybe include some sample files, such that a single upload will capture everything we need for submission of the contribution?

    1. Developer visits the Brown Dog developer/contributor web page, which provides an overview of what and how they can contribute. (TODO: create contributor web page)
                  - Tools catalogue page has some information on this. TODO: A link to the contributor web page with instructions 
    2. Developer installs prerequisites: possibly a development VM, Docker, python, python-pip
    3. Developer downloads a project template with all of the basics for an example extractor or converter project. (TODO: need a template project for converters) (Rui Liu has started this)
      1. Extractor template project: imagemagick edge detector
      2. Converter template project: imagemagick jpg to ico converter
      3. Create a local project from the template:

        git clone http://bitbucket.ncsa.illinois.edu/path/to/template.git myextractor
    4. Developer creates and activates a python virtual environment for their new project.
virtualenv myextractor
source myextractor/bin/activate
pip install docker-compose
  1. Developer runs "docker-compose up" to start runtime environment of docker containers (TODO: Docker compose YAML for complete BD environment) (TODO: Any missing Docker containers)

    cd myextractor
    docker-compose up
    • Runtime containers for extractors: Clowder instance
    • Runtime containers for converters: Polyglot instance
  2. Developer adds custom code to template project, creates interface script(s)
  3. Developer creates dockerfile
    • For extractors this should contain only the tool, its dependencies, and the extractor
    • For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script
      • I have not done a converter, they are packaged as VMs right? How can they be contributed/distributed/packaged? - Gregory Jansen
  4. Developer submits tool to Tools Catalog (using BrownDog account)
    • Interface script(s), dockerfile, sample input, sample output
    • Through web interface
    • Through script in development environment (probably the ideal way)

 

  • No labels