GroundControl

Description

GroundControl is a project to create social development tools which combine the best of collaborative development tools available online right into desktop tools.

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.

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.

layout.png

projects.png

code.png

lookup.png

GroundControl (last edited 2012-10-23 05:12:10 by c-50-136-124-83)