On Wed, Sep 23, 2009 at 08:07:18PM -0700, Robert Bradshaw wrote:
> Here's my ideal system (which rietveld may or may not be a part of,  
> but certainly it'd be better to not start something from scratch).
> 
> (0) I hack on my own code, committing as I want, the normal mercurial  
> way.
> (1) I run a sage command that takes all my changes and uploads them  
> to trac (or rietveld, or Review Board, or ...). It may or may not  
> flatten them. The ticket description should be no more than the  
> commit description (i.e. our commit descriptions should be a lot more  
> verbose.)
> (2) This patch automatically gets applied to the current alpha, any  
> merge problems, build problems (including documentation), or test  
> failures get reported and bounced back. Linting could happen at this  
> point too (everything from no tabs to coverage to "Sage:" in docstrings)
> (3) Upon a successful build (or even not) this build gets saved and  
> can be accessed and played with (via the notebook or by ssh-ing into  
> a virtual machine). The code can be browsed and commented on.
> (4) Reviewer makes comments, as a whole or line-by-line. They can use  
> (3), browse the code, and have a sage command like sage -merge that  
> will quickly update their local copy to the state of the ticket, and  
> allow them to push as well.
> (5) I can quickly address those comments via a sage -b into that  
> branch (or otherwise using queues/etc. to get back to my ticket  
> state), make my changes, and re-push to trac. Building and tests  
> happen after every push. This point here is not to be underestimated-- 
> I think it will greatly improve the quality of the code to lower the  
> overhead of the feedback loop.
> (6) When the reviewer is happy, he marks it as positive review.
> (7) The release manager(s) approve the patch. At this point they know  
> it builds, passes tests, and has at least one positive review. It  
> goes into a queue.
> (8) Patches in the queue get applied to the current alpha. This  
> implies a moving alpha, which one knows builds and passes all tests  
> on at least one system. It should be easy to upgrade to that alpha.
> (9) People can (easily) donate computer time to build and test  
> alphas, which will greatly increase hardware coverage. Bisection can  
> be used to locate the offending ticket in case of failure.
> 
> Note that one can still work "out of the system" mailing around  
> mercurial bundles and patches, so there's no lock-in. I'm sure there  
> are a lot of more details to work out (like how to handle spkgs,  
> which I think could still fit into the above system), but I think a  
> system like the above would make the job easier for both developers  
> and release managers. It might tax the computer systems a bit, but  
> that's not what we're short on now (or, probably, into the  
> foreseeable future). Every step above that involves a human needs a  
> human, and doesn't require tons of overhead.

A big +1! The overhead of the current workflow is killing us (well, at
least seriously slowing us down).

Cheers,
                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to