2019-03-04: Development Planning

Kacper, Craig, Tommy

Discussion with Craig, Kacper:

  • v0.6 release
    • v0.6 rc3
      • Running on stage
      • Tale migration is missing
      • Dozens of tales don’t migrate cleanly
    • Craig to run migrate script with Girder shell
      • Remember, additional script in girder_wholetale for migrating datasets
    • Final testing
    • Deployment to prod
  • Environment customization
    • Merge sooner, even if only partially there
    • User experience won’t change, but we need to commit to export format
    • Export issues:
      • Specific configurations:
        • Forked repo2docker/version
        • Template BuildPack
    • Discussed injecting files into the workspace, but opted against for now

Discussion with Craig, Kacper and Tommy

  • Status with Tommy
    • Tale serialization format
    • Export proof of concept –> now needs to become reality
      • https://github.com/whole-tale/girder_wholetale/issues/224
      • Need to resolve issues with placeholders
        • environment.txt
          • We need to resolve what this means and looks like
        • README.txt.tpl
          • Jinja template with Tale JSON to render the right stuff
        • LICENSE
          • Licenses are in Github in gwvolman. Need to do something else
      • Discussions
        • createdBy v author
          • createdBy = Tale creator
          • Authors need to be real authors
          • Follow the Git model – author v committed
      • BagIt version?
        • /tale/{id}/export?format=zip|bagit
    • Import proof of concept
      • Had it working on datasets, but not the workspace
      • You would upload a Tale to the home directory and given an item id, import it.
      • Hasn’t been refactored to use latest PRs
      • Do we import an environment/image that isn’t there?
        • Check that fields match
          • BuildPack, Template, urlPat
    • Publish to DataONE
      • Largely as-it-was
      • Refactored to use workspace
      • Refactored filepicker
      • Craig’s preference:
        • Drop the filepicker, drop entypoint selection
  • v0.7 release
    • Assume Craig’s PRs are merged
      • Environment defined by Image object + workspace
    • Target v0.7 release
      • NSF panel in 1 month
      • Stage version 1-2 weeks before the review
      • March 22nd
    • Discussion of export endpoint and new repo2docker work
    • /export
      • Manifest()
      • Image + system information (repo2docker version)
      • Tale
        • repo2docker version Other:
      • Author selection via ORCID
      • Keep authors a string and make it editable for now

Priorities (Tommy)

  • Author
    • Make author field editable in Dashboard (PR Here)
    • Add author field to manifest (it’s a string, don’t try to parse it for now) (See slack discussion)
  • Licence selection
    • Add license field to Tale object
    • Add license endpoint – for v0.7 list licenses available in the system (DataONE only)
    • Add license files
    • Add license selector to Dashboard (PR for this and items above PR Here
    • Add license to Zip on export
    • Change export/manifest to no longer take license parameter
  • Environment
    • Change https://github.com/whole-tale/gwvolman/pull/43 to add repo2docker version in Tale.imageInfo
    • Export should include environment.json based on Tale:imageInfo and Image information
  • Export
    • Add “Export” to Run menu PR Here
  • Publish
    • Remove license selection for now
    • Disable filepicker, entrypoint, license selection for v0.7 (license is already selected and valid for DataONE)
docker run -v `pwd`/workspace:/someplace craigwillis/repo2docker --buildpack --template
docker run -v `pwd`/workspace:<targetmount> -p 8888:8888

metadata/environment.json
{
    "config": {
      "buildpack": "PythonBuildPack",
      "command": "jupyter notebook --no-browser --port {port} --ip=0.0.0.0 --NotebookApp.token={token} --NotebookApp.base_url=/{base_path} --NotebookApp.port_retries=0",
      "port": 8888,
      "targetMount": "/home/jovyan/work",
      "template": "base.tpl",
      "urlPath": "?token={token}",
      "user": "jovyan"
    },
    "description": null,
    "icon": "https://raw.githubusercontent.com/whole-tale/jupyter-base/master/squarelogo-greytext-orangebody-greymoons.png",
    "iframe": true,
    "name": "Jupyter Classic"
}