Skip to content

Internal: Monorepo Development

Reference documentation for developers contributing to the EAC monorepo.

Overview

The EAC repository is a modular monorepo containing:

  • CLIE CLI - The core command-line framework
  • EAC CLI - Automation tools (standalone + containerized)
  • Supporting Modules - Shared libraries and infrastructure

In This Section

Topic Description
CLI vs Extensions Two-tier architecture explained
Repository Layout Directory structure and module organization
Contracts Overview YAML contract system summary
Workflow Conventions Git workflow for contributors

Key Concepts

Modular Monorepo

All modules are defined in .eac/repository.yml. Each module has:

  • Unique moniker (identifier)
  • Components (go, typescript, specs, etc.)
  • File ownership patterns
  • Dependencies on other modules

Two-Tier Architecture

  1. CLIE CLI (Tier 1) - Framework running on the host
  2. Extensions (Tier 2) - Tools running in containers

Contract-Driven Configuration

Everything is configured via YAML contracts validated against JSON schemas:

  • repository.yml - Module definitions (in .eac/)
  • blueprints.yml - Component kind definitions (system default)
  • environments.yml - Test environments (system default)
  • test-suites.yml - Test suite definitions (system default)

System defaults are in contracts/core/0.1.0/schemas/defaults/.

Quick Commands

# View all modules
eac show modules

# Check dependencies
eac show dependencies

# Validate contracts
eac validate

# Build a module
eac build <module>

# Test a module
eac test <module>

Getting Started

  1. Read Repository Layout to understand the structure
  2. Review CLI vs Extensions for architecture context
  3. Check Workflow Conventions before contributing

See Also


Tutorials | How-to Guides | Explanation | Reference

You are here: Reference — information-oriented technical descriptions of the system.