protokolo-compile¶
Synopsis¶
protokolo compile [options]
Description¶
protokolo compile aggregates the contents of a change log directory into a new section in a change log file. Afterwards, the fragment files in the change log directory are deleted.
The fragments are sorted alphabetically by file name stem, and section sorting is described in protokolo(1).
A change log directory should contain a .protokolo.toml file that defines
some attributes of the section. This is an example file:
[protokolo.section]
title = "${version} - ${date}"
level = 2
When the section is compiled, its heading may look like this:
## 1.0.0 - 2023-11-08
The heading is followed by the contents of files in the section’s directory, and subsections in subdirectories. If a section is empty (no change log fragments), it is not compiled.
The section is inserted into the change log after the line containing the first
instance of protokolo-section-tag. You typically want to comment that out.
The insertion always inserts two newlines at the start, effectively placing your
section two lines below protokolo-section-tag. An example change log file is
as follows:
# Change log
Some text describing your change log.
<!-- protokolo-section-tag -->
## 0.1.0 - 2023-10-25
The latest release.
The compilation of the change log directory makes sure that after each section,
there are at least two newlines before the next section heading or fragment.
Before each subsection there are also at least two newlines after the preceding
section heading or fragment. These newlines can overlap, and are indicated below
using ←. Newlines that belong to fragments are indicated using ↵.
# Top section←
←
## Subsection 1←
←
- A fragment.↵
- Another fragment.↵
←
## Subsection 2←
←
- Last fragment.↵
Fragments are inserted as-is without any modification, except a newline is appended at the end of a fragment if one was not present in the file.
Options with defaults¶
If the below options are not defined, they default to the corresponding options
in the .protokolo.toml global configuration file if one exists, or otherwise
their base defaults if they have one.
- -c, --changelog¶
Required. Path to the change log file into which to insert the compiled section.
- -d, --directory¶
Required. Path to the change log directory to compile.
- -m, --markup¶
Markup language to use. This determines how the headings are compiled and which files to search in the change log directory.
Other options¶
- -f, --format¶
Repeatable. This option takes two parameters; a key and a value. Identically named placeholders in titles defined in
.protokolo.tomlsection configuration files are substituted by the value.
- -n, --dry-run¶
Do not write anything to the file system. Instead, print the resulting change log to STDOUT.
- --help¶
Display help and exit.