Dependencies Checking

Monteur has an optional built-in dependencies checking function useful for reproducible build. This page explains the function in details.

Main Purpose

The purpose is to ensure all dependent programs (internal and external) are checked to ensure they are available before executing the list of Commands Execution Units (CEU).

Doing so has a number of benefits:

  1. Any recipe users can quickly check through the dependencies list without messing with your CEU commands list. This is VERY USEFUL for organizations who executes tight security control (like restricted and vetted supply chain of software), working in an offline environment, or maintaining your published CI Job recipe.

  2. The CEU's chain of commands can just focus on the execution jobs without worrying dependencies checking at all. This keeps documenting and maintaining your CI Job recipe a lot easier, scalable, straight to the point, and simpler algorithm.

  3. Montuer can perform early warning mechanism before executing any of the CEU commands. This saves expensive CPU and network resources when you are operating on mileage environment like cloud server or connecting to a limited mobile network data.

However, please DO NOT CONFUSE this function with your product's dependencies (as in your end-product app for your customers requiring them to pre-install library-XYZ). Remember: Monteur is a software manufacturing tool, not a product distribution one. Therefore, you still need to communicate with your customers thoroughly.

Data Structure

Monteur's dependencies checking function uses a set of fields arranged in a single "shopping" array list. The availability generally depends on the CI job and is usually optional. Currently, most CI Jobs offer such function for pre-checking before commands execution.

The following data structure is the full dependencies checking function that you may or may not need them for your recipe construction:

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

Available Checker Types

Monteur shall continuously develop and add new checker types from time to time. As of now, these are the currently available checkers for your deployment: