|
| 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