Skip to content

The Great Git Grand Unification Theory #1

Darrell edited this page Apr 16, 2015 · 2 revisions

Multiple Tools - Unify?

For reference, the current list of tools - seeking some sort of "grand unification"? https://github.com/GitTools/Roadmap/wiki/Tools-for-Consolidation

Proposal #1

  • One single commandline.exe interface - e.g GitTools.exe this will give end users one API to work with when setting up their automation (Team City, Octopus etc etc) - no matter which features they need.

  • Pluggable / Extensible. We would implement the following as seperate individual plugins for GitTools.exe:

    • Issue tracker support (GitHub, Bitbucket, Jira etc)
    • Release Notes Formatters (Markdown, JSON, Html etc)
    • Release Creation (Github, BitBucket, Jira etc)

Comments

Unclear where the following tools would fit into this sort of unification as I am not familiar with them at present:-

  • GitLink
  • APIComparer
  • APIApprover

Plugins would need some way to surface their particular command line options / arguments to GitTools.exe. This would require basically an extensible command line architecture - could be tricky. For example, the BitBucket releases plugin may require additional / different command line arguments than say, the Github releases plugin. Initial thought for dealing with this is that the command line exe is kept dumb, and the command itself contains just enough info for the core to identify the plugin to pass control too. The plugin is left in charge of validating the arguments passed.