svengeance / Husky

Modernizing the way developers think about installers
3 stars 0 forks source link

[Feature] Initial Set of Installation Metadata #8

Closed svengeance closed 3 years ago

svengeance commented 4 years ago

Context

Users need to configure an initial set of metadata on the installer.

Elevator Pitch

Installers come with an enormous amount of configuration. The name, of course, but also its dependencies, comments, version, etc. We should provide users with an elegant way to set all of this configuration. Perhaps the installer could ship with a series of yml files, each of which are subsets of the whole, that prevents users from getting overwhelmed with the high amount of configuration.

Interested Users

End users

svengeance commented 3 years ago

The ability to configure various facets of the installer has been done via a modular approach. Every subsection of configuration has its own class, and every class is injected into the DI system that the Installer uses, so any HuskyTask can depend on any section.

The below describes how the Task modules are initialized, and injected into the DI system. https://github.com/svengeance/Husky/blob/main/src/PoC/Husky/Husky.Core/Workflow/HuskyConfiguration.cs

Subsections of metadata can be configured like so: https://github.com/svengeance/Husky/blob/ee8af40598e007c4c4ae319f7fed9f064693c2c9/src/PoC/Husky/HuskyApp.Installer/Program.cs#L35-L49