Following up on the discussion from Nixpkgs package badges as I think this is an interesting topic that would derail the topic there.
(To define the scope a little, I’m only talking about the vision for the future here, I know that flakes are not going to be stabilized for some time still and won’t become any sort of default before that)
I see what you mean. If you use flakes inside other flakes, this is resolved by .follows
, but when installing on the command line, you don’t have access to that option directly. You could just fork the repo and nix flake update
it, but that’s only an individual solution.
If the flake fits the notion of a package, it can get imported into nixpkgs pretty easily, and then .follows
will work just fine again.
But generally, how much of a problem is this really? Isn’t this exactly the job of a package maintainer? They put out some software and maintain it so that it stays up to date?
I feel like your argument works for software that is outdated or abandoned, but in that case the argument applies with or without flakes.
This somewhat ties in to my impression that the user journey for using nix is not clearly defined yet. Granted, there’s a lot of ways to use nix and things to use it for, but it seems the most common use and the one we introduce users to first is installing a package with nix-env
and hopefully nix profile
in the future.
I hope we can find a way to quickly introduce users to the imperative interface of nix profile
and then immediately transition to a declarative approach, and I assume that is what you’re suggesting when you talk about flakes as the “default installation way”?