Files
Oleks a0852ff479 nix-estimator v0.1: DAG → node×core builder-config estimator
Reads the to-build derivation DAG from Nix (derivation show -r + --dry-run),
applies a heuristic/history build-cost model with Amdahl core-scaling, and
computes critical-path / peak-concurrency / list-scheduled makespan across a
node×core grid to recommend a remote-builder shape.

- schedule.py: pure critical-path, peak-concurrency, p-machine list scheduler
- costmodel.py: heuristic table + --history override + core re-weighting
- graph.py: DAG extraction via nix
- estimate.py/cli.py: sweep + knee recommendation + report
- tests: scheduler validated on toy DAGs (all pass)
Prior-art gap documented (Hubble, nixbuild.net) in README.
2026-07-07 19:45:25 +03:00

27 lines
676 B
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "nix-estimator"
version = "0.1.0"
description = "Estimate the best remote-builder configuration (nodes × cores) for a Nix build"
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
authors = [{ name = "Oleks" }]
keywords = ["nix", "build", "scheduling", "critical-path", "remote-builders"]
dependencies = [] # stdlib only — shells out to `nix`
[project.scripts]
nix-estimate = "nix_estimator.cli:main"
[project.optional-dependencies]
dev = ["pytest>=7"]
[tool.hatch.build.targets.wheel]
packages = ["nix_estimator"]
[tool.pytest.ini_options]
testpaths = ["tests"]