graph LR
Project_Configuration_Loader_Validator["Project Configuration Loader/Validator"]
Project_Data_Models["Project Data Models"]
Project_Initializer_Template_Renderer["Project Initializer/Template Renderer"]
Project_Configuration_Loader_Validator -- "uses" --> Project_Data_Models
Project_Initializer_Template_Renderer -- "may use" --> Project_Data_Models
The Project Configuration & Template Manager subsystem is crucial for initializing new charm projects and managing their metadata. It acts as the central hub for defining, validating, and applying project-specific configurations.
This component is responsible for reading, parsing, and validating charmcraft.yaml and metadata.yaml files against predefined schemas. It ensures that project configuration data adheres to expected formats and provides structured access to this data for other components.
Related Classes/Methods:
This component defines the canonical data structures, typically using Pydantic models, for representing charm project metadata and configuration. It ensures type safety, consistency, and facilitates data validation across the application.
Related Classes/Methods:
Manages the end-to-end process of creating new charm projects from predefined templates. This includes copying template files, rendering dynamic content based on user input or project configuration, and setting up the initial project directory structure.
Related Classes/Methods: