[no-LLM] `nix-weather-hs` - analyzing un-built derivation graphs for cache availablility

No i havent picked up tests and im not very experienced with that area in any language. I do know NixOS VM tests, but those are a very different beast. So feel free to have some fun with testing :slight_smile:

1 Like

ah also, how does:

cache status: 2649/2652 99%

Uncached store paths:
- /nix/store/8bjdnh2iz8lgd3w5gs23jj39wfrzmjm3-nix-weather-hs-0.1.0.0-doc
- /nix/store/l9lmq76yrqyxssi9rlv3nmzfajwib33k-nix-weather-hs-0.1.0.0
- /nix/store/xv65zvjrz4yd6y1l4pyi6ixk1qis55f9-8wi5qv8xqrgih6ls6bgj9qkgz1hg24w9-source

look to you?

Looks good! Iโ€™d maybe do

Found 2649/2652 (99%) in cache(s)

Just to make it a bit more readable but other than that lgtm!

1 Like

Pushed in this form:

Found 2649/2652 (99%) in caches https://cache.nixos.org, https://buildbot.in.redalder.org

Uncached store paths:
- /nix/store/bxy5y8zf9a25c0qj194sqli4mskljp0x-xh7lw930sc0lqbw37cf4lcygbm041r6i-source
- /nix/store/digr2rz1xbfpjc5ijyfmc1jc14gk6a3a-nix-weather-hs-0.1.0.0
- /nix/store/l0kviqja25na3l80a25749a3bpmj26jv-nix-weather-hs-0.1.0.0-doc

EDIT: maybe actually ` quoting the store paths might be good? or maybe not, markdown should handle it fine

1 Like

Would like to see any recording of how the output looks etc. Any demo video please

Iโ€™ll write a blog post later and include some graphics, Iโ€™m hesitant to commit large SVG files into the nix-weather-hs repository.

1 Like

In other news, I have spent some time this weekend making some upgrades:

  • Update README
  • Fix -f "degree>@0" only considering the out degree
  • Add file output
  • Implement direct SVG output using dot
  • Add a reverse adjacency map, making roots more efficient
  • Fix and improve graph validation

@samiser this removes the need to pass the resulting dot output through graphviz twice (once to filter out 0 degree nodes). It also should speed up some operations due to keeping a reverse adjacency map around. Though proper profiling should be done at some point.

EDIT: I remember whatโ€™s an immediately actionable feature request. The ability to import a graph that was output in the json format. Skipping a call to nix and cache availability lookup. This would allow one to perform the cache lookups once and then iterate on the same graph transforming it in many ways to reason about the output.

2 Likes