diff --git a/imagecraft/application.py b/imagecraft/application.py index 04a5d022..2ccf2559 100644 --- a/imagecraft/application.py +++ b/imagecraft/application.py @@ -17,10 +17,8 @@ """Main Imagecraft Application.""" from craft_application import Application, AppMetadata -from craft_parts.plugins.plugins import PluginType from typing_extensions import override -from imagecraft import plugins from imagecraft.models import project APP_METADATA = AppMetadata( @@ -35,10 +33,6 @@ class Imagecraft(Application): """Imagecraft application definition.""" - @override - def _get_app_plugins(self) -> dict[str, PluginType]: - return plugins.get_app_plugins() - @override def _enable_craft_parts_features(self) -> None: # pylint: disable=import-outside-toplevel diff --git a/imagecraft/services/lifecycle.py b/imagecraft/services/lifecycle.py index 953b9be9..df0cd743 100644 --- a/imagecraft/services/lifecycle.py +++ b/imagecraft/services/lifecycle.py @@ -20,20 +20,30 @@ from pathlib import Path from typing import cast +import craft_platforms from craft_application import LifecycleService from craft_cli import CraftError from craft_parts import Action, callbacks from craft_parts.executor.errors import EnvironmentChangedError from craft_parts.infos import ProjectInfo +from craft_parts.plugins import Plugin +from craft_parts.plugins.plugins import PluginGroup from typing_extensions import override -from imagecraft import models +from imagecraft import models, plugins from imagecraft.services.image import ImageService class ImagecraftLifecycleService(LifecycleService): """Imagecraft-specific lifecycle service.""" + @staticmethod + @override + def get_plugin_group( + build_info: craft_platforms.BuildInfo, + ) -> dict[str, type[Plugin]] | None: + return {**PluginGroup.MINIMAL.value, **plugins.get_app_plugins()} # pyright: ignore[reportUnknownMemberType] + @override def setup(self) -> None: """Initialize the LifecycleManager with previously-set arguments."""