mirror of
https://github.com/Comfy-Org/ComfyUI-Standalone-Environments.git
synced 2026-11-04 23:47:22 +00:00
[PR #9] [MERGED] Add torch-index-stacks.json manifest with validated R2 publishing #14
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/ComfyUI-Standalone-Environments#14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/ComfyUI-Standalone-Environments/pull/9
Author: @Kosinkadink
Created: 7/25/2026
Status: ✅ Merged
Merged: 7/26/2026
Merged by: @Kosinkadink
Base:
main← Head:feat/torch-index-stacks-manifest📝 Commits (10+)
1f9294dfeat: add torch-index-stacks.json manifest with validated R2 publishingeb7d9afReject PEP 440 dev (nightly) versions in schema 1e891355feat: automated nightly torch stack refresh (cu132)19887bareview: address CodeRabbit feedbacke91fb5bExpand stable manifest: cu126/cu128/cu130/cu132, rocm7.1, xpu, cpu, mps stacks303cc29Require torchaudio in every stable stack; drop stable cu132 entries4900fd1Add torch 2.9.1 fallback to cu126, mirroring cu128c6027e9Add series metadata to the torch index stacks manifest2534bd8Pin actions/checkout to a commit SHA; drop persisted credentials where unusedf04b2f1Run the nightly refresh on the hour (06:00 UTC)📊 Changes
9 files changed (+1453 additions, -1 deletions)
View changed files
➕
.github/workflows/publish-torch-index-stacks.yml(+90 -0)➕
.github/workflows/refresh-nightly-stacks.yml(+99 -0)➕
.gitignore(+2 -0)📝
README.md(+36 -1)➕
scripts/nightly_policy.py(+19 -0)➕
scripts/refresh_nightly_stacks.py(+208 -0)➕
scripts/test_torch_index_scripts.py(+452 -0)➕
scripts/validate_torch_index_stacks.py(+345 -0)➕
torch-index-stacks.json(+202 -0)📄 Description
ComfyUI Desktop 2.0 (Comfy-Org/Comfy-Desktop#1248) fetches
standalone-environments/torch-index-stacks.jsonfrom R2 to populate its PyTorch picker with index-served stacks - pip-applied tuples with no bundle artifact (e.g. legacy CUDA builds for GPUs the current bundles dropped). This PR makes a checked-in file in this repo the source of truth for that manifest, so new stacks ship by PR here with no app release.What's included
torch-index-stacks.json- initial manifest carrying the two stacks the app currently hardcodes (cu126 and cu128 for torch 2.11.0 with their compute-capability ranges), so remote and built-in start identical.scripts/validate_torch_index_stacks.py- stdlib-only validator mirroring the app's default-deny remote-manifest validation (index-tag/accel coherence, pip-safe version strings, platform rules, duplicate stack-ID rejection, non-emptypythonAbis). The app silently drops invalid entries by design, so a typo would just make a stack vanish from the picker; this fails loudly at authoring time instead. Not a security boundary - the app stays default-deny regardless.publish-torch-index-stacksworkflow - pull requests touching the manifest run validation only; pushes tomainvalidate then upload to R2 (same secrets as the env build workflow) with--content-type application/jsonand--cache-control max-age=300. The short TTL matters because unlike the immutable archives this object is replaced in-place, and stack withdrawals (explicit-emptystacks: []) must propagate quickly through the Cloudflare edge.workflow_dispatchallows manual republish. A concurrency group serializes publishes so two merges cannot race on the object.seriesmap - per-index-tag display metadata: a note explaining the backend line (noteKeyfor localized clients, plainnoteas fallback) and optional per-platform minimum NVIDIA driver versions. The app shows the note on the series dropdown of the grouped PyTorch picker and warns (informationally, never blocking) when the detected driver is below the minimum. Minimums follow NVIDIA's minor-version compatibility floors (CUDA 12.x: 527.41 win / 525.60.13 linux; 13.x: 580.88 win / 580.65.06 linux). The map is validated default-deny, and the nightly refresher round-trips the whole document so it survives automated cu132 updates.Validation
pythonAbis, unknownschemaVersion- all fail with exit 1; explicit-emptystacks: []passes with a loud withdrawal warning.Note for reviewers
Nothing in this repo currently syncs the GCS mirror (
storage.googleapis.com/comfy-desktop-public/...) that the app falls back to when R2 is unreachable - the env build workflow only writes R2, so the mirror is synced by some outside process. That process needs to includetorch-index-stacks.json, otherwise the mirror serves a stale manifest indefinitely to users who rely on the fallback.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.