Skip to content

Hierarchy (Internal)

The child project hierarchy system now lives in the internal functualize._discovery/hierarchy.py module.

Overview

The hierarchy system allows a parent functualize application to compose child projects, aggregating their jobs into a unified CLI. This is useful for monorepos or multi-team organizations where each team maintains independent job directories.

Public API

Child project composition is configured through the JobSources dataclass:

from functualize.app import FunctualizeApp, JobSources

app = FunctualizeApp(
    name="parent-app",
    job_sources=JobSources(
        directories=["jobs"],
        children={
            "child-a": "../child-project-a",
            "child-b": "../child-project-b",
        },
    ),
)

children maps a namespace to a child project directory; the child's jobs are composed under that namespace (child-a.deploy, child-b.deploy, ...).

Internal Location

  • _discovery/hierarchy.py — Child project definitions (ChildProject dataclass)
  • _discovery/transforms.py — Composition logic (NamespaceTransform for child job prefixing)

Internal API

The hierarchy implementation is in functualize._discovery. Configure via JobSources from functualize.app.

See the Hierarchy & Validation guide for detailed usage.