How to embed everware into research use cases
Andrey Ustyuzhanin edited this page Jun 13, 2016
·
1 revision
Pages 8
Clone this wiki locally
Everware as a research facilitator, use-cases
in this document we assume that user conducts the research using jupyter notebooks. You can find description of generic uses cases below.
Basic science use-case (one-user) creating research from scratch
- User creates a git repository for his project
- User creates some code, notebooks, figures out what libraries he needs
- User creates
Dockerfilewhere he writes all the dependencies for his code - User creates
Makefilethat simplifies start- one of the targets in Makefile passes through all the essential steps of analysis
- (optional) User tests that his analysis is runnable by one of the CI systems (e.g. on travis, adding,
.travis.yml) - User tests that analysis is also runnable by
everware - User completes his research and checks that he/she can reproduce all the figures/tables supporting his hypothesis by running corresponding notebooks (or automates cascade of notebooks execution by single
Makefiletarget) - User publishes paper, filling-in special form link to his git repository and to
everwarethat any member of the researcher community can pick-up from to improve his research
Basic use-case (one-user) starting research from an existing repository
- User reads published paper that attracts his/her attention
- User follows the link to the git repository, forks this repository
- User checks that results are reproducible on his laptop/server locally. If not he can always fire an issue to the original repository
- User works with this repository following general rules locally. If he/she needs to modify environment specification, he/she updates
Dockerfileand tests if the new results are generated byMakefileand reproducible oneverware - User publishes his paper, giving link to his git repository and link to run this research on
everware
Multi-user (collaborative) research scenario
In case serveral users are working on certain research topics, they have to follow basically same guidelines as they work using versioning system (git), just they have take very seriously integration with CI (new tests should be added with each new research step and commits are not accepted/merged unless all test pass) and Dockerfile validity. The preferable test scenario would be testing of the research outcomes within docker container created by steps specified in repository Dockerfile.