Discussion: Framework for Automating Builds (buildbot etc..)

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
Posts: 4755
Joined: Thu Jan 05, 2017 9:03 pm

Discussion: Framework for Automating Builds (buildbot etc..)

Postby Kunda1 » Wed Nov 07, 2018 2:00 pm

This thread is to discuss automating builds.
We can discuss all manner of methods. We can start with Buildbot as this was a dropped agenda due to different reasons from the recent kkremitzki GSOC 2018 (perhaps overly-ambitious? vejmarie going AWOL, not sure the reason. Nevertheless, worthy of revisiting)

The idea behind this would be:
  • Getting the Buildbot tools working on Linux & Windows VMs -- this could mean automated delegated builds from trusted developers on Linux/Windows, so for example Assembly3 branch patched FreeCAD
  • Building debug symbol enabled builds
  • Building flatpak, snap, appImage etc..
  • using hooks to run different tests (spelling, whitespace formatting, code-uniformity etc...)
  • online auto-generating of documentation
  • translation testing
Buildbot: Framework that automates builds
  • Homepage: https://buildbot.net
  • Background:
    wikipedia wrote:Buildbot is a software development continuous integration tool which automates the compile or test cycle required to validate changes to the project code base. It began as a light-weight alternative to the Mozilla project's Tinderbox, and is now used at Mozilla, Chromium, WebKit and many other projects.
  • Infrastructure: Buildbot is written in Python on top of the Twisted libraries.
  • Buildbot documentation
  • Who else uses Buildbot ? Blender, launchapd.net, GNOME, KDE, Python etc... (list of projects using Buildbot)

libvirt: Spawn Virtual Machines of different OSs to test FreeCAD in said environments
  • Background:
    wikipedia wrote:libvirt is an open-source API, daemon and management tool for managing platform virtualization.[3] It can be used to manage KVM, Xen, VMware ESX, QEMU and other virtualization technologies. These APIs are widely used in the orchestration layer of hypervisors in the development of a cloud-based solution.
  • Homepage: https://libvirt.org

Relevant threads:
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features