Version 3 CLI client and remote goodness
The next alpha release of version 3 is just weeks away, and it’s time for another status update with a sneak preview of upcoming feature(s). This time we’ll have a look at two completely new features from version 2, namely the new CLI client, and the remote service API.
The new CLI client
The CLI client in version 2 was (is) unstable, lacked features and was in many cases fragile at best. Because we want all the existing features of The Bug Genie to work as good as possible, and at least with the advertised features, we decided to integrate the CLI client with the rest of the framework so it has access to all the goodness that is available throughout the rest of the framework. In addition, we’ve integrated it with the modules and class autoloader and created a specific set of classes to help developers create more cli goodness. This helper functionality includes: helper for outputting color formatted text on terminals that supports it; functionality for easily retrieving user input via arguments or direct input; full module support and dynamic loading of new CLI commands provided by modules.
To test out these features, we’ve added quite a few commands to the default package, such as performing a full installation, managing modules (installation, listing, removing), showing the license, importing and exporting wiki articles, managing outgoing email queue and more. In addition, we’ve also added a command that sets up an empty module skeleton to help module developers start their module development faster. This also leads us to our next feature set, the remote service and client API.
Version 3 comes with a full API to communicate with other services (such as potentially Eclipse/Mylyn) and by default, a CLI client. The CLI client that ships with The Bug Genie has a command set that communicates with any installation of The Bug Genie, where you can perform actions such as listing projects, listing open issues for a project, listing only open issues of a certain type, and more. The next alpha version will come with a small set of remote commands available for you to test – already implemented is a command that lists all available projects for a remote installation of The Bug Genie. The CLI also lets you set up a default remote server to communicate with, as well as the username to use – and it can prompt you for the password, or store a hash of your password for easy authentication. See the following screenshot to see this in action.
The following screenshot first sets a default server to work with, showing both the way to set a default server and no username (which will then try and login remotely with your current CLI username, and ask you for your password), then it sets it up with username authentication as well, rounding of with running a command that lists all available projects on the remote server.
The CLI client utilizes the remote API, and speaks JSON with the remote installation of The Bug Genie, which you can of course implement in any client of your choosing. This API will be documented as needed, and will be available in the next alpha release. If you want to test it out before the release, just let us know 🙂