Git Repos & Auto Build

There are quite a few Machinekit git repositories. Here is what is contained where, and how they fit together with the build process.

Below are several references to the Machinekit jenkins server. Not all links might display without credentials; developers in good standing should send Michael Haberler a mail to enable access (linked on your github account).

main machinekit repo

Posting a pull request against the machinekit repo

mk pr flow

Merging a pull request into the machinekit repo

mk merge flow

comp and instcomp manpage extraction

This happens in the manpage extraction job.

mk manpage flow

machinekit documentation

Posting a pull request against the machinekit-docs repo

Formatting happens in the website preview job. The resulting HTML is uploaded to the https://github.com/machinekit-ci/machinekit-ci.github.io repo which serves the preview.machinekit.io domain.

There is only a single preview website; a followup PR overwrites the previous content of preview.machinekit.io.

mkdocs pr flow

Merging a pull request into the machinekit-docs repo

Formatting happens in the website production job. The resulting HTML is uploaded to the https://github.com/machinekit/machinekit.github.io repo which serves the www.machinekit.io domain.

The linkchecker output is www.machinekit.io/linkchecker.html[available here].

mkdocs merge flow

Protobuf message definitions

  • these define the format of messages used in several places throughout machinekit, both internally and as an external API

  • for the format see the excellent Google Protobuf documentation.

  • note files in this repo are published under the MIT license, other than machinekit which is mostly GPL2 and LGPL. This means usage of the remote API is governed by the former, similar to the Linux kernel which is GPL but the using code can be pretty much any license.

FPGA firmware for SoC/FPGA platforms

Merging a pull request into the mksocfpga repo

mksocfpga merge flow

Python machinetalk bindings

These serve as examples how to remotely interact with HAL and LinuxCNC stack.

Any kernel modules required for Machinekit

Kernel modules and drivers are by definition kernel-dependent and therefore not part of the standard build.

Any drivers should be posted against this repo, following the example of the existing ones. A merge against this repo will cause the machinekit-dms package be build; if installed, this package will build any drivers on the target platform against all installed kernel versions.

github.machinekit.io

  • static html content served by github for domain www.machinekit.io

  • fed from jenkins.machinekit.io via git push after sucessful format and linkcheck

  • see jenkins job website-production