svengeance / Husky

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

[Feature] Validation/Dry Run Enhancements #18

Open svengeance opened 3 years ago

svengeance commented 3 years ago

Context

Husky already has the first step done towards validation the likelihood of a successful install - it can go through and ensure all of the HuskyConfiguration blocks are set appropriately.

The issue here is that this is great for their own realm, but with cross-cutting concerns, it becomes an issue. For instance, if the post-installation setting of some registry keys depends on a configuration value being set, but by itself that value doesn't need to be set for that particular configuration, everything will appear to be okay.

This feature encompasses an expansion on the capability for users to validate that their workflow is indeed likely to succeed.

Proposals

Implement a new abstract method on HuskyTask called Validate(). This method MUST NOT exercise any system-changing behavior. It should validate cross-cutting concerns of its dependencies in any way possible.. It should give as much detailed logging as it can on each evaluation for correctness, likely through FluentValidation.

Interested Users

Developers