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
-
all the source code for HAL, RT, the CNC stack, and user interfaces lives here.
-
package builds happen from here using the Travis CI service, driven from this directory
Posting a pull request against the machinekit repo
Merging a pull request into the machinekit repo
machinekit documentation
-
source for the website, asciidoc format as understood by asciidoctor.
-
all static documentation resides here.
-
artefacts from other repos (comp & instcomp manpages, protobuf docs) are imported during the build process:
-
manual pages for HAL components: see comp and instcomp manpage extraction
-
protobuf files are automatically converted for documentation using protoc-gen-doc
-
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.
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].
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
-
contains VHDL source and configurations for CycloneV and Zynq platforms
-
firmware packages are built automatically if a PR is merged into this repo
-
CycloneV packaging step, triggered after successful build
-
Zynq packaging step, triggered after successful build
Merging a pull request into the mksocfpga repo
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