1271
by Canonical.com Patch Queue Manager
add malone vision doc |
1 |
The world has many excellent bug tracking tools already. It would not make |
2 |
sense to create another bugtracker unless the vision behind that software |
|
3 |
was substantially different to anything that had gone before it. This |
|
4 |
document outlines that vision, explaining what it is that I hope Malone will |
|
5 |
do for the open source community. |
|
6 |
||
7 |
The Vision behind Malone |
|
8 |
||
9 |
Malone is a unified bug tracker for the entire open source world. It is |
|
10 |
designed to allow the whole open source community to collaborate on software |
|
11 |
defect management, especially when a single piece of code is being used |
|
12 |
across many projects. Malone presents a single page which gathers together |
|
13 |
the combined wisdom and knowledge of the open source world regarding a |
|
14 |
specific software defect. |
|
15 |
||
16 |
Upstream and Distributions |
|
17 |
||
18 |
A unique feature of Malone is that it understands the structure of the open |
|
19 |
source community: |
|
20 |
||
21 |
Software is developed by individuals or groups with a common interest in a |
|
22 |
specific problem. We call this group "upstream". That software is |
|
23 |
distributed in its pristine state ("tarballs", usually) and is usually |
|
24 |
designed to be compiled and run on a variety of platforms. |
|
25 |
||
26 |
However, most people who use that software will not get it directly from |
|
27 |
upstream, build it and install it locally. They will install a package |
|
28 |
that has already been prepared for the specific platform they are running |
|
29 |
on. For example, on Gentoo, they will type "emerge foo". On Ubuntu, they |
|
30 |
would type "apt-get install foo". And on RedHat they would install a |
|
31 |
custom RPM. So the same software code is being repackaged many times, for |
|
32 |
Gentoo, Ubuntu, RedHat, and many other platforms. |
|
33 |
||
34 |
A natural consequence of this repackaging is that a bug in that software |
|
35 |
might be detected and/or fixed by a variety of different people, without |
|
36 |
upstream being aware of either the bug or the fix. In many cases, the people |
|
37 |
doing the repackaging have entirely separate bug tracking tools to upstream, |
|
38 |
and it is difficult for them to pass their information and patches to |
|
39 |
upstream directly. |
|
40 |
||
41 |
Malone explicitly tracks the status of a bug both upstream and in any |
|
42 |
distributions registered in Launchpad. This makes it possible, for |
|
3936.1.1
by Tom Haddon
Test commit that simply changes references to "the Launchpad" to "Launchpad" in doc/malone.txt |
43 |
example, to see immediately if a fix has been found for a given bug by any |
1271
by Canonical.com Patch Queue Manager
add malone vision doc |
44 |
of the participating distributions, or upstream. The bug page shows this |
45 |
information very prominently. |
|
46 |
||
47 |
Watches |
|
48 |
||
49 |
It's unlikely that the whole world will shift to Malone. Many larger |
|
50 |
projects have their own bug tracking tools (Bugzilla, Sourceforge and |
|
51 |
Roundup are commonly used) and some have even created custom tools for this |
|
52 |
purpose. For that reason, Malone supports BugWatches. A BugWatch is a |
|
53 |
reference to a different bugtracker that is tracking the same bug. Of course |
|
54 |
it will have a different bug number in that system, and the integration |
|
55 |
between Malone and that remote bug system is possibly limited, compared to |
|
56 |
the richness of the Malone data model, but this still allows us to keep |
|
57 |
track of a bug in a different bug tracker. For example, a bug in the Firefox |
|
58 |
package on Ubuntu would be tracked in Malone. If the same bug has been |
|
59 |
identified upstream, it would be recorded in bugzilla.mozilla.org, and we |
|
60 |
would create a BugWatch in the Malone bug pointing at that upstream bug. |
|
61 |
||
62 |
Email Integration |
|
63 |
||
64 |
It's important that Malone be usable entirely in email. Many open source |
|
65 |
developers use their email to track work that needs to be done. So all of |
|
66 |
Malone's features should be accessible via email, including changing the |
|
67 |
status of a bug, adding and updating watches, and possibly also requesting |
|
68 |
reports of bugs on a product or distrbution. |
|
69 |
||
70 |
Distribution Bugs |
|
71 |
||
72 |
Malone is designed to track bugs upstream, and in distributions. The |
|
73 |
requirements for a distribution bugtracker are somewhat specialised. A |
|
74 |
distribution consists of many source packages and binary packages, and it |
|
75 |
must be possible to track bugs at a fine level of granularity such as at the |
|
76 |
source/binary package level. |
|
77 |
||
78 |
Malone allows us to create bugs that belong only to a distribution, or to a |
|
79 |
sourcepackage in a distribution if we have that information. Bugs that are |
|
80 |
not associated with a sourcepackage can be thought of as "untriaged" bugs. |
|
81 |
In some cases, we should be able to know not only which source package, but |
|
82 |
also the precise binary package that manifests the bug. |
|
83 |
||
84 |
Milestones and DistroSeries |
|
5121.2.8
by Stuart Bishop
Renaming in doctests |
85 |
|
1271
by Canonical.com Patch Queue Manager
add malone vision doc |
86 |
In addition, it's important to be able to know which bugs need to be fix for |
87 |
a given release of the distribution, or a given milestone upstream. Malone |
|
88 |
allows us to specify a milestone or a distroseries by which a bug needs to |
|
5121.2.8
by Stuart Bishop
Renaming in doctests |
89 |
be fixed, which allows QA teams to keep track of the progress they are |
1271
by Canonical.com Patch Queue Manager
add malone vision doc |
90 |
making towards a release. |
91 |
||
92 |
Version Tracking |
|
93 |
||
94 |
One very difficult problem faced by support teams in the open source world |
|
95 |
is that users may not all be running the latest version of a piece of code. |
|
96 |
In fact, that's pretty much guaranteed. So Malone needs to be able to say |
|
97 |
whether a bug is found in a particular version of a package or not. |
|
98 |
||
99 |
Future |
|
100 |
||
101 |
1. Bazaar Integration |
|
102 |
Malone is part of Launchpad, a web based portal for open source |
|
3936.1.1
by Tom Haddon
Test commit that simply changes references to "the Launchpad" to "Launchpad" in doc/malone.txt |
103 |
developers. Another component of that portal is the Bazaar, a repository |
1271
by Canonical.com Patch Queue Manager
add malone vision doc |
104 |
of data and metadata about code stored in the Bazaar revision control |
105 |
system. We hope that Bazaar will be embraced by the open source world, |
|
106 |
as it solves a number of problems with traditional centralised revision |
|
107 |
control systems and is again designed to support distributed |
|
108 |
disconnected operation. |
|
109 |
||
110 |
Once more people start keeping their code in Bazaar, it should become |
|
111 |
possible to streamline the cooperation process even further. For |
|
112 |
example, if the fix for a particular Malone bug can be found in a Bazaar |
|
113 |
changeset, then it should be possible for upstream and other |
|
114 |
distributions to merge in that fix to their codebase automatically and |
|
115 |
easily. The integration could even be bidirectional - once a fix had been |
|
116 |
merged in, Bazaar could possibly detect that and mark the bug fixed in |
|
117 |
that codebase automatically. |
|
118 |
||
119 |
||
120 |