Metadata-Version: 2.4
Name: graphcore-distro
Version: 0.1.0
Summary: GraphCore distro — CLI, scaffolding, and curated built-in apps
Author: GraphCore
License-Expression: Apache-2.0
Project-URL: Repository, https://github.com/graphcore-org/graphcore
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Framework :: Django
Classifier: Framework :: Django :: 5.2
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: graphcore-kernel[redis,server]==0.1.0
Requires-Dist: graphcore-agents==0.1.0
Requires-Dist: python-dotenv<2,>=1.0
Dynamic: license-file

# graphcore-distro (distro backend)

Consumer-facing pip package `graphcore-distro`: the `graphcore` CLI, project
scaffolding, and the kernel and built-in apps at versions released together. The wheel is a bundle of **sibling
import packages**. `graphcore_cli` is only the command surface (argparse +
dispatch). Anything a caller might import without going through the
`graphcore` command is its own package; the CLI consumes it, the same way it
consumes `graphcore_user_guides`. Generic components never live inside
`graphcore_cli/`.

```
distro/backend/
  graphcore_cli/            # command surface only
  graphcore_project/        # operate a generated project — import graphcore_project
  graphcore_user_guides/    # curated markdown
  graphcore_project_kit/    # scaffold, skills, infra, scripts (assets only)
  doc_topics.py             # guide topic registry
```

`graphcore_project` is the library for a generated project on disk: find the
root, read `.env`, migrate, run. The CLI consumes it; callers that want the
same operations without the CLI import this package. It is not
`graphcore_project_kit` — that package is assets, not Python. The on-disk
unit is a **project**; "deployment" in the vision docs means a running
backend, not this directory.

Requires Python 3.13+; generated projects run 3.14.

```bash
pip install graphcore-distro
graphcore startproject myproj
```

To develop the framework, install the monorepo's packages as editables
instead (`pip install -r requirements-dev.txt` from the monorepo root) and
generate projects with `graphcore startproject --local-framework`. Redis is included for
multi-process deploys; you can still point `settings.py` at LocMem or another
cache if you do not want to use it.

## Tests

From the monorepo root, with the shared Postgres running (`graphcore infra up`):

```bash
scripts/test                # every suite on Postgres, database-dependent suites on SQLite
scripts/test graphcore_cli  # narrow to a test label, on every database
```

See `.agents/skills/run-tests/SKILL.md` for the options.

## CLI surface

`graphcore startproject`, `startapp`, `apps list`, `run`, `migrate`, `test`,
`dev reset`, `docker`, `infra`, `db`, `api`, `docs`, `frontend`, `skills`.

`graphcore apps list` prints every discovered app and its provenance
(`entry point: <dist>` or `apps/ directory`).
