← back to Exo
bump and simplify flake (#1866)
9b381f7bfe0c8850e210d707965af5c69f58994e · 2026-04-13 16:45:17 +0100 · Evan Quiney
seems like stablepkgs swiftfmt works now! also bump macmon to 0.7
Files touched
M CONTRIBUTING.mdM README.mdM flake.lockM flake.nixM packaging/pyinstaller/exo.spec
Diff
commit 9b381f7bfe0c8850e210d707965af5c69f58994e
Author: Evan Quiney <evanev7@gmail.com>
Date: Mon Apr 13 16:45:17 2026 +0100
bump and simplify flake (#1866)
seems like stablepkgs swiftfmt works now! also bump macmon to 0.7
---
CONTRIBUTING.md | 4 +--
README.md | 4 +--
flake.lock | 67 ++++++++++++++++--------------------------
flake.nix | 25 +++++++---------
packaging/pyinstaller/exo.spec | 4 +--
5 files changed, 41 insertions(+), 63 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cb6d78df..49c518dc 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -19,8 +19,8 @@ To run EXO from source:
- [macmon](https://github.com/vladkens/macmon) (for hardware monitoring on Apple Silicon)
Use the pinned fork revision used by this repo instead of Homebrew `macmon`.
```bash
- cargo install --git https://github.com/swiftraccoon/macmon \
- --rev 9154d234f763fbeffdcb4135d0bbbaf80609699b \
+ cargo install --git https://github.com/vladkens/macmon \
+ --rev a1cd06b6cc0d5e61db24fd8832e74cd992097a7d \
macmon \
--force
```
diff --git a/README.md b/README.md
index f12a1c53..a05b74c4 100644
--- a/README.md
+++ b/README.md
@@ -112,8 +112,8 @@ Then restart the Nix daemon: `sudo launchctl kickstart -k system/org.nixos.nix-d
Homebrew `macmon 0.6.1` still crashes on Apple M5.
```bash
- cargo install --git https://github.com/swiftraccoon/macmon \
- --rev 9154d234f763fbeffdcb4135d0bbbaf80609699b \
+ cargo install --git https://github.com/vladkens/macmon \
+ --rev a1cd06b6cc0d5e61db24fd8832e74cd992097a7d \
macmon \
--force
```
diff --git a/flake.lock b/flake.lock
index 6c589f9e..cca42b7a 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"crane": {
"locked": {
- "lastModified": 1767744144,
- "narHash": "sha256-9/9ntI0D+HbN4G0TrK3KmHbTvwgswz7p8IEJsWyef8Q=",
+ "lastModified": 1775790182,
+ "narHash": "sha256-pG2RWVQY0Pe+rmmXJx+Jpyi+JcgjWzS18m7fcD1B64Q=",
"owner": "ipetkov",
"repo": "crane",
- "rev": "2fb033290bf6b23f226d4c8b32f7f7a16b043d7e",
+ "rev": "534982f1c41834b101e381b07b1121a4f065a374",
"type": "github"
},
"original": {
@@ -47,11 +47,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
- "lastModified": 1768287139,
- "narHash": "sha256-nsXFt0OzUi6K7dUzzJD5/v9e0Ic+fvclfIW936/43ZM=",
+ "lastModified": 1775807984,
+ "narHash": "sha256-Redoe3D9zGN5I9QPHWL9vfMVQBehY1fKsMiRXQ83X3w=",
"owner": "nix-community",
"repo": "fenix",
- "rev": "a4a3aa956931f90f35453cb519e4545e9ad7f773",
+ "rev": "fcf90c0c4d368b2ca917a7afa6d08e98a397e5fd",
"type": "github"
},
"original": {
@@ -83,11 +83,11 @@
]
},
"locked": {
- "lastModified": 1768135262,
- "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
+ "lastModified": 1775087534,
+ "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
+ "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
@@ -98,36 +98,20 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1768127708,
- "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
+ "lastModified": 1775595990,
+ "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
+ "rev": "4e92bbcdb030f3b4782be4751dc08e6b6cb6ccf2",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "nixos-unstable",
+ "ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
- "nixpkgs-swift": {
- "locked": {
- "lastModified": 1761672384,
- "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
- "type": "github"
- }
- },
"purescript-overlay": {
"inputs": {
"flake-compat": "flake-compat",
@@ -184,11 +168,11 @@
]
},
"locked": {
- "lastModified": 1774498001,
- "narHash": "sha256-wTfdyzzrmpuqt4TQQNqilF91v0m5Mh1stNy9h7a/WK4=",
+ "lastModified": 1775439158,
+ "narHash": "sha256-NHY9SJNU019n+8NCabBDtmuzRFeE2gZlYKHowp9bV24=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
- "rev": "794afa6eb588b498344f2eaa36ab1ceb7e6b0b09",
+ "rev": "fb6b728260f3f32761367e9fd1e1a25b4245bcd0",
"type": "github"
},
"original": {
@@ -204,7 +188,6 @@
"fenix": "fenix",
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
- "nixpkgs-swift": "nixpkgs-swift",
"pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix",
"treefmt-nix": "treefmt-nix",
@@ -214,11 +197,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
- "lastModified": 1768224240,
- "narHash": "sha256-Pp1dDrXKPBUJReZnnDElFyHYn67XTd48zRhToheLjtk=",
+ "lastModified": 1775745684,
+ "narHash": "sha256-8MbfLwd60FNa8dRFkjE+G3TT/x21G3Rsplm1bMBQUtU=",
"owner": "rust-lang",
"repo": "rust-analyzer",
- "rev": "725349602e525df37f377701e001fe8aab807878",
+ "rev": "64ddb549bc9a70d011328746fa46a8883f937b6b",
"type": "github"
},
"original": {
@@ -257,11 +240,11 @@
]
},
"locked": {
- "lastModified": 1768158989,
- "narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=",
+ "lastModified": 1775636079,
+ "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
- "rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca",
+ "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {
@@ -280,11 +263,11 @@
]
},
"locked": {
- "lastModified": 1774490495,
- "narHash": "sha256-a9WmQWj8fF7BctZGCoyzpUjP6GJw8H+lxl+zxpGnETk=",
+ "lastModified": 1775706324,
+ "narHash": "sha256-BTb4sydzX2B5/oNbvCdQFeSbk97xEnbb8bk84CiKCOs=",
"owner": "pyproject-nix",
"repo": "uv2nix",
- "rev": "18ae62fc5e389e3069854a7c66455c22e31708fc",
+ "rev": "5707df99097375896a3dda811d492a2fabe63500",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 75f3098e..c2ef41c6 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,7 +2,7 @@
description = "The development environment for Exo";
inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
flake-parts = {
url = "github:hercules-ci/flake-parts";
@@ -45,9 +45,6 @@
inputs.uv2nix.follows = "uv2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
-
- # Pinned nixpkgs for swift-format (swift is broken on x86_64-linux in newer nixpkgs)
- nixpkgs-swift.url = "github:NixOS/nixpkgs/08dacfca559e1d7da38f3cf05f1f45ee9bfd213c";
};
nixConfig = {
@@ -73,10 +70,6 @@
debug = true; # Enable options autocompletion
perSystem = { config, self', pkgs, lib, system, ... }:
- let
- # Use pinned nixpkgs for swift-format (swift is broken on x86_64-linux in newer nixpkgs)
- pkgsSwift = import inputs.nixpkgs-swift { inherit system; };
- in
{
# Allow unfree for metal-toolchain (needed for Darwin Metal packages)
_module.args.pkgs = import inputs.nixpkgs {
@@ -84,16 +77,18 @@
config.allowUnfreePredicate = pkg: (pkg.pname or "") == "metal-toolchain";
overlays = [
(import ./nix/apple-sdk-overlay.nix)
- (final: prev: {
- macmon = prev.macmon.overrideAttrs (_: {
+ (final: _: {
+ macmon = final.rustPlatform.buildRustPackage {
+ pname = "macmon";
version = "git";
src = final.fetchFromGitHub {
- owner = "swiftraccoon";
+ owner = "vladkens";
repo = "macmon";
- rev = "9154d234f763fbeffdcb4135d0bbbaf80609699b";
- hash = "sha256-CwhilKNbs5XL9/tF5DMwyPBlE/hpmjGNTuxQ36sM50M=";
+ rev = "a1cd06b6cc0d5e61db24fd8832e74cd992097a7d";
+ hash = "sha256-wcq4PUXK44XfUKOZKl32u8LpOxXpSbUUfItQGwS2Zso=";
};
- });
+ cargoHash = "sha256-Epj3L+db1flGNK5y6yfSig8piEiXTz15lPo/FNkqlkA=";
+ };
})
];
};
@@ -116,7 +111,7 @@
};
swift-format = {
enable = true;
- package = pkgsSwift.swiftPackages.swift-format;
+ package = pkgs.swiftPackages.swift-format;
};
shfmt.enable = true;
taplo.enable = true;
diff --git a/packaging/pyinstaller/exo.spec b/packaging/pyinstaller/exo.spec
index 143d0ea0..492c9072 100644
--- a/packaging/pyinstaller/exo.spec
+++ b/packaging/pyinstaller/exo.spec
@@ -72,8 +72,8 @@ if MACMON_PATH is None:
raise SystemExit(
"macmon binary not found in PATH. "
"Install the pinned fork used by exo via: "
- "cargo install --git https://github.com/swiftraccoon/macmon "
- "--rev 9154d234f763fbeffdcb4135d0bbbaf80609699b macmon --force"
+ "cargo install --git https://github.com/vladkens/macmon "
+ "--rev a1cd06b6cc0d5e61db24fd8832e74cd992097a7d macmon --force"
)
BINARIES: list[tuple[str, str]] = [
← d2f67b5d dashboard: group Gemma under Google with proper logo (#1883)
·
back to Exo
·
Reduce memory consumption by adding Flash Attention to Qwen3 3f0df404 →