DOSSIER 08 / 8 ARTICLES
Flakes: project and dependency management
From input graphs to system outputs, understand locking, updates, and rollback.
Start with the first articleFollow the question further.
A Flake organizes a project into inputs and outputs, while flake.lock records the resolved input graph. This topic explains structure and locking before covering templates, external dependencies, system migration, a complete tutorial, and update recovery.
- 01
Understand Flake inputs, outputs, self, and the levels involved in capturing function arguments.
Flake structure: inputs and outputs
Understand Flake inputs, outputs, self, and the levels involved in capturing function arguments.
Read article - 02
Record dependency sources with version locking while understanding the conditions for reproducible results.
flake.lock and reproducibility
Record dependency sources with version locking while understanding the conditions for reproducible results.
Read article - 03
Generate outputs for multiple platforms and turn development environments into reusable templates.
Flake Utils and project templates
Generate outputs for multiple platforms and turn development environments into reusable templates.
Read article - 04
Connect external modules and packages, and check the relationships between dependency versions.
External Flake references and collaboration
Connect external modules and packages, and check the relationships between dependency versions.
Read article - 05
Create a Flake entry point from an existing configuration, then perform checks, builds, and activation separately.
Migrating NixOS configuration to Flakes
Create a Flake entry point from an existing configuration, then perform checks, builds, and activation separately.
Read article - 06
Work through Flake commands and project structure, from input syntax to multi-host organization.
A tutorial on Flake projects and dependency management
Work through Flake commands and project structure, from input syntax to multi-host organization.
Read article - 07
Distinguish input updates, package sets, system generations, and cache downloads.
How Flake updates work
Distinguish input updates, package sets, system generations, and cache downloads.
Read article - 08
Preserve existing changes before restoring the lock file, and distinguish dependency rollback from system-generation rollback.
Rolling back and manually editing flake.lock
Preserve existing changes before restoring the lock file, and distinguish dependency rollback from system-generation rollback.
Read article