# DEPS — mgf-vm-firecracker's bidirectional dependency manifest

> **§1** — what mgf-vm-firecracker depends on. **§2** — who depends on
> mgf-vm-firecracker. Knowing both directions makes deprecation,
> breaking-change blast-radius, and feature-prioritisation tractable.
>
> **Per standard DOC-16** (v2.12): every project ships a `DEPS.md`.
> Replaces the former `USERS.md`.

Last verified: 2026-06-09.

---

## §1 What mgf-vm-firecracker depends on

| Dependency | Window | Why | Tier |
|---|---|---|---|
| `mgf-common` | `>=0.38,<0.39` | typed exceptions / bootstrap / observability | runtime |
| `mgf-vm-core` | `>=0.1,<0.2` | the `HypervisorBackend` + `StorageBackend` Protocols + `VmSpec` types this adapter implements; error-code mapping target | runtime |
| `httpx` | `>=0.27,<1` | REST-over-UDS client for the Firecracker API (`firecracker.sock`) | runtime |

*Federation siblings depended on: `mgf-common` (cornerstone — typed
exceptions / bootstrap) and `mgf-vm-core` (the contract this adapter
implements). The Firecracker `jailer` binary is driven via `subprocess`
(SC-02 argv discipline) — no native Python binding required.*

---

## §2 Who depends on mgf-vm-firecracker

Consumer projects + federation siblings that import this project.
(Inverse of each consumer's `MGF_ADOPTION.md`.)

| Project / sibling | Location | Import sites | Status | Surfaces used |
|---|---|---:|---|---|
| **vm-vmanager-agent** | application (host-agent daemon) | 0 | designed-for (Phase 1) — not yet integrated | `FirecrackerAdapter` as a `HypervisorBackend` + `StorageBackend` |
| **mgf-vm-core conformance suite** | `/home/bassam/PycharmProjects/mgf-vm-core` | 0 | designed-for runtime fixture — adapter as SUT against the contract | `FirecrackerAdapter` (CONF-H-* / CONF-S-*) |

*No downstream consumers integrated yet — pre-`0.1.0` skeleton; the
rows above are designed-for, not yet importing. An import survey
(§3) finds zero runtime `mgf.vm.firecracker` import sites outside this
repo's own tests, and no other repo's `pyproject.toml` pins it.*

---

## §3 Maintenance

Updated every MINOR release + when a dependency or consumer changes.
Import-survey methodology:

```sh
grep -rE "(from|import) +mgf\.vm\.firecracker" /path/to/each/consumer \
  --include='*.py' | wc -l
```
