Ogre is a simple tool to share code and the computational environment where it was designed.

Why was created?

The motivation behind it is the realization that, despite all the amazing tools available today like Docker, Conda, and PyPi, AI and machine-learning builders still struggle to make their code (or somebody else's) run out-of-the-box in any machine (Figure 1).

Figure 1 Figure 1 - Reproducibility is not a solved problem: builders still struggle to run code out-of-the-box in different machines and environments

Who hasn't tried to run code out of a GitHub repository, following the author's instructions, and was faced with some sort of inconsistency of packages/libraries? And despite the author's efforts to quickly fix those issues, the truth is that often we hear the same old phrase:

"But it runs in my machine..." ¯\_(ツ)_/¯

This is especially true for developers building machine-learning solutions in Python:

- Most of them are scientists/developers who want to quickly assemble a prototype or a minimum viable product (MVP).

- Those people aren’t rewarded for writing a complete documentation. Making Dockerfiles, bash scripts, README files, or even a pip requirements file doesn’t rank at the top of their priorities.

- This is a natural result of the continuing popularization of coding: a lot of builders today -- particularly scientists -- did not have the chance to learn the best software-engineering and DevOps practices, but this doesn't stop them from building useful and groundbreaking applications.

We want to support this growing community by providing a tool that enables developers to focus on code only, i.e., no need for environment definition, and allows for 3rd parties to run code out-of-the-box, without the need to spend hours patching it and overcoming undocumented issues.

Ogre is the result of several years learning how scientists and developers build and share their ideas. We believe it can be incredibly helpful to dev teams, tech leads, architects, and CTOs whose job is quickly implement ideas that will eventually make their way into product. It is especially handy to scientists who want to share code for their papers and academics-turned-entrepreneurs who usually know how to code their ideas but struggle to find the best way to deploy them.

User flow

The typical user flow is represented in Figure 2. There are two ways of using it:

- Via a web user interface (UI) in the form of a browser extension

- Via a Command-Line Interface (CLI) to be used from the terminal

Figure 2 Figure 2: The typical Ogre user flow. The steps in green represent the use of the UI; The steps in blue are concerned with the use of the CLI.

While the browser extension allows for deploying coding environments with a few clicks, the CLI offers a customized experience where the user has the freedom to set different parameters. To demonstrate these capabilities, we will go through the “get started” where we feature the use of the UI. Information on how to the set up and use the CLI is provided is provided in a separate section.