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 |
|||
|
type |
array |
|
items |
#/definitions/project_object |
||
minItems |
1 |
||
definitions |
|||
|
Section |
||
A section contains changelog fragments. The key associated with the section is the section name. |
|||
type |
object |
||
properties |
|||
|
Fragment Directory |
||
Relative path to directory with changelog fragments |
|||
type |
string |
||
|
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 |
||
|
type |
object |
|
properties |
|||
|
Project Name |
||
Used in the heading of the default template |
|||
type |
string |
||
|
Project base URL |
||
Source code repo base URL, used by default template to construct links to issues and merge/pull requests |
|||
type |
string |
||
|
Changelog file filename |
||
Previous default was NEWS, hence the naming. |
|||
type |
string |
||
default |
CHANGELOG.md |
||
|
Insert point pattern |
||
Regex matching the line in your changelog file that we should insert before. |
|||
type |
string |
||
default |
^## .*’ |
||
|
Sections |
||
type |
object |
||
additionalProperties |
#/definitions/section_object |
||
minProperties |
1 |
||
|
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 |
||
Any extra data you want to pass through to the template. |
|||
type |
object |