A piece of flake - nix flake repository

Hi,

The main idea behind this project is to provide a quick and simple interface for publishing Nix flakes.

Flakes have become relatively mature and address the central repository issue. However, the Nixpkgs repository on GitHub still has more that 5k open issues and a comparable number of pull requests, and continues to receive many commits every day. Getting a pull request for a new tool merged into Nixpkgs can be difficult - the Nixpkgs README explicitly discourages people from submitting their “pet” projects.

The Nixpkgs repository is huge. It contains more than 120k packages, but the majority of them are not native to Nix. For example, about 10% are Haskell packages imported. Therefore, this large number cannot be used as a reliable measure of how well the publishing process is developed in Nix. For instance, the PyPy repository alone currently contains almost 900k packages.

It is also important to note Python is the most popular general-purpose programming language, and its publishing process was designed by programmers for programmers. Yet there is no pull-request step in the workflow. The interface is essentially “upload and forget”, which has a significant positive impact on the conversion funnel of Python packages.

Flakes are easy to install, but the publishing workflow is not yet polished enough. The current approach to distributing flakes appears to have inherinted many characteristics of the Nixpkgs workflow.

For Nixpkgs, this was the natural way of development, because all derivations form a large and coupled Nix expression split across many files within a single Git repository.

What does it do that nixos-search doesn’t?

nixos-search’s flake search is here for reference: NixOS Search

The UI is in a better place IMO, consider contributing to it instead of starting your own clone.

I’d argue that the impact isn’t necessarily unambiguously positive. nixpkgs is clearly not intended to be yet another zero-oversight pypy/npm clone.

Pypy should never be seen as an alternative to a distro with integration processes and QA - nixpkgs is currently very light on these things, IMO largely because of scope creep and contributor fatigue, but they do exist (and are at least much higher-tech than equivalents in the debian/fedora world, as our automation is much better, we just lack the number of contributors doing manual work to keep up with their quality - as well as the increased package quantity).

In contrast, pypy doesn’t test code submitted to it, and there will rarely be a human responsible for confirming that something isn’t blatantly malware. This does result in more quantity, sure, but calling pure quantity “positive” is a bit naïve.

1 Like

nixos search cannot publish flakes.
This project is for publish pet flakes without PR

1 Like

Thank you for sharing.

Just one question: didyouactuallybuythatdomain.huh