Add basic ADR doc setup and first LVM ADR

This commit introduces Architectural Decision Records. To quote:

> Architectural Decision Records (ADRs)
>
> An Architectural Decision (AD) is a software design choice that
> addresses a functional or non-functional requirement that is
> architecturally significant. An Architecturally Significant
> Requirement (ASR) is a requirement that has a measurable effect on a
> software system’s architecture and quality. An Architectural Decision
> Record (ADR) captures a single AD, such as often done when writing
> personal notes or meeting minutes; the collection of ADRs created
> and maintained in a project constitute its decision log. All these
> are within the topic of Architectural Knowledge Management (AKM), but
> ADR usage can be extended to design and other decisions (“any
> decision record”).

Taken from https://adr.github.io/

This commit also adds the first ADR; both as an example as well as a
serious proposal. This ADR is a product of discussions around
encrypted swap, hibernation, onboarding of new devices, and fragmentation.
This commit is contained in:
Benjamin Bädorf 2022-10-29 22:07:49 +02:00
parent e26ffd2725
commit 6fca77a69f
No known key found for this signature in database
GPG key ID: 4406E80E13CD656C
3 changed files with 43 additions and 0 deletions

13
doc/adr/01-lvm.md Normal file
View file

@ -0,0 +1,13 @@
# PubSolarOS ADR 01: LVM on luks as default for drive management
In the context of drive mounting and disk partitioning,
facing a fragmented ecosystem,
we decided for LVM on luks with encrypted swap as the assumed default installation type,
and neglected luks on LVM, unencrypted installs, or non-LVM install methods,
to achieve a streamlined and opiniated nix config, an increased flexibility in partitioning, and more secure defaults,.
accepting a more laborious setup.

3
doc/adr/README.md Normal file
View file

@ -0,0 +1,3 @@
# Architectural Decision Records
**For an explanation of ADR, see https://adr.github.io/**

27
doc/adr/TEMPLATE.md Normal file
View file

@ -0,0 +1,27 @@
# Long form
In the context of <use case/user story u>,
facing <concern c>
we decided for <option o>
and neglected <other options>,
to achieve <system qualities/desired consequences>,
accepting <downside d/undesired consequences>,
because <additional rationale>.
# Short form
In the context of <use case/user story u>,
facing <concern c>
we decided for <option o>
to achieve <quality q>,
accepting <downside d>.