Skip to content
This repository was archived by the owner on Jun 18, 2026. It is now read-only.

v1.6

Choose a tag to compare

@SagoDev SagoDev released this 08 Jan 18:13
· 42 commits to main since this release
dd40145

Fragua v1.6

Overview

Version v1.6 introduces a significant architectural refinement focused on declarative pipelines, clear separation of responsibilities, and improved environment ergonomics.
This release consolidates Fragua’s execution model by fully decoupling pipeline definitions from runtime execution artifacts, while strengthening support for macros and reusable step catalogs.


Key Highlights

1. Declarative Pipelines as First-Class Citizens

Pipelines are now stored and managed exclusively as dictionary-based definitions.

  • FraguaSet no longer persists FraguaPipeline runtime objects
  • Pipeline definitions (dict[str, Any]) are easier to edit, validate, and replace
  • Compiled FraguaPipeline objects are now ephemeral runtime artifacts

This change improves correctness, debuggability, and user experience when iterating on pipelines.


2. Unified Pipeline Execution Entry Point

A new high-level API was introduced:

execute_pipeline(pipeline)

Supported inputs:

  • FraguaPipeline → executed directly
  • str → resolved from registry, compiled, then executed
  • dict → compiled inline, then executed

This centralizes routing logic and eliminates ambiguity between compilation and execution.


3. Automatic StepBuilder Indexing from Sets

The environment now supports bulk registration of sets with automatic step exposure.

  • New add_sets(...) API
  • Callable items inside a FraguaSet automatically generate FraguaStepBuilder templates
  • Respect for step_enabled flag
  • StepIndex is populated eagerly and consistently

Macros (e.g. transform_chain) now resolve steps reliably without manual registration.


4. Separation of Registration Responsibilities

The previous generic register behavior was split into explicit, intention-revealing APIs:

  • add_functions(...)
  • add_pipeline_defs(...)
  • add_sets(...)

Each method now has a single responsibility, improving clarity and maintainability.


5. Pipeline Update & Replace Support

New CRUD-style operations for pipeline definitions:

Replace Pipeline

  • Fully replaces an existing pipeline definition
  • Equivalent to delete + add

Update Pipeline

  • Partially updates an existing pipeline definition
  • Preserves unspecified fields
  • Enforces immutability of pipeline name

This enables safe iteration and correction without redefining pipelines from scratch.


6. Improved Logging

Structured logging was added to critical execution paths:

  • Pipeline compilation
  • Pipeline execution
  • Registration events
  • Error scenarios

This improves observability and debugging during development and runtime.


Architectural Outcome

With v1.6, Fragua now enforces a clean and explicit separation between:

  • Functions → callable ETL logic
  • Steps → runtime execution units
  • Pipeline Definitions → declarative configuration
  • Execution → isolated, stateless runtime process

This release lays a strong foundation for future features such as versioned pipelines, validation tooling, and declarative exports.


Compatibility Notes

  • Existing users storing FraguaPipeline instances in registry sets must migrate to dictionary-based pipeline definitions
  • Runtime behavior remains consistent once pipelines are compiled

Summary

Fragua v1.6 is a structural maturity release.
It simplifies mental models, removes hidden state, and reinforces Fragua’s core philosophy:
explicit, declarative, and predictable ETL orchestration.