Skip to content

Upgrade to sifter v2#4

Open
danl-aisi wants to merge 6 commits into
mainfrom
sifter-v2-migration
Open

Upgrade to sifter v2#4
danl-aisi wants to merge 6 commits into
mainfrom
sifter-v2-migration

Conversation

@danl-aisi

@danl-aisi danl-aisi commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

Upgrades isambard-containers to sifter v2. Existing containers have already been migrated to new registry.

  • sifter.yaml: v2 manifest schema (build name + tag, needs:, definition:).
  • serve.py, run_benchmark.py, and the slurm_inspect demo: use sifter's v2 api (api.latest / api.list_local_sifs / api.status) in place of the removed v1 helpers.
  • pyproject.toml: depend on sifter v2.

🤖 Generated with Claude Code

@danl-aisi
danl-aisi force-pushed the sifter-v2-migration branch 4 times, most recently from bf9156a to b961083 Compare June 25, 2026 13:02
danl-aisi and others added 6 commits June 29, 2026 13:24
- sifter.yaml: convert to the v2 schema — each v1 fused key
  `<descriptor>_<buildver>` becomes a build `name` + `tag` (e.g.
  `vllm-0.23.0_0.1.0` -> `vllm-0.23.0:0.1.0`); `base:` -> `needs:`; single-step
  `steps:` -> `definition:`. Versions and args unchanged from main.
- Refactor the Python call sites (serve, run_benchmark, slurm_inspect demo) to
  sifter's v2 api (api.latest / api.list_local_sifs / api.status) instead of the
  removed v1 find_latest_container/resolve_container/get_jobs helpers. Container
  lookup resolves the version-in-name builds (`vllm-<version>`) and picks the
  highest local version for a family; covered by tests.
- pyproject: depend on sifter v2 (==2.0.0) from its default git branch
  (resolves once sifter v2 is merged to main). rich/typer pins unchanged from
  main; sifter v2 was bumped to match so both repos pin exactly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
demo_slurm hardcoded the offline job's HF cache under
$PROJECTDIR/huggingface-cache, which KeyErrors when PROJECTDIR is unset
(non-Isambard / external users) and assumes a shared dir that need not
exist, be writable, or belong to the caller.

Resolve the cache from the standard HF_* env (HF_HOME / HF_HUB_CACHE /
HF_ASSETS_CACHE / HF_XET_CACHE) with a ~/.cache/huggingface fallback,
matching the .get(key, default) convention used elsewhere (e.g.
serve_local.py) and keeping the login-node pre-download and the offline
compute job pointed at the same cache.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sifter was re-homed to UKGovernmentBEIS/sifter-build (distribution renamed to
sifter-build; the import name `sifter` is unchanged). Point the dependency and
uv source at the new repo, pinned to its initial commit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…lock

Pin to the 2.0.0 release tag rather than a commit SHA, and regenerate
uv.lock with UV_EXCLUDE_NEWER unset so it carries no relative
exclude-newer span (which made `uv sync --locked` fail in CI).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Tag 2.0.0 was re-cut after a docs trim; refresh the locked commit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This reverts commit 2842c3b — restore demo_slurm's original
$PROJECTDIR/huggingface-cache convention.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@danl-aisi
danl-aisi force-pushed the sifter-v2-migration branch from fd08946 to fe6907a Compare June 29, 2026 13:25
@danl-aisi
danl-aisi marked this pull request as ready for review June 29, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants