Introducing FlakeHub

I would be very happy if Flakes just became a Determinate Systems project that was not part of the Nix repo. I don’t like maintaining Flakes, and if they were taken over like that then they would not longer be partially my problem (as a Nix Team member). Determinate Systems can them evolve them as they see fit. Win—Win!

32 Likes

Maybe like that we can finally get people paid for working strictly on flakes full-time :grin:

2 Likes

I think that the way in which this was developed and in which it is being presented makes it very clear that you are not doing this for the good of the community, since in that case you could have involved the community, developed this in the open as part of the nix FOSS project, and offered to host it on community infrastructure.

But you didn’t do any of that, and I don’t think we need a proprietary walled garden as part of the nix ecosystem.

16 Likes

Not really a fan, as it adds an huge attack surface since flakes are still not signed in any way. Would be fine as an index but not as an proxy.

9 Likes

IMO, it would be really great to have Determinate Systems publicly back https://github.com/NixOS/rfcs/blob/c8569f6719356009204133cd00d92010889ed56d/rfcs/0136-stabilize-incrementally.md

3 Likes

I’m a relative newcomer to the Nix world, but this whole flakes situation is a complete mess. Just for the record, I have no affiliation with DetSys.

From a documentation perspective, from a usability perspective, from an optics perspective. This thread takes what is ostensibly an effort to move things forward and devolves into a slinging match about everyones personal opinions on the merits of flakes rather than FlakeHub itself. Can you see how this is a bad look for the projects approachability?

I’m too new to have a strong opinion either way on flakes or FlakeHub specifically but surely if there were no problems with flakes then FH wouldn’t have been created!

As a n00b being able to track my dependencies without having to keep track of upstream releases seems like a hugely beneficial thing. And DetSys has done nothing to earn the skepticism being slung around in this thread have they (please enlighten me!)?

I guess this post is a polite way of saying you’re your own worst enemies at this point! You’re riding the crest of a hype wave as a project atm and seeing real adoption, real investment and real new users (hello, I am one). That will all evaporate if the pervading attitudes on display here don’t change imho.

26 Likes

On one hand, there is a community who loves Nix, want to make it great and open source, slowly but surely. On the other hand, you have companies willing to make profit (that’s what they exist for obviously) with Nix by making MVPs (minimum viable product) based on Nix as much/fast as possible.

At some point, it’s hard to stand in both camps IMO.

15 Likes

I just love binary evil/good oversimplifications:

  • Clearly DetSys folks aren’t a part of the community who loves Nix, and edolstra/grahamc haven’t been pillars of said community for years.
  • Clearly the community is unanimous on wanting flakes to stay experimental, and there isn’t a sizeable chunk of the community that has been relying on said experimental feature for years. Everyone just wants things to continue going slowly but surely, because it’s clearly working!
  • Clearly profit and a company’s success can’t be aligned with making Nix great and open source.

I could keep going… Of course it’s going to be “hard to stand in both camps” when those camps are made up strawmen.

40 Likes

Is there a resource that can explain to a non-programmer new user what the hell a flake even is/does? I’ve attempted to read multiple explanations making what are probably correct statements, that in practice leave me coming away with no clear understanding other than they go further as an abstraction, supposedly fixing some important problems while also adding important problems and being the future.

Things like Flakes - NixOS Wiki are impenetrable for gaining a grasp on them, if you don’t already know why they are needed.

I’m pretty sure I’m ultimately going to need pictures or flowcharts of how all these pieces relates to things, or something that walks through the syntax of a comprehensive real example.

5 Likes

Sure, there is some useful info here: Flakes — nix.dev documentation

4 Likes

I need to put some work into this page but this may help unlock things a bit: Nix flakes.

5 Likes

That’s definitely one of the best I’ve seen so far, thanks.

I’m reading it as “it’s a folder that contains a project that generates some (hopefully) reliable output of nix expressions, used for any and all possible system operations”

Which now makes sense why github is seemingly involved/mandatory

2 Likes

To be clear, GitHub is not necessary for using flakes. Flakes can be in your local filesystem, they can be on a non-GitHub Git provider, they can be tarballs fetched from a URL, and so on. They just have to be a directory structure with a flake.nix at the root with a set of outputs that others can use.

FlakeHub currently only supports publishing flakes from GitHub because GitHub Actions provides a built-in authentication story (courtesy of JSON Web Tokens), but we hope to support other providers down the road. Nix, however, has no such dependency.

8 Likes

Did I miss the discussion that this could be part of nix itself? It seems like there is a need for such feature.


After browsing a bit around and reading the usage policy I am missing a sense of responsibility and quality for the content promoted on the site. Coincidentally I had recently a very lengthy discussion about a theoretically platform named flakehub and the majority of people agreed that it would require some sort of quality control to not be a loaded gun pointed at your foot.

7 Likes

You might be looking for [RFC 0144] Versioned Flake References by figsoda · Pull Request #144 · NixOS/rfcs · GitHub

6 Likes

Don’t think the accusations of ill-will help here, but I’m also a bit concerned about this. If proper support for a feature like this lands in nix, will FlakeHub be retrofitted somehow?

Given that it somewhat abuses input urls (which seems to be the main criticism of the project), I figure that would also cause a fair bit of breakage, potentially recursively… Flakes aren’t stable™, but this still seems like a very relevant question given how user-oriented this website is. Glossy website + catchy naming and app-store-like functionality feels like it will be a newbie magnet. Is FlakeHub unstable too?

Having an index into the developing flake ecosystem is cool, though, and this definitely highlights a clear need for a new nix feature. Even the operators seem nice and thought out. I’d start using it immediately if it actually made use of the flake input schema.

18 Likes

For sure, and easily! We would like this behavior to be accepted into Nix. On the RFC for version matching behavior, a core Nix dev said the right way to do this is to do it outside of Nix to prove the utility. This is step one, and there is no reason it should cause breakage :).

FlakeHub is stable. We’ve used it internally for several months to great effect.

I’m glad you think so! It does use the Flake input schema and features that are Native to Nix. We’re not breaking the Nix or flake model here, so you should be good to go if you’d like to :+1:.

12 Likes

Today was the first day of bioinformatics class. A pretty big part of it was:

don’t worry, we’ll stuggle with conda together and master it eventually

And oh man, it’s gonna be a struggle. We’re going to be dealing with “I don’t remember which commands I ran but now it doesn’t work” for weeks.

I’ll be making a flake for my own use and eventually sharing it with the class: “all the tools you need for CHEM 4731 in a single devshell”. I was going to distribute it as a link to the github repo, maybe I’ll use flakehub instead.

With the exception of “How do I install Nix?” the docs seem more about convincing an informed skeptic to try it out. It might be worth adding a section that guides a newbie along the shortest path from “allegedly this flake thingy will give me a shell where I can run bowtie2” to a shell where they can run bowtie2.

3 Likes

Totally understood, no worries. I’d like to see the primitives built in to Nix, too.

What steps are being made to that aim right now?

2 Likes

Oh ffs really? Ok so

6/10 need to use but don’t want to reward bad behaviour.

0/10, this is bad behaviour. These are blatantly toxic comments, using even positive elements to make personal criticisms.

I’d encourage everyone to keep their criticisms constructive and focused on the work, but this is entirely over the line, is unacceptable, and should be removed.

29 Likes