Popper is a convention for organizing an academic article’s artifacts following a DevOps approach, with the goal of making it easy for others (and yourself!) to repeat an experiment or analysis pipeline.
We first need to install the CLI tool by following these instructions. Show the available commands:
Show which version you installed:
NOTE: this exercise was written using 0.5
Create a project repository (if you are not familiar with git, look here):
mkdir mypaper cd mypaper git init echo '# mypaper' > README.md git add . git commit -m 'first commit'
Initialize the popper repository and add the
.popper.yml file to
popper init git add . git commit -m 'adds .popper.yml file'
Initialize pipeline using
popper init myexp
Show what this did:
ls -l pipelines/myexp
Commit the “empty” pipeline:
git add pipelines/myexp git commit -m 'adding myexp scaffold'
Run popper run:
To run a pipeline named myexp:
popper run myexp
NOTE: By default,
popper runruns all commands directly on the host. We recommend running an isolated environment. In order to do this, one can create a pipeline using the
--envflag of the
popper initcommand. For example,
popper init <pipeline> --env=alpine-3.4runs a command inside an
Once a pipeline is executed, one can show the logs:
ls -l pipelines/myexp/popper_logs
Adding Project to GitHub¶
Create a repository on github and upload our commits.
Adding Project to Travis¶
For this, we need an account at Travis CI. Once we have one, we activate the project so it is continuously validated.
popper ci travis
And commit the file:
git add .travis.yml git commit -m 'Adds TravisCI config file'
Trigger an execution by pushing to github:
Go to TravisCI website to see your experiments being executed.
Integrating with GitHub¶
Some of the popper sub-commands (e.g. :- popper search) make use of the GitHub API. Since GitHub only allows up to 60 unauthenticated requests per hour on its API, some of these sub-commands will fail to give appropriate results on heavy usage.
To resolve this, we need to :
- Create a GitHub personal access token, as shown here.
- Copy the token and set it as an environment variable with the name
POPPER_GITHUB_API_TOKENin our computer.
This will allow the popper command to use our access token to make authenticated requests.
A more detailed description of Popper is explained in the next section.
A step-by-step guide describes how to “Popperize” a repository. Additionally, the following is a list of examples on how to bootstrap a Popper project (repository) in specific domains:
A list of articles describing the Popper protocol, as well as other Popperized papers that have been submitted for publication can be found here.