Compare commits
4 Commits
1070642635
...
dca79232ce
| Author | SHA1 | Date | |
|---|---|---|---|
| dca79232ce | |||
| 6c700ea0ba | |||
| 8a3c40c268 | |||
| fc1f2404d0 |
@@ -1,11 +1,13 @@
|
|||||||
---
|
---
|
||||||
name: update-package-hashes
|
name: update-package-hashes
|
||||||
description: Update a package in packages/ to a new version and refresh its hashes (src, vendorHash, npmDepsHash, cargoHash, etc.) WITHOUT compiling the package. Use when the user asks to bump, update, or upgrade a specific package under packages/. Requires package name and target version/rev.
|
description: Update a package in packages/ to a new version and refresh its hashes (src, vendorHash, npmDepsHash, cargoHash, etc.) WITHOUT compiling the package. Use when the user asks to bump, update, or upgrade a specific package under packages/. If version is provided, proceed directly. If not, look up the latest version and ask the user before proceeding.
|
||||||
---
|
---
|
||||||
|
|
||||||
# Update Package Hashes (Without Building)
|
# Update Package Hashes (Without Building)
|
||||||
|
|
||||||
Require the user to supply the **package name** and **target version/rev/tag**. Ask if missing.
|
If the user provides a **package name** and **target version/rev/tag**, proceed directly.
|
||||||
|
|
||||||
|
If the user provides only a **package name** (no version), look up the latest version and **ask the user** if they want to proceed before updating.
|
||||||
|
|
||||||
## Hard Rules — Read First
|
## Hard Rules — Read First
|
||||||
|
|
||||||
@@ -47,13 +49,37 @@ Setting the hash to `sha256-AAAA...` (44 A's) or leaving the old one in place bo
|
|||||||
|
|
||||||
**Note:** `.src`, `.goModules`, etc. are sub-attributes of the derivation. They download but do not compile. `nix build .#<name>` (without the `.src` suffix) compiles — never do that.
|
**Note:** `.src`, `.goModules`, etc. are sub-attributes of the derivation. They download but do not compile. `nix build .#<name>` (without the `.src` suffix) compiles — never do that.
|
||||||
|
|
||||||
|
## Lookup Latest Version
|
||||||
|
|
||||||
|
When the user asks to update a package but doesn't specify a version, look it up and present it for confirmation.
|
||||||
|
|
||||||
|
1. Read `packages/<name>/default.nix` to find the git URL and current version/tag.
|
||||||
|
2. Determine the tag pattern from the current `tag` field (e.g. `"b${version}"` → tags like `b8815`; `"v${version}"` → tags like `v1.2.3`).
|
||||||
|
3. Fetch the newest matching tag:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find the latest tag matching the package's pattern
|
||||||
|
git ls-remote --tags https://github.com/ggml-org/llama.cpp.git 'b*' 2>&1 | tail -1
|
||||||
|
```
|
||||||
|
|
||||||
|
For non-GitHub repos, use the appropriate remote URL from the package's `fetchFrom*` expression.
|
||||||
|
4. Present the result to the user and **ask for confirmation** before proceeding:
|
||||||
|
|
||||||
|
```
|
||||||
|
Current: b8815 → Latest: b8914
|
||||||
|
Proceed with update? (yes/no)
|
||||||
|
```
|
||||||
|
|
||||||
|
If the user confirms, use the latest version. If they provide a different target, use that instead. If they say no, abort.
|
||||||
|
|
||||||
## Flow
|
## Flow
|
||||||
|
|
||||||
1. Edit `packages/<name>/default.nix` — bump `version` / `rev` / `tag`. Check for sibling `.nix` files (e.g. `ui.nix`) that may also need bumping.
|
1. **If no version was provided**, look up the latest version (see section above) and ask the user to confirm.
|
||||||
2. Get the new `src` hash with **Method A** (`nurl`). If the package uses a custom fetcher, use **Method B** on `.src` instead.
|
2. Edit `packages/<name>/default.nix` — bump `version` / `rev` / `tag`. Check for sibling `.nix` files (e.g. `ui.nix`) that may also need bumping.
|
||||||
3. For each dependency hash (`vendorHash` / `npmDepsHash` / `cargoHash` / etc.), use **Method B** on the matching sub-attribute.
|
3. Get the new `src` hash with **Method A** (`nurl`). If the package uses a custom fetcher, use **Method B** on `.src` instead.
|
||||||
4. **Opaque `outputHash` FODs** (e.g. opencode's `node_modules` which runs `bun install`) — do NOT attempt locally. Leave as-is and flag for CI in the summary.
|
4. For each dependency hash (`vendorHash` / `npmDepsHash` / `cargoHash` / etc.), use **Method B** on the matching sub-attribute.
|
||||||
5. Show `git diff -- packages/<name>/` and list any hashes left for CI.
|
5. **Opaque `outputHash` FODs** (e.g. opencode's `node_modules` which runs `bun install`) — do NOT attempt locally. Leave as-is and flag for CI in the summary.
|
||||||
|
6. Show `git diff -- packages/<name>/` and list any hashes left for CI.
|
||||||
|
|
||||||
## Resolving Tags Without Cloning
|
## Resolving Tags Without Cloning
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ in
|
|||||||
services.xe-guest-utilities.enable = mkIf cfg.xenGuest true;
|
services.xe-guest-utilities.enable = mkIf cfg.xenGuest true;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
supportedFilesystems = [ "nfs" ];
|
||||||
kernelParams =
|
kernelParams =
|
||||||
lib.optionals cfg.silentBoot [
|
lib.optionals cfg.silentBoot [
|
||||||
"quiet"
|
"quiet"
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
vulkanSupport = true;
|
vulkanSupport = true;
|
||||||
}).overrideAttrs
|
}).overrideAttrs
|
||||||
(oldAttrs: rec {
|
(oldAttrs: rec {
|
||||||
version = "8815";
|
version = "8914";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "ggml-org";
|
owner = "ggml-org";
|
||||||
repo = "llama.cpp";
|
repo = "llama.cpp";
|
||||||
tag = "b${version}";
|
tag = "b${version}";
|
||||||
hash = "sha256-QJsGBHLdvFfMXZJSk9D76b7v6DP06NaTYztHv41o/CA=";
|
hash = "sha256-Luw4huVAJAYm+N5PMEI0cmOhNao/WUb6AoPEBmrN9T0=";
|
||||||
leaveDotGit = true;
|
leaveDotGit = true;
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
git -C "$out" rev-parse --short HEAD > $out/COMMIT
|
git -C "$out" rev-parse --short HEAD > $out/COMMIT
|
||||||
|
|||||||
@@ -14,16 +14,16 @@
|
|||||||
|
|
||||||
buildNpmPackage rec {
|
buildNpmPackage rec {
|
||||||
pname = "pi-coding-agent";
|
pname = "pi-coding-agent";
|
||||||
version = "0.67.5";
|
version = "0.70.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "badlogic";
|
owner = "badlogic";
|
||||||
repo = "pi-mono";
|
repo = "pi-mono";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-Pw2f/6rKGWzmSdswungerrGrR6i9tUVFNiA4xaNygsQ=";
|
hash = "sha256-gB3QUxA4OZ8Zg5YGbAHmknSnAHrhEGxzz/DXRiKiK50=";
|
||||||
};
|
};
|
||||||
|
|
||||||
npmDepsHash = "sha256-L53UEVQNsLoSkmP9L9AZQ74iThdMFBgtnLaXqZHqBRw=";
|
npmDepsHash = "sha256-SBm5GPmHNZ24zYBo3rA9n3XTz8Y7oNOaGJ2dY/X2ccw=";
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ in
|
|||||||
|
|
||||||
# Config Boot
|
# Config Boot
|
||||||
boot = {
|
boot = {
|
||||||
supportedFilesystems = [ "nfs" ];
|
|
||||||
loader.timeout = lib.mkForce 0;
|
loader.timeout = lib.mkForce 0;
|
||||||
consoleLogLevel = 7;
|
consoleLogLevel = 7;
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ in
|
|||||||
{
|
{
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
boot.supportedFilesystems = [ "nfs" ];
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
hardware.nvidia-container-toolkit.enable = true;
|
hardware.nvidia-container-toolkit.enable = true;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ in
|
|||||||
{
|
{
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
boot.supportedFilesystems = [ "nfs" ];
|
|
||||||
|
|
||||||
reichard = {
|
reichard = {
|
||||||
nix = enabled;
|
nix = enabled;
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ in
|
|||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
supportedFilesystems = [ "nfs" ];
|
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
# Mask GPE03 (EC wakeup events) to allow hibernation without spurious CPU wakeups
|
# Mask GPE03 (EC wakeup events) to allow hibernation without spurious CPU wakeups
|
||||||
"acpi_mask_gpe=0x03"
|
"acpi_mask_gpe=0x03"
|
||||||
|
|||||||
Reference in New Issue
Block a user