Wingman is an interface and workflow for managing your source in ways which map directly to creating software. We talk in terms of features, bugs, release candidates, releases and hotfixes.
Under the hood, we use Git and GitHub to actually achieve this, abstracting away complexity, making sure you can just get on and ship software. More...
After launching Wingman, you’ll see your GitHub account, along with all the organisations you’re a member of in the menu. Under each organisation is a list of repositories you have access to.
You can ‘load’ a repository for use with Wingman by navigating to it either with the arrow keys on the keyboard, or with your mouse, and selecting ‘Load Project’ from the submenu.
Alternatively you can create an entirely new project by navigating to the organisation and selecting 'New Project'.
Now you’ll want to start working on some hot new features. Navigate down to the project, and select ‘Work On A New Feature’. This will load up a list of issues from GitHub, you can choose to associate the feature with an issue, or you can enter a new name and an associated GitHub issue will automatically be created for you.
While working on a feature, you’ll want to save progress at various stages. Sometimes you’ll just want to save locally; maybe you’re offline, or maybe you don’t want others to see your changes just yet, for this, navigate down to the feature, and select “Save Changes Locally”. This will display a window showing all the files which have changed. You can go ahead and select the files you want to save, add, or delete from management. If you want to share changes, select “Save Centrally”. This saves your changes to GitHub for all to see.
Now you’ve finished with your feature, you want to close it, and make it available to others. Select “Complete Task” and your feature will be saved, then merged into the ‘Latest Developments’ for others to see and use. Team members working on other features can periodically grab the latest developments to incorporate your newly completed features during development
Of course you'll likely have some bugs which crop up during development, or some non critical bugs in your last release which you'll want to fix. These work much the same way as features. Navigate to your project and select "Work On A New Bug Fix", you'll again see a list of GitHub issues, and you can select one to associate with this task, or you can just enter a name, and Wingman will create a new associated issue in GitHub for you.
Now you’re feature complete! Of course you’re likely to have a few bugs to clean-up during beta, but you don't want to stop your entire team from working on features for your next major version. Time to create a release candidate! This branches off the ‘Latest Developments’, but any future features or bugs which are closed, will not be applied to this Release Candidate.
While testing the release candidate, you come across a few bugs. Time to hotfix! These are similar to bug fixes, but they are applied to release candidates as well as the latest developments (where as Bugs and Features are only applied to the latest developments).
So now you’re at the point where your release candidate is ready to ship! Simply select ‘Release’ from the menu, and you’ll be asked to name the release. This will first make sure the Latest Developments include all changes and hotfixes in the release candidate, then it wil merge the release candidate with the master branch, and create a new tag for the release from master. Now master reflects the latest shipping release of your product!
Of course even after all that careful testing, your users discover a critical bug in this release you need to fix now, you can’t wait for the next major release! Easy, navigate down to the release, and choose ‘Hotfix’. You’ll be prompted to enter a name for a new Release Candidate, as well as a name for the hotfix.