Skip to content

Fix #1: remove local M5 Max torch wheel from public deps; target Python 3.13; add README badges#2

Merged
benjipeng merged 109 commits into
mainfrom
fix/issue-1-public-deps-and-readme
Jun 14, 2026
Merged

Fix #1: remove local M5 Max torch wheel from public deps; target Python 3.13; add README badges#2
benjipeng merged 109 commits into
mainfrom
fix/issue-1-public-deps-and-readme

Conversation

@benjipeng

Copy link
Copy Markdown
Contributor

Summary

Fixes #1 — a brand-new uv sync failed because a maintainer's local-dev-only M5 Max PyTorch build leaked into the committed, always-on config:

error: Failed to generate package metadata for `torch==2.12.0rc3+m5max @ path+../../ai-frameworks/...`
  Caused by: No such file or directory

Three knobs forced that local wheel into every resolution:

  • [tool.uv] override-dependencies = ["torch==2.12.0rc3+m5max"] (global; eagerly read on any resolve)
  • [tool.uv.sources] mapping torch/torchvision to ../../ai-frameworks/... paths
  • uv.lock embedding those as source = { path = "../../ai-frameworks/..." }

torch is only a parity/reference dependency in the opt-in torch-ref group (pulled via uniception); the shipped package is pure MLX. Parity tests import torch from a local source checkout via sys.path (gated by MLX_SPATIAL_RUN_TORCH_PARITY=1), independent of uv — so removing the wheel pin doesn't affect the local-dev workflow.

Changes

  • pyproject.toml — remove [tool.uv.sources] + override-dependencies; float torch/torchvision in torch-ref so they resolve from PyPI.
  • pyproject.tomlrequires-python >=3.11>=3.13 (the only environment actually tested — CI + [tool.uv] environments pin 3.13); add Trove classifiers (MIT, Python 3.13, macOS).
  • uv.lock — regenerated; torch 2.12.0 / torchvision 0.27.0 now from PyPI, no local paths.
  • README.md — add PyPI / Python / License / Tests badges; Python 3.11+Python 3.13.

Verification

  • uv sync --dry-run (default) → succeeds, no torch metadata error.
  • uv sync --group torch-ref --dry-run → resolves public torch==2.12.0 / torchvision==0.27.0 from pypi.org.
  • grep -nE "m5max|ai-frameworks" uv.lock → no matches.
  • Fast test suite: 898 passed, 10 skipped (the 3 test_pixal3d_inference failures are pre-existing on main, unrelated to this change).

Closes #1

benjipeng added 28 commits May 27, 2026 16:20
Verified rebaseline A-side (2026-05-28-pixal3d-glb-quality-rebaseline): foreground-isolated RGB preprocessing fed to MoGe/DINO/NAF (adds src/mlx_spatial/pixal3d_preprocess.py), stage-specific 512/1024 DINO conditioning with fail-closed patch-grid validation, plus focused pipeline/CLI/projection tests.
New verified change 2026-05-28-mlx-spatialkit-narrow-band-remesh: native CPU narrow-band remesh (cpp/remesh.cpp + hoisted cpp/triangle_bvh.hpp) closes open boundaries on real Pixal3D fixtures in ~15-65s @res1024, no CUDA/Torch/MLX. Opt-in via export_pixal3d_glb(remesh=True) with a remesh diagnostics stage + topology-blocker clear; opt-in repair_nonmanifold vertex-split (manifold input-prep for QEM). Bundles the rebaseline's file-entangled spatialkit B-side work (export/glb_compare/texture/simplify diagnostics).
…add README badges

The maintainer's personal M5 Max PyTorch build (torch==2.12.0rc3+m5max) leaked
into committed always-on config via [tool.uv] override-dependencies + tool.uv.sources
+ uv.lock path entries, so any brand-new 'uv sync' failed:

  Failed to generate package metadata for torch==2.12.0rc3+m5max
  @ path+../../ai-frameworks/... No such file or directory

torch is only a parity/reference dep (opt-in 'torch-ref' group, pulled via
uniception); the shipped package is pure MLX. Parity tests import torch from a
local source checkout via sys.path, independent of uv, so removing the wheel pin
costs the local-dev workflow nothing.

- pyproject: remove [tool.uv.sources] + override-dependencies; float torch/
  torchvision in torch-ref so they resolve from PyPI
- pyproject: requires-python >=3.11 -> >=3.13 (matches the only tested env);
  add Trove classifiers (MIT, Python 3.13, macOS)
- uv.lock: regenerate (torch 2.12.0 / torchvision 0.27.0 from PyPI, no local paths)
- README: add PyPI/Python/License/Tests badges; Python 3.11+ -> 3.13

Closes #1
…t pixal3d boundary tests

The macos runner now defaults to Python 3.14, but the lock's supported
environment is 3.13-only, so 'uv run' aborted before tests ('current Python
platform is not compatible with the lockfile's supported environments').

- test.yaml: pin setup-uv python-version to 3.13 so CI matches the target env
- pyproject: requires-python '>=3.13' -> '>=3.13,<3.14' to match the 3.13-only
  lock/environments (uv/pip on 3.14 now get a clean 'requires 3.13' message)
- xfail the 3 Pixal3D stage-4 boundary tests (auto-camera / Telea inpaint
  in progress) so CI reflects the dependency fix, not unrelated in-flight work
…load/download-artifact v7/v8)

GitHub is removing Node 20 from runners; actions/checkout@v4 and
astral-sh/setup-uv@v5 emitted deprecation warnings. Bump to current
Node 24 majors. pypa/gh-action-pypi-publish is a Docker action and is
unaffected, so it stays on release/v1.
@benjipeng benjipeng merged commit 6f55481 into main Jun 14, 2026
1 check passed
@benjipeng benjipeng deleted the fix/issue-1-public-deps-and-readme branch June 14, 2026 02:11
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.

Error for lacking whl file

1 participant