Skip to content

Blinding dependencies as core: Smokescreen fork pin, sacc, cryptography; Python floor 3.12#243

Draft
cailmdaley wants to merge 1 commit into
developfrom
feat/sacc-1-deps
Draft

Blinding dependencies as core: Smokescreen fork pin, sacc, cryptography; Python floor 3.12#243
cailmdaley wants to merge 1 commit into
developfrom
feat/sacc-1-deps

Conversation

@cailmdaley

@cailmdaley cailmdaley commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Makes the blinding dependencies installable and reproducible as core runtime dependencies of sp_validation. Blinding the tomographic data vector needs Smokescreen with its CCL theory backend; with firecrown out of the picture the closure is small (Smokescreen fork + cryptography + sacc; pyccl already core), so it lives in the base install — there is no [blinding] extra.

Closes #242.

What this PR declares

  • Smokescreen is pinned as a single git install identity into the UNIONS-WL fork:
    smokescreen @ git+https://github.com/UNIONS-WL/Smokescreen@588a6b9
    The fork at this ref declares pyccl in its metadata and imports its theory backends lazily, so a clean install is CCL-only — no firecrown anywhere in the resolved graph, and no numpy ceiling. Nothing is published to PyPI; the fork ships as a git pin only.
    Provisional pin: the SHA points at the fork's packaging branch. Once the fork packaging PRs merge and a release tag is cut, this pin will be updated to the tag (same content, stable name) before merge.
  • sacc>=0.12 and cryptography are declared explicitly in core dependencies, so the runtime closure is self-documenting and independent of fork-metadata drift.
  • requires-python rises >=3.11>=3.12 (Smokescreen requires 3.12); ruff target-version follows to py312. This drops Python 3.11 support for the package — safe against the container base (python:3.12-slim-bookworm via shapepipe:develop) and CI, which runs only inside that image; no known consumer runs 3.11.

Container and CI

  • Dockerfile unchanged: the blinding closure is core, so the existing uv pip install -e '.[test,glass]' line installs it.
  • deploy-image.yml gains one step: an import smokescreen check against the freshly built image, next to the existing import sp_validation smoke test and the fast test suite, all of which gate publication.

Verified

On Python 3.12, a fresh uv venv + uv pip install -e . resolves without firecrown and without any numpy upper bound (numpy 2.5.1 lands), and import smokescreen succeeds in the installed environment. uv lock resolves the fork ref cleanly (254 packages; zero firecrown, zero numpy< markers). uv.lock stays untracked per this repo's .gitignore.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KpaRHk3QwN13myduQ3hJyf

…); py3.12 floor

The blinding dependencies are core runtime dependencies — no optional
extra. The Smokescreen install identity is the UNIONS-WL fork pinned by
SHA on its packaging branch (declares pyccl, lazy theory-backend
imports, so the closure is CCL-only); the pin will be swapped to the
fork's release tag once the fork packaging PRs merge. sacc>=0.12 and
cryptography are declared explicitly; pyccl was already core.

requires-python rises 3.11 -> 3.12 (Smokescreen requires >=3.12); ruff
target-version follows to py312. uv.lock regenerated: fork ref resolved,
no firecrown and no numpy ceiling anywhere in the graph. deploy-image CI
gains an `import smokescreen` step against the freshly built image; the
Dockerfile is unchanged (core closure installs via the existing line).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KpaRHk3QwN13myduQ3hJyf
@cailmdaley cailmdaley changed the title deps: py3.12 floor + SACC/blinding stack (sacc, firecrown, smokescreen) Blinding dependencies as core: Smokescreen fork pin, sacc, cryptography; Python floor 3.12 Jul 10, 2026
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.

Dependencies: py3.12 floor + core blinding stack (fork pin, cryptography, sacc)

1 participant