circuitforge-orch must not be a hard install dependency — it is Paid+ only #56

Closed
opened 2026-05-20 21:49:39 -07:00 by xenon · 0 comments
Member

Problem

snipe currently declares circuitforge-orch>=0.1.0 as a hard dependency in pyproject.toml. This means a plain pip install snipe (or pip install -e .) will fail unless circuitforge-orch is also installed — but circuitforge-orch is not published to PyPI and is a Paid+ tier feature.

Free tier users attempting a local install will hit:

ERROR: Could not find a version that satisfies the requirement circuitforge-orch>=0.1.0
ERROR: No matching distribution found for circuitforge-orch>=0.1.0

Fix

Move circuitforge-orch to an optional extras group so it is never a hard install requirement:

[project.optional-dependencies]
orchestration = [
    "circuitforge-orch>=0.1.0",
]

The tier gate should be enforced at runtime (in tiers.py or the feature entry point), not at install time. Free tier users should be able to install and run snipe without orch; the orchestration features simply stay locked behind the tier check.

Principle

This follows the CF licensing model: MIT discovery/pipeline layers install cleanly for everyone; BSL/Paid features are runtime-gated, not install-gated. A hard install dep on a paid-only package is a violation of that boundary.

Discovered

2026-05-21, during xanderland.tv per-service venv setup.

## Problem `snipe` currently declares `circuitforge-orch>=0.1.0` as a hard dependency in `pyproject.toml`. This means a plain `pip install snipe` (or `pip install -e .`) will fail unless `circuitforge-orch` is also installed — but `circuitforge-orch` is not published to PyPI and is a Paid+ tier feature. Free tier users attempting a local install will hit: ``` ERROR: Could not find a version that satisfies the requirement circuitforge-orch>=0.1.0 ERROR: No matching distribution found for circuitforge-orch>=0.1.0 ``` ## Fix Move `circuitforge-orch` to an optional extras group so it is never a hard install requirement: ```toml [project.optional-dependencies] orchestration = [ "circuitforge-orch>=0.1.0", ] ``` The tier gate should be enforced at **runtime** (in `tiers.py` or the feature entry point), not at install time. Free tier users should be able to install and run snipe without orch; the orchestration features simply stay locked behind the tier check. ## Principle This follows the CF licensing model: MIT discovery/pipeline layers install cleanly for everyone; BSL/Paid features are runtime-gated, not install-gated. A hard install dep on a paid-only package is a violation of that boundary. ## Discovered 2026-05-21, during xanderland.tv per-service venv setup.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/snipe#56
No description provided.