* RFC 0125: Use an intermediary representation (bootspec) for bootloader backends
Bootspec is a set of memoized facts about a system's closure.
These facts are used as the primary input for bootloader backends like
systemd-boot and grub, for creating files in `/boot/loader/entries/`
and `grub.cfg`.
In this proposal we create a stable, comprehensive, and machine-parsable
definition of a NixOS Generation as an intermediate representation (IR)
between the NixOS system definition and the bootloader management tools.
* bootspec: relocate to $out/bootspec/boot.v1.json
* Clarify that this document describes bootspec v1
* Note that the filename must match the contained schemaVersion.
* Replace the specialisation's pointer to a bootspec with the full bootspec document
* Clarify the 'to interface with' bit
* Link to the bootspec implementation PR
* Note it is likely for bootloader backends to change their results slightly by integrating bootspec
* Relocate to $out/boot.json, top-level key of specification version
* Fix nits from code review
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
Co-authored-by: Linus Heckemann <git@sphalerite.org>
* 0125-bootspec: add the shepherd team and leader
Co-authored-by: Kevin Cox <kevincox@kevincox.ca>
* 0125-bootspec: initrd is optional, add system, extensions, clarify the meaning of optional
* PR: address comments (1)
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
* PR: address comments (2)
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
* Update RFC text with changes agreed on with RaitoBezarius
---------
Co-authored-by: Cole Helbling <cole.helbling@determinate.systems>
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
Co-authored-by: Linus Heckemann <git@sphalerite.org>
Co-authored-by: Kevin Cox <kevincox@kevincox.ca>
Co-authored-by: Raito Bezarius <masterancpp@gmail.com>
The main sections are largely copy+pasted from the RFC text itself. Minor modifications were made to integrate into the existing document.
- Change to future tense to reflect what actions will be taken in each scenario.
- Fix up some links to be relative to this document.
- Update template message to be a codeblock for easy copy+pasting when used.
* nix-store-layer: Copy template
* nix-store-layer: First draft
* nix-store-layer: pluralism -> marketplace of ideas
Thanks @fricklerhandwerk for the suggestion.
* nix-store-layer: Tweak Tvix and go-nix section
* nix-store-layer: Make Store team future work
* nix-store-layer: Start tidying Guix section
* nix-store-layer: Boild down Guix section further
Implementation discussion is unneeded for now.
* nix-store-layer: Make incrementality of design clear
Do this by putting the steps in order with numbers, and showing how the
hardest part can come last.
Thanks @fricklerhandwerk for the suggestion.
* nix-store-layer: Give RFC number
* nix-store-layer: Fix typo
Meaning was reversed!
* Update rfcs/0134-nix-store-layer.md
Thanks!
Co-authored-by: Tor Bjornrud <bjornrud@users.noreply.github.com>
* nix-store-layer: Fix typo
Thanks!
Co-authored-by: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>
* Apply suggestions from code review
Thanks so much!!!
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
* Apply suggestions from code review
Thanks @fricklerhandwerk, just tweaked a few things from your suggestions to make these.
* nix-store-layer: Cut stabilization in future work down
Can just refer to https://github.com/NixOS/rfcs/pull/136 now.
* Apply suggestions from code review
Co-authored-by: Linus Heckemann <git@sphalerite.org>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
* 134: We have a shepherd team!
Co-authored-by: Linus Heckemann <git@sphalerite.org>
* 134: Move manual and store-specific tests to future work
As discussed in today's meeting.
* 134: Alt name moved to future work
---------
Co-authored-by: Tor Bjornrud <bjornrud@users.noreply.github.com>
Co-authored-by: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>
Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
Co-authored-by: Linus Heckemann <git@sphalerite.org>