Documentation: list experimental features in manual#7798
Documentation: list experimental features in manual#7798edolstra merged 14 commits intoNixOS:masterfrom
Conversation
b226aca to
0a04bdb
Compare
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
f49084a to
0a04bdb
Compare
Lists all current experimental features in the `nix.conf` manual.
0a04bdb to
d1d1ae7
Compare
- Use struct not `std::pair`, designated initializers - Use `constexpr` array that we can index by enum tag - It no longer segfaults; not sure why.
Prior to this, there was an ad-hoc whitelist in `main.cc`. Now, every command states its stability. In a future PR, we will adjust the manual to take advantage of this new information in the JSON. (It will be easier to do that once we have some experimental feature docs to link too; see NixOS#5930 and NixOS#7798.)
Prior to this, there was an ad-hoc whitelist in `main.cc`. Now, every command states its stability. In a future PR, we will adjust the manual to take advantage of this new information in the JSON. (It will be easier to do that once we have some experimental feature docs to link too; see NixOS#5930 and NixOS#7798.)
Prior to this, there was an ad-hoc whitelist in `main.cc`. Now, every command states its stability. In a future PR, we will adjust the manual to take advantage of this new information in the JSON. (It will be easier to do that once we have some experimental feature docs to link too; see NixOS#5930 and NixOS#7798.)
Prior to this, there was an ad-hoc whitelist in `main.cc`. Now, every command states its stability. In a future PR, we will adjust the manual to take advantage of this new information in the JSON. (It will be easier to do that once we have some experimental feature docs to link too; see NixOS#5930 and NixOS#7798.)
fricklerhandwerk
left a comment
There was a problem hiding this comment.
Thanks a lot! This change is a great improvement on many levels:
- we finally get an full, automated overview of experimental features
- we get more documentation on what they are about
- the cross-linking exposes powerful new capabilities to users which would otherwise go unnoticed
Because I think this will have quite some impact, I'd prefer that we take the time to get the added information right. @peeley if implementing my suggestions feels like too much work for you, we can lift this to the @NixOS/documentation-team to get more eyes and hands on it. Would be great if we can move this forward and merge soon.
src/libutil/experimental-features.cc
Outdated
| derivation attribute to `true`. See [these release | ||
| notes](../release-notes/rl-2.8.md) for an example. |
There was a problem hiding this comment.
Please expand that information here. Release notes are not documentation, and it's a good occasion to lift that stuff to where it's visible for users.
Co-authored-by: Valentin Gagarin <[email protected]>
Instead of constructing a markdown list in C++ (which involved all sorts of nasty string literals), export some JSON and assemble it with the manual build system. Besides following the precedent set with other dumped data, this is a better separate of content and presentation; if we decide for example we want to display this information in a different way, or in a different section of the manual, it will become much easier to do so.
@fricklerhandwerk Thank you for the feedback! I've performed some of the requested revisions. For some of the more inscrutable features like |
fricklerhandwerk
left a comment
There was a problem hiding this comment.
Thanks a lot, that pushes the whole thing to the next level. Please consider the suggestions, trying to simplify things and keep potential confusion low.
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
8a6e354 to
c654e0a
Compare
Adds examples and additional information to the `impure-derivations`, `recursive-nix`, and `no-url-literals` experimental feature documentation.
c654e0a to
8a7790f
Compare
|
@peeley Sorry we've been half-commandeering your PR, but while we do it would be nice if no one force-pushes to it. We lost the last round of changes I did I believe unintentionally, for example. |
Co-authored-by: Valentin Gagarin <[email protected]>
They are put in the manual separate pages under the new overarching description of experimental features. The settings page just lists the valid experimental feature names (so people know what a valid setting entry looks like), with links to those pages. It doesn't attempt to describe each experimental feature as that is too much information for the configuration settings section.
|
(I merged master and cherry-picked the lost commits again, so we are all good now.) |
|
@Ericson2314 Ah, I'm sorry! Hadn't been keeping my local branch up to date, did not mean to lose history. |
|
All good, these things happen. |
As requested by @fricklerhandwerk.
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
Motivation
This PR updates
nix.confmanual page with a list of all current experimental features. Also adds a comment reminding future contributors to update the list of experimental commands in the docs when the list is changed.Context
Currently, the manual does not list what experimental features are available, and grepping through the source is the most direct method.
See #7368 for more info.
Checklist for maintainers
Maintainers: tick if completed or explain if not relevant
tests/**.shsrc/*/teststests/nixos/*