Skip to main content

qig-stack

The QIG toolchain metapackage + deterministic launch preflight.

pip install qig-stack installs the mutually-tested latest set of the QIG packages (see pyproject.toml and the bundled capability contract) at compatible versions — the whole "crystal" — and ships the qig-doctor preflight.

qig-doctor — step-0 of every launcher

qig-doctor                 # full preflight; exits 1 if any package is stale OR a slot is under-filled
qig-doctor --no-network    # skip PyPI; contract snapshot + wiring report only
qig-doctor --json          # machine-readable
qig-doctor --probe         # also import-check each entry-point resolves (diagnostic, off the gate)
qig-doctor --release-check # release acceptance: live latest, required wiring, all probes resolve
qig-doctor --deep          # also call Tier-B describe() descriptors (imports packages)

Three fail-closed jobs:

  1. Version gate — every stack package must be installed at PyPI-latest. installed < latest is a LAUNCH BLOCKER (non-zero exit), per the "latest version, always optimised" rule.
  2. Wiring gate (Phase 2) — enumerates the qig.capabilities entry-points the installed packages self-register (Tier A: metadata-only, no import on the gate path) and cross-checks them against the capability contract:
    • under-fill → FAIL: a shipped provider that did not register its entry-point.
    • drift → WARN: an entry-point the contract doesn't know, or one whose module:attr moved off the contract probe.
  3. Wiring report — which capability slots are filled by what is installed (the automated Gate-A lever inventory).

The capability contract

src/qig_stack/contract.json is the fixed lattice the stack crystallizes into — every slot, the package primitive that fills it (provider_pkg + module:attr probe), the latest-published version, and the camera-certification cam_id/lever_id. It is the Genesis-kernel / E8-root analog: given the lattice + installed packages + version policy, the wiring is determined — no per-experiment hand-wiring, no agentic guessing.

Self-wiring (Phase 2)

Each package declares the slots it fills in its own pyproject.toml:

[project.entry-points."qig.capabilities"]
"SLOT-Q-QFI" = "qig_compute.qfi:qfi_from_mps_tangent_space"

qig-doctor reads those declarations from installed metadata and confirms the crystal assembled correctly before any compute spend. Entry-points assert only "installed package X fills slot Y via probe Z" — certification stays in the camera-certification registry under review control.

Design

Development

pip install pytest packaging  # doctor uses packaging for PEP 440 versions
pytest -q                 # contract schema + doctor unit tests (no network)

Active release set

The dependency pins and bundled contract describe the same tested release set. Retired qig-consciousness and qig-tokenizer are excluded; qig-coordizer supplies active coordization. qig-geocoding and quner are included as active libraries and tools. Installing quner does not enable its daemon or modify system power settings. The doctor checks package availability and capability wiring; an import check is not an experimental certification or a performance benchmark.

Release acceptance installs the published pinned wheels into a clean environment, runs the doctor with live package metadata and probes, and records any hardware-only checks separately. Frozen experiment environments keep their historical pins.

Verification boundaries

PyPI timeouts, malformed versions and HTTP 404 responses are unverified states, not successful latest-version checks. They fail the version gate. Ahead/local builds also do not equal the latest published version. Offline mode compares the contract snapshot and reports latest_verified: false, even if that comparison passes. Retry live verification when connectivity is restored.

The current contract sets entry_point_gates.require_activation: true: all required shipped declarations must exist, including when the entire group is empty. Historical contracts can retain their initial rollout grace explicitly by omitting that setting; the pure wiring helper preserves that compatibility.

The Phase 2/3 design deliberately kept --probe diagnostic and non-gating; that remains true. For release acceptance use qig-doctor --release-check --json. It requires live PyPI equality, equality to the mutually-tested contract pins, required declarations, successful import probes and no moved contract probes, and emits release_gate_passed with a nonzero exit on failure. --no-network cannot be combined with release checking. Unknown additional capability declarations remain warnings if they resolve. This command imports packages, but does not run physics experiments or enable daemons.

Runtime qig_stack.__version__ reads installed distribution metadata using importlib.metadata, with 0+uninstalled only when no distribution metadata exists. It is not a second manually maintained version constant.

qig-doctor is the console entry point for qig_stack.doctor:main; the equivalent module command is python -m qig_stack.doctor. Package-version coverage includes every contract package. Capability coverage includes shipped slots with a declared provider_pkg; engine-local (provider_pkg: null) and explicitly unshipped slots are exempt. A package with no contract capability slots is still version-checked; this is not an assertion that its features were exercised. Integration acceptance must additionally exercise the actual cooperating package APIs.

Release files for qig-stack 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qig-stack 0.1.2
File Size Uploaded
qig_stack-0.1.2.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qig-stack 0.1.2
File Interpreter ABI Platform
qig_stack-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 36.3 kB

Release files / qig_stack-0.1.2.tar.gz

Download URL qig_stack-0.1.2.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
712eaea0674734263239cabceb1254a0c59bd4cb139d883b18debb22bc8b93f9
BLAKE2b-256 checksum
How to use checksums
ed8559ed93b4e5c80a062bfc0381c9f9762161a83c5af0141f736d81b60f5e9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / qig_stack-0.1.2-py3-none-any.whl

Download URL qig_stack-0.1.2-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2961b28dbf7cba693885699ca766b941d978d9c87995d27ecf4cf56d2a746942
BLAKE2b-256 checksum
How to use checksums
d56283dfe1beea7517687352cfea8e4431636837db0463f79d7f8abb6a082995
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page