Nixpkgs Exploring

Why is there no most downloaded or explore option when searching for Nixpkgs on the website?

I’ve made a ruff design to show you what i mean by that.
The bottom squares are meant to look like a GUI store.

Hope this doesnt sound annoying.

2 Likes

Because there is no tracking on the download AFAIK.

Also, most provided derivations dont really have icons, so this view you only work with a curated list!

6 Likes

The bottom squares are meant to look like a GUI store.

images i think tend to be info at the level of .desktop files. we can track which of these a package has, but in case multiple (or none, as @Sigmanificient noted) are present: what would we display?

to be fair, we could start with just showing these where it is clear-cut, and i think nix-software-center does exactly that - but if that’s only a small part of our packages, that may end up giving more clutter than signal.

Why is there no most downloaded or explore option when searching for Nixpkgs on the website?

in short - no-one implemented this feature request yet!

I think that it would be possible to get some estimates from Fastly. But getting “representative” data will surely be quite hard. I suspect that the download numbers of cache.nixos.org get dominated by some CI jobs.

Am I understanding correctly that Fastly can provide something like a pkgname(attr_path) along with its download count, and that this information could be stored in a database? Even data like that would be very useful.
I think I could display this kind of statistics on my website, focusing on packages that are actually relevant to users rather than internal packages.

Which repository would be the right place to open an issue for exposing this data?

They certainly don’t see attribute paths directly, but they see the URLs (i.e. /nix/store paths) which contain the ${pname}-${version}

The closest repo would be GitHub - NixOS/infra: Infrastructure as Code for the NixOS.org ecosystem [maintainers=@mweinelt, @Mic92, @arianvp, @vcunat, @jfly] · GitHub

1 Like

I think there’s some more fundamental issues anyway.

  • What counts as a package? Is it a specific NAR, which changes when any dependency changes? Or is it a match for a specific package name? Or something about the meta attrset? What about packages that have many variants in nixpkgs?
  • If the previous answer is anything other than “a specific NAR”, then what counts as a download? Does the same user downloading many versions or variations of the same package over time count as one or many downloads?
  • I also just generally dislike leaderboards like this. I don’t want projects to gain success simply because users are more likely to see them on the leaderboard than competitors, and I especially don’t like the incentive it creates for app developers to chase more downloads rather than quality. Similarly, I don’t like the implication that a package that’s been downloaded more times is more important than other packages.
3 Likes

Unless of course you count the dependencies, too! In which case very widely used libraries and compilers would bubble up on top, and produce a rather interesting view on the world.

hex0 is suddenly the single most important thing in the universe :stuck_out_tongue:

3 Likes

I’m not really a big AI/LLM user, but in this context I think it’s not a bad inspiration source to ask them a question like

Which packages are most often included in nixos systemPackages?

Wouldn’t an answer on that just point to missing modules?