2020-06-03 19:22:23 +02:00
|
|
|
title: Package Configuration and Releases Guide
|
|
|
|
|
|
|
|
## Introduction
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
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.
|
2020-06-03 19:22:23 +02:00
|
|
|
|
|
|
|
## .conf files
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
### What is a content .conf file?
|
|
|
|
|
2020-06-03 19:22:23 +02:00
|
|
|
Every type of content can have a `.conf` file that contains the metadata.
|
|
|
|
|
|
|
|
The filename of the `.conf` file depends on the content type:
|
|
|
|
|
|
|
|
* `mod.conf` for mods.
|
|
|
|
* `modpack.conf` for mod packs.
|
|
|
|
* `game.conf` for games.
|
|
|
|
* `texture_pack.conf` for texture packs.
|
|
|
|
|
|
|
|
The `.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.
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
### Understood values
|
|
|
|
|
2020-06-03 19:22:23 +02:00
|
|
|
ContentDB understands the following information:
|
|
|
|
|
|
|
|
* `description` - A short description to show in the client.
|
|
|
|
* `depends` - Comma-separated hard dependencies.
|
2020-06-03 19:28:08 +02:00
|
|
|
* `optional_depends` - Comma-separated soft dependencies.
|
2020-09-17 00:32:24 +02:00
|
|
|
* `min_minetest_version` - The minimum Minetest version this runs on, see [Min and Max Minetest Versions](#min_max_versions).
|
|
|
|
* `max_minetest_version` - The maximum Minetest version this runs on, see [Min and Max Minetest Versions](#min_max_versions).
|
2020-06-03 19:22:23 +02:00
|
|
|
|
|
|
|
and for mods only:
|
|
|
|
|
|
|
|
* `name` - the mod technical name.
|
|
|
|
|
|
|
|
## Controlling Release Creation
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
### Git-based Releases and Submodules
|
2020-06-03 19:28:08 +02:00
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
ContentDB can create releases from a Git repository.
|
2020-06-03 19:28:08 +02:00
|
|
|
It will include submodules in the resulting archive.
|
2020-09-17 00:32:24 +02:00
|
|
|
Simply set VCS Repository in the package's meta to a Git repository, and then
|
|
|
|
choose Git as the method when creating a release.
|
2020-06-03 19:28:08 +02:00
|
|
|
|
2020-06-03 19:22:23 +02:00
|
|
|
### Automatic Release Creation
|
|
|
|
|
|
|
|
The preferred way is to use [webhooks from GitLab or GitHub](/help/release_webhooks/).
|
|
|
|
You can also use the [API](/help/api/) to create releases.
|
|
|
|
|
|
|
|
### Min and Max Minetest Versions
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
<a name="min_max_versions" />
|
|
|
|
|
2020-06-03 19:22:23 +02:00
|
|
|
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
|
2020-09-17 00:32:24 +02:00
|
|
|
that it supports all versions.
|
2020-06-03 19:22:23 +02:00
|
|
|
|
|
|
|
This happens when you create a release via the ContentDB web interface, the
|
|
|
|
[API](/help/api/), or using a [GitLab/GitHub webhook](/help/release_webhooks/).
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
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".
|
|
|
|
|
2020-06-03 19:22:23 +02:00
|
|
|
### Excluding files
|
|
|
|
|
2020-09-17 00:32:24 +02:00
|
|
|
When using Git to create releases,
|
2020-06-03 19:28:08 +02:00
|
|
|
you can exclude files from a release by using [gitattributes](https://git-scm.com/docs/gitattributes):
|
2020-06-03 19:22:23 +02:00
|
|
|
|
|
|
|
|
|
|
|
.* export-ignore
|
|
|
|
sources export-ignore
|
|
|
|
*.zip export-ignore
|
|
|
|
|
|
|
|
|
|
|
|
This will prevent any files from being included if they:
|
|
|
|
|
|
|
|
* Beginning with `.`
|
|
|
|
* or are named `sources` or are inside any directory named `sources`.
|
|
|
|
* or have an extension of "zip".
|