Getting Started

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:

popper help

Show which version you installed:

popper version
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 git:

popper init
git add .
git commit -m 'adds .popper.yml file'

New pipeline

Initialize pipeline using init (scaffolding):

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'

Popper Run

Run popper run:

popper run

To run a pipeline named myexp:

popper run myexp
NOTE: By default, popper run runs all commands directly on the host. We recommend running an isolated environment. In order to do this, one can create a pipeline using the --env flag of the popper init command. For example, popper init <pipeline> --env=alpine-3.4 runs a command inside an alpine-3.4 container.

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.

Generate .travis.yml file:

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:

git push

Go to TravisCI website to see your experiments being executed.

Learn More

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.