To keep Monteur setup in your application seamlessly, Monteur has a dedicated Init API just for the job. This section explains how to utilize this Init API and setup your repository in a single go.
Initialize Your Repository
To initialize your repository, go to your repository’s root directory, and simply issue the following command:
Monteur shall properly scan for its existence and if it is absent, Monteur shall do the rest of the config files creation automatically.
Fill in Your App Metadata
Once all files are created, it’s time to update your application metadata once will do. There are a few critical files to update:
The main metadata TOML configuration file is located in
.configs/monteur/app/config/en/metadata.toml. This file houses all the core
metadata of your application that will be used across many packagers and
Among the information you need to update when appropriate are:
Software.ID- Monteur automatically takes your directory name as the application name. Hence, if you desired a different naming, please edit accordingly. For
Software.ID, it MUST be in alphanumeric and dash (
Software.Command- the command name to call your application.
Software.Version- controls the version of your app.
Software.Category- the common category of your software (e.g.
Software.Suite- the sub-component of a bigger software bundle like
Microsoft Officeif the app is
Abstract- a short, no article (“a”, “an”, “the”) description (max 70 characters).
Description- long description of your app. It shall continues from the
Website- the official website of your app.
Software.Contact.Name- the general contactable entity (person or org)’s name.
Software.Contact.Email- the general contactable entity’s email.
Software.[TYPE].[ID]- These are the list of contributors contacts that will be used in credits and citation. You can add more entries by duplicating the section with a different and unique
[ID](in the above example:
ACME) is mainly used for uniquely identify an entity across all lists. You can name it however you want except using period (
[TYPE], these are the currently supported categories:
Maintainers- the current maintainers who has executive roles on app development and releases.
Contributors- the minor contributors who contribute code changes into the repository.
Sponsors- the financial contributors to the app development and releases.
Software.[Type].[ID].Name- the entity’s legal name.
Software.[Type].[ID].Email- the entity’s reachable email address.
Software.[Type].[ID].JointTime.Year- the year that the entity joint.
Although not required, you should look into the
help.toml which contains all
the general help guides for various help documentations like man pages and etc.
The default is good enough to automate most of the known documentations. If you
are not using it, you can leave it as it is.
The file is located in
.configs/monteur/app/config/en/help.toml. It has the
following template that will be automatically formatted based on your app
Help.Command- the command with argument for triggering the program’s help.
Help.Description- the abstract of the your app.
Help.Resources- the statement for finding more help resources.
Help.Manpage.[KEY]- the content for generating the different levels of manpage files. The
[KEY]shall be used as the name or extension of the manpage depending on the packager.
These are Debian’s
.deb specific app metadata for packaging your app to the
Debian-based operating system. You may need to refer
Debian Policy Specification for the
The configuration file is located in
.configs/monteur/app/config/en/debian.toml and it is currently providing the
Depending on which packager you’re using (e.g.
debuild), certain information
are compulsory. Monteur itself is using this packager most of the settings are
Among the attention needed from you are:
DEB.VCS.URL- change it into your git URL.
DEB.Source.LintianOverrides- add any lintian overrides that you found false positive (can be added later once you established your repository.
DEB.Install- The list of installed files in
keyshall designate the directory path for installing while the value is the assembled content (executable, files, etc). You can add more if you have more files in it.
'usr/bin' = 'monteur'where the
monteurprogram is installed into
usr/bindirectory of the target operating system.
Lastly, you should update your app copyright’s license metadata. This file holds
a license’s full metadata for generating various data files across the
repository. A default license TOML file was generated in
.configs/monteur/app/config/en/copyrights/copyrights.toml. Please rename it
to the appropriate license filename like
Apache 2.0 license.
Since app can be mutli-licensed (e.g. Creative Commons for non-coding materials
and Code Licensing), you can create as many
<license>.toml file as you deemed
The default TOML license file has the following template:
Copyright.Name- Name of the license.
Copyright.ID- The unique ID of the license. Make you use common identifier like the SPDX Licenses List.
Comment- optional comments for the license.
Materials- the materials where the license is applied. Use asterisk (
*) to indicate all. For example, to indicate all source codes with extension
.go, it is
*.goacross the repository.
Holders- the optional list of copyright holders. When left empty, all contributors from the app’s
metadata.tomlshall be sorted out and listed as the copyright holders. This field is only meant for overwrite said list for special cases' license.
Notice- The short copyright notice that is usually appened in front of the source code.
Text- The full text body of the license file.
Build Your Repository’s CI Jobs
Now that you have your app metadata setup, it’s time to setup your Monteur
CI Jobs recipes. Different CI Jobs has different recipe files but they are
following the same filesystem which are housing under
Each recipe has its own configurations so please go through them accordingly. The initialization shall be completed once you had fully configured all the recipes to your app building.
To start, please head over to:CI Jobs Catalog
That’s all for Monteur’s Init API. If you have any queries, please proceed to contact us via our Issues Section channel.