Add Package Config help page

This commit is contained in:
rubenwardy 2020-06-03 18:22:23 +01:00
parent 4d29087431
commit 749e7c6cd0
4 changed files with 76 additions and 13 deletions

@ -28,9 +28,6 @@ from app.querybuilder import QueryBuilder
@bp.route("/api/packages/") @bp.route("/api/packages/")
def packages(): def packages():
import sys
print("\n\n############", file=sys.stderr)
qb = QueryBuilder(request.args) qb = QueryBuilder(request.args)
query = qb.buildPackageQuery() query = qb.buildPackageQuery()
ver = qb.getMinetestVersion() ver = qb.getMinetestVersion()

@ -1,8 +1,6 @@
title: Help title: Help
## Content ## For Everyone
Policies and user help.
* [Content Ratings and Flags](content_flags) * [Content Ratings and Flags](content_flags)
* [Non-free Licenses](non_free) * [Non-free Licenses](non_free)
@ -11,10 +9,12 @@ Policies and user help.
* [Reporting Content](reporting) * [Reporting Content](reporting)
* [Top Packages Algorithm](top_packages) * [Top Packages Algorithm](top_packages)
## Developers ## For Content Creators / Modders
Various APIs. * [Creating Releases using Webhooks](release_webhooks)
* [Package Configuration and Releases Guide](package_config)
## For Developers
* [API](api) * [API](api)
* [Metrics](metrics) * [Metrics](metrics)
* [Creating Releases using Webhooks](release_webhooks)

@ -9,7 +9,7 @@ Authentication is done using Bearer tokens:
You can use the `/api/whoami` to check authentication. You can use the `/api/whoami` to check authentication.
Tokens can be attained by visiting "API Tokens" on your profile page. Tokens can be attained by visiting [Profile > "API Tokens"](/user/tokens/).
## Endpoints ## Endpoints
@ -33,10 +33,9 @@ Tokens can be attained by visiting "API Tokens" on your profile page.
* Requires authentication. * Requires authentication.
* `title`: human-readable name of the release. * `title`: human-readable name of the release.
* `method`: Release-creation method, only `git` is supported. * `method`: Release-creation method, only `git` is supported.
* `min_protocol`: (Optional) minimum Minetest protocol version. See [Minetest](#minetest).
* `min_protocol`: (Optional) maximum Minetest protocol version. See [Minetest](#minetest).
* If `git` release-creation method: * If `git` release-creation method:
* `ref` - git reference, eg: `master`. * `ref` - git reference, eg: `master`.
* You can set min and max Minetest Versions [using the content's .conf file](/help/package_config/).
### Topics ### Topics

@ -0,0 +1,67 @@
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.
* `optional_depends` - Comma-separated hard dependencies.
* `min_minetest_version` - The minimum Minetest version this runs on.
* `min_minetest_version` - The minimum Minetest version this runs on.
and for mods only:
* `name` - the mod technical name.
## Controlling Release Creation
### 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
You can exclude files from a release by using [gitattributes](https://git-scm.com/docs/gitattributes):
.* 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".