Our great sponsors
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- InfluxDB - Access the most powerful time series database as a service
- SonarQube - Static code analysis for 29 languages.
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
-
Nixpkgs doesn't have package lists: Most conventional package managers generally have an update method, e.g. apt update. These will fetch the latest point in a release channel and pull down metadata about available packages. Nix doesn't have this. The nix-channel --update command, actually just pulls down the entirety of the nixpkgs repo, so it's https://github.com/NixOS/nixpkgs in all of it's glory on your machine. When you do something such as nix-shell -p htop, all of the "figuring out" (evaluation of) what packages to build is done locally on your machine. Once determined, nix will follow the process described above. For "hacking on nixpkgs" this is great, because you can just git clone nixpkgs, and everything you ever need to alter nixpkgs behavior is located in a single mono repo.
-
Configuration language usage: Probably a major win for programmers, but a major negative for non-programmers. However, nix-gui has shown that there's potential for gui-based nixos configuration. And this might one day be extended to use as part of the graphical installer. https://discourse.nixos.org/t/why-is-there-no-installer-for-nixos/16644/21. Since nix can be serialized and deserialized to json, there's actually a fair amount of interoperability able to be done to manipulate nix configuration using existing libraries.
-
ONLYOFFICE
ONLYOFFICE Docs — document collaboration in your environment. Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises
-
Nix can handle per-project shells nicely. Coupled with direnv, you can have your shell drop into a project ready state by just changing to the directory.
-
Content-addressable-storepath Derivations (CAS): Not something that users will mostly interact with directly, but one of the "pitfalls" of nix right now is that updates to "fundamental packages" like glibc, will cause most packages to be re-built. CAS derivation may help significantly in this regards, because there may be a point in which the changes don't have meaningful impact on a given down stream dependencies (for example, a pure python package); the CAS derivation may get to a point where it can start "re-using" existing builds after it determined that the contents exactly match. More info: https://github.com/tweag/rfcs/blob/cas-rfc/rfcs/0062-content-addressed-paths.md
-
There's a lot of interesting community tools too. Home-manager, which is kind of like "nixos-lite" where it's nixos modules, but at the user level. You can think of the project as "nix dotfiles". It also works on any linux distro, MacOS, and I've used it on WSL2.
-
Nix can also ship the nixpkgs as an oci image (e.g. docker image), vm image, iso, or if you're able to: as a nixos configuration. Tools like nixops can allow you to deploy many machines and have their behavior exactly specified, and the configuration can be version controlled. NixOS configuration can be thought of as congruent configuration management, where many other tools give you many less guarantees about configuration drift and reproducibility.
-
I changed it through this RFC. This was mostly to make easier to ship NixOS with the major DE's. The previous YY.03 and YY.09 schedule usually meant that were shipping almost EOL DE's in nix. The two month push back was so that the stable releases would be available for gnome (and plasma for YY.11), and we would have ample time to package and test them before release (Nixpkgs is purely volunteer based). Also avoided issues of having a version of systemd which Plasma and gnome weren't developed against: this caused issues like people not being able to switch user in plasma.
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.