From ec1b681b5ddc39c45e5d26c9bc36ad7574118467 Mon Sep 17 00:00:00 2001 From: Sukant Hajra Date: Tue, 10 Dec 2024 12:55:15 -0600 Subject: [PATCH] Update dependencies and documentation --- .github/workflows/ci.yml | 4 +- README.md | 48 ++++++++++---------- README.org | 48 ++++++++++---------- doc/internal/params.el | 6 +-- doc/nix-installation.md | 8 ++-- doc/nix-introduction.md | 6 +-- doc/nix-language.md | 14 +++--- doc/nix-language.org | 14 +++--- doc/nix-usage-flakes.md | 14 +++--- doc/nix-usage-flakes.org | 8 ++-- flake.lock | 98 ++++++++++++++++++++-------------------- 11 files changed, 133 insertions(+), 135 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d161492..e428723 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,8 +9,8 @@ jobs: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v30 with: - # DESIGN: matching current in NixOS 24.05 - install_url: https://releases.nixos.org/nix/nix-2.18.8/install + # DESIGN: matching current in NixOS 24.11 + install_url: https://releases.nixos.org/nix/nix-2.24.10/install - uses: cachix/cachix-action@v15 with: name: shajra diff --git a/README.md b/README.md index 64ad372..d24754f 100644 --- a/README.md +++ b/README.md @@ -180,8 +180,8 @@ nix run github:shajra/shajra-keyboards#flash-ergodoxez Flashing ZSA Technology Lab's Ergodox EZ (custom "shajra" keymap) ================================================================= - FLASH SOURCE: /nix/store/0ycvgzx4gp9imwsy14038x4g9dyplnjp-qmk-builtin-shajra-src - FLASH BINARY: /nix/store/wl4kghpgi6i6jazb8ns9jylihvlck038-ergodoxez-builtin-shajra.hex + FLASH SOURCE: /nix/store/kzh61nl5fhipcmhx66vxs7qwh4im9kva-qmk-builtin-shajra-src + FLASH BINARY: /nix/store/dqhsjba9qna2k7g2ac21sbsa025jy021-ergodoxez-builtin-shajra.hex ⠋ Press the reset button of your keyboard @@ -242,28 +242,28 @@ If you want to check that everything builds before flashing your keyboard, you c tree $(nix build --no-link --print-out-paths) 2>/dev/null ``` - /nix/store/0r2p19x9bbbisa5iqk7api0ym2dvvr8x-shajra-keyboards-ci - ├── build-ergodoxez-builtin-shajra-flash -> /nix/store/09lshg2jd1vazklylpgl99i5a7x2nx4a-ergodoxez-builtin-shajra-flash - ├── build-ergodoxez-builtin-shajra-hex -> /nix/store/wl4kghpgi6i6jazb8ns9jylihvlck038-ergodoxez-builtin-shajra.hex - ├── build-ergodoxez-factory-flash -> /nix/store/as8vjx0nhfy0bsi36n0dh9g464bk992y-ergodoxez-factory-flash - ├── build-ergodoxez-factory-hex -> /nix/store/am441lswi89dsh6qxq33qpnaicpaz9hr-ergodoxez-factory.hex - ├── build-model01-builtin-shajra-flash -> /nix/store/n7za85pqh67shlsdcjn39m6rxbfcfxqg-model01-builtin-shajra-flash - ├── build-model01-builtin-shajra-hex -> /nix/store/yhpak5kc5gf79c6vadbc46ynr4dbl6a4-model01-builtin-shajra-hex - ├── build-model01-factory-flash -> /nix/store/d3v31m82pdsp1pfi1c4vx92dhhvbiiw6-model01-factory-flash - ├── build-model01-factory-hex -> /nix/store/fcwjyian0h220ckrdlarmh4qgy69y1pa-model01-factory-hex - ├── build-model100-builtin-shajra-flash -> /nix/store/sahhf4sc3wy436p6kpn2dbzhnjmwyg8k-model100-builtin-shajra-flash - ├── build-model100-builtin-shajra-hex -> /nix/store/s0a77b1b8r6if9bxsx5w1r4zyfxy0p0c-model100-builtin-shajra-hex - ├── build-model100-factory-flash -> /nix/store/mqra5gsgkgzn78bcs63ia8c4if194msx-model100-factory-flash - ├── build-model100-factory-hex -> /nix/store/szfn6hxgmspcj7k41bslmplpvd0m147w-model100-factory-hex - ├── build-moonlander-builtin-shajra-flash -> /nix/store/24qrxdvmm1frclnyjl0gl6dbp0hxjwq5-moonlander-builtin-shajra-flash - ├── build-moonlander-builtin-shajra-hex -> /nix/store/fz0596vyyiiipcf1jxaazhg2x51qmqgl-moonlander-builtin-shajra.bin - ├── build-moonlander-factory-flash -> /nix/store/id3pxnn489rps4zvlhk28xr5v6pkfp8h-moonlander-factory-flash - ├── build-moonlander-factory-hex -> /nix/store/vsrhlvshbr8wkrk1jjz7wsxdfs76b37h-moonlander-factory.bin - ├── flash-ergodoxez -> /nix/store/d8fkkpr7609x4qy3246h0lcjvlsi6pf4-flash-ergodoxez - ├── flash-model01 -> /nix/store/g7z00z5slq7q3l341rd5rkhgkd39a669-flash-model01 - ├── flash-model100 -> /nix/store/8f7hhc8f09yadd643iy84qh3mrj00slz-flash-model100 - ├── flash-moonlander -> /nix/store/k5qsvljlslrm31spz2mnrccymlz4saas-flash-moonlander - └── licenses -> /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses + /nix/store/f6h841a2lw0g6yp6l3z0mnbz17q3ibg2-shajra-keyboards-ci + ├── build-ergodoxez-builtin-shajra-flash -> /nix/store/xnrj344dc9l06jqn304ishbxdgpwa4b2-ergodoxez-builtin-shajra-flash + ├── build-ergodoxez-builtin-shajra-hex -> /nix/store/dqhsjba9qna2k7g2ac21sbsa025jy021-ergodoxez-builtin-shajra.hex + ├── build-ergodoxez-factory-flash -> /nix/store/8lgc4cl3am3a5ajh9iiyrmvhni0fkhnm-ergodoxez-factory-flash + ├── build-ergodoxez-factory-hex -> /nix/store/al7pcqv436p7w116729nfmma29izxwip-ergodoxez-factory.hex + ├── build-model01-builtin-shajra-flash -> /nix/store/nwd9dw8b4c405ikx39jwf7r3axxygpbr-model01-builtin-shajra-flash + ├── build-model01-builtin-shajra-hex -> /nix/store/qa0bhay93i0hyvwf7pikf17j7xpxr1il-model01-builtin-shajra-hex + ├── build-model01-factory-flash -> /nix/store/1qmacxmrwx5l8malmprf389n57w3fr1s-model01-factory-flash + ├── build-model01-factory-hex -> /nix/store/bsvxmm8f5nfhmqr4knr5asf09a6p7i0i-model01-factory-hex + ├── build-model100-builtin-shajra-flash -> /nix/store/ryf4kalbv46ky0n591xy3194b1ppv1jd-model100-builtin-shajra-flash + ├── build-model100-builtin-shajra-hex -> /nix/store/ingfzbahcxy80drklhgxjd4204n1haab-model100-builtin-shajra-hex + ├── build-model100-factory-flash -> /nix/store/vk6mpawwgrrg7lyigwzn0wmj37wm94j1-model100-factory-flash + ├── build-model100-factory-hex -> /nix/store/9bm06gvn5h21gk1hxwn89hbd220fwvkw-model100-factory-hex + ├── build-moonlander-builtin-shajra-flash -> /nix/store/ybfqxcp7m0ah44l16fhlighqh9sa8msv-moonlander-builtin-shajra-flash + ├── build-moonlander-builtin-shajra-hex -> /nix/store/qiznnlymwh7wn5pdc0b87i527carcalk-moonlander-builtin-shajra.bin + ├── build-moonlander-factory-flash -> /nix/store/m349s0ml89pfmaxp2swzs5d5zqxd60p3-moonlander-factory-flash + ├── build-moonlander-factory-hex -> /nix/store/5136516h4jqlwij63kn4y4fzdb7bjjgs-moonlander-factory.bin + ├── flash-ergodoxez -> /nix/store/zm3ym7p85sclsc41h0plaz8ffli7b1i3-flash-ergodoxez + ├── flash-model01 -> /nix/store/nz2dad9c4i2dsj5w4gf088iza4hn6lb4-flash-model01 + ├── flash-model100 -> /nix/store/bwwklv5d0iz4ln1znvyjadg0h13qkxib-flash-model100 + ├── flash-moonlander -> /nix/store/54wyh4kbsb1vmkpgjx0m65wxi1v1l5vd-flash-moonlander + └── licenses -> /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses 18 directories, 4 files diff --git a/README.org b/README.org index 8487147..5e83466 100644 --- a/README.org +++ b/README.org @@ -212,8 +212,8 @@ head -c350 < <(./flash-ergodoxez) | ansifilter : Flashing ZSA Technology Lab's Ergodox EZ (custom "shajra" keymap) : ================================================================= : -: FLASH SOURCE: /nix/store/0ycvgzx4gp9imwsy14038x4g9dyplnjp-qmk-builtin-shajra-src -: FLASH BINARY: /nix/store/wl4kghpgi6i6jazb8ns9jylihvlck038-ergodoxez-builtin-shajra.hex +: FLASH SOURCE: /nix/store/kzh61nl5fhipcmhx66vxs7qwh4im9kva-qmk-builtin-shajra-src +: FLASH BINARY: /nix/store/dqhsjba9qna2k7g2ac21sbsa025jy021-ergodoxez-builtin-shajra.hex : : ⠋ Press the reset button of your keyboard @@ -308,28 +308,28 @@ tree $(nix build --no-link --print-out-paths) 2>/dev/null #+results: nix-build #+begin_example -/nix/store/0r2p19x9bbbisa5iqk7api0ym2dvvr8x-shajra-keyboards-ci -├── build-ergodoxez-builtin-shajra-flash -> /nix/store/09lshg2jd1vazklylpgl99i5a7x2nx4a-ergodoxez-builtin-shajra-flash -├── build-ergodoxez-builtin-shajra-hex -> /nix/store/wl4kghpgi6i6jazb8ns9jylihvlck038-ergodoxez-builtin-shajra.hex -├── build-ergodoxez-factory-flash -> /nix/store/as8vjx0nhfy0bsi36n0dh9g464bk992y-ergodoxez-factory-flash -├── build-ergodoxez-factory-hex -> /nix/store/am441lswi89dsh6qxq33qpnaicpaz9hr-ergodoxez-factory.hex -├── build-model01-builtin-shajra-flash -> /nix/store/n7za85pqh67shlsdcjn39m6rxbfcfxqg-model01-builtin-shajra-flash -├── build-model01-builtin-shajra-hex -> /nix/store/yhpak5kc5gf79c6vadbc46ynr4dbl6a4-model01-builtin-shajra-hex -├── build-model01-factory-flash -> /nix/store/d3v31m82pdsp1pfi1c4vx92dhhvbiiw6-model01-factory-flash -├── build-model01-factory-hex -> /nix/store/fcwjyian0h220ckrdlarmh4qgy69y1pa-model01-factory-hex -├── build-model100-builtin-shajra-flash -> /nix/store/sahhf4sc3wy436p6kpn2dbzhnjmwyg8k-model100-builtin-shajra-flash -├── build-model100-builtin-shajra-hex -> /nix/store/s0a77b1b8r6if9bxsx5w1r4zyfxy0p0c-model100-builtin-shajra-hex -├── build-model100-factory-flash -> /nix/store/mqra5gsgkgzn78bcs63ia8c4if194msx-model100-factory-flash -├── build-model100-factory-hex -> /nix/store/szfn6hxgmspcj7k41bslmplpvd0m147w-model100-factory-hex -├── build-moonlander-builtin-shajra-flash -> /nix/store/24qrxdvmm1frclnyjl0gl6dbp0hxjwq5-moonlander-builtin-shajra-flash -├── build-moonlander-builtin-shajra-hex -> /nix/store/fz0596vyyiiipcf1jxaazhg2x51qmqgl-moonlander-builtin-shajra.bin -├── build-moonlander-factory-flash -> /nix/store/id3pxnn489rps4zvlhk28xr5v6pkfp8h-moonlander-factory-flash -├── build-moonlander-factory-hex -> /nix/store/vsrhlvshbr8wkrk1jjz7wsxdfs76b37h-moonlander-factory.bin -├── flash-ergodoxez -> /nix/store/d8fkkpr7609x4qy3246h0lcjvlsi6pf4-flash-ergodoxez -├── flash-model01 -> /nix/store/g7z00z5slq7q3l341rd5rkhgkd39a669-flash-model01 -├── flash-model100 -> /nix/store/8f7hhc8f09yadd643iy84qh3mrj00slz-flash-model100 -├── flash-moonlander -> /nix/store/k5qsvljlslrm31spz2mnrccymlz4saas-flash-moonlander -└── licenses -> /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses +/nix/store/f6h841a2lw0g6yp6l3z0mnbz17q3ibg2-shajra-keyboards-ci +├── build-ergodoxez-builtin-shajra-flash -> /nix/store/xnrj344dc9l06jqn304ishbxdgpwa4b2-ergodoxez-builtin-shajra-flash +├── build-ergodoxez-builtin-shajra-hex -> /nix/store/dqhsjba9qna2k7g2ac21sbsa025jy021-ergodoxez-builtin-shajra.hex +├── build-ergodoxez-factory-flash -> /nix/store/8lgc4cl3am3a5ajh9iiyrmvhni0fkhnm-ergodoxez-factory-flash +├── build-ergodoxez-factory-hex -> /nix/store/al7pcqv436p7w116729nfmma29izxwip-ergodoxez-factory.hex +├── build-model01-builtin-shajra-flash -> /nix/store/nwd9dw8b4c405ikx39jwf7r3axxygpbr-model01-builtin-shajra-flash +├── build-model01-builtin-shajra-hex -> /nix/store/qa0bhay93i0hyvwf7pikf17j7xpxr1il-model01-builtin-shajra-hex +├── build-model01-factory-flash -> /nix/store/1qmacxmrwx5l8malmprf389n57w3fr1s-model01-factory-flash +├── build-model01-factory-hex -> /nix/store/bsvxmm8f5nfhmqr4knr5asf09a6p7i0i-model01-factory-hex +├── build-model100-builtin-shajra-flash -> /nix/store/ryf4kalbv46ky0n591xy3194b1ppv1jd-model100-builtin-shajra-flash +├── build-model100-builtin-shajra-hex -> /nix/store/ingfzbahcxy80drklhgxjd4204n1haab-model100-builtin-shajra-hex +├── build-model100-factory-flash -> /nix/store/vk6mpawwgrrg7lyigwzn0wmj37wm94j1-model100-factory-flash +├── build-model100-factory-hex -> /nix/store/9bm06gvn5h21gk1hxwn89hbd220fwvkw-model100-factory-hex +├── build-moonlander-builtin-shajra-flash -> /nix/store/ybfqxcp7m0ah44l16fhlighqh9sa8msv-moonlander-builtin-shajra-flash +├── build-moonlander-builtin-shajra-hex -> /nix/store/qiznnlymwh7wn5pdc0b87i527carcalk-moonlander-builtin-shajra.bin +├── build-moonlander-factory-flash -> /nix/store/m349s0ml89pfmaxp2swzs5d5zqxd60p3-moonlander-factory-flash +├── build-moonlander-factory-hex -> /nix/store/5136516h4jqlwij63kn4y4fzdb7bjjgs-moonlander-factory.bin +├── flash-ergodoxez -> /nix/store/zm3ym7p85sclsc41h0plaz8ffli7b1i3-flash-ergodoxez +├── flash-model01 -> /nix/store/nz2dad9c4i2dsj5w4gf088iza4hn6lb4-flash-model01 +├── flash-model100 -> /nix/store/bwwklv5d0iz4ln1znvyjadg0h13qkxib-flash-model100 +├── flash-moonlander -> /nix/store/54wyh4kbsb1vmkpgjx0m65wxi1v1l5vd-flash-moonlander +└── licenses -> /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses 18 directories, 4 files #+end_example diff --git a/doc/internal/params.el b/doc/internal/params.el index 8420b97..f2b677f 100644 --- a/doc/internal/params.el +++ b/doc/internal/params.el @@ -10,7 +10,7 @@ ;; run-type must be "executable" (run-target-short . "shajra-keyboards-licenses") ;; run-target-long will always prefix "bin/" - (nix-latest . "2.24.10") - (nix-stable . "2.18.8") - (nixos-latest . "24.05") + (nix-latest . "2.25.3") + (nix-stable . "2.24.10") + (nixos-latest . "24.11") (platforms . "Linux on x86-64 machines")) diff --git a/doc/nix-installation.md b/doc/nix-installation.md index 9071da6..4da4362 100644 --- a/doc/nix-installation.md +++ b/doc/nix-installation.md @@ -39,22 +39,22 @@ Hopefully, this alleviates any worry about installing a complex program on your > **NOTE:** You don't need this step if you're running NixOS, which comes with Nix baked in. -Though the latest version of Nix is Nix 2.24.10, we'll be installing the version that the last release of NixOS (24.05) uses, specifically Nix 2.18.8. As discussed in the included [introduction to Nix](nix-introduction.md), this version is considered stable by the Nix community. +Though the latest version of Nix is Nix 2.25.3, we'll be installing the version that the last release of NixOS (24.11) uses, specifically Nix 2.24.10. As discussed in the included [introduction to Nix](nix-introduction.md), this version is considered stable by the Nix community. The following command calls the official installation script for the recommended version of Nix. Note, this script will require `sudo` access. ```bash -sh <(curl -L https://releases.nixos.org/nix/nix-2.18.8/install) --daemon +sh <(curl -L https://releases.nixos.org/nix/nix-2.24.10/install) --daemon ``` The `--daemon` switch installs Nix in the multi-user mode, which is generally recommended (single-user installation with `--no-daemon` instead is recommended for WSL). The script reports everything it does and touches. After installation, you may have to exit your terminal session and log back in to have environment variables configured, which puts Nix executables on your `PATH`. -Every six months or so, a new version of NixOS releases, and you should consider upgrading your installation of Nix. For NixOS 24.05, this command upgrades Nix: +Every six months or so, a new version of NixOS releases, and you should consider upgrading your installation of Nix. For NixOS 24.11, this command upgrades Nix: ```bash -NIXOS_VERSION="24.05" +NIXOS_VERSION="24.11" NIX_STORE_PATHS_URL=https://github.com/NixOS/nixpkgs/raw/$NIXOS_VERSION/nixos/module/installer/tools/nix-fallback-paths.nix sudo nix upgrade-nix --nix-store-paths-url "$NIX_STORE_PATHS_URL" ``` diff --git a/doc/nix-introduction.md b/doc/nix-introduction.md index 6a97885..f67eaf8 100644 --- a/doc/nix-introduction.md +++ b/doc/nix-introduction.md @@ -194,11 +194,11 @@ However, if industrial users move to flakes to address these problems, we have t ### Nix quick releases compete with stability -The latest major version of the Nix package manager is currently Nix 2.24.10, but NixOS 24.05, the latest stable release of NixOS, uses Nix 2.18.8. NixOS is the primary way the Nix package manager gets used in the field. Far fewer users install Nix as a package manager atop another operating system. From a community perspective it makes sense to consider Nix 2.18.8 the stable release of the package manager. This version gets the most scrutiny and critical bug fixes. +The latest major version of the Nix package manager is currently Nix 2.25.3, but NixOS 24.11, the latest stable release of NixOS, uses Nix 2.24.10. NixOS is the primary way the Nix package manager gets used in the field. Far fewer users install Nix as a package manager atop another operating system. From a community perspective it makes sense to consider Nix 2.24.10 the stable release of the package manager. This version gets the most scrutiny and critical bug fixes. -As mentioned above, there are strong reasons to use still-experimental features, particularly flakes. However, APIs and calculated hashes change too frequently in experimental features from version-to-version. By sticking with the version used in NixOS, we get less breaking changes. For example, the [flake.lock](../flake.lock) file included with this project has calculated hashes for dependencies. These hashes were computed with Nix 2.18.8, and could change with later versions. +As mentioned above, there are strong reasons to use still-experimental features, particularly flakes. However, APIs and calculated hashes change too frequently in experimental features from version-to-version. By sticking with the version used in NixOS, we get less breaking changes. For example, the [flake.lock](../flake.lock) file included with this project has calculated hashes for dependencies. These hashes were computed with Nix 2.24.10, and could change with later versions. -For these reasons, the [installation guide included with this project](nix-installation.md) recommends installing Nix 2.18.8, rather than the latest official release. +For these reasons, the [installation guide included with this project](nix-installation.md) recommends installing Nix 2.24.10, rather than the latest official release. ## A few gaps in determinism diff --git a/doc/nix-language.md b/doc/nix-language.md index 36b7779..4a8a48a 100644 --- a/doc/nix-language.md +++ b/doc/nix-language.md @@ -413,13 +413,13 @@ nix eval --impure --expr ' ``` { - lastModified = 1718457448; - lastModifiedDate = "20240615131728"; - narHash = "sha256-FSoxTcRZMGHNJh8dNtKOkcUtjhmhU6yQXcZZfUPLhQM="; - outPath = "/nix/store/z1lyf7s6klqvd97027b56lmckm5p9hik-source"; - rev = "a0f54334df36770b335c051e540ba40afcbf8378"; - revCount = 844; - shortRev = "a0f5433"; + lastModified = 1731930289; + lastModifiedDate = "20241118114449"; + narHash = "sha256-eOHQ7pD8OfSLIIFfF6daCnntzHKqpraAGFfFqSlPtbY="; + outPath = "/nix/store/n4yc76agwgn6racs698s5wnyn89mp5hl-source"; + rev = "769337c227799aa60911562b6940530f4a86eb3c"; + revCount = 870; + shortRev = "769337c"; submodules = false; } diff --git a/doc/nix-language.org b/doc/nix-language.org index 666f40c..859e6da 100644 --- a/doc/nix-language.org +++ b/doc/nix-language.org @@ -541,13 +541,13 @@ nix eval --impure --expr ' #+RESULTS: #+begin_example { - lastModified = 1718457448; - lastModifiedDate = "20240615131728"; - narHash = "sha256-FSoxTcRZMGHNJh8dNtKOkcUtjhmhU6yQXcZZfUPLhQM="; - outPath = "/nix/store/z1lyf7s6klqvd97027b56lmckm5p9hik-source"; - rev = "a0f54334df36770b335c051e540ba40afcbf8378"; - revCount = 844; - shortRev = "a0f5433"; + lastModified = 1731930289; + lastModifiedDate = "20241118114449"; + narHash = "sha256-eOHQ7pD8OfSLIIFfF6daCnntzHKqpraAGFfFqSlPtbY="; + outPath = "/nix/store/n4yc76agwgn6racs698s5wnyn89mp5hl-source"; + rev = "769337c227799aa60911562b6940530f4a86eb3c"; + revCount = 870; + shortRev = "769337c"; submodules = false; } #+end_example diff --git a/doc/nix-usage-flakes.md b/doc/nix-usage-flakes.md index 722b0dc..69b42a9 100644 --- a/doc/nix-usage-flakes.md +++ b/doc/nix-usage-flakes.md @@ -91,7 +91,7 @@ nix registry list For example, rather than referencing the flake on the `nixpkgs-unstable` branch of the Nixpkgs GitHub repository with `github:NixOS/nixpkgs/nixpkgs-unstable`, we can use the simpler identifier `nixpkgs`. -If we want to point to a different branch but still use an identifier from the registry, we can do so by extending it with the branch. For example, the flakes identifier `nixpkgs` is the same as `nixpkgs/nixpkgs-ustable`, but we can also use `nixpkgs/nixos-24.05` to override the branch and point to the NixOS 24.05 release branch. +If we want to point to a different branch but still use an identifier from the registry, we can do so by extending it with the branch. For example, the flakes identifier `nixpkgs` is the same as `nixpkgs/nixpkgs-ustable`, but we can also use `nixpkgs/nixos-24.11` to override the branch and point to the NixOS 24.11 release branch. Note that registries have mutable references, but Nix knows how to rebuild the snapshot referenced for some of these references deterministically. For example, when referencing a GitHub repository via a registry reference, Nix will take note of the commit ID of the snapshot retrieved. Nix typically stores this information required for reproducibility in a *lock file* called `flake.lock` adjacent to `flake.nix`. @@ -222,13 +222,13 @@ nix search nixpkgs 'gpu|opengl|accel' terminal | ansifilter If we're curious about what version of WezTerm is available in NixOS's latest release, we can specialize the installable we're searching as follows: ```sh -nix search nixpkgs/nixos-24.05#wezterm +nix search nixpkgs/nixos-24.11#wezterm ``` * legacyPackages.x86_64-linux.wezterm (20240203-110809-5046fc22) GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust -Here `/nixos-24.05` overrides the default `nixpkgs-unstable` branch of the registry entry, and the `#wezterm` suffix searches not just the flake, but a specific package named `wezterm`, which will either be found or not (there's no need for regexes to filter further). +Here `/nixos-24.11` overrides the default `nixpkgs-unstable` branch of the registry entry, and the `#wezterm` suffix searches not just the flake, but a specific package named `wezterm`, which will either be found or not (there's no need for regexes to filter further). You may also notice that the Nixpkgs flake outputs packages under the `legacyPackages` attribute instead of the `packages`. The primary difference is that packages are flatly organized under `packages`, while `legacyPackages` can be an arbitrary tree. `legacyPackages` exists specifically for the Nixpkgs project, a central project to the Nix ecosystem that has existed long before flakes. Beyond Nixpkgs, you don't have to think much about `legacyPackages`. Packages from all other flakes should generally be found under `packages`. @@ -265,7 +265,7 @@ After a successful call of `nix build`, you'll see one or more symlinks for each readlink result* ``` - /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses + /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses Following these symlinks, we can see the files the project provides: @@ -287,7 +287,7 @@ It's common to configure these “result” symlinks as ignored in source contro nix path-info .#licenses-thirdparty ``` - /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses + /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses ## Running commands in a shell @@ -400,7 +400,7 @@ nix shell --ignore-environment \ --command which shajra-keyboards-licenses ``` - /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses/bin/shajra-keyboards-licenses + /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses/bin/shajra-keyboards-licenses What we do with local flake references can work just as well with remote flake references. @@ -428,7 +428,7 @@ nix profile list Flake attribute: packages.x86_64-linux.licenses-thirdparty Original flake URL: git+file:///home/shajra/src/shajra-keyboards Locked flake URL: git+file:///home/shajra/src/shajra-keyboards - Store paths: /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses + Store paths: /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses If we want to uninstall a program from our profile, we do so by the index from this list: diff --git a/doc/nix-usage-flakes.org b/doc/nix-usage-flakes.org index e1d6336..7215fe1 100644 --- a/doc/nix-usage-flakes.org +++ b/doc/nix-usage-flakes.org @@ -445,7 +445,7 @@ readlink result* #+end_src #+RESULTS: nix-build-link -: /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses +: /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses Following these symlinks, we can see the files the project provides: @@ -474,7 +474,7 @@ nix path-info .#<> #+end_src #+results: nix-build-path -: /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses +: /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses ** Running commands in a shell @@ -636,7 +636,7 @@ nix shell --ignore-environment \ #+end_src #+RESULTS: nix-shell-remote -: /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses/bin/shajra-keyboards-licenses +: /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses/bin/shajra-keyboards-licenses What we do with local flake references can work just as well with remote flake references. @@ -687,7 +687,7 @@ nix profile list --profile /tmp/nix-profile | ansifilter : Flake attribute: packages.x86_64-linux.licenses-thirdparty : Original flake URL: git+file:///home/shajra/src/shajra-keyboards : Locked flake URL: git+file:///home/shajra/src/shajra-keyboards -: Store paths: /nix/store/ax7a81y4m03ksi0hflzm0hi2rj27427g-shajra-keyboards-licenses +: Store paths: /nix/store/cbb8gmijyrrcp89r8c4z9z3a041aq183-shajra-keyboards-licenses If we want to uninstall a program from our profile, we do so by the index from this list: diff --git a/flake.lock b/flake.lock index 856009c..e9a0512 100644 --- a/flake.lock +++ b/flake.lock @@ -157,19 +157,17 @@ } }, "flake-compat": { - "flake": false, "locked": { "lastModified": 1696426674, "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/%2A.tar.gz" } }, "flake-parts": { @@ -177,11 +175,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -195,11 +193,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -229,11 +227,11 @@ "keyboardio-kaleidoscope-bundle": { "flake": false, "locked": { - "lastModified": 1708711658, - "narHash": "sha256-1j4ejMgX9Iukmpnqs3NrA1TQwOPg9WSl0H89yUDw5hY=", + "lastModified": 1733784470, + "narHash": "sha256-lzG4AX306vpvS6NbFIdN06n/51w5MpbX1xYChpac2kc=", "ref": "refs/heads/master", - "rev": "b1a7cbbb42c28aedbaf8bc27fb394ed8222d54e0", - "revCount": 304, + "rev": "2633e79ed2cf7f04bfef01d1432b39d8bb85e48d", + "revCount": 307, "submodules": true, "type": "git", "url": "https://github.com/keyboardio/Kaleidoscope-Bundle-Keyboardio" @@ -247,11 +245,11 @@ "keyboardio-kaleidoscope-factory": { "flake": false, "locked": { - "lastModified": 1727207407, - "narHash": "sha256-dB6vkaCFOHYxjwITMkR/O5AX8qc+8mB6ZsSg+G0qgXA=", + "lastModified": 1733597384, + "narHash": "sha256-kjV6kI2lY1og5yFhJDDKRV2okIUjhoT9gmiMckNQp+Y=", "ref": "refs/heads/master", - "rev": "1c02a92b30854297c31e31b13dae4290c2095624", - "revCount": 6334, + "rev": "04104c06ae90c9b951405e6432e18c7606cd98e2", + "revCount": 6345, "type": "git", "url": "https://github.com/keyboardio/Kaleidoscope" }, @@ -335,11 +333,11 @@ "ox-gfm": "ox-gfm" }, "locked": { - "lastModified": 1731165527, - "narHash": "sha256-ZGmRwcAfj4cb+SQ2CYrhWocyKG9Bhl3tQTd8N5ml8sE=", + "lastModified": 1733856679, + "narHash": "sha256-9EMjXNfT4xpigNoavzWaAdgXa+TrJAfuy4dF0Cqwz7Y=", "owner": "shajra", "repo": "nix-project", - "rev": "f36d0f8e8438139054afd10a15eb43597ef2f464", + "rev": "1d6db2fb282eb00661faf781271430e53144eb8a", "type": "github" }, "original": { @@ -350,35 +348,35 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1730504152, - "narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=", + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" } }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1730504152, - "narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=", + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" } }, "nixpkgs-master": { "locked": { - "lastModified": 1731164800, - "narHash": "sha256-ge5br6L2oubRPEqAuaaVWsXazjhbsi2oaY3+tZx7erc=", + "lastModified": 1733855884, + "narHash": "sha256-+vK/1AWORbLcMao1DUFPVeM7mgzonFYq54us4qelcio=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2d4c4f350b98e3940bd733768948149426f022f", + "rev": "b93b330c2927fba80a00441d31d92446a46ee0a6", "type": "github" }, "original": { @@ -390,43 +388,43 @@ }, "nixpkgs-stable-darwin": { "locked": { - "lastModified": 1730891215, - "narHash": "sha256-i85DPrhDuvzgvIWCpJlbfM2UFtNYbapo20MtQXsvay4=", + "lastModified": 1733693873, + "narHash": "sha256-WQHUGmsaZnizDwGAGlt3KNottVHj4E8HKzxseULqrzo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c128e44a249d6180740d0a979b6480d5b795c013", + "rev": "4dbea6e2d4bfa443e7d7329ac81532626fc78c8d", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-24.05-darwin", + "ref": "nixpkgs-24.11-darwin", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-stable-linux": { "locked": { - "lastModified": 1730963269, - "narHash": "sha256-rz30HrFYCHiWEBCKHMffHbMdWJ35hEkcRVU0h7ms3x0=", + "lastModified": 1733550349, + "narHash": "sha256-NcGumB4Lr6KSDq+nIqXtNA8QwAQKDSZT7N9OTGWbTrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "83fb6c028368e465cd19bb127b86f971a5e41ebc", + "rev": "e2605d0744c2417b09f8bf850dfca42fcf537d34", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs-unstable": { "locked": { - "lastModified": 1730958623, - "narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=", + "lastModified": 1733686850, + "narHash": "sha256-NQEO/nZWWGTGlkBWtCs/1iF1yl2lmQ1oY/8YZrumn3I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "85f7e662eda4fa3a995556527c87b2524b691933", + "rev": "dd51f52372a20a93c219e8216fe528a648ffcbf4", "type": "github" }, "original": { @@ -455,11 +453,11 @@ "qmk-factory": { "flake": false, "locked": { - "lastModified": 1731126240, - "narHash": "sha256-9k/+DkFFcVSAMXF1K11LO1uqrQCicT9sLjgpGvLJuUk=", + "lastModified": 1733726047, + "narHash": "sha256-H2YzTsQpZs2sF2pUceoqQcrsOTLx51M3Ied0jUuDzYk=", "ref": "refs/heads/master", - "rev": "f156e57f8ef6bb825695123ab7cf2eca8d75dace", - "revCount": 28004, + "rev": "847257c3c757c475eb9f47493252cc55b0e08f51", + "revCount": 28243, "submodules": true, "type": "git", "url": "https://github.com/qmk/qmk_firmware"