This is separation from the thread "Those cookies again..." at

http://groups.google.com/group/sage-support/browse_thread/thread/a520d6310ceac1b1

Hi David,

On Sun, Aug 22, 2010 at 6:56 PM, Dr. David Kirkby
<david.kir...@onetel.net> wrote:
> In my opinion, (and one I think that is shared by Peter too), Sage needs to
> devote *far* more time to testing, and a lot less time to adding features,
> if it's ever to become a viable alternative to the 4 M's.

As a start, there needs to be a change in how the latest mainline
repository is made available. Let me explain what I mean. The current
situation is that a release manger has her/his working latest mainline
in a private directory somewhere, usually on sage.math. This means
that testing of the latest mainline repository is often performed by
one person, i.e. the release manager, as new patches are integrated.
If you have an account on the machine sage.math and you know where the
release manager keeps their working repository, you could constantly
test that working repository. But that is not an optimal way of
testing the latest mainline. It is after the release manager releases
an alpha or rc version that we see a concerted effort to test that new
public release. What I'm suggesting is working out some way to
encourage a concerted effort in testing the latest mainline, not just
after an alpha or rc is publicly released.

To understand the difficulty in realizing what I'm suggesting, let's
look at how other open source projects are doing to make their latest
mainline repository available. Projects like Python, Mercurial, etc.
each has a central mainline tree that is publicly accessible. The
release manager integrates a patch and hence immediately makes that
new addition available in the mainline tree. This means that it is
conceivable that one has a script or process that automatically does a
nightly or daily build and test run through the whole of the latest
mainline tree. Contrast the above situation to the current case of the
Sage project.

We have discussed over and over again on the issue of making the
latest mainline tree of Sage publicly available. So far we have not
succeeded in realizing this goal. This might be due to how a Sage
source version is managed. Currently, there is the Sage library which
is managed by a Mercurial repository, there is a library of scripts
which is also managed by Mercurial, there is the base spkg repository
that is also managed by Mercurial, the standard spkg repository that
is not under source control, and there is SAGE_ROOT which is also not
under source control. How can we apply the concept of a mainline tree
from other projects to the case of the Sage project? A few months ago,
I tried to implement some scripts to push [1] the latest mainline Sage
tree to a central place, and to pull [2] the latest mainline from that
central place to a local place. My little experiment showed some
glimmer of hope of getting the whole Sage source tree into such a
state that anyone could pull from that tree for testing purposes, but
only a release manager with suitable privileges could push to that
tree. This little experiment is far from a complete realization. Other
details need to be worked out as well as more time to devote to its
realization.


> The only possible way Sage might get less buggy, is for more people with
> similar views to me, make them known to William. *Perhaps*, if he realises
> people like you are reluctant to use Sage for classes because of the bug
> rates, he might do something to address the quality control issues.
>
> One of the release mangers for 4.5.3 has said the first release candidate
> for 4.5.3 will be available on Monday and he hopes to release 4.5.3 on
> Friday. That's simply insufficient time for testing in my personal personal
> opinion.
>
> I'd like to see regular "bug-fix-only" releases, where no new features are
> added, but only code that addresses known bugs is incorporated.
>
> Whilst Brooks claims in his book
>
> http://en.wikipedia.org/wiki/The_Mythical_Man-Month#The_tendency_towards_irreducible_number_of_errors
>
> that
>
> ===================================================================
> in a suitably complex system there is a certain irreducible number of
> errors. Any attempt to fix observed errors tends to result in the
> introduction of other errors
> ===================================================================
>
> I think Sage is a long way from that point.
>
> Sage is certainly "suitably complex", but I don't think it's reached the
> point where attempts to fix bugs will not reduce the total number of bugs. I
> think with some effort, and a change of attitude, the number of bugs in Sage
> could be reduced, but this would be at the expense of adding new features.
> It might even lose some developers, who can't tolerate such a change of
> attitude.

A factor which can militate against this is the lack of contributors
who care enough about a part of Sage to work on it. Sage is a
behemoth. The current crop of contributors is not sufficient to drive
down the current number of open bugs. It's difficult as it is for
these people to carry about their day job, work on Sage, and manage
their private lives. We need to encourage a diverse cohort of people
to be passionate about certain parts of Sage. How we do that is a
different matter: Sage Days work, social media work, words of mouth
work, but not inspiring enough to encourage active contributors as
opposed to users.


[1] http://sage.math.washington.edu/home/mvngu/apps/sageutil/push.sh

[2] http://sage.math.washington.edu/home/mvngu/apps/sageutil/pull.sh

-- 
Regards
Minh Van Nguyen

-- 
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