Package Structure
Forge is distributed as a set of focused Python packages. Each package has a single responsibility and is versioned and released independently. This page explains the package categories, what each one contains, and how they depend on each other.
Package Categories
Foundation
fsp-config-foundation is the base package that every other Forge package depends on.
It provides:
-
Data model base classes
-
Facade base classes
-
Import and export tooling
-
Validation framework
-
Plugin system
Data Model Packages
One package per Configurable Unit.
Each data model package defines the configuration schemas for one Configurable Unit using the base classes from fsp-config-foundation.
It contains:
-
datamodel.py— theConfigUnitDataModelsubclass that aggregates all pillars. -
api.py/implementation.py/runtime.py— API, implementation, and runtime configuration pillars. -
validation_rules.py— the rules that validate the data model.
Dependencies: fsp-config-foundation
Integration Component Package
The Integration Component is the deliverable unit, so Forge provides one package per Integration Component (for example, ves-socom).
This package contains the main interaction points for the user: facades for the Configurable Units of the Integration Component, validation rules at the cross-ConfigUnit level, and tools such as converters and exporters.
A configuration domain is an abstract grouping by functional area and has no package of its own; a single domain can span several Integration Component packages.
The package contents are organized in the following modules.
All of them depend on fsp-config-foundation and the data model packages of the Integration Component.
Facade Modules
The facade modules wrap the Configurable Unit data models with a higher-level API. They are the primary entry point for users who configure the Integration Component in Python. Each facade module provides:
-
One facade class per Configurable Unit (for example,
ComDaemon,UserApp). -
Factory methods and constructors with sensible defaults.
Converter Modules
Converter modules translate external file formats (such as ARXML or Franca IDL) into Forge Python objects or JSON files. Each converter provides a Python API for use directly in your own code, and is also packaged as a command line interface (CLI) tool for convenient use in CI pipelines. They are used for migrating existing configurations rather than for day-to-day configuration authoring.
Dependency Overview
The dependencies form a single chain, where each package depends on the one to its right:
Integration Component package -> Data Model packages -> fsp-config-foundation
Choosing What to Install
Install only the packages you need:
-
Reading or writing JSON configuration without Python data models: no package needed; use the JSON Schema files directly.
-
Working with configuration in Python: install the Integration Component package you want to configure (for example,
ves-socom). The package pulls in all required packages as transitive dependencies. To configure a domain that spans several Integration Components, install each Integration Component package you need.