!avYyleMexqjFHoqrME:nixos.org

Nix Documentation

405 Members
Discussion about documentation improvements around the Nix ecosystem81 Servers

Load older messages


SenderMessageTime
8 Mar 2024
@pennae:matrix.eno.space@pennae:matrix.eno.spacelike, the root problem with our docs isn't tooling support. switching out tooling again will only bind resources that could've been used for something that actually improves that status quo?08:08:54
@infinisil:matrix.orginfinisil
In reply to @jade_:matrix.org
It seems borderline absurd to assume that there exists an off the shelf solution that actually has proper interactions with nix and consideration of anything that is not a web browser. Have you considered taking the nrd output and using it in your pipeline instead of trying to reinvent it, so we actually own the markup parser and such?
Afaik there's nothing Nix-specific about nixos-render-docs at least
09:45:49
@infinisil:matrix.orginfinisil
In reply to @pennae:matrix.eno.space
like, the root problem with our docs isn't tooling support. switching out tooling again will only bind resources that could've been used for something that actually improves that status quo?
I'd say it's a problem that we use different tooling for different projects. I guess it would make sense to try and see if nixos-render-docs could be used throughout though (such as for Nix and nix.dev).
09:48:07
@pennae:matrix.eno.space@pennae:matrix.eno.space not nix-specific, but nixpkgs/nixos-specific very much so. like manpage export, integration with the option system, crossreferencing, even performance optimizations needed to generate such huge documents as the nixos manual 09:48:23
@pennae:matrix.eno.space@pennae:matrix.eno.space
In reply to @infinisil:matrix.org
I'd say it's a problem that we use different tooling for different projects. I guess it would make sense to try and see if nixos-render-docs could be used throughout though (such as for Nix and nix.dev).
we did have that aspiration before we burned out on it all
09:48:54
@infinisil:matrix.orginfinisil
In reply to @pennae:matrix.eno.space
not nix-specific, but nixpkgs/nixos-specific very much so. like manpage export, integration with the option system, crossreferencing, even performance optimizations needed to generate such huge documents as the nixos manual
Integration with the option system sounds very interesting, can you link to that?
09:49:15
@infinisil:matrix.orginfinisilOh I guess options.py09:49:23
@pennae:matrix.eno.space@pennae:matrix.eno.space
In reply to @infinisil:matrix.org
Oh I guess options.py
correct
09:50:04
@infinisil:matrix.orginfinisilhttps://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/options.py09:50:19
@infinisil:matrix.orginfinisilOh so it renders it a bit differently on different targets09:50:31
@pennae:matrix.eno.space@pennae:matrix.eno.spaceof course, that's why the manpage isn't terrible09:50:57
@johannes.kirschbauer:scs.ems.host@johannes.kirschbauer:scs.ems.hostBut Is this website really what we'd like to give something to our users? many off-the shelf rendering frameworks are really awesome (compare to our website), and they dont require us to maintain our own markdown parser and instead have more freedom because their community maintains the framework, while we can focus on writing documentation (and maybe add some plugins) 10:08:02
@johannes.kirschbauer:scs.ems.host@johannes.kirschbauer:scs.ems.host * But Is this website really what we'd like to give to our users? many off-the shelf rendering frameworks are really awesome (compare to our website), and they dont require us to maintain our own markdown parser and instead have more freedom because their community maintains the framework, while we can focus on writing documentation (and maybe add some plugins) 10:08:26
@pennae:matrix.eno.space@pennae:matrix.eno.space have you considered: it took multiple years to do one migration, it has regressed, and it was only possible because we didn't use off-the-shelf components or we would've regressed even more. 10:09:04
@pennae:matrix.eno.space@pennae:matrix.eno.spacedo you really want to bind up another few years worth of work after the first migration hasn't even been shipping for six months10:09:27
@pennae:matrix.eno.space@pennae:matrix.eno.spaceit's so far from "just drop in another framework", we're not sure you even understand what you're setting yourselves up for.10:10:18
@danielsidhion:nixos.devdanielsidhionMy approach to looking into other frameworks is based on a simpler thought: we currently have 5k lines of custom code to render the manuals into what we see online. As far as I know, there is currently not a lot of flexibility in the tool to produce things in different ways, which means that if we want to change something, we'll need to go change the code. This is a big overhead that makes it hard to add improvements to the manuals. So I decided to look into other frameworks to see how much of our needs they can satisfy out of the box, and how much extra effort would be needed to satisfy the other needs. Because honestly, I actually find borderline absurd to assume that nobody out there has been able to solve some of the same problems we have into a tool that's more popular, has people to maintain it, and has a bigger ecosystem of documentation/plugins/knowledge to source from10:11:24
@pennae:matrix.eno.space@pennae:matrix.eno.spacemost people out there are not multiple distros in a trench coat10:12:29
@danielsidhion:nixos.devdanielsidhionBut our documentation doesn't have to follow suit10:13:54
@pennae:matrix.eno.space@pennae:matrix.eno.spacewe can only stress again: make sure you're familiar with the problem domain before trying to Be Like The Others.10:14:32
@pennae:matrix.eno.space@pennae:matrix.eno.spaceapart from that, we're not picky about nrd being replaced if there's something better. it's on you to find that thing though, and if you do, awesome! just consider the amount of effort it all takes to migrate again, the regression it will come with, and whether perhaps the tooling we have isn't fine enough if you just take a day to understand how it works10:15:45
@pennae:matrix.eno.space@pennae:matrix.eno.space¯\_(ツ)_/¯ your decision.10:16:14
@johannes.kirschbauer:scs.ems.host@johannes.kirschbauer:scs.ems.hostMaybe we could have a chat about this guys. I feel like both parties have valid points and need to be taken seriously.10:16:27
@danielsidhion:nixos.devdanielsidhionI'd appreciate any links or resources you can send me that show things that we'll need to solve in the other docs frameworks as well. I have a list of things already, but idk how complete it is10:16:57
@johannes.kirschbauer:scs.ems.host@johannes.kirschbauer:scs.ems.host
In reply to @pennae:matrix.eno.space
do you really want to bind up another few years worth of work after the first migration hasn't even been shipping for six months
As said, i feel like any potential migration needs to go through an RFC, to make sure all important aspects from the community taken into account
10:19:08
@pennae:matrix.eno.space@pennae:matrix.eno.space
In reply to @danielsidhion:nixos.dev
I'd appreciate any links or resources you can send me that show things that we'll need to solve in the other docs frameworks as well. I have a list of things already, but idk how complete it is
there's no full list as such in a single place, sadly. but whatever you'd choose would have to do manpage generation that isn't hot garbage (like the nix manpages), be able to run often and quickly (because docs is part of a nixos system build), support all the syntax extensions we have somehow (or rewrite a bunch of the docs), somehow be able to generate the option man/html pages, there's of course the issue of how to handle nixos module documentation chapter (which are distinct from option docs), the different formats of export for downstream consumers. there's more, those are just the few that immediately come to mind
10:21:31
@danielsidhion:nixos.devdanielsidhionWhat do you mean by manpage generation? Are you referring to https://github.com/NixOS/nixpkgs/blob/master/doc/manpage-urls.json ?10:22:27
@danielsidhion:nixos.devdanielsidhionI didn't have performance on the list, but I'll add it as well10:23:06
@infinisil:matrix.orginfinisil danielsidhion: I think man configuration.nix is meant 10:23:47
@infinisil:matrix.orginfinisilI don't think anything else is rendered with man pages10:24:17

Show newer messages


Back to Room ListRoom Version: 6