5 ms·
The embedded package repository is actually a major con IMHO. Making backwards incompatible changes is easy inside your monorepo, but if you a user building sof
by georgyo 5y ago
The embedded package repository is actually a major con IMHO. Making backwards incompatible changes is easy inside your monorepo, but if you a user building software it means that your code now depends on specific guix reversions as well as a specific commit.
In nix land, the more stable API means we are moving further into composible modules. Meaning you can now very easily have all your companies code in different (or one big) repositories that can reference each other easily.
However having used both guix and nix for several years now, I am firmly in camp they are the same.
The porcelain of guix is much nicer, but each can do everything the other does.
To me guix and nix are similar to a comparison of fedora and ubuntu. Both fedora and ubuntu are fairly different, but there is there is a 1:1 method to do everything in one in the other. Having only used fedora, you could easily figure out ubuntu. Everything is essentially done the exact same way, but different tools.
The same is true with guix and nix.
- medstrom 5y agoThe Guix way moves more contribution upstream (it's very easy to get your PR accepted) and less people having their own untested "PPAs" everywhere. People have this image that having a private channel is simpler/faster somehow as it skips hoops but in Guix it's just not true (what hoops?). You can submit PR after PR after PR for something only you would ever care about. The main reason not to is when you want to keep your codebase secret, right? Composible modules are certainly another solution. I don't know what's ultimately best but I think we could perhaps make it easier to pin a specific Guix revision. Perhaps require it. It already runs different versions of itself so often, it's part of the way it should work.
- mrslave 5y ago> less people having their own untested "PPAs" everywhere This is not my experience with Nix. 1. My system configuration pulls in a couple of programs in from unstable for my convenience and it was incredibly easy. 2. I don't do any serious 3rd-party packages or package configuration at the system level. Instead, any package configuration (e.g. overrides, Docker images) and 3rd-party packages absent from Nixpkgs - usually pretty easy to write, if not trivial - are defined in the repository where they are required. They are used - and tested - and reproducable to the pinned Nixpkgs in that repository. It has been incredibly easier than PPAs and Gentoo overlays. Presumably safer too (though this is an incomplete thought). To be fair the learning curve was medium, and I didn't invest any serious effort. Instead I made progress until frustrated and asked colleagues to help a few times until I grokked it. From the perspective of a simple user, the single system configuration file is a killer feature even if you don't venture any further.
- the_duke 5y agoA system like Guix will have at least a magnitude more private manifests. Form personal shell scripts and environment configs, over team development environments to custom software. Non of that can be upstreamed. Plus the proprietary software, which also can't be upstreamed. I concur that not having a stable format is a potentially problematic design decision, not a benefit.
- medstrom 5y agoCan you explain again why it'd have more private manifests? I'm not that familiar with Nix, but don't you use scripts, configs and environments all the same?