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.

Quickstart Guide

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.4.1.

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 commit file to git:

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

New experiment

Initialize experiment using init (scaffolding):

popper init myexp

Show what this did:

ls -l experiments/myexp

Commit the “empty” experiment:

git add experiments/myexp
git commit -m 'adding myexp scaffold'

Add existing experiment

List available experiment templates:

popper search

Show information about an experiment:

popper info blis

Import an available experiment:

popper add blis

Commit the new experiment:

git add experiments/blis
git commit -m 'adding blis baseline'

Popper check

Run popper check:

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

Once an experiment is checked, one can show the logs:

ls -l experiments/blis/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.