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)