MXCuBE meeting - SOLEIL Synchrotron, 12/06/2017

presented by D. De Sanctis & M. Guijarro

Current issue:

technical debt

  • Lack of automatic tests
  • Lack of collaboration between institutes, development process
  • Lack of technical documentation

Technical debt

  • 2 MXCuBE under development (Qt 4, web)
  • legacy version, still in use at ESRF and SOLEIL (Qt 3)
  • little ressources, beamlines upgrades, new hardware...

Saving the future

Solving the lack of automatic tests

Hardware Objects:

  • one Hardware Object == one Abstract class
  • one Abstract class == one mockup class
  • let's implement functional tests using pytest

User Interface:

  • many possibilities exist for MXCuBE 3
  • for example, see talk by F. Bolmsten (last MXCuBE meeting)

Let's enable Continuous Integration in github

Solving the lack of collaboration,

improving development process

Developers meetings

  • face-to-face: every 3 months
  • video conference: every 2 weeks

Development tasks & priorities

  • should be agreed between us beforehand
  • github issue => discussion => task assignment => implementation => test => github pull request

Solving the lack of collaboration,

improving development process

  • stop sharing all the code
  • lack of time : meetings cancelled (too busy or nothing new to say...)
  • disagreements (on the tasks, or on technical implementation)
  • divergence of views, different priorities

Risks should not be underestimated

Solving the lack of technical documentation

Favor self-documenting solutions

  • Dockerfile : "recipe" on how to install
  • Abstract classes : minimum set of methods to be implemented for each component
  • Mockup classes : implementation details


  • summary of changes between 2 version tags

Architecture document

Helping with

Resources spreading

Few developers


2 major versions to develop and maintain


Let's redefine realistic, common objectives for the months and years to come

  • "MX drivers"
  • technical evolution

Developers' Roadmap proposal

1. Let's finish Abstract Classes (started in 2012)

2. Let's finish Mockup classes (started in 2012)

3. Implement tests for Continuous Integration

4. Collaborate more(better)

MXCuBE3, Past Present Future

By Matias Guijarro

MXCuBE3, Past Present Future

  • 1,270