Developers will want a first-class way of defining at what time their steps should run. At this time there are at least four identified phases:
Install
Uninstall
Update
Repair
Proposals
An array of string-based phases as a basic property on each Step should do the trick. I'm inclined to keep it as a string rather than an enum as this allows developers to define their own phases if they so choose. Moreover, any attempts to enumify this will invariably result in enum parsing for no real gain.
All first-class tasks should be created with [Install, Uninstall]. Husky's rollback capability should allow it to gracefully uninstall if the user relies on supported tasks.
Expected execution would be that Husky's executable verb defines the mode Husky runs under, e.x. my-installer.exe install, or my-installer.exe my-custom-phase.
Context
Developers will want a first-class way of defining at what time their steps should run. At this time there are at least four identified phases:
Proposals
An array of string-based phases as a basic property on each Step should do the trick. I'm inclined to keep it as a string rather than an enum as this allows developers to define their own phases if they so choose. Moreover, any attempts to enumify this will invariably result in enum parsing for no real gain.
All first-class tasks should be created with
[Install, Uninstall]
. Husky's rollback capability should allow it to gracefully uninstall if the user relies on supported tasks.Expected execution would be that Husky's executable verb defines the mode Husky runs under, e.x.
my-installer.exe install
, ormy-installer.exe my-custom-phase
.Interested Users
Developers