core/pyproject.toml
Shay dcf1b59586
Some checks failed
lane-shas / verify pinned lane SHAs (pull_request) Failing after 33m18s
fix(ci): arm64 runner toolchain — pyrage aarch64 wheel + lane-shas via uv
The self-hosted Actions runner is aarch64 (Apple M1 Linux); the CI toolchain
assumed x86_64, so every workflow has been failing at environment setup — on
main and every PR, not a code regression.

Two root causes, both arm64:

  * pyrage==1.2.3 publishes no linux-aarch64 wheel, so uv fell back to an sdist
    build and modern uv rejects pyrage's own pyproject.toml ("[project] without
    project.version") — "TOML parse error at line 5". Bump to pyrage==1.2.4, the
    first release shipping a cp39-abi3 manylinux_2_17_aarch64 wheel (x86_64 and
    macOS wheels retained). No source build -> no parse error. Fixes smoke,
    full-pytest, contemplation, ratify-proposal.
    Verified: age/X25519 encrypt+decrypt round-trips on 1.2.4, and the committed
    sealed-holdout artifacts (sealed under 1.2.3) still decrypt
    (tests/test_holdout_encryption.py, tests/test_adr_0119_7_sealed_gsm8k.py —
    7 passed). No ADR pins the patch version; only a size-tally doc referenced
    it (updated).

  * lane-shas used actions/setup-python@v5, which has no arm64 build for the
    pinned 3.12.13 ("version '3.12.13' with architecture 'arm64' was not found"
    -> "python: command not found"). Switch to astral-sh/setup-uv@v5 + uv (uv
    provisions arm64 Python reliably), matching the other four workflows.

Files: pyproject.toml (pyrage 1.2.3->1.2.4), docs/model_dependency_size_tally.md,
.github/workflows/lane-shas.yml. uv.lock is gitignored (uv re-resolves per run).

Separate pre-existing issue (NOT addressed here): with setup fixed, lane-shas
now reaches its SHA check, where 2 demo lanes (demo_composition, public_demo)
drift from their pins. This is content drift on main, unrelated to the toolchain
(public_demo is a known wall-clock/env flake). Left for an explicit re-pin vs
degate decision rather than silently re-pinning.
2026-07-12 17:12:22 -07:00

79 lines
2.3 KiB
TOML

[project]
name = "core-versor"
version = "0.1.0"
description = "Versor Engine: cognitive field system on Cl(4,1) Conformal Geometric Algebra"
requires-python = "==3.12.13"
dependencies = [
"hypothesis>=6.152.7",
"numpy>=1.26",
"pytest>=9.0.3",
"pytest-asyncio>=1.3.0",
"pytest-xdist>=3.6",
"psutil>=7.0",
"pyrage==1.2.4",
"pyyaml>=6.0",
"ruff>=0.15.12",
"datasets>=4.8.5",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.23",
"hypothesis>=6.100",
]
# ADR-0181 PR-6 — audio teacher / shadow lanes. Strictly optional: the
# deterministic compiler is the substrate; these models only label or align and
# are admitted as typed hints (sensorium.audio.teachers). Never runtime-required.
audio-whisper = ["openai-whisper>=20231117"]
audio-nemo = ["nemo_toolkit[asr]>=1.23"]
audio-clap = ["laion-clap>=1.1.6"]
audio-encodec = ["encodec>=0.1.1"]
[project.scripts]
core = "core.cli:main"
[tool.uv]
package = true
[tool.setuptools.packages.find]
where = ["."]
include = [
"algebra*",
"alignment*",
"benchmarks*",
"calibration*",
"chat*",
"core*",
"core_ingest*",
"demos*",
"engine_state*",
"evals*",
"field*",
"formation*",
"generate*",
"ingest*",
"packs*",
"morphology*",
"persona*",
"packs*",
"recognition*",
"scripts*",
"sensorium*",
"session*",
"teaching*",
"vault*",
"vocab*",
"workbench*",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
markers = [
"quarantine: known-failing test tracked in conftest.py QUARANTINE registry when present; excluded from full-pytest CI gate. See docs/test-debt-quarantine.md.",
"uses_default_engine_state: test intentionally exercises the process default engine-state directory; opt out of per-test default isolation. See docs/issues/default-engine-state-test-hygiene.md.",
"slow: soak / bench / replay / proof / eval-matrix test that dominates suite wall-clock; classified in conftest.py SLOW_FILES/SLOW_TESTS (not in-file decorators). Fast lane: -m 'not quarantine and not slow'. See docs/testing-lanes.md.",
"requires_depth_packs: 3-lang (he/grc) depth tests require DEPTH_PACK_IDS packs to be resolvable/mounted; otherwise explicit skip with documented pack names. See plan for 3-lang unification.",
]