@Eriim did I nice visualization about his nixos configs.
Isn’t generalized like my graphs, but is a good source of inspiration.
Eriim, would you mind taking some snapshots of your journey through wonderland?
Isn’t a problem, if you’re not a cartographer or nix specialist. I always think we are suffering from Nix incantation of Monad curse
It is said that there’s a curse with Monads… When you finally understand it, you’ll lose the ability to explain it to others.
And also:
A map is not the territory it represents, but, if it has a similar structure to the territory, which accounts for its usefulness.
— Alfred Korzybski, Science and Sanity, p. 58
I would love to take a stab at something like this, I make no guarantee I can approach the complexity of the beautiful ecosystem graphs that are above in this thread.
But I can certainly document my learning journey more thoroughly.
This mindmap (and the several simplified variations) have been very useful to me! Thank you very much for sharing. I didn’t know that people are writing books about nix/nixOS!
Something like this should definitely be part of the official documentation (though probably should be a minimal version, or in alternative, adynamic mindmap where the main nodes are initially closed and the user could open to explore more and more).
External data, they pull info from CrunchBase, is unlikely to they had data from Nix projects, and there are some data license. Maybe we should hide this kind of data in the fork.
Our initial data could be curate the immutableria.
The post I created (the title you’re quoting) used someone else’s flowchart, so I deleted it after I read the rules. It looks like I need permission to share others’ photos, and I haven’t requested it yet.
With that said, you can go view the Flakes flowchart yourself in the nixflakes GitHub repository from erictossell (GitHub - erictossell/nixflakes: My nixdots, but flaked.). Eric provides a couple insightful diagrams that succinctly illustrate his configuration files, and I found his Flake diagram particularly useful. It helped me conceptualize Flakes in a way that I struggled with before.
I can make an announcement here on discourse, I just wanted to wait a little until we had a little more on the map… but maybe we announce it to get stuff on the map I guess.
I’m still had to move this to landscape, since there is more manageable and readable.
But for now a moved it to another mindmap to at least make the original one less confuse.
Isn’t directly Nix related, but packages manager related.
I liked the way she describes package management roles and the venn diagram with different ones.
Maybe we could use something similar, adding Nix and other non python specific tools like distro tools, home brew, etc. Maybe even docker can be viewed in this. Helping answer the famous: “how is different from docker?”
In the last few days I spent some time with @balsoft and then @Raitobezarius to map out architectural components or areas of responsibility in the core Nix ecosystem. This continues an effort from the UX workshop a year ago, and is another attempt to get some overview and eventually find bottlenecks.
mindmap
Ecosystem
Nix
(installer)
Bash
Rust["Rust (experimental)"]
(store)
persistence layer
database
hashing
store paths
(derivations)
sandbox
store derivations
(daemon)
daemon protocol
worker protocol
scheduler
(evaluator)
parser
builtins
(fetchers)
(configuration system)
(plugin system)
(CLI)
classic
new
(flakes)
lockfiles
(C API)
language
store
(tests)
unit tests
functional tests
NixOS integration tests
evaluator tests
(build infrastructure)
(release process)
release notes
continuous integration
Hydra interfaces
Nixpkgs distribution
(maintenance)
triaging
security patches
contributor relations
(documentation)
reference manual
man pages
help pages
contribution guide
Nixpkgs
(stdenv)
Bash
setup.sh
hooks
bootstrapping
cross compilation
(languages and frameworks)
trivial build helpers
testers
C/C++
Python
Rust
JavaScript
Haskell
Kernel
VM builders
lib
module system
testing
pkgs-lib
confguration
policy filters
overlays
systems
warnings
aliases
CI
Hydra
ofborg
(maintainance)
review process
nixpkgs-format
testing strategies
maintainers
commit access
nixpkgs-review
nixreview-tools for staging
release process
staging branches
update scripts
automatic updates
nix-update
r-ryantm
mergebot
GitHub labels
Matrix rooms
repology
(distribution)
meta fields
licenses
deprecation process
(security)
coordination in Matrix
upstream security vulnerability feeds
(documentation)
reference manual
nixdoc
nix-render-docs
contributor guides
NixOS
(installation)
nixos-install
nixos-enter
calamares
system image
netboot
kexec
direct boot
(modules)
graphical applications
desktop managers
window managers
networking
audio
security
programs
hardware support
services
(boot)
bootspec
bootloaders
generations
file systems
kernel modules
(systemd integration)
(VM tests)
(containers)
(maintenance)
meta fields
state migrations
(documentation)
reference manual
man configuration.nix
NixOS Wiki
(CLI)
nixos-install
nixos-rebuild
nixos-option
nixos-enter
(releases)
release notes
zero hydra failures
community
Discourse
nixos.org
nix.dev
NixOS Wiki
Matrix
NixCon
local events
extended ecosystem
Home Manager
nix-darwin
system-manager
nixos-hardware
nixos-anywhere
lanzaboote
DetSys installer
nix-index
NUR
noogle
colmena
flake-parts
I also tried to port this to graphviz so it could be augmented with URLs (merdmaid mind maps are still very limited), but the best layout I was able to create in limited time is not great.