Package Configuration and Releases Guide
ContentDB will read configuration files in your package when doing several tasks, including package and release creation. This page details how you can use this to your advantage.
What is a content .conf file?
Every type of content can have a
.conf file that contains the metadata.
The filename of the
.conf file depends on the content type:
modpack.conffor mod packs.
texture_pack.conffor texture packs.
.conf uses a key-value format, separated using equals. Here's a simple example:
name = mymod description = A short description to show in the client.
ContentDB understands the following information:
description- A short description to show in the client.
depends- Comma-separated hard dependencies.
optional_depends- Comma-separated soft dependencies.
min_minetest_version- The minimum Minetest version this runs on, see Min and Max Minetest Versions.
max_minetest_version- The maximum Minetest version this runs on, see Min and Max Minetest Versions.
and for mods only:
name- the mod technical name.
Controlling Release Creation
Git-based Releases and Submodules
ContentDB can create releases from a Git repository. It will include submodules in the resulting archive. Simply set VCS Repository in the package's meta to a Git repository, and then choose Git as the method when creating a release.
Automatic Release Creation
The preferred way is to use webhooks from GitLab or GitHub. You can also use the API to create releases.
Min and Max Minetest Versions
When creating a release, the
.conf file will be read to determine what Minetest
versions the release supports. If the
.conf doesn't specify, then it is assumed
that it supports all versions.
This happens when you create a release via the ContentDB web interface, the API, or using a GitLab/GitHub webhook.
Here's an example config:
name = mymod min_minetest_version = 5.0 max_minetest_version = 5.3
Leaving out min or max to have them set as "None".
When using Git to create releases, you can exclude files from a release by using gitattributes:
.* export-ignore sources export-ignore *.zip export-ignore
This will prevent any files from being included if they:
- Beginning with
- or are named
sourcesor are inside any directory named
- or have an extension of "zip".