They use Mergify: JoliBrain

They use Mergify: JoliBrain

Anne-Laure Civeyrac

Every day, major projects use Mergify to automate their GitHub workflow. Whether they have a core team of 3 or 50 people, the one thing they all have in common is that the project leads are willing to let their developers focus on what’s really important—code. So we decided to meet with some of them to get to know more about their challenges and discover how Mergify helps their teams be more efficient when it comes to pull requests. This week we decided to find out more about JoliBrain, a French artificial intelligence software, and services company. Its research and development engineer Louis Jean kindly agreed to answer our questions.

Hi Louis 👋🏻

Please could you explain what JoliBrain is?

JoliBrain is a small company of seven employees based in Toulouse, France, that specializes in machine learning and deep learning.

Jolobrain's projects

One of our main projects is DeepDetect, a server written in C++ where we can train deep learning models and then use them in production using the same pipeline. We coded this software soon after the creation of the company to accelerate the development of projects with our customers because we realized pretty quickly that it was possible to reuse stuff among projects due to the versatility of machine learning. DeepDetect supports machine learning backends such as Caffe, TensorFlow, PyTorch, XGBoost, t-SNE, and Faiss. And we can use it for lots of different tasks, including implementing support for supervised and unsupervised deep learning of images, text, time series, and other data, and it supports classification, object detection, segmentation, regression, and autoencoders. And as it is open-source, anybody can use it!

Are all your projects open source?

Not all of them, but our biggest projects—DeepDetect and JoliGAN—are.

What is your GitHub workflow for DeepDetect, your main project?

When we want to fix a bug or develop a new feature, we create a branch on our fork. Once the feature is ready, we create a pull request directly on the branch master. And when the tests pass on Jenkins and the pull request is approved by two developers of the team, we merge the pull request on the master branch.

What are the main challenges with this workflow?

We run extensive tests all over the backends and this can take up to an hour, especially if we need to activate Docker builds. And quite often we need to relaunch tests—either because of issues with deterministic tests when we carry out model training or because there’s low stability with CUDA and cuDNN for GPU.

DeepDetect webpage 

And I must confess that because relaunching tests is so time-consuming, we sometimes skip this step when we’re in a hurry for a feature to be live, and we directly merge the pull request on the branch master without testing it again, which generates bugs and can lead to the branch “master” breaking.

So Mergify is helpful with this, right?

Exactly. Mergify automatically checks the pull request against the master branch, which we didn’t do before because it could get a bit overwhelming. In addition, it also merges the pull request automatically when the tests are done.

How did you first get to hear about Mergify?

In 2020, Mehdi Abaakouk, one of the cofounders of Mergify, helped us to clean the DeepDetect project and make everything straight. He ended up installing Mergify because it was able to solve the issues we were having with the tests!

What features of Mergify do you use?

The rebase of the branch master, the tests rerun, and the automatic merge. Also, Mergify automatically requests reviews from team members when a PR is ready to review and it adds labels to PRs whenever there is a conflict or when the PR is ready to merge.

What’s your favorite Mergify feature?

The rule language—the YAML file—is very practical. It makes it easy to edit the rules and it’s very flexible. And even if you create very complex rules, you can still easily understand what they do.

What has been the biggest impact of using Mergify on JoliBrain’s performance?

Having a clean branch “master” at all times and fewer bugs is definitely a great help. And so much time is saved, thanks to Mergify! I would say PRs are merged twice as fast as they were before.

What would be your #1 tip for someone new to Mergify?

To automate anything that can be automated. Don’t be afraid! If you don’t want to use the automatic merge, Mergify can still help you by flagging the PR with a label saying it’s ready to merge.