- 
                Notifications
    You must be signed in to change notification settings 
- Fork 10
Description
Is your feature request related to a problem? Please describe.
Some users may have a different workflow than just plain git. Currently, the only implementations are git and a flag for stdout output.
Describe the solution you'd like
A kind of "backend system" would be nice, which would allow for setting the backend through koji's configuration. While every backend should be able to be toggled through Cargo features, at least the initial ones should be default features.
For example, koji --backend stdout would set the committing implementation to stdout, while koji --backend jj would set the implementation to jujutsu. The default should will still be git.
Of course, some of koji's flags will then not function in the same way as they are now, like --hook with the stdout backend. In my eyes, every backend should define its own capabilities which are then checked against the other arguments at runtime. Whether this should just warn or fail is not decided yet.
The prefilling of the summary and autocomplete functionality must be considered and adjusted to each backend (e.g. git will have the current implementation, stdout will have no prefilling and no autocompletion and jj will use its API to get the data like git)
To migrate, --stdout can be deprecated but reimplemented as an alias for --backend stdout.
Describe alternatives you've considered
Additional context
@jkellz-dev In #129 you added the stdout flag, so would you be okay with the summary prefill and autocomplete functionality falling away? If not, do you have an alternative idea for this? Maybe stdout wouldn't be a backend but just an "output format" and would overwrite the default committing functionality of the selected backend? Thank you.