Skip to main content

Open Experiment Format

Project description


Open Experiment Format is a collection of protobufs that allows you to serialize an Experiment.



Building and testing


Those requirements are already installed if you develop via dmake shell oef.

Then, simply run make test to launch tests.


The code is divided into multiple subsections:

  • API: contains abstract classes for DL architectures interfacing OEF with Thoth, as well as the launch_experiment function definition for launching a new training on Deepomatic Studio
  • Configuration: contains all the default configuration for all available DL architectures
  • Platform: interface between OEF and Deepomatic Studio
  • Protos: contains all the protobuf files
  • Utils: contains the ExperimentBuilder class and other utility functions

How to deploy

This should be done after your pull request has been merged to master.

Bump the version in deepomatic/oef/

If you break the protobuf format since the last release, you need to:

  • provide a migration file
  • bump and commit the major version number and reset other numbers to 0.
  • commit your changes

Tag the commit

Once the pull request is merged, tag the (last) corresponding commit by doing:

git checkout commit_id
git tag -m "Release open-experiment-format v${version}" v${version}
git push origin v${version}

Create a github release

  • Start by doing git fetch --tags --quiet --force as a workaround for a bug in dmake release.
  • Run dmake release open-experiment-format and select the tag you just released
  • Dmake displays the URL of you release: you can edit the description to hide unnecessary commits

Release the packages for this version on pypi

Open dmake shell oef, and simply run make publish. You will need to be admin on PyPi for it to work. If on MacOS, you should be inside the ubuntu docker container to make sure you build a linux package (maybe not necessary, this has not been verified).

You can check the release here:

Create a maintenance branch after release of a minor version

After a release of a minor version, create a new maintenance branch with name maintenance-0.2.x, where 0.2 should be replaced with the current major and minor version. This is the default branch from where patches should be released. All hotfixes on the master branch should also be merged on the maintenance branch.

Bump the version in deepomatic/oef/

You now bump the minor / patch version number to prepare for the next release:

  • if you a on the master branch, modify the minor version number
  • if you are on a maintenance branch, change the patch version.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for deepomatic-oef, version 0.10.1
Filename, size File type Python version Upload date Hashes
Filename, size deepomatic_oef-0.10.1-py3-none-any.whl (159.5 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page