Pipeline Engine
Pipeline Engine
Trace a profile name into expanded, registered, ordered, and sequentially executed step objects.
app/core/pipeline/Category
Quick Command
profiles -> resolver -> registry -> builder -> pipelineOverview
The pipeline package separates workflow definition from execution. Profiles declare names, the resolver expands nested definitions, the registry maps final names to classes, builders instantiate those classes, and a pipeline runs every step against one shared context.
Pipeline Components
Profile Definitions
profiles.py
PIPELINE_PROFILES defines reusable step sequences. STEP_ORDER defines the
global priority used only when two or more profiles are composed.
Command Resolver
command_resolver.py
Expands nested profiles, detects cycles, rejects unknown names, preserves one profile's declared order, and normalizes merged profiles.
Step Registry
registry.py and step_registry.py
Stores unique name-to-class mappings and creates step instances. Built-in registration must occur before pipeline construction.
Builders
builder.py
Convert resolved dictionaries into step objects and select either the Rich progress pipeline or the simpler logged pipeline presentation.
Pipeline
pipeline.py
Executes step objects in list order, advances progress after success, stops at the first exception, and re-raises the original failure.
Shared Context
context.py
Provides the workflow engine, its Git service, optional Commitizen helper, and mutable fields intended for cross-step runtime state.
Profile to Execution
Workflow Timeline
Single and Merged Ordering
Single Profile
Expand nested references recursively.
Preserve the exact profile order without global re-sorting.
Multiple Profiles
Concatenate each expanded sequence in input order.
Keep only the first occurrence of each name.
Apply a stable STEP_ORDER sort; unknown priorities use 999.
Public and Internal Boundaries
PIPELINE_PROFILES contains validation fragments, direct-command profiles,
aggregate maintenance profiles, and six supported Run profiles. The typed
public Run boundary accepts only commit, tag, push, dev, release, and
full. A registry entry makes a step constructible; a profile entry makes it
composable; neither action alone exposes new public CLI syntax.
Presentation Variants
PipelineBuilder creates a Rich progress-enabled Pipeline and can hide its
progress task for selected commands. SimplePipelineBuilder creates a
SimplePipeline with logged step messages. Both use the same registry and
execute(context) contract, so presentation does not change the resolved
business sequence.