Nix Documentation | 404 Members | |
| Discussion about documentation improvements around the Nix ecosystem | 80 Servers |
| Sender | Message | Time |
|---|---|---|
| 20 Nov 2023 | ||
In reply to @infinisil:matrix.org Thanks infinisil! I'm still glad that you wrote your tutorial, and that I reviewed it. Also, I'll re-iterate what I wrote in the my post-review comment on GitHub:
I do wish you had answered my question on GitHub with what you wrote here (then I wouldn't have been confused enough to write what I did). In particular:
That's really good to know up-front, because that makes a lot more sense to me around why flakes aren't mentioned in the tutorial, than the rest of the things you told me! (Particularly around the "stabilization" of flakes being the concern of the docs team.)
Fair enough. Again, this is much clearer to me as an answer than "Nix stable is what we're focusing on because flakes are unstable". Like, that suggests that stability is somehow a goal that has to be reached before documentation is meaningful, while what you've written here provides a different picture. | 07:10:11 | |
In reply to @proofconstruction:matrix.org* First off, I don't think you know what is going on in my life either. I didn't advertise my challenges, nor did I use it as an excuse to be cruel. So to hear things like "supposing this is sincere..." and then to be told things like:
...well, let's just leave it at: "I am glad you don't know what's going on in my life". I was about to type out something like this:
...but I don't think it would make a difference to say that, (trying to put on a positive hat) because you are not responding to me, you're responding to an amalgamation of your past experiences ("...much digital ink has been spilled already").
This is something I have explored, and my experience there suggests that you're saying I should contribute there not because it's a viable option that would be meaningful, but probably because:
I think you misread which wiki it is that I suggest a documentation team might eventually lift content from (it is not the unofficial one)...and the rest is irrelevant given that.
The goal is not to have users for the sake of having contribution. The goal is to allow newcomers to learn this tool, so that they too may improve their life through its use. Also, we do not need 99/100 new users contributing back; having 1/10.000 new users doing so is good enough...it's how open source works... So, the meat of your point here is that the goal of teaching newcomers is an anti-goal for you (and apparently some others here too, e.g. maybe those who reacted with a ❤️ to your message). The Nix Documentation team should be explicit about this so that unwitting people like me don't mistake its goals. If I had known that, a lot of what I did write, I would have known not to write.
You're definitely helping me feel quite welcome! Also, just a few days ago, I explicitly posted here asking if anyone wanted an extra pair of hands/eyes to help write/review anything. I didn't receive a response. So...I engaged on my own...
I'm not sure why you put these two points last, and I am also not sure I understand why you bothered to write anything else above it (apart from "onboarding newcomers is an anti-goal"). These two points alone are enough to answer all my questions. I didn't even have a solid opinion on Nix flakes. I only know about them (and therefore used them) because of the Nix resources I ran into which were most approachable. (In particular: https://fasterthanli.me/series/building-a-rust-service-with-nix/part-10) I was just confused about "why the thing people seem to be using the most" is not the thing we are also documenting. For me at least, flakes are no more confusing than any other part of Nix, and I think most of the confusion around flakes is the same as for any other part of Nix: 1) lack of cohesion around how something ought to be done (there always seem to be a bunch of different ways) and 2) lack of discoverability through reading code alone, because of the lack of a typing system, and the existence of syntactic sugar/"magic features" that hide important connecting logic (e.g. how a certain variable is passed between certain contexts). I'm totally willing to believe that flakes are more confusing, and are horrible. I just don't have enough experience, and in particular: I happened to (by chance) not run into high quality tutorials that don't involve flakes. I also ran into discussion (on So, uh, yeah... I guess I have to ask: you haven't made it clear how common the anti-flake/anti-newcomer view is. Is this official policy for the Nix project as a whole?
| 07:11:14 | |
| In the interest of making this all more accessible to read and respond to, I'm splitting up the following replies | 08:03:10 | |
This is indeed a goal, just not the only goal, and we're stretched so thin as to have to pick just one. | 08:03:21 | |
Not at all, in fact I welcome any new energy to this corner of the project -- I would be thrilled for you to join and help us! Just, the unofficial wiki is precisely the place where one can make wiki-style contributions. Now speaking for others: we see no reason to duplicate that effort, and instead focus on producing what we believe to be higher quality (in particular, more narratively-consistent) materials, like today's nix.dev. | 08:03:30 | |
The trouble here is that non-contributing users (I was one for my first ~6 years using Nix!) are usually not also non- consuming, in the sense of requiring additional resources from teams that already don't have them. Hence the docs effort: well-designed (in particular, narratively-consistent) documentation can be a tremendous force multiplier for teaching, but the Nix ecosystem broadly does not have well-designed docs; famously so! We (again now speaking for others) do in fact want to improve lives by getting more people into effective Nix use, but this is in tension with Nix not actually being a very good tool: its edges are very sharp, and many cut themselves and wind up here looking for aid. That Nix works at all is very nearly a miracle. A chainsaw is useful too, but I don't want to leave one lying around for others to hurt themselves or others with, and right now the hard decision for many of us is between building a sheath for the saw and writing an instruction manual for it. Neither of these are reasonable approaches to the problem of new people running into trouble after picking up the cool saw. | 08:03:45 | |
We already have 1/10000 users contributing; the entire project ecosystem is sustained by the heroic efforts of fewer than 100 people. | 08:03:59 | |
Teaching newcomers to contribute is my goal, at this point. You can convince yourself of this by checking my more recent (albeit some months ago due to significant life changes) contributions, particularly in the "packaging existing software" tutorial and the draft Nixpkgs contribution tutorial that follows (PR 696 could use your help!). | 08:04:08 | |
Sincerely: my apologies for this. We are all tremendously busy, and frequently are not able to appropriately reply. We will always welcome extra help - please join the next team meeting at 15:00 UTC! | 08:04:51 | |
Indeed this is a giant problem: the thing people are using the most is also the most broken. This is not really even my opinion, but a matter of technical fact. I even use flakes for my own system configurations, but this is still the case largely because I, like so many, adopted that workflow without any awareness of the problems lurking beneath the surface (also at the surface; flake.nix is not even a valid Nix file!) | 08:05:02 | |
For me too! But this is really because the whole ecosystem generally has poor documentation. | 08:06:02 | |
Oh yes. You cannot possibly imagine how strongly I agree here. I think we'll be friends after all :) | 08:06:11 | |
Some parts, certainly! Flakes have a lot of good ideas, just sort of all crammed into the same space, unfortunately. They deserve much more love from dedicated contributors who can separate out the various concerns and make them into proper Nix features, rather than an unspecified informal soft fork living in the same codebase, like a sad vampire. | 08:06:30 | |
I've deleted mine, actually. There are too many as it is.
nix.dev is almost this, but is really more a No-Flakes- Yet un-Wiki. This isn't a holy war; in fact you will likely find that some of the biggest detractors of flakes are also some of the most enthusiastic about the utility they (could, and were intended to) bring. We all want reproducibility and easy extension of Nix magic into new domains!
I prefer to avoid making unilateral decisions like this (for example, by spending months moving PRs with the team instead of firing off blog posts solo every morning). | 08:06:41 | |
| Anybody else joining the meeting? | 15:06:30 | |
In reply to @proofconstruction:matrix.org I agree that this is super important too, because it was definitely a struggle for me to figure this out. I would be very happy to have a look at PR 696 and leave a review. I also benefited from using So, when I see that mentioned by zmitchell as something you might consider inserting in #696, I heartily agree! | 15:24:26 | |
In reply to @proofconstruction:matrix.org* I agree that this is super important too, because it was definitely a struggle for me to figure this out. I would be very happy to have a look at PR 696 and leave a review (edit: I did just finish doing that!) I also benefited from using So, when I see that mentioned by zmitchell as something you might consider inserting in #696, I heartily agree! | 15:25:18 | |
In reply to @proofconstruction:matrix.org I am inspired to suggest an alternative to the whole wiki thing, after reading PR#696. I guess I'm wondering: why don't we just hit the accept button on the decent suggestions made by infinisil and zmitchell, and then just merge the darn thing? It's really good enough as is! It shouldn't have stayed as long as it has in PR review mode...and I think that's what I crave the most when I ask for a wiki. I know how much my perfectionism gets in the way of getting something completed (or even started), and recently circumstances in life have forced me to accept that "it feels better to just not care"...surprisingly, this made me more productive, not less... Wiki has a culture that enables that, but maybe it's a silly excuse to want to wait for a wiki to solve our problem there, when we could just....merge things faster 😅 | 15:28:20 | |
| I agree that the standard of the docs team is too high and should be lowered a bunch! | 15:30:27 | |
| Speaking of which, I think https://github.com/NixOS/nix.dev/pull/645 is now ready to be merged (we agreed to merge it once the headers are updated), though CI fails, will fix | 15:33:37 | |
| infinisil: The word is not automatically, it's automagically ;) | 16:00:58 | |
| nbp: I think I'm missing some context! | 16:02:28 | |
| “Much of the power in Nixpkgs and NixOS comes from the module system. It provides mechanisms for conveniently declaring and automatically merging interdependent attribute sets […]” | 16:03:01 | |
| "automagically" is when this a process is automated but you have no idea how this could even work. So this might be more appropriate :P | 16:05:23 | |
| Haha I see, yes! | 16:18:16 | |
In reply to @infinisil:matrix.orgPressed the big button! | 16:21:47 | |
In reply to @proofconstruction:matrix.org I very much agree with you on this too. 100%. I think what is special about Nix currently isn't its present day manifestation, but rather the fact that it exists at all, and even in this "sharp-edged" (broken) form, it is a proof of concept of how things could be, if we didn't take an ad hoc, cowboy attitude to everything. (So it always surprises me that Nix-lang has the shape it does, especially given the intellectual culture it is a product of....) When you mentioned this, I think I realized an implicit assumption I had made (and I am not sure why I made this, in hindsight!): that flakes/ So yeah, overall, I do think we are in strong alignment. | 16:56:03 | |
Does the "search button" on nix.dev work for you all too? (It currently does not for me (NixOS + Firefox + Privacy Badger + uBlockOrigin + Decentraleyes) | 17:26:57 | |
also, a lot of the "good first issues" deal with Sphinx issues...would it be too idealistic (definitely not a "good first issue" at the very least) if we just ported nix.dev to something a bit nicer (e.g. Svelte + TypeScript would be nice) | 17:28:45 | |
| but I doubt a docs framework exists for that, so yeah, not sure. | 17:29:17 | |