this post was submitted on 18 Oct 2023
14 points (100.0% liked)

nixos

1262 readers
2 users here now

All about NixOS - https://nixos.org/

founded 5 years ago
 

Could be areas of improvement as well

you are viewing a single comment's thread
view the rest of the comments
[–] jeffhykin@lemm.ee 9 points 2 years ago* (last edited 2 years ago) (14 children)

after spending +3 years getting experienced and reading a lot of the source code (getting past the documentation/learning-curve problem), I can say there are at least two fundamental flaws, with nixpkgs moreso than nixos:

(Edit: Added 0)

  1. The culture issue. See thread below

  2. The messy mono-repo was never desgined to be searchable. It might feel searchable to a newby, but many teams have dumped tons of effort and slapped together lots of hacks to make niche-package-versions even halfway searchable. Devbox is doing a good job of fixing this, but its not there yet.

  3. The monorepo design is unmaintainable/unscalable from a package maintainer standpoint. There's a ton of contributor burnout, there's no automated quality control on packages, to outsiders its not obvious how to report package-specific issues or how to edit/fix/contribute to a single package, and instead of 30min to publish a hello-world npm or cargo package, users need to make a PR on the core, and get it approved. Meaning publishing a hello-world package would get rejected anyways. The good news is flakes hub is fixing this, and I'm really excited for that.

The good is;

  • The pros still outweigh the cons. My projects from 3 years ago that I haven't touched still work (0 bitrot) first try, no manual install/setup needed.
  • people have put a ton of effort into nix. Its truely amazing how many things work in nix despite how absurdly difficult it is to get things working with nix
  • it is pretty much as reproducable as it can be and nothing else is even remotely close.
[–] Atemu@lemmy.ml 1 points 2 years ago (7 children)

The messy mono-repo was never desgined to be searchable

I'm not sure what you mean by "searchable"?

https://search.nixos.org/packages exists and it's generally pretty damn good.

The monorepo design is unmaintainable/unscalable from a package maintainer standpoint. There’s a ton of contributor burnout, there’s no real quality control on packages

There is contributor burnout and perhaps some quality issues here and there but the monorepo isn't the reason for that. In fact, it'd be a lot worse if we had hundreds of smaller repos instead as wide-reaching changes would become basically impossible with our current manpower.

There have been calls to fragment Nixpkgs for years but they've almost always been struck down because none of what was suggested would improve anything about our current maintenance issues.

to outsiders its not obvious how to report package-specific issues

You simply open an issue on GitHub. I don't know how it could be any more clear.

I just checked and we don't explicitly document this in CONTRIBUTING.md but I don't think we should need to. It's just too obvious IMO.

how to edit/fix/contribute to a single package

https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#how-to-create-pull-requests

flakes hub is fixing this, and I’m really excited for that.

FlakeHub fixes none of the maintenance issues of Nixpkgs.

[–] ck_@discuss.tchncs.de 3 points 2 years ago (1 children)

https://search.nixos.org/packages exists and it's generally pretty damn good

It's actually not. If you search for go you get the go package, but if you search for go 1.21, no go package will even appear on the first page. The package you are looking for is somewhere on page 7 or 8.

[–] Atemu@lemmy.ml 1 points 2 years ago

Indeed, that looks like a bug. The version field is there but it doesn't appear to be searched.

Could you open an issue on https://github.com/NixOS/nixos-search?

load more comments (5 replies)
load more comments (11 replies)