Hint if you add tags to differentiate it from things unrelated to nix, I can add to blogs
Thanks for your feedback.
This site already has this feature in ‘presentation mode’, but is ugly. Try this one, click in first icon at top right
Hint if you add tags to differentiate it from things unrelated to nix, I can add to blogs
Thanks for your feedback.
This site already has this feature in ‘presentation mode’, but is ugly. Try this one, click in first icon at top right
I got some inspiration of Julia Evans post about flakes
These look very nice. A slightly different take on presentation could be to fork the backend behind https://landscape.cncf.io/. This has recently been done by https://landscape.openssf.org/ and could be a useful addition at landscape.nix.dev or landscape.nixos.org.
I liked the idea, specially in the context of Ecosystem,
The CNCF version can be found here.
The data is just a long YAML file, easy to generate and accept PR.
We just need:
Possible caveats:
Our initial data could be curate the immutableria.
Have we considered flowcharts or diagrams for explaining Flakes?
@Gwyn I’m trying.
I’d love to see yours flowcharts
Hey Hugo! Thanks for pointing out this thread.
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.
@Eriim more feedbacks for you
@hugosenari awesome work thanks!
Crossposting here, the nixlang.wiki cluster can easily host this, so I deployed landscape2 Announcing nixlang.wiki - #50 by cafkafk
Make a post about it to make it more visible,
Can you please make issues features of github enabled, so I can register small bugs like github link pointing to wrong project?
Ohh, right, github doesn’t allow issues on forks. But we can post issues on GitHub - nix-community/nixos-landscape: The Landscape of NixOS and associated projects [maintainer=@cafkafk] now.
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 love this! @hugosenari
Minor nitpick, it’s Brian with an i not a y
Thanks, for enabling it =)
I’m trying to find time to add my contributions.
Domain offers still open… http://nixos.land
Pointed this to there, but they should be other thing: http://flakes.link http://flakes.store
Sorry, fixed. Thanks for your feedback.
Please help to add your link to landcape.
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.
And obviously both mindmap and landscape are open for feedback, and inclusion requests.
Unbiased evaluation of env management and pkg (python) tools
Anna-Lena Popkes
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?”
Also, I’m fan of diagrams
There is also an presentation
Here I go again, this time with a Leaning Roadmap
My learning roadmap
Still have to complete.
It started as a meme
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.
node [fontsize=20 fillcolor=green]
Nix
Nixpkgs
NixOS
community
“extended ecosystem”
“The Nix ecosystem” – {Nix Nixpkgs NixOS community “extended ecosystem”}
node [fontsize=10 fillcolor=yellow]
Nix – {
installer
store
derivations
daemon
evaluator
fetchers
“configuration system”
“plugin system”
CLI
flakes
“C API”
tests
“build infrastructure”
“Nix release process”
“Nix maintenance”
“Nix documentation”
}
installer – {“Bash installer” “Rust (experimental)”}
store – {“persistence layer” database hashing “store paths”}
derivations – {sandbox “store derivations”}
daemon – {“daemon protocol” “worker protocol” scheduler}
evaluator – {parser builtins}
CLI – {classic new}
flakes – lockfiles
“C API” – {language store}
tests – {“unit tests” “functional tests” “NixOS integration tests” “evaluator tests”}
“Nix release process” – {“Nix release notes” “continuous integration” “Hydra interfaces” “Nixpkgs distribution”}
“Nix maintenance” – {triaging “security patches” “contributor relations”}
“Nix documentation” – {“Nix reference manual” “man pages” “help pages” “Nix contribution guide”}
node [fillcolor=beige]
Nixpkgs – {
stdenv
“languages and frameworks”
lib
“pkgs-lib”
confguration
CI
“Nixpkgs maintainance”
distribution
“Nixpkgs security”
“Nixpkgs documentation”
}
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}
confguration – {“policy filters” overlays systems warnings aliases}
CI – {Hydra ofborg}
“Nixpkgs maintainance” – {“review process” maintainers “commit access” “nixpkgs-review” “nixreview-tools for staging” “release process” “staging branches” “update scripts” “automatic updates” “GitHub labels” “Matrix rooms” repology}
“review process” – {“nixpkgs-format” “testing strategies”}
“automatic updates” – {“nix-update” “r-ryantm” mergebot}
distribution – {“package metadata” licenses “deprecation process”}
“Nixpkgs security” – {“coordination in Matrix” “upstream security vulnerability feeds”}
“Nixpkgs documentation” – {“Nixpkgs reference manual” nixdoc “nix-render-docs” “Nixpkgs contributor guides”}
node [fillcolor=red]
NixOS – {
installation
modules
boot
“systemd integration”
“VM tests”
containers
“NixOS maintenance”
“NixOS documentation”
“commands”
“NixOS releases”
}
installation – {“nixos-install” “nixos-enter” calamares “system image” netboot kexec “direct boot”}
modules – {“graphical applications” networking audio security programs “hardware support” services}
“graphical applications” – {“desktop managers” “window managers”}
boot – {bootspec bootloaders generations “file systems” “kernel modules”}
“NixOS maintenance” – {“meta fields” “state migrations”}
“NixOS documentation” – {“NixOS reference manual” “man configuration.nix” “NixOS Wiki”}
commands – {“nixos-install” “nixos-rebuild” “nixos-option” “nixos-enter”}
“NixOS releases” – {“release notes” “zero hydra failures”}
node [fillcolor=orange]
community – {Discourse “nixos.org” “nix.dev” “NixOS Wiki” Matrix NixCon “local events”}
node [ fillcolor=lightgreen]
“extended ecosystem” – {“Home Manager” “nix-darwin” “system-manager” “nixos-hardware” “nixos-anywhere” lanzaboote “DetSys installer” “nix-index” NUR noogle colmena “flake-parts”}
}
Seems like the quite signs in the graphviz source is messed up. here is a fix.
graph ecosystem { layout=sfdp; overlap=scale; pack=true; packmode=cluster; repulsiveforce=4; K=1; splines=polyline; node [shape=oval style=filled fillcolor=white]; node [fontsize=30 fillcolor=lightblue] "The Nix ecosystem"
node [fontsize=20 fillcolor=green]
Nix
Nixpkgs
NixOS
community
"extended ecosystem"
"The Nix ecosystem" – {Nix Nixpkgs NixOS community "extended ecosystem"}
node [fontsize=10 fillcolor=yellow]
Nix – {
installer
store
derivations
daemon
evaluator
fetchers
"configuration system"
"plugin system"
CLI
flakes
"C API"
tests
"build infrastructure"
"Nix release process"
"Nix maintenance"
"Nix documentation"
}
installer – {"Bash installer" "Rust (experimental)"}
store – {"persistence layer" database hashing "store paths"}
derivations – {sandbox "store derivations"}
daemon – {"daemon protocol" "worker protocol" scheduler}
evaluator – {parser builtins}
CLI – {classic new}
flakes – lockfiles
"C API" – {language store}
tests – {"unit tests" "functional tests" "NixOS integration tests" "evaluator tests"}
"Nix release process" – {"Nix release notes" "continuous integration" "Hydra interfaces" "Nixpkgs distribution"}
"Nix maintenance" – {triaging "security patches" "contributor relations"}
"Nix documentation" – {"Nix reference manual" "man pages" "help pages" "Nix contribution guide"}
node [fillcolor=beige]
Nixpkgs – {
stdenv
"languages and frameworks"
lib
"pkgs-lib"
confguration
CI
"Nixpkgs maintainance"
distribution
"Nixpkgs security"
"Nixpkgs documentation"
}
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}
confguration – {"policy filters" overlays systems warnings aliases}
CI – {Hydra ofborg}
"Nixpkgs maintainance" – {"review process" maintainers "commit access" "nixpkgs-review" "nixreview-tools for staging" "release process" "staging branches" "update scripts" "automatic updates" "GitHub labels" "Matrix rooms" repology}
"review process" – {"nixpkgs-format" "testing strategies"}
"automatic updates" – {"nix-update" "r-ryantm" mergebot}
distribution – {"package metadata" licenses "deprecation process"}
"Nixpkgs security" – {"coordination in Matrix" "upstream security vulnerability feeds"}
"Nixpkgs documentation" – {"Nixpkgs reference manual" nixdoc "nix-render-docs" "Nixpkgs contributor guides"}
node [fillcolor=red]
NixOS – {
installation
modules
boot
"systemd integration"
"VM tests"
containers
"NixOS maintenance"
"NixOS documentation"
"commands"
"NixOS releases"
}
installation – {"nixos-install" "nixos-enter" calamares "system image" netboot kexec "direct boot"}
modules – {"graphical applications" networking audio security programs "hardware support" services}
"graphical applications" – {"desktop managers" "window managers"}
boot – {bootspec bootloaders generations "file systems" "kernel modules"}
"NixOS maintenance" – {"meta fields" "state migrations"}
"NixOS documentation" – {"NixOS reference manual" "man configuration.nix" "NixOS Wiki"}
commands – {"nixos-install" "nixos-rebuild" "nixos-option" "nixos-enter"}
"NixOS releases" – {"release notes" "zero hydra failures"}
node [fillcolor=orange]
community – {Discourse "nixos.org" "nix.dev" "NixOS Wiki" Matrix NixCon "local events"}
node [ fillcolor=lightgreen]
"extended ecosystem" – {"Home Manager" "nix-darwin" "system-manager" "nixos-hardware" "nixos-anywhere" lanzaboote "DetSys installer" "nix-index" NUR noogle colmena "flake-parts"}
}