!avYyleMexqjFHoqrME:nixos.org

Nix Documentation

419 Members
Discussion about documentation improvements around the Nix ecosystem88 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
5 Feb 2024
@sandro:supersandro.deSandro 🐧Someone can have a loom at https://github.com/NixOS/nixpkgs/pull/252091 ?18:11:31
@ThorHop:matrix.org@ThorHop:matrix.org removed their profile picture.22:45:09
@ThorHop:matrix.org@ThorHop:matrix.org removed their display name IdeallyYes.22:46:17
@ThorHop:matrix.org@ThorHop:matrix.org left the room.22:46:55
6 Feb 2024
@fractivore:cyberia.club@fractivore:cyberia.club So I decided to just start going through nix.dev in order and see if anything jumped out at me as worth diagramming. The nix-shell environment occurred to me when nix-shell came up early on. So, I attempted to diagram a little more detail of "what is happening". I was wondering if somebody could check my diagram for accuracy, and suggest improvements as to its accuracy. You can view the diagram in the mermaid live-editor here: https://mermaid.live/edit#pako:eNqtll9r2zAQwL_Kzd2jzdK9DPww2JZCH7YySBgMDJssnRpRWTKSHCd0_e6TZSe2Ezul3QiYWNb97v9JjxHVDKM0ypR1xOFSkHtDimT7PlNMGKROaAXrz5nKFKF0LZzEFO7ELrEblBIo8Q_ckaKUCHZvHRaJxC1KYC0piC3RUpPCShcIDB0REjQHAurIkUiMEur-wIqBWL8h2NSjmh8AUEmsXSLvFK4CgQsp06vFgl_HXCuX1CjuNy7NtWSxdUY_YFIL5jbpdbnrFtJcEvpwgqxyoysnFLZEuGKcLzi-hOHd-q82OTSFUKTjhQ0x1VKb9Ip9wAXnL6b3_KOxN2orjFYFKndcm9zmzH51DFLcf9gJ168P4jiAdAn72hTImdJBMgcipcFWZVMJ8aE87jqlX3RREMVioNrWZH98LbV1waBQP4f4dX6PmZAkHy_Z1YpM6w2yM5Fp5WY-ngieKJtKyUhgFOpW5lJkG9lRRA6BaNsri1ZBGLqW7nwrjS5KB6QmwoXObFzIoqYxRwH8R9TYrnNUN07auggil1x9PLg2BP3UFZhKpfC7HzhJ2dUMSC0pcb9b9kyee-Y5vWcGt4aV740J1Lkq6GFDIMMSFUNFBdpmTnZ2Nna0tkJeCekuoqfJOIjUlhhBculVWHwN6-1qvby5-_Hr-6f17TuPqEqwujIU2StgIX63Wj-EAwV9Bwv-Arumkn5MyyljVCxDY8Zvo4nybPtNM84LkOra-lzeeoyOm3P0DfwZV-BI73M49KZMy01LDmrVSw5LdRyk8SyfyRk68D1o9m7T9HTuDxZwGja6Bo-uPS5Hrg02poajfS4jJ-GcC2j_76n92z6fojgq_IAngvlrTEhpFrkNFt6nNHQTJ1XTLZlqtpLK6dVe0Sh1psI4qkrWX3uilBNp_Soy4bT51l6Nwg3p6S-2Tiw- 03:01:02
@fractivore:cyberia.club@fractivore:cyberia.clubThe diagram is supposed to go with: https://nix.dev/tutorials/first-steps/ad-hoc-shell-environments03:01:35
@fractivore:cyberia.club@fractivore:cyberia.clubmermaid-diagram-2024-02-05-222724.png
Download mermaid-diagram-2024-02-05-222724.png
04:28:24
@danielsidhion:nixos.devdanielsidhion
In reply to @fractivore:cyberia.club
So I decided to just start going through nix.dev in order and see if anything jumped out at me as worth diagramming. The nix-shell environment occurred to me when nix-shell came up early on. So, I attempted to diagram a little more detail of "what is happening". I was wondering if somebody could check my diagram for accuracy, and suggest improvements as to its accuracy. You can view the diagram in the mermaid live-editor here: https://mermaid.live/edit#pako:eNqtll9r2zAQwL_Kzd2jzdK9DPww2JZCH7YySBgMDJssnRpRWTKSHCd0_e6TZSe2Ezul3QiYWNb97v9JjxHVDKM0ypR1xOFSkHtDimT7PlNMGKROaAXrz5nKFKF0LZzEFO7ELrEblBIo8Q_ckaKUCHZvHRaJxC1KYC0piC3RUpPCShcIDB0REjQHAurIkUiMEur-wIqBWL8h2NSjmh8AUEmsXSLvFK4CgQsp06vFgl_HXCuX1CjuNy7NtWSxdUY_YFIL5jbpdbnrFtJcEvpwgqxyoysnFLZEuGKcLzi-hOHd-q82OTSFUKTjhQ0x1VKb9Ip9wAXnL6b3_KOxN2orjFYFKndcm9zmzH51DFLcf9gJ168P4jiAdAn72hTImdJBMgcipcFWZVMJ8aE87jqlX3RREMVioNrWZH98LbV1waBQP4f4dX6PmZAkHy_Z1YpM6w2yM5Fp5WY-ngieKJtKyUhgFOpW5lJkG9lRRA6BaNsri1ZBGLqW7nwrjS5KB6QmwoXObFzIoqYxRwH8R9TYrnNUN07auggil1x9PLg2BP3UFZhKpfC7HzhJ2dUMSC0pcb9b9kyee-Y5vWcGt4aV740J1Lkq6GFDIMMSFUNFBdpmTnZ2Nna0tkJeCekuoqfJOIjUlhhBculVWHwN6-1qvby5-_Hr-6f17TuPqEqwujIU2StgIX63Wj-EAwV9Bwv-Arumkn5MyyljVCxDY8Zvo4nybPtNM84LkOra-lzeeoyOm3P0DfwZV-BI73M49KZMy01LDmrVSw5LdRyk8SyfyRk68D1o9m7T9HTuDxZwGja6Bo-uPS5Hrg02poajfS4jJ-GcC2j_76n92z6fojgq_IAngvlrTEhpFrkNFt6nNHQTJ1XTLZlqtpLK6dVe0Sh1psI4qkrWX3uilBNp_Soy4bT51l6Nwg3p6S-2Tiw-
You need to define more styles if you want to ensure all colors will match on all cases. On the live editor if you switch to the dark theme (the default that my browser uses) you'll see the text color doesn't work well with some of the backgrounds.
Regarding the technical bits: there is no "exit subroutine" that sets things back. nix-shell is an entirely new shell on top of whatever shell you ran nix-shell ... on, so exiting is really just ending the nix-shell process, and then you'll be back on your original shell.
More generally: I think adding diagrams to tutorials won't be productive, because a tutorial is meant to be more like a "step by step" thing rather than "what is happening" thing. There are definitely exceptions though, especially with more complex topics.
I did a very quick look at the pages in the "tutorials" section on nix.dev again, and I think the pages that aren't on the "first steps" subsection are good targets for some diagrams.
11:22:25
@danielsidhion:nixos.devdanielsidhionAlso on the technical bits: the "nix-shell entry subroutine" box should ideally be inside the "nix-shell" box11:24:04
@infinisil:matrix.orginfinisil symys I tend to agree with danielsidhion that nix-shell isn't that good of a fit. It could work a bit better if the boxes represent forked processes, though that would be a very simple diagram. 11:39:48
@infinisil:matrix.orginfinisil symys Looking through nix.dev myself, I can see potential for the [cross compilation](https://nix.dev/tutorials/cross-compilation) page to have a diagram for the difference between the platforms 11:41:05
@infinisil:matrix.orginfinisil Could even include how Nix evaluation and remote building ties into that 11:43:30
@infinisil:matrix.orginfinisil It's not done yet, but the [thunks tutorial](https://github.com/NixOS/nix.dev/pull/824) could really use diagrams. Haskell has an entire package for visualising thunks in practise even: https://dennis.felsing.org/ghc-vis/ 11:50:22
@fractivore:cyberia.club@fractivore:cyberia.clubThanks for the feedback!12:44:28
@fractivore:cyberia.club@fractivore:cyberia.club
In reply to @infinisil:matrix.org
symys I tend to agree with danielsidhion that nix-shell isn't that good of a fit. It could work a bit better if the boxes represent forked processes, though that would be a very simple diagram.
I think its okay if a diagram is really simple, "obvious" even as long as it's accurate and the reader knows it.
13:06:57
@qyriad:matrix.org@qyriad:matrix.org I tend to agree, but there is a limit to how simple is still worth showing 13:08:05
@fractivore:cyberia.club@fractivore:cyberia.clubFolks can probably guess it due to the way this convos started but I am a huge fan of diagrams and graphs 😁13:08:05
@dmills27:matrix.orgDominic MillsGreetings everyone, Season of Docs opened up their applications on the 2nd of February. I wanted to check with you guys if you're fine with me coordinating this activity for the NixOS Foundation? I have previously successfully managed a prior Season of Docs participant in 2022 (see 'Talawa' in https://developers.google.com/season-of-docs/docs/2022/participants). If everyone agrees, I can draft a CFP in the following days that details the strategies we could use for this edition of the programme. 13:11:15
@danielsidhion:nixos.devdanielsidhionI think simple diagrams are fine as long as they belong in a page intended to explain things and improve content overall13:12:22
@fractivore:cyberia.club@fractivore:cyberia.club
In reply to @dmills27:matrix.org
Greetings everyone,

Season of Docs opened up their applications on the 2nd of February. I wanted to check with you guys if you're fine with me coordinating this activity for the NixOS Foundation? I have previously successfully managed a prior Season of Docs participant in 2022 (see 'Talawa' in https://developers.google.com/season-of-docs/docs/2022/participants). If everyone agrees, I can draft a CFP in the following days that details the strategies we could use for this edition of the programme.
Erm, whatever it's worth, I am 100% fine with that πŸ˜† ( the emoji is because I'm a noob, and while my opinion is still valid, there is truly very little weight to my opinion in this situation )
13:22:50
@fractivore:cyberia.club@fractivore:cyberia.club
In reply to @danielsidhion:nixos.dev
Also on the technical bits: the "nix-shell entry subroutine" box should ideally be inside the "nix-shell" box
Huge thanks. Would you be willing to elaborate more on the details of nix-shell as a process, and/or know where I can read more about it? I've had a tough time finding the source code! It's not really discoverable in the same way nixpkgs source is (it's not in nixpkgs....? right?) , and it's also not a very easy thing to search for, due to the huge amount of ambiguity (nix shell vs nix-shell vs Now open up a shell and install nix...).
13:40:05
@fractivore:cyberia.club@fractivore:cyberia.clubI read the manual, but it's a manual - intended for usage rather than understanding.13:41:11
@qyriad:matrix.org@qyriad:matrix.orgIt's not in Nixpkgs, confusingly it's in NixOS/nix/src/nix-build/nix-build.cc https://github.com/NixOS/nix/blob/master/src/nix-build/nix-build.cc13:43:17
@fractivore:cyberia.club@fractivore:cyberia.club
In reply to @infinisil:matrix.org
It's not done yet, but the [thunks tutorial](https://github.com/NixOS/nix.dev/pull/824) could really use diagrams. Haskell has an entire package for visualising thunks in practise even: https://dennis.felsing.org/ghc-vis/
This is a completely new concept to me (thunks) , so I'll need to do some reading first, but thanks for the direction.
15:01:35
@danielsidhion:nixos.devdanielsidhion
In reply to @fractivore:cyberia.club
Huge thanks. Would you be willing to elaborate more on the details of nix-shell as a process, and/or know where I can read more about it? I've had a tough time finding the source code! It's not really discoverable in the same way nixpkgs source is (it's not in nixpkgs....? right?) , and it's also not a very easy thing to search for, due to the huge amount of ambiguity (nix shell vs nix-shell vs Now open up a shell and install nix...).
Aside from the source code already provided, I don't have any specific resources to link to. The concept of a shell and processes are more generic and not particular to nix, so to learn more about those, you'll have to learn a bit about operating systems. nix-shell is mostly just a regular shell with some extra stuff on top as you detailed in your diagram
15:49:09
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @qyriad:matrix.org
It's not in Nixpkgs, confusingly it's in NixOS/nix/src/nix-build/nix-build.cc https://github.com/NixOS/nix/blob/master/src/nix-build/nix-build.cc
symys: Not only is it confusing - the flagship feature we put on the front page is a really ugly wart architecturally. Maybe the ugliest. We’re still discussing how to maneuver away from it and still provide the same or better level of convenience and maintainability, but it requires pulling on multiple ends of the problem to get done. I recommend not to sweat it and focus on more pressing issues, namely those large areas that are not properly documented at all.
16:24:16
@fricklerhandwerk:matrix.orgfricklerhandwerk Which is to say: nix-shell is well-understood at the surface and has enough reference documentation to get quite far. The sharp edges and thorny problems are somewhere else. 16:26:57
@fractivore:cyberia.club@fractivore:cyberia.clubMaybe, but also keep in mind that I came to this diagram through an organic process of reading through the doc as a learner and reflecting on what wasn't quite clear to me. 16:35:58
@fractivore:cyberia.club@fractivore:cyberia.clubLooking over everything I could find on my own about nix-shell, in fact16:36:30

Show newer messages


Back to Room ListRoom Version: 6