= Description = GroundControl is a project to create social development tools which combine the best of collaborative development tools available online right into desktop tools. * '''Website:''' http://ground-control.org * '''Project:''' https://launchpad.net/groundcontrol/ * '''Version in Repositories:''' 1.6 * '''Status:''' Broken = Version 2.0 = The first version of ground control was quite rough and required nautilus and gnome 2 to work. The rappid changes in nautilus, gnome, python and especially launchpad api required a re-think of how to organise ad design the project. Thus version 2.0 was started. * '''Repository:''' https://code.launchpad.net/~groundcontrollers/groundcontrol/trunk = Design = The new design is split into a number of components. == Core Infrastructure == The core is a dbus service/daemon which is run under user privileges. It's job is to provide a standard desktop-wide api to any of a multitude of project websites such as launchpad, github and savanah. The service provides these dbus objects as collections: * '''Services''' - List of supported/installed services, such as launchpad * '''Accounts''' - List of enabled accounts * '''Projects''' - List of known local projects (search for remote projects done on service) * '''Branches''' - List of known local branches * '''Bugs''' - List of subscribed bugs And thus these dbus objects as items: * '''Service''' - Interface for a service, enabled capabilities, online status, search for projects etc * '''Account''' - Interface for an account, identification, keys, names, avatars etc * '''Project''' - Interface for a project, authorised capabilities, searches for branches and bugs * '''Branch''' - Interface for a branch, maybe bzr, git etc, includes all basic functions such as pushing, pulling, merging etc. * '''Bug''' - Interface for subscribed bug. Bug details, comments, attached branch etc == Authentication == Because we have a new '''Ubuntu Online Accounts''' functionality, the current authorisation mechanisms should be replaced with a set of integrations into this new desktop wide functionality. The above dbus API is not duplicating UOA because it's providing access to normalised functionality for a variety of services. == Dash Searching == The easiest functionality after the core is dash search integration. There are already semi-working plugins to allow searching for projects, bugs and developers. == Messaging/notifier == Probably the hardest or most impossible feature. Integrating any messages about projects and changes in bug statuses would require polling and a non-standard way of checking for updates. But there is no reason why there couldn't be good support for these messages eventually. == Integrated Editor == The editor is a the main functionality, it allows a developer to enter a project, get a branch and start hacking on it right away. It takes over from the old nautilus plugin and allows branch and project management, opening files as well as in-line editing. There is a version in the repository which is not nearly finished. {{attachment:layout.png}} {{attachment:projects.png}} {{attachment:code.png}} {{attachment:lookup.png}}