Dependencies Checking

Monteur has a built-in dependency checking function that is used across all jobs for reproducible build purposes. This section explains the checking function in details.

Main Purpose

The purpose is to ensure all external programs (dependencies) are checked to be available before executing the list of Commands Execution Units.

That way, other Monteur users of your project can go through the list in order to make sure everything is up-front ready instead of executing the job blindly for a frankenstein result.

Not to Confuse With Product Dependencies

DO NOT CONFUSE this internal function with your products' dependencies (as in, your end-product app for your customers needs library-X to run). Monteur can only covers the app manufacturing dependencies. It is upto you to package your customers' dependencies using supported packagers (e.g. AppImage, Snaps, and etc).

Optional Implementation

It is ENTIRELY OPTIONAL to implement this function so any CI-Jobs (especially those native functions supported jobs) that has 0 dependency can leave the data table blank.

Data Pattern

The data pattern for dependencies starts with the tag [Dependencies]. It is an array of items so it usually comes with extra square braces that looks like [[Dependencies]].

A full data structure pattern with 2 entires are shown as follows:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[[Dependencies]]
Name = 'Hugo'
Condition = 'all-all'
Type = 'command'
Command = 'hugo'

[[Dependencies]]
Name = 'Git Version Control Software for Changelog Generations'
Condition = 'all-all'
Type = 'command'
Command = 'git'

Each dependency has the following fields:

Epilogue

That’s all for Monteur’s internal function for dependency checking. If you have any queries, please proceed to contact us via our Issues Section channel.