Config File JSON Schema

In most cases, you’ll have a config file with a single project, and one or more sections in that project. The following is the config file for Proclamation itself, which is a fairly common usage:

{
    "#": "This is a config file for Proclamation, the changelog combiner: https://gitlab.com/proclamation/proclamation",
    "SPDX-License-Identifier: CC0-1.0": "",
    "SPDX-FileCopyrightText: 2020-2023 Collabora, Ltd. and the Proclamation contributors": "",
    "$schema": "https://proclamation.gitlab.io/proclamation/proclamation.schema.json",
    "project_name": "Proclamation",
    "base_url": "https://gitlab.com/proclamation/proclamation",
    "news_filename": "CHANGELOG.md",
    "sections": {
        "Script": {
            "directory": "changes/script"
        },
        "Templates": {
            "directory": "changes/templates"
        },
        "Misc": {
            "directory": "changes/misc"
        }
    }
}

The full schema supports a number of optional properties, as well as multiple projects in a single config file for more complex use cases. The full schema is illustrated below. Note that bold property names indicate a required property.

Proclamation configuration file schema

https://proclamation.gitlab.io/proclamation/proclamation.schema.json

This schema describes the configuration file format for the Proclamation tool. The root object can either be a project_object, or contain a ‘projects’ key with an array of project_object

oneOf

#/definitions/project_object

type

object

properties

  • projects

type

array

items

#/definitions/project_object

minItems

1

definitions

  • section_object

Section

A section contains changelog fragments. The key associated with the section is the section name.

type

object

properties

  • directory

Fragment Directory

Relative path to directory with changelog fragments

type

string

  • sort_by_prefix

Sort by Prefix

If true, fragments will be sorted by a colon-delimited prefix in their content (after the normal sorting by reference), or by their first word if no colon is found in the text.

type

boolean

default

False

  • project_object

type

object

properties

  • project_name

Project Name

Used in the heading of the default template

type

string

  • base_url

Project base URL

Source code repo base URL, used by default template to construct links to issues and merge/pull requests

type

string

  • news_filename

Changelog file filename

Previous default was NEWS, hence the naming.

type

string

default

CHANGELOG.md

  • insert_point_pattern

Insert point pattern

Regex matching the line in your changelog file that we should insert before.

type

string

default

^## .*’

  • sections

Sections

type

object

additionalProperties

#/definitions/section_object

minProperties

1

  • template

changelog file release template

A path to a Jinja2 template to use when generating new changelog file updates. The default file is bundled with Proclamation itself.

type

string

default

base.md

  • extra_data

Extra Data

Any extra data you want to pass through to the template.

type

object