Skip to main content

Graph execution engine for agentic AI workflows.

Project description

Graphon (Under Construction)

This repository is still being organized.

Development Workflow

By default, use make for routine development commands in this repository.

That is the recommended path because:

  • it reflects the repository's intended workflow
  • it keeps formatting, linting, and testing commands consistent
  • it reduces command drift across contributors and CI

If you know exactly what you are doing, using ruff, pytest, or prek directly is still your choice. Those tools remain fully available, but they should be treated as the lower-level interface rather than the default one.

Commit and PR Title Convention

All commit messages must follow the Conventional Commits specification.

This is a repository requirement, not a suggestion.

The required commit types are:

  • feat
  • fix
  • docs
  • style
  • refactor
  • perf
  • test
  • build
  • ci
  • chore
  • revert

Use the Conventional Commits structure consistently, for example:

feat: add graph snapshot export
fix(runtime): avoid duplicate node completion events
docs(readme): document development workflow
refactor(variable-pool): simplify selector lookup
test(encoders): cover nested dataclass encoding
feat!: drop legacy workflow payload format
refactor(api)!: remove deprecated runtime entrypoint

Pull request titles must follow the exact same convention.

If a change is breaking, the commit message and the PR title must include !.

Examples:

feat!: remove deprecated graph initialization path
fix(parser)!: change selector parsing semantics

In other words:

  • every commit message should use Conventional Commits
  • every PR title should also use Conventional Commits
  • every breaking change must be marked with !
  • the PR title must stay aligned with the final change being merged

Do not use free-form PR titles that diverge from the commit message standard.

Quick Start

Prerequisites

  • uv
  • make
  • git

Initial Setup

This project uses uv for dependency and virtual environment management.

make dev
source .venv/bin/activate

make dev will:

  • run uv sync
  • ensure prek hooks are installed

After that, the repository will have a local .venv, the project will be installed in editable mode, and Git hooks will be ready.

Recommended Commands

Use these commands by default:

make dev
make format
make lint
make check
make test
make pre

What they do:

  • make dev: run uv sync and ensure prek is installed
  • make format: run ruff format
  • make lint: run ruff check --fix
  • make check: run ruff format --check && ruff check
  • make test: run uv run --frozen pytest
  • make pre: run format, lint, and test in sequence

Additional targets:

  • make build: build the package
  • make clean: remove build artifacts, caches, and __pycache__

Recommended Daily Flow

For normal development, the expected flow is:

make dev
make pre

For day-to-day iteration, the usual commands are:

make format
make lint
make test

Tooling Details

uv

uv is responsible for environment and dependency management.

Common commands:

uv sync
uv run pytest
uv run ruff check
uv run prek run -a

Use uv when you need to:

  • create or refresh the local virtual environment
  • install project and development dependencies
  • run low-level commands without activating .venv

make

make is the default command surface for this repository.

If you are unsure which command to use, start with make.

This is especially true for:

  • initial setup
  • formatting
  • linting
  • running the test suite
  • running the standard pre-check flow

ruff

ruff handles both formatting and linting.

Direct usage is supported, but it is secondary to make.

Common direct commands:

ruff format
ruff check --fix
ruff format --check
ruff check

Prefer direct ruff usage when:

  • you want to target a specific file or rule
  • you are debugging a particular lint issue
  • you intentionally want something more precise than the Makefile wrapper

pytest

pytest runs the test suite.

Common direct commands:

uv run pytest
uv run pytest tests
uv run pytest tests/utils/test_condition_processor.py
uv run pytest -k condition

Notes:

  • the current default configuration includes -n auto
  • testpaths is set to tests
  • make test is the default wrapper and should be preferred unless you need a more specific invocation

prek

prek manages Git hooks for this repository. Its configuration is stored in prek.toml.

Common direct commands:

uv run prek install
uv run prek run -a
uv run prek list
uv run prek validate-config

Notes:

  • uv run prek install: install Git hooks into .git/hooks/
  • uv run prek run -a: run hooks against all files in the repository
  • the current configuration mainly includes:
    • built-in cleanup and validation hooks
    • local make format / make lint hooks

Direct Tool Usage

If you know what you are doing, direct tool usage is completely acceptable.

The important distinction is:

  • default recommendation: use make
  • advanced or targeted usage: use ruff, pytest, or prek directly

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphon-0.1.0.tar.gz (214.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graphon-0.1.0-py3-none-any.whl (313.7 kB view details)

Uploaded Python 3

File details

Details for the file graphon-0.1.0.tar.gz.

File metadata

  • Download URL: graphon-0.1.0.tar.gz
  • Upload date:
  • Size: 214.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for graphon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 71d1056e9a344c4cebc9e68bd16ff2821cb81d87dd7e7d359fb702166f898ec8
MD5 2c7c556bda59f7895fb225bb436b767d
BLAKE2b-256 fde0de002f5f10db20794928383aeaa851e8be1757dc38d2dcd60eb9ef227161

See more details on using hashes here.

Provenance

The following attestation bundles were made for graphon-0.1.0.tar.gz:

Publisher: pypi_publish.yml on langgenius/graphon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file graphon-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: graphon-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 313.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for graphon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ab821a1f047318778581db49174c0214384c55eee5c6ee1515dc6dd2acbeab5
MD5 7a9868836dfa7b8763d2eeab23232c90
BLAKE2b-256 2357a8ba4fb0b6f6d1ce77ca0bd9d3c5f505ebbf24f3df87a3c1ad115253bfe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for graphon-0.1.0-py3-none-any.whl:

Publisher: pypi_publish.yml on langgenius/graphon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page