contentdb/app/flatpages/help/package_config.md

74 lines
2.2 KiB
Markdown
Raw Normal View History

2020-06-03 19:22:23 +02:00
title: Package Configuration and Releases Guide
## Introduction
ContentDB will read configuration files in your package when doing a number of
tasks, including package and release creation.
This page details the ways in which you can use this to your advantage.
## .conf files
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.
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-06-03 19:22:23 +02:00
* `min_minetest_version` - The minimum Minetest version this runs on.
2020-06-03 19:28:08 +02:00
* `max_minetest_version` - The maximum Minetest version this runs on.
2020-06-03 19:22:23 +02:00
and for mods only:
* `name` - the mod technical name.
## Controlling Release Creation
2020-06-03 19:28:08 +02:00
### Git Releases and Submodules
ContentDB can automatically create releases from a git repository.
It will include submodules in the resulting archive.
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
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 is supports all versions.
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/).
### Excluding files
2020-06-03 19:28:08 +02:00
When using git to create releases,
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".