Configuration #2460

Configuration #2458: Move to Jugit, gitlab-ci, scgbuild, local Windows

Split repository into Fit, Core, GUI

Added by wuttke about 2 months ago. Updated 23 days ago.

Status:Long Term IdeaStart date:22 May 2020
Priority:LowDue date:
Assignee:-% Done:


Target version:-


In future, the GUI will depend not only on libBornAgainCore, but also on libMVVM. We should treat these dependencies on an equal footing. Either we merge libMVVM into the BornAgain repository. Or we split the latter into Core and GUI.

Keeping everything in one repository won't scale; it prevents adoption of Fit and MVVM by other projects. So splitting, if technically feasible, is preferable. Probably not just Core and GUI but, say, Fit, PyFit, Core, PyCore, GUI.

As a side benefit, CI of GUI would be much accelerated.

For managing dependencies, see the "Live at Head" model in the Google software negineering book, Ch. 21

For cross-project testing pipelines, see


#1 Updated by wuttke about 2 months ago

  • Description updated (diff)

#2 Updated by wuttke about 2 months ago

However, this idea goes counter our recently established practice of using issue tracker as CRM system. Customers want to contact BornAgain, not BornAgainPyCore or BornAgainGUI. So go for a proper CRM software? Or a separate tracker?

#3 Updated by wuttke 24 days ago

  • Subject changed from Split repository into Fit, Core, GUI, PyCore to Split repository into Fit, Core, GUI
  • Status changed from New to Long Term Idea
  • Priority changed from Normal to Low

#4 Updated by wuttke 23 days ago

Examples of projects that have a similar subproject structure:

Also available in: Atom PDF