mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 14:52:55 +00:00
docs: specify that flake.lock files are JSON (#11594)
* docs: specify that flake.lock files are JSON Recently, I decided that I was going to write some code that would parse flake.lock files. I went to the Nix Reference Manual in order to look up information on the format of flake.lock files, and I realized that a key detail was missing from the Nix Reference Manual: it never says that flake.lock files are JSON files. This commit fixes that issue. This commit makes sure to specify that flake.lock files are encoded in UTF-8. Confusingly, there’s multiple different JSON standards. Neither ECMA-404, 2nd Edition [1] nor ISO/IEC 21778:2017 [2] mention UTF-8. RFC 8259 requires UTF-8, but only sometimes [3]. I chose to explicitly specify that flake.lock files are UTF-8 in order to avoid any possible ambiguities from the JSON standards. [1]: <https://ecma-international.org/publications-and-standards/standards/ecma-404> [2]: <https://www.iso.org/standard/71616.html> [3]: <https://www.rfc-editor.org/rfc/rfc8259.html#section-8.1>
This commit is contained in:
parent
4dc4e81b1e
commit
a5959aa121
@ -565,8 +565,9 @@ or NixOS modules, which are composed into the top-level flake's
|
|||||||
Inputs specified in `flake.nix` are typically "unlocked" in the sense
|
Inputs specified in `flake.nix` are typically "unlocked" in the sense
|
||||||
that they don't specify an exact revision. To ensure reproducibility,
|
that they don't specify an exact revision. To ensure reproducibility,
|
||||||
Nix will automatically generate and use a *lock file* called
|
Nix will automatically generate and use a *lock file* called
|
||||||
`flake.lock` in the flake's directory. The lock file contains a graph
|
`flake.lock` in the flake's directory.
|
||||||
structure isomorphic to the graph of dependencies of the root
|
The lock file is a UTF-8 JSON file.
|
||||||
|
It contains a graph structure isomorphic to the graph of dependencies of the root
|
||||||
flake. Each node in the graph (except the root node) maps the
|
flake. Each node in the graph (except the root node) maps the
|
||||||
(usually) unlocked input specifications in `flake.nix` to locked input
|
(usually) unlocked input specifications in `flake.nix` to locked input
|
||||||
specifications. Each node also contains some metadata, such as the
|
specifications. Each node also contains some metadata, such as the
|
||||||
|
Loading…
Reference in New Issue
Block a user