telestion-architecture

ADR-0002: Use custom ADR management tooling

Date: 2023-01-10

Status

Accepted

Amends ADR-0001: Record architecture decisions

Context

Management of ADRs in a way where it’s easy to maintain but also consistently formatted requires tooling.

There are several tooling solutions that exist, most prominently adr-tools.

However, the tooling consists of many files and is not easily integrated into a project. Additionally, it doesn’t provide out-of-the-box support for Windows users.

In addition, we prefer to have ADR names / IDs prefixed with ADR- to make it easier to distinguish them from other documents.

Decision

We will save our ADRs in the <repo root>/docs/adrs folder.

We will name our ADRs <number>-<title>.md, where <number> is a sequential number (padded with zeros to be four digits long) and <title> is a short, kebab-case title.

We will use the following format for ADRs (additional sections may be added as needed):

# ADR-<number>: <title>

Date: YYYY-MM-DD

## Status

<Proposed | Accepted | Deprecated>

<for each link:>
<Superseded by | Supersedes | Related to | Amends | Amended by | ...> [ADR-<number>: <title>](<filename>.md)

<end>

## Context

[...]

## Decision

[...]

## Consequences
    
[...]

We will add our own shell script for managing ADRs to the project that will provide the following functionality:

We will write the script in a POSIX-compliant shell script, and will provide a Windows batch file that will call the shell script.

We will exclusively use the script to manage ADRs, and will not use the adr-tools tooling.

Consequences

We will have to maintain our own tooling, but it will be easier to integrate into the project.

The formatting will be perfectly fitted to our wishes.