Skip to content

Commit 12f8cfa

Browse files
committed
add readme
0 parents  commit 12f8cfa

File tree

3 files changed

+137
-0
lines changed

3 files changed

+137
-0
lines changed

.pre-commit-config.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# See https://pre-commit.com for more information
2+
# See https://pre-commit.com/hooks.html for more hooks
3+
4+
repos:
5+
- repo: https://github.com/jackdewinter/pymarkdown
6+
rev: v0.9.11
7+
hooks:
8+
- id: pymarkdown
9+
args:
10+
- -d line-length,no-bare-urls,no-duplicate-heading,no-duplicate-header
11+
- scan

README.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Decision Records
2+
3+
This repository is intended as a place to collect architectural / technical decisions.
4+
5+
Those may be in the form of "Any Decision Records" (ADR), protocols or images.
6+
Images must be accompanied by a text file with a matching name that explains its context, references etc.
7+
8+
Please be aware that the information here is public and that this repository may be synchronized to Github.
9+
10+
For records about internal decisions see the private repository [univention/internal/decision-records](https://git.knut.univention.de/univention/internal/decision-records).
11+
12+
## Directory structure
13+
14+
- Top level directories should be products or concerns, not teams.
15+
- Cross-cutting concerns (e.g. logging, security, deployment) may be found at higher levels than affected software.
16+
- Please do not add more than one level of subdirectories.
17+
18+
## Editing
19+
20+
- For new ADRs, please use [`adr-template.md`](adr-template.md) as basis.
21+
- We are implementing ADR in the form of [Markdown Any Decision Records (MADR)](https://adr.github.io/madr/).
22+
- Please use Markdown files and a format that renders well in Gitlab: [CommonMark](https://commonmark.org/help/) or [GitLab Flavored Markdown](https://docs.gitlab.com/ee/user/markdown.html).
23+
- A well established process for adding an ADR is:
24+
- Create a branch.
25+
- Copy the [template](adr-template.md).
26+
- Adapt the contents. In the metadata at the top set `status: proposed`.
27+
- Create a merge request (MR) and invite your team via email and in the daily to comment on the MR.
28+
- When all discussion threads are resolved (or nobody has commented for a week), send an email with a deadline.
29+
- When the deadline expires without a veto the ADR is `status: accepted` and you can merge the branch into `main`.
30+
31+
---
32+
33+
Please install `pre-commit` before committing to this repository:
34+
35+
```shell
36+
pip install pre-commit
37+
pre-commit install --install-hooks
38+
pre-commit run -a
39+
```

adr-template.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
2+
# {short title of solved problem and solution}
3+
4+
---
5+
<!-- These are optional elements. Feel free to remove any of them. -->
6+
7+
- status: {proposed | rejected | accepted | deprecated | … | superseded by [ADR-0005](0005-example.md)}
8+
- date: {YYYY-MM-DD when the decision was last updated}
9+
- deciders: {list everyone involved in the decision}
10+
- consulted: {list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication}
11+
- informed: {list everyone who is kept up-to-date on progress; and with whom there is a one-way communication}
12+
13+
---
14+
15+
## Context and Problem Statement
16+
17+
{Describe the context and problem statement, e.g., in free form using two to three sentences or in the form of an illustrative story.
18+
You may want to articulate the problem in form of a question and add links to collaboration boards or issue management systems.}
19+
20+
## Decision Drivers
21+
22+
<!-- This is an optional element. Feel free to remove. -->
23+
24+
- {decision driver 1, e.g., a force, facing concern, …}
25+
- {decision driver 2, e.g., a force, facing concern, …}
26+
-<!-- numbers of drivers can vary -->
27+
28+
## Considered Options
29+
30+
- {title of option 1}
31+
- {title of option 2}
32+
- {title of option 3}
33+
-<!-- numbers of options can vary -->
34+
35+
## Decision Outcome
36+
37+
Chosen option: "{title of option 1}", because
38+
{justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
39+
40+
### Consequences
41+
42+
<!-- This is an optional element. Feel free to remove. -->
43+
44+
- Good, because {positive consequence, e.g., improvement of one or more desired qualities, …}
45+
- Bad, because {negative consequence, e.g., compromising one or more desired qualities, …}
46+
-<!-- numbers of consequences can vary -->
47+
48+
### Confirmation
49+
50+
{Describe how the implementation of/compliance with the ADR is confirmed. E.g., by a review or an ArchUnit test.
51+
Although we classify this element as optional, it is included in most ADRs.}
52+
53+
## Pros and Cons of the Options
54+
55+
<!-- This is an optional element. Feel free to remove. -->
56+
57+
### {title of option 1}
58+
59+
<!-- This is an optional element. Feel free to remove. -->
60+
61+
{example | description | pointer to more information | …}
62+
63+
- Good, because {argument a}
64+
- Good, because {argument b}
65+
- Neutral, because {argument c} <!-- use "neutral" if the given argument weights neither for good nor bad -->
66+
- Bad, because {argument d}
67+
-<!-- numbers of pros and cons can vary -->
68+
69+
### {title of other option}
70+
71+
{example | description | pointer to more information | …}
72+
73+
- Good, because {argument a}
74+
- Good, because {argument b}
75+
- Neutral, because {argument c}
76+
- Bad, because {argument d}
77+
-
78+
79+
## More Information
80+
81+
<!-- This is an optional element. Feel free to remove. -->
82+
83+
{You might want to provide additional evidence/confidence for the decision outcome here and/or
84+
document the team agreement on the decision and/or
85+
define when this decision when and how the decision should be realized and if/when it should be re-visited and/or
86+
how the decision is validated.
87+
Links to other decisions and resources might appear here as well.}

0 commit comments

Comments
 (0)