graph LR
build_execution_plan["build_execution_plan"]
collect_all_transitive_tasks["collect_all_transitive_tasks"]
resolve_dependencies["resolve_dependencies"]
execute_execution_plan["execute_execution_plan"]
execute_task["execute_task"]
build_execution_plan -- "orchestrates" --> collect_all_transitive_tasks
collect_all_transitive_tasks -- "provides tasks to" --> build_execution_plan
build_execution_plan -- "leverages" --> resolve_dependencies
resolve_dependencies -- "provides dependency analysis to" --> build_execution_plan
execute_execution_plan -- "delegates to" --> execute_task
execute_task -- "is invoked by" --> execute_execution_plan
The pybuilder.execution subsystem is the core orchestration engine responsible for transforming a set of desired build tasks into an executable plan and then executing it. It operates in distinct phases: first, identifying all necessary tasks and their dependencies, then constructing a valid, ordered execution plan, and finally, executing each task in sequence. This design ensures that complex build processes are managed efficiently, respecting task interdependencies and preventing circular dependencies.
This central component is responsible for constructing the complete, ordered sequence of tasks (the execution plan) that need to be run. It orchestrates the identification of all necessary tasks, including transitive dependencies, and ensures they are arranged in a valid execution order, including cycle detection. This is a critical part of the "Pipeline/Workflow" orchestration.
Related Classes/Methods:
Recursively identifies and collects all tasks that are directly or indirectly required for the build process. This ensures that the execution plan is comprehensive and includes all prerequisites.
Related Classes/Methods:
Analyzes the dependencies between various build tasks and determines a valid topological order for their execution. This component is fundamental to the "Dependency-based Programming" aspect of PyBuilder, ensuring tasks are not executed before their prerequisites are met. build_execution_plan leverages this component's capabilities for dependency analysis and ordering.
Related Classes/Methods:
This is the orchestrator of the actual build process. It iterates through the prepared execution plan, managing the overall flow and triggering the execution of individual tasks in the determined order. This represents the "Core Engine" aspect of the subsystem.
Related Classes/Methods:
Encapsulates the logic for executing a single build task. This is where the specific actions associated with a task (e.g., compiling source code, running tests) are invoked.
Related Classes/Methods: