Skip to content

Commit 22013dc

Browse files
committed
add (post)MORTEM
1 parent 2ddc825 commit 22013dc

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

‎(post)MORTEM.md‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
v: 0.1
2+
3+
A common fact that internet is dead. Only search crawlers (bots) and a plenty of inactive users is here (maybe).
4+
5+
Well this document is not about that.
6+
7+
Here i will explain why this project is even needed, why it came to be, and what i didn't like about other solutions.
8+
9+
This doc was written because i don't like publishing anywhere (and there's no point if the internet is dead), and also i like keeping this kind of documentation in the code repository.
10+
11+
---
12+
13+
Let's start with an introduction. Some background, i mean.
14+
15+
One day i needed to set up a new device, onto which I, as a matter of fact, rolled up LUKS.
16+
GRUB, as always, broke my cmdline, i couldn't boot, and in the end i simply removed it.
17+
18+
At first i tried using raw EFI entries. Overall, the result was ok.
19+
Later, i discovered UKI, i think on the Arch Wiki.
20+
21+
I rolled with it. Along the way i was migrating to chezmoi (dotm didn't exist back then).
22+
23+
At some point, the idea came to me to combine UKI and btrfs subvolumes into a single entity.
24+
That's how atomic-upgrade came to be.
25+
26+
Initially, an approach with hash sums in generation names was planned, but that idea was quickly discarded in favor of dates, because the hash-sum approach gave nothing (except headaches and poor readability).
27+
28+
Almost all iteration took place in chat with an LLM, because i have no one else to discuss technical ideas with.
29+
30+
The project itself grew inside a dotfiles repository, and later i moved it to a separate repository (about a month later, i think), when i found it more convenient to develop in a dedicated repo.
31+
After that, it grew tests and documentation.
32+
33+
Basically, nearly all the code is discussed with an LLM (sometimes different ones) in several iterations, and new features are tested manually after being covered with tests by the LLM.
34+
35+
So, at the end of the day, we have an entity consisting of:
36+
UKI
37+
a btrfs subvolume
38+
39+
This entity is managed by the main orchestrator and subprograms.
40+
41+
The entity manages the root layer. i don't use the "@" naming convention, because i find it misleading and hard for people to understand.
42+
The home subvolume layer, or other subvolumes, are not managed by the "atomic-upgrade" entity (except for tagged subvolumes with a special flag for experiments, but that functionality appeared later).
43+
44+
45+
This document will be expanded (maybe).
46+
47+
---
48+
49+
I know there are some grammar errors, will not fix cuz not a tech doc.
50+
51+
---
52+
53+
Explanation of the document's name:
54+
(post) - in parentheses, because the project is still alive
55+
MORTEM.md - signifies the project's liveliness
56+
57+
When the project dies (and it will, nothing lasts forever), this will turn into a real post-mortem.

0 commit comments

Comments
 (0)