* 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>
* Initial nixos container commit because I want to view diffs between changes
* Updates / Improvements
* Note regarding static networking
* Updates
* update
* Update.
* Update.
* Update
Thanks Linus for the proof-read :)
* Update.
Mention that nixops container backend is also affected as pointed out by
fpletz.
* fixup! wording, spelling
* Move document according to assigned RFC number
* Linkify related issues
As it's done in https://github.com/NixOS/rfcs/blob/master/rfcs/0004-replace-unicode-quotes.md
* Bind-mounting Nix state isn't strictly needed
It's sufficient to have the store-paths available.
* Wording
Co-authored-by: Kevin Cox <kevincox@kevincox.ca>
* Clarify "default mode", remove a few unnecessary implementation details
* rfc108: add shepherds
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
* Apply wording suggestions from @lheckemann
Co-authored-by: Linus Heckemann <git@sphalerite.org>
* Usage of `nsenter` to update a container's configuration is not relevant for the RFC
* Rename `config` to `system-config` to avoid ambiguities in the module system
* Explicitly talk about deprecation of current implementation
Co-authored-by: Erik Arvstedt <erik.arvstedt@gmail.com>
Co-authored-by: Kevin Cox <kevincox@kevincox.ca>
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
Co-authored-by: Linus Heckemann <git@sphalerite.org>
* Initial draft "ret-cont" recursive Nix
* Fix typos and finish trailing sentance
* Switch to advocating temp store rather than daemon socket
Also:
- Allow fixed output builds (in that temp store)
- Clean up drawbacks and alternatives.
* ret-cont-recursive-nix: Fix typo
Thanks @siddharthist!
Co-Authored-By: Ericson2314 <git@JohnEricson.me>
* ret-cont-recursive-nix: Fix typo
Thanks @Mic92
Co-Authored-By: Ericson2314 <git@JohnEricson.me>
* ret-cont-recursive-nix: Fix typo
Thanks @globin
Co-Authored-By: Ericson2314 <git@JohnEricson.me>
* ret-cont-recursive-nix: Fix typo
Thanks @siddharthist!
Co-Authored-By: Ericson2314 <git@JohnEricson.me>
* ret-cont-recursive-nix: Clean up motivation, adding examples
* ret-cont-recursive-nix: Improve syntax highlighting
* Do a lousy job formalizing the detailed design
Break off some previously inline observations into their own subsection.
* ret-cont-recursive-nix: Mention `builtins.exec` in alternatives
* ret-cont-recursive-nix: Fix typo
Thanks @Mic92!
Co-Authored-By: Ericson2314 <git@JohnEricson.me>
* ret-cont-recursive-nix: Remove dangling "$o"
The later examples with `nix-instantiate` automatically get all the outputs of the final rewritten drv, so there's no output iteration needed. `"$o"` was mistakenly copied over from the earlier examples.
Thanks to @ocharles for asking me the question that led me to this. Hopefully this change answers that?
* Update rfcs/0000-ret-cont-recursive-nix.md
Co-Authored-By: Domen Kožar <domen@enlambda.com>
* ret-cont-recursive: Fix typo
about -> out
* ret-cont: Add examples and expand future work
* ret-cont: Fix syntax error
No `let`, so don't need `in`.
* ret-cont: Mention Ninja's upcomming `dyndep` and C++ oppertunity
* ret-cont: Fix missing explicit `outputs` and `__recursive`
This was in the "wrapper" derivation example.
* ret-cont: "caching builds" -> "caching evaluation"
We already cache builds just fine, thanks!
Thanks @globin for catching
* ret-cont: Improve formalism and reference #62
* drv-build-drv: Start drafting from old ret-cont-recursive-nix RFC
* drv-buiild-drv: WIP rewrite
* plan-dynamism: Rewrite RFC yet again
* plan-dynamism: Rename file accordingly
* plan-dynanism: Fix typo
Thanks @mweinelt.
* plan-dynanism: Fix formalism slightly
* Apply suggestions from code review
Thanks!
Co-authored-by: Rosario Pulella <Rosariopulella@gmail.com>
Co-authored-by: Ninjatrappeur <NinjaTrappeur@users.noreply.github.com>
* plan-dynamism: `Buildables` -> `DerivedPathsWithHints`
Thanks @sternenseemann for catching.
* plan-dynamism: Add semantics and examples for `!` syntax
* plan-dynamism: Too many dashes in `--derivation`
* plan-dynanism: Put pupose of text hashing before name
* Apply suggestions from code review
Co-authored-by: Ollie Charles <ollie@ocharles.org.uk>
* Apply suggestions from code review
Co-authored-by: Ollie Charles <ollie@ocharles.org.uk>
* Apply suggestions from code review
* Update rfcs/0000-plan-dynanism.md
* plan-dynanism: Fix bad sentence
Thanks @roberth!
* plan-dynamism: Number the two parts
* plan-dynamism: Rip out part 2
There is more to do I'm sure, but I wanted to get the ball rolling.
* plan-dynamism: New motivation
* plan-dynamism: Fix typo
Thanks @L-as
* TEMP PLES AMEND
* [RFC 0092] Rename file
* [RFC 0092] Fix YAML header
* [RFC 0092] Rewrite summary
* [RFC 0092] Add link to documentation
* [RFC 0092] Rewrite example section
* [RFC 0092] Small fix
* [RFC 0092] Rewrite drawbacks and alternatives
* [RFC 0092] Improve alternatives section
* [RFC 0092] Fix syntax error
* [RFC 0092] Small change
* [RFC 0092] Remove unnecessary file
* [RFC 0092] Add comment about IFD
* [RFC 0092] Fix typo
* Update rfcs/0092-plan-dynamism.md
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
* plan-dynamism-experiment: Make clear is experimental
* plan-dynamism-experiment: Fix typo
Thanks @L-as
Co-authored-by: Langston Barrett <langston.barrett@gmail.com>
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
Co-authored-by: Robin Gloster <mail@glob.in>
Co-authored-by: Domen Kožar <domen@enlambda.com>
Co-authored-by: Rosario Pulella <Rosariopulella@gmail.com>
Co-authored-by: Ninjatrappeur <NinjaTrappeur@users.noreply.github.com>
Co-authored-by: Ollie Charles <ollie@ocharles.org.uk>
Co-authored-by: Las Safin <me@las.rs>
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
* CAP RFC: First draft
* typo
* Apply @grahamc's suggestions
Co-Authored-By: Graham Christensen <graham@grahamc.com>
* nix code -> Nix expression
* Break-up the big introduction paragraph
As suggested in https://github.com/NixOS/rfcs/pull/62/files#r356694585
* Rename to match the PR number
* Rename the drv attribute to __contentAddressed
Makes it more in line with other "magic" attributes like
`__structuredAttributes`
Also fix the orthograph
* Mention the GC issue
* Remove the ambiguity on what an `output` is
* Replace aliases paths by a pathOf mapping
* Move the example after the design description
* Rephrase the design
In particular, replace `static` and `dynamic` by `symbolic` and
`resolved`
* Add shepherd team
* Rewrite the RFC to account for the RFC meeting comments
- Add the notion of `drvOutputId`
- Replace the alias paths by a `PathOf(drvOutputId)` function
- Mention the notion of "truster" in the `PathOf` function
* Add a section about leaking output paths
* Refine the design summary
* Rename dependency-addressed into input-addressed
And define the term at the begining of the RFC
* minor fixup after comments
* Apply suggestions from code review
Co-authored-by: asymmetric <lorenzo@mailbox.org>
Co-authored-by: Profpatsch <philip.patsch@tweag.io>
* Update rfcs/0062-content-addressed-paths.md
* Update the terminology to match the in the implementation
* Reword the detailed design presentation
* Quote some strings in the yaml frontmatter
* Add a design paragraph about the remote caching
And update the “unresolved questions” to take it into account
* Lift the determinism requirement
It's not required anymore by the current remote caching semantics
* Typo
Co-authored-by: davidak <davidak@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: davidak <davidak@users.noreply.github.com>
* Rewrite the RFC
This is mostly a full-rewrite of the RFC to
1. Make it more “incremental”: A first part just describes the minimal
model upon which everything is based, and a second one shows
different extensions of this model to add more features
2. Remove the big ugly examples that don’t add much value because they
aren’t really readable
3. Add a python pseudo-code pseudo-formalisation of the RFC.
This is imho both more readable and precise than nested bullet-points
of handwaved language
* Make the python samples a bit more pythonic
Co-authored-by: zseri <zseri.devel@ytrizja.de>
* Explicit that unresolved dependencies are eval-time
* Prettify
* Make the end-goal an experiment
Simplify the paperwork and just get this to FCP because right now it’s stuck in a hole
Co-authored-by: Théophane Hufschmitt <regnat@users.noreply.github.com>
Co-authored-by: Graham Christensen <graham@grahamc.com>
Co-authored-by: John Ericson <John.Ericson@Obsidian.Systems>
Co-authored-by: asymmetric <lorenzo@mailbox.org>
Co-authored-by: Profpatsch <philip.patsch@tweag.io>
Co-authored-by: Jörg Thalheim <Mic92@users.noreply.github.com>
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
Co-authored-by: davidak <davidak@users.noreply.github.com>
Co-authored-by: zseri <zseri.devel@ytrizja.de>
* Switch to CommonMark for documentation
This RFC proposes to convert the documentation for the Nix, Nixpkgs
and NixOS projects from Docbook to CommonMark Markdown. It proposes
requirements for web facing documentation. It does not mandate
a choice of toolchain to generate a website with documentation. The
choice is left to the implementers and maintainers.
* Update rfcs/0000-commonmark-docs.md
Co-authored-by: Profpatsch <mail@profpatsch.de>
* Update rfcs/0000-commonmark-docs.md
Co-authored-by: Frederik Rietdijk <freddyrietdijk@fridh.nl>
* Update rfcs/0000-commonmark-docs.md
Co-authored-by: davidak <davidak@users.noreply.github.com>
* Update rfcs/0000-commonmark-docs.md
Co-authored-by: davidak <davidak@users.noreply.github.com>
* Update rfcs/0000-commonmark-docs.md
Co-authored-by: Ryan Mulligan <ryan@ryantm.com>
* Add shepherd metadata
* Add shepherd metadata
* Allow CommonMark plus small number of extensions
The exact set of extensions used is left to the documentation team.
* Final adjustments
- Nix now already uses markdown
- Fix grammar mistake
- Remove requirement of extensions having to be supported by
at least 3 toolchains
- Add requirement for an extension for references
- Rename the file to its designated name
Co-authored-by: Profpatsch <mail@profpatsch.de>
Co-authored-by: Frederik Rietdijk <freddyrietdijk@fridh.nl>
Co-authored-by: davidak <davidak@users.noreply.github.com>
Co-authored-by: zimbatm <zimbatm@zimbatm.com>
Co-authored-by: Ryan Mulligan <ryan@ryantm.com>
Co-authored-by: Linus Heckemann <git@sphalerite.org>
Co-authored-by: Silvan Mosberger <contact@infinisil.com>