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
@danl-aisi danl-aisi mentioned this pull request Jul 17, 2026
danl-aisi added a commit that referenced this pull request Jul 21, 2026
* Depend on sifter-build (v1 + signed OCI/ECR) instead of sifter

Supersedes the sifter v2 migration (#4). No app code changes — sifter v1's
API is unchanged; only the distribution was renamed and the OCI/ECR backend
added. Registry guidance moves from S3 to the signed OCI/ECR registry.

* chore: point at main branch of sifter

* README: note that build doesn't auto-pull/push with the OCI registry

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

* docs: tidy README

Removed unnecessary line about publishing in README.

* docs: how to install cosign + oras for the signed registry

sifter needs cosign (>= 3.0.0) and oras to sign/verify and push/pull to the
OCI/ECR registry. Add install instructions (pinned arm64 builds for Isambard,
matching the aisi bootstrap), noting they're auto-installed via
`aisi isambard setup --bootstrap`.

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

* docs: fix stale container tags in examples

The README examples, the sifter.yaml header comment, and the
benchmark-networking --help/docstring referenced old vLLM tags
(vllm-0.22.1_0.4.0 / vllm-lens-0.17.0_0.4.0) that are no longer in the
manifest. Point them at the current builds (vllm-0.23.0_0.1.0 /
vllm-lens-0.23.0_0.1.0). Historical entries in the definition CHANGELOGs
are left as-is. No dependency/pin/lock changes.

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

---------

Co-authored-by: agent <agent@aisi.org.uk>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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