[cut-team] Rethinking CUT

Bruce Sass bmsass at shaw.ca
Fri Sep 10 19:33:54 UTC 2010


On September 9, 2010 08:13:36 pm Michael Gilbert wrote:
> Hi,
>
> I've been thinking for a while now about the CUT ideas currently
> floating around.  The problem I see is that there are a lot of ideas
> for solutions but no concrete (root cause) list of problems those
> solutions are meant to address.  Without this all-important first
> step (often used by engineers in problem-solving), I think the
> results will miss the mark, and in the process compound the work for
> many teams without a whole lot of benefit.

I think you have the right kind of idea, but are applying it to the 
wrong problem--it is Testing itself which is fundamentally broken and 
should be fixed. CUT is a partial (potentially baroque) attempt to work 
around that fact... and one which would not be necessary if Testing had 
been done right.

The main idea behind what became Testing was to come up with a way for 
DDs to continue developing newer software while a release was being 
prepared. The possibility of having a constantly usable repository of 
fresher software than what was in Stable was brought up as an 
additional reason for changing the Unstable + transitory Frozen + 
Stable development model which was in use at the time.

Clearly neither of those goals were achieved by the solution which was 
put in place--and, AFAICT, the reason it turned out that way was pretty 
much exactly the problem you see--people are jumping into 
implementation details before the design work has been finished. IOW, 
the idea of, `top down design, bottom up programming', seems to have 
been forgotten or tossed out in favour of a more hackish methodology.

the point:
It would be far better to work out how to "fix Testing" so that it is 
constantly usable than come up with a new side project that only does 
part of what Testing was supposed to.

so...

The concrete list of problems has been made: Unstable gets closed to new 
packages when a release is being prepared; there is no constantly 
usable archive of better quality than Unstable which is fresher than 
Stable.

The next step should be to identify the required stages software must go 
through as it progresses from upstream release to Stable Debian 
package. Doing that is likely to both, illustrate why Testing is 
broken, and suggest the structure a new model should have if it is to 
succeed.

E.g., lets say the stages of development has the following chain:

initial packaging -> packaging bug fixes -> integration with other 
packages -> software bug fixes -> release

Superimposing the current development model on top results in:
 |
 V
Unstable = initial packaging + packaging bug fixes
 |
 V
Testing = integration with other packages + software bug fixes
 |
 V

Which implies that: Testing is not constantly usable because it is 
expected to do the integration with other packages task, something 
which necessarily results in an inconsistent archive from time to time; 
Unstable can't be disconnected from Testing because that is the only 
path available for packages to get into Testing (which begs the 
question: why must packages which have passed through Unstable once 
before be required to do so again?)

The suggestions for a new model are: separating the integration and 
software bug fixing tasks will eliminate the not-constantly usable 
problem; a path to the integration stage which doesn't necessarily 
involve Unstable will allow for the required disconnection.

One possible solution:
 |
 V
Unstable = initial packaging + packaging bug fixes
 |
 V
Testing = integration with other packages   <-- *
 |  
 V
Rolling = software bug fixes
 |
 V

* =  feeds from here and "software bug fixes"

Of course I don't expect it is that simple in reality--all I can see is 
the forest, it's the DDs who know what species of trees exist...

- Bruce



More information about the cut-team mailing list