Launchpad Branch Management

This is an overview spec covering different topics related to the management and presentation of baz branches in the Launchpad web infrastructure, and the supermirror.

Status

Introduction

This is an overview spec covering different topics related to the management and presentation of baz branches in the Launchpad web infrastructure, and the supermirror.

A number of sessions has been budgeted for this topic at UDU, it's likely that it will result in several spin-off specifications, listed below in the scope section.

Rationale

We are pioneering the brave new world of massively distributed branch based development, across the entire distribution and thus the entire span of the open source world. All of those products, each featuring potentially hundreds of branches, is a recipe for a morass of branches.

Launchpad, including the SuperMirror (see SuperMirrorLaunchpadIntegration), aims to be a comprehensive web front-end to that network of branches, both those created by upstream and those created for HCT package management in the distro. We need to ensure that developers can use Launchpad to "visualize" the state of the branch network - what branches are out there, which are more important, which are "hot" this week, which result in releases (stable, or milestone branches), and what the relationships between branches are. We may also want to highlight long lived branches that belong to high profile / key developers. For example we could base this on roles in the project or karma, or other heuristics.

We will in effect need to describe a taxonomy and lifecycle for branches, so we can identify branches that have died and been merged to the mainstream, as well as branches that are more or less "alive" and "active" and "important".

Scope

This specification provides an overview of the big picture for branches in Launchpad.

We can picture this management as trying to make sense of a large amount of raw branch data. At the bottom level we need to infer and record BranchMetadata. At the top end, towards the user, we need to present that data in various ways.

Most previous tools have concentrated on presenting lists of branches in various forms: simple lists, trees, graphs. This is fine, but will not scale up to extremely large numbers of branches, and tends to depend on the user knowing what they're looking for. Instead, we need to guide them to the information that makes most sense for their goal.

As for a search engine, this may take the form of a prioritized list, with the possibility of either refining the query or drilling down from an initial approximate result to better results in the manner of http://vivisimo.com, http://clusty.com or http://mooter.com. It should be possible to see the matched branches not merely as names but in the context of each other: which one has more changes, is more stable, etc? The URLs just mentioned demonstrate approaches to deliver these outcomes.

Consider different user roles: developers looking for best code to work on, distributors, users, etc.

Use Cases addressed in the broken out specifications


CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/LaunchpadBranchManagement (last edited 2008-08-06 16:41:04 by localhost)