!avYyleMexqjFHoqrME:nixos.org

Nix Documentation

418 Members
Discussion about documentation improvements around the Nix ecosystem86 Servers

Load older messages


SenderMessageTime
18 Dec 2023
@tejing:matrix.org@tejing:matrix.orgI'll also mention this tidbit here in case others find it a little useful: We talk about the relationship between how nix manages files and how programming languages deal with pointers, but for some reason when it comes to explaining why we avoid well-known paths, nobody seems to make the comparison to avoiding global variables05:31:58
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @tejing:matrix.org
I'll also mention this tidbit here in case others find it a little useful: We talk about the relationship between how nix manages files and how programming languages deal with pointers, but for some reason when it comes to explaining why we avoid well-known paths, nobody seems to make the comparison to avoiding global variables

Could it be, to some extent, because Nix's current tooling relies fairly heavily on things like environment variables?

I'm reminded of nix-shell/nix develop

05:36:53
@bzzm3r:matrix.org@bzzm3r:matrix.orgBut overall, that way of using Nix to explain things to beginners is super under-used.05:37:24
@bzzm3r:matrix.org@bzzm3r:matrix.org * But overall, that way of using Nix to explain things to beginners is under-used (and therefore has a lot of opportunity).05:38:12
@olafklingt:matrix.org@olafklingt:matrix.org
In reply to @bzzm3r:matrix.org

Maybe? Not sure. I can't help but think I lost the thread while writing that message, and therefore, readers would have too. But if I were to try again, much more succinctly:

  1. Automation is useful, and important, especially given the context we are in. Nix has peculiarities which make it difficult to document semi-automatically. Should these peculiarities be addressed directly first? Or should we "accept reality as it is", and merely paper over Nix?

  2. For a beginner (speaking as a beginner), learning Nix is especially difficult not because the Nix docs don't have good SEO, or because there isn't enough documentation. It's because there is a ton of noise; some of it quite purposeful/intentional.

I think most of the noise is not intentional. The difficult part of improving the documentation is not to add content but to make it more concise. So i basically agree with your observations.
08:05:12
@fricklerhandwerk:matrix.orgfricklerhandwerk And the reason we're circling around these issues are embedded in bzm3r's long introduction that started this exchange: as a group of developers working on the ecosystem, we lack focus and direction, and this is in part because there are so many rabbit holes. There are more problems to solve than hours available, and each of them is large enough to get frustrated and switch to something else. Therefore everything is notoriously unfinished. 08:05:59
@olafklingt:matrix.org@olafklingt:matrix.org
In reply to @olafklingt:matrix.org
I think most of the noise is not intentional. The difficult part of improving the documentation is not to add content but to make it more concise. So i basically agree with your observations.
While i was pondering on what i could recommend bzm3r: i realized that it might be not easy for beginners to take up the task of making things more concise. (I for example where not able yet to do so). ... maybe it still makes sense to pickup one topic and document it with a clear objective. So that others can find the things that can be reduced because of new tutorial/guide/....
08:29:23
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @olafklingt:matrix.org
I think most of the noise is not intentional. The difficult part of improving the documentation is not to add content but to make it more concise. So i basically agree with your observations.
Just to be clear, I'm not talking about the intentional obfuscation being due to the nix docs or devs.
09:27:46
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @olafklingt:matrix.org
I think most of the noise is not intentional. The difficult part of improving the documentation is not to add content but to make it more concise. So i basically agree with your observations.
* Just to be clear, I'm not talking about the intentional obfuscation being due to the nix documentaiton devs.
09:27:58
@bzzm3r:matrix.org@bzzm3r:matrix.orgBut there is enough of an effort to delegitimize the current official docs (because they do not cover flakes, and because they refer to flakes as experimental features), that most newcomers (myself included) 09:29:47
@bzzm3r:matrix.org@bzzm3r:matrix.org * But there is enough of an effort to delegitimize the current official docs (because they do not cover flakes, and because they refer to flakes as experimental features), that most newcomers (myself included) did not realize that flakes were entirely optional instead, we saw the docs as entirely outdated09:31:18
@olafklingt:matrix.org@olafklingt:matrix.org
In reply to @bzzm3r:matrix.org

But there is enough of an effort to delegitimize the current official docs (because they do not cover flakes, and because they refer to flakes as experimental features), that most newcomers (myself included) did not realize that flakes were entirely optional

instead, we saw the docs as entirely outdated

I for myself decided to see it this not worth to deal with. It is something one has to live with in a world with multiple opinions and unequal distribution of power.

Obviously it's unfortunate.

09:49:52
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @fricklerhandwerk:matrix.org
And the reason we're circling around these issues are embedded in bzm3r's long introduction that started this exchange: as a group of developers working on the ecosystem, we lack focus and direction, and this is in part because there are so many rabbit holes. There are more problems to solve than hours available, and each of them is large enough to get frustrated and switch to something else. Therefore everything is notoriously unfinished.

Suppose you were to put on an imaginary despot's hat. Where would you direct efforts?

Would it still be on documentation?

If yes, then in that case, I found this recently: https://github.com/orgs/NixOS/projects/15/views/1

How can I find someone willing to prioritize tasks for me by assigning them to me? Could you do so?

09:50:44
@bzzm3r:matrix.org@bzzm3r:matrix.org(I can make decisions based on my own sensibilities, of course, and am willing to do so if that is preferred.)10:00:07
@bzzm3r:matrix.org@bzzm3r:matrix.org Some things are confusing. For instance, this is marked no status, but has a draft PR in play. 10:06:15
@bzzm3r:matrix.org@bzzm3r:matrix.org Also, this and this ought to be on the project board. 10:10:58
@bzzm3r:matrix.org@bzzm3r:matrix.orgIs the project board meant to be used, or was it just an experiment that has fallen out of favour?10:11:46
@bzzm3r:matrix.org@bzzm3r:matrix.orgOh, I just ran into this today: https://github.com/NixOS/nix/issues/798110:20:05
@bzzm3r:matrix.org@bzzm3r:matrix.orgSo, that's something I definitely can do. 10:20:21
@bzzm3r:matrix.org@bzzm3r:matrix.orgOr...should I just re-write the nix-build CLI? 🤔10:20:46
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
Oh, I just ran into this today: https://github.com/NixOS/nix/issues/7981
That's a good one, it should be fairly limited in scope.
12:12:35
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
Or...should I just re-write the nix-build CLI? 🤔
Please don't do that to yourself
12:13:03
@fricklerhandwerk:matrix.orgfricklerhandwerk
In reply to @bzzm3r:matrix.org
Is the project board meant to be used, or was it just an experiment that has fallen out of favour?

It is meant to be used, but given the very limited amount of time we have, we usually prioritise group reviews to get things merged that have happened in between meetings.

We should probably have a formalised meeting agenda that gives the board a couple of minutes of attention.

12:16:54
@fricklerhandwerk:matrix.orgfricklerhandwerkOne practical problem I've observed in the Nix maintainer team, where we have a very formalised meeting structure and in fact curate the board very nicely, is that the process nudges us to delegate tasks we don't actually have time to follow through with. So the tail end of the pipeline is broken due to limited capacity and the challenges to estimate workload. The front end works fairly well though, because we do triaging to determine whether something fits current priorities and direction, or make design decisions to help produce sustainable solutions. Some contributors follow up, many don't, due to lack of time to actually finish tasks that very often blow up in size once you take a close look at them. We have the exact same problem in documentation, except we stopped assigning tasks as we were all fully booked at some point. And since contributions tend to be either very small or very large, triaging doesn't seem to serve much of a purpose. We should probably try to find some middle ground, to really get an up-to-date grasp on who's currently working on what, how complex a given task is (and which rabbit holes it uncovers), which resources are available to finish it, etc. -- simply to know what to focus the effort on getting over the finish line.12:24:50
@fricklerhandwerk:matrix.orgfricklerhandwerk * One practical problem I've observed in the Nix maintainer team, where we have a very formalised meeting structure and in fact curate the board very nicely, is that the process nudges us to delegate tasks we don't actually have time to follow through with. So the tail end of the pipeline is broken due to limited capacity and the challenges to estimate workload. The front end works fairly well though, because we do triaging to determine whether something fits current priorities and direction, or make design decisions to help produce sustainable solutions. Some contributors follow up, many don't, due to lack of time to actually finish tasks that very often blow up in size once you take a close look at them. We have the exact same problem in documentation, except we stopped assigning tasks as we were all fully booked at some point. And since contributions tend to be either very small or very large, triaging doesn't seem to serve much of a purpose. We should probably try to find some middle ground, to really get an up-to-date grasp on who's currently working on what, how complex a given task is (and which rabbit holes it uncovers), which resources are available to finish it, etc. -- simply to know what to focus the effort on to get it over the finish line.12:25:09
@fricklerhandwerk:matrix.orgfricklerhandwerkAnd then aggressively push to finish whatever was started and is still in active progress...12:26:38
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @fricklerhandwerk:matrix.org
One practical problem I've observed in the Nix maintainer team, where we have a very formalised meeting structure and in fact curate the board very nicely, is that the process nudges us to delegate tasks we don't actually have time to follow through with. So the tail end of the pipeline is broken due to limited capacity and the challenges to estimate workload. The front end works fairly well though, because we do triaging to determine whether something fits current priorities and direction, or make design decisions to help produce sustainable solutions. Some contributors follow up, many don't, due to lack of time to actually finish tasks that very often blow up in size once you take a close look at them.

We have the exact same problem in documentation, except we stopped assigning tasks as we were all fully booked at some point. And since contributions tend to be either very small or very large, triaging doesn't seem to serve much of a purpose. We should probably try to find some middle ground, to really get an up-to-date grasp on who's currently working on what, how complex a given task is (and which rabbit holes it uncovers), which resources are available to finish it, etc. -- simply to know what to focus the effort on to get it over the finish line.
could a relatively simple solution be using tags which assign priorities as guesses (we can't know the true priority)?
18:39:46
@bzzm3r:matrix.org@bzzm3r:matrix.org
In reply to @fricklerhandwerk:matrix.org
One practical problem I've observed in the Nix maintainer team, where we have a very formalised meeting structure and in fact curate the board very nicely, is that the process nudges us to delegate tasks we don't actually have time to follow through with. So the tail end of the pipeline is broken due to limited capacity and the challenges to estimate workload. The front end works fairly well though, because we do triaging to determine whether something fits current priorities and direction, or make design decisions to help produce sustainable solutions. Some contributors follow up, many don't, due to lack of time to actually finish tasks that very often blow up in size once you take a close look at them.

We have the exact same problem in documentation, except we stopped assigning tasks as we were all fully booked at some point. And since contributions tend to be either very small or very large, triaging doesn't seem to serve much of a purpose. We should probably try to find some middle ground, to really get an up-to-date grasp on who's currently working on what, how complex a given task is (and which rabbit holes it uncovers), which resources are available to finish it, etc. -- simply to know what to focus the effort on to get it over the finish line.
* could a relatively simple solution be using github tags which assign priorities as guesses (we can't know the true priority)?
18:39:55
@bzzm3r:matrix.org@bzzm3r:matrix.orgI often see the "hit 👍️ to mark as a priority"18:40:16
@bzzm3r:matrix.org@bzzm3r:matrix.orgbut...no one's actually hitting that 🫠18:40:32

Show newer messages


Back to Room ListRoom Version: 6