Skip to content

Commit

Permalink
Update dependencies and documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Sukant Hajra committed Dec 10, 2024
1 parent 710b7f9 commit ec1b681
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 135 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
48 changes: 24 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
48 changes: 24 additions & 24 deletions README.org
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions doc/internal/params.el
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
8 changes: 4 additions & 4 deletions doc/nix-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ Hopefully, this alleviates any worry about installing a complex program on your

> **<span class="underline">NOTE:</span>** 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"
```
Expand Down
6 changes: 3 additions & 3 deletions doc/nix-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,11 +194,11 @@ However, if industrial users move to flakes to address these problems, we have t

### Nix quick releases compete with stability<a id="sec-4-2-3"></a>

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<a id="sec-4-3"></a>

Expand Down
14 changes: 7 additions & 7 deletions doc/nix-language.md
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
14 changes: 7 additions & 7 deletions doc/nix-language.org
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading

0 comments on commit ec1b681

Please sign in to comment.