On Apr 1, 2010, at 8:55 PM, Dr. David Kirkby wrote:
Robert Bradshaw wrote:
I believe this is very relevant to the discussion that's taking
place on sage-devel.
Thank you Robert. Forwarding that was very useful.
Begin forwarded message:
From: William Stein <wst...@gmail.com>
Date: March 21, 2010 11:09:31 AM PDT
To: sage-release <sage-rele...@googlegroups.com>
Subject: [sage-release] Sage releases
Reply-To: sage-rele...@googlegroups.com
Hi,
The last release (sage-4.3.4) illustrates that there are some
misunderstandings about when a release manager should actually
make an
official release.
The README.txt lists the following as the supported Sage platforms:
"PROCESSOR OPERATING SYSTEM
x86 32-bit Linux -- Debian, Ubuntu, CentOS (=Red Hat),
Fedora, openSUSE, Mandriva
x86_64 64-bit Linux -- Debian, Ubuntu, CentOS (=Red Hat),
Fedora, openSUSE, Mandriva
IA-64 Itanium 2 64-bit Linux -- Red Hat, SUSE
x86 Apple Mac OS X 10.5.x
PPC Apple Mac OS X 10.5.x"
To me, this means that we're claiming that each Sage release works
on
those platforms.
This suggests some ideas for how to do things better:
(1) We should change the above matrix to the following:
PROCESSOR OPERATING SYSTEM
x86 32-bit Linux -- Debian, Ubuntu, CentOS (=Red Hat),
Fedora, openSUSE, Mandriva
x86_64 64-bit Linux -- Debian, Ubuntu, CentOS (=Red Hat),
Fedora, openSUSE, Mandriva
IA-64 Itanium 2 64-bit Linux -- Red Hat, SUSE
x86 Apple Mac OS X 10.5, 10.6
PPC Apple Mac OS X 10.4, 10.5
SPARC Solaris 10
since OS X 10.6 support is very good now, and we decided a while ago
*not* to drop OS X 10.4, but to carefully officially support it.
Also, we better add Solaris 10 soon enough. There will also be
another line soon, I hope:
x86 Cygwin (Microsoft Windows)
(2) We should also specify that we only claim that Sage will build
with a generic install (+devel packages) of the latest officially
released version of one of the above OS's. We make no claims about
old or crufty OS versions.
IMHO, point 2 should be changed significantly.
It's not always possible for someone to install the latest release
of the operating system. People do not always have time. William
remarks he has installed Linux 1000 times and is fed up with it.
Florent Hivert remarks he tests Sage on openSUSE 11.1 and also said
he believes there is a release 11.1 virtual machine on boxen.
However, the latest official stable release of openSUSE is 11.2
which was released on November 12th, 2009.
We should not claim support on the latest stable release unless we
test on it.
If a newer release of some distribution is made, it would obviously
be useful to have that as a test platform, but until such time as
that is done, we should not claim to work on the latest stable
release. If at all possible, we should not break Sage so it fails to
work on older releases. If we have a 11.1 openSUSE virtual machine
now, then if a build farm is available, testing on 11.1 and the 11.2
should be possible if someone has the time to install an 11.2
virtual machine.
Linux has a poor record of backward compatibility (some
distributions are worst than others), so it's always possible a new
release of some distribution will be made which can not build Sage.
IMHO, there is no need to remove that distribution from the support
Matrix. It is better to just list the version we know works, and
hopefully try to sort things out so Sage builds on the latest version.
Likewise, t2.math is not running the latest release of Solaris 10,
but Solaris 10 update 7 (05/09). I usually test Sage on Solaris 10
(03/05 - the first release). If it builds on that, you can be
99.999% sure it will build on the latest release of Solaris, as
Solaris has an excellent record of backwards compatibility. But we
can't claim it works on the first release of Solaris 10 unless we
test every release on it, which is not practical given there is no
machine running the first release generally available, and
furthermore, 't2' would not support the first release of Solaris 10.
Also, at least in the case of Solaris 10, there are no suitable
development packages officially available. Installing a developer
release of Solaris 10, you get gcc 3.4.3, which is too old to build
Sage. It is better to say gcc 4.4.1 configured to use the Sun linker
and assembler, which is what is used on 't2' now, though we would
expect any gcc >= 4.0.1 to work.
(3) We should never, never, ever release another version of Sage,
unless it actually builds and passes its test suite on all of the
above.
I'm glad William has come around to my way of thinking on this -
i.e. we need to test on all the supported platforms before any
release is made. I think Minh's matrix he made we be a good starting
point for this.
(4) However, sometimes a pseudo-release that doesn't pass (3) is
very
useful, e.g., before Sage Days (like right now), and targeted for
experts. In such cases, we could do a "beta" release, e.g., 4.3.4
could have been:
sage-4.3.4.beta.tar
and there could never be a 4.3.4 that isn't beta. In case of a
beta,
this would mean that:
(a) we continue to host everything related to 4.3.3 on the main
website.
(b) we make the beta source and binaries available.
I don't think the point that there should never be a 4.3.4 that is
not beta necessary. It is quite common (usual method) to make a beta
release available, then make a non-beta (i.e. fully tested) version
available with the same version number.
(I don't see any harm in making all the alphas available on the web
site either, as long as it is clear that these are alpha releases.)
+1 to all of the above. And Kudos top those who actually put in the
insane amount of work required to do release management (as opposed
to those who just sit around and talk about it).
Robert, before saying +1 to all the above, you should ask yourself
if all of the above is practical. IMHO, it is not.
I think this is the main point of disagreement, IMHO it is practical
and worthwhile (though a lot of work, and we may have to temporarily
thin the list). I agree with you that "latest official release" should
be taken a bit loosely--it may take some time to upgrade our build
farms and if there are issues to sort them out. I think the main point
was that we're not making promises if the OS is not reasonably up to
date (though technically there's no reason it shouldn't still work,
and we make all past releases available as well).
(5) Regarding the technical issues with testing the above, it's of
course possible using a build farm. However, maintaining such a
thing
takes a lot of effort, and so far I have had to do it all myself on
boxen, and I simply don't have the time (or inclination). We
might
have to *temporarily* shrink our list of supported platforms until
either I can hire somebody, I get more time, or somebody steps up
and
volunteers to manage a virtual build farm. I've probably
installed
Linux more than 1000 times in my life, and I'm tired of installing,
upgrading, etc. Linux. I used to love it. Thus I'm sure somebody
out
there loves to. Anybody in Seattle?
I'm also glad William agrees the list of supported platforms should
be reduced until such time as we can test on them. Previously he
stated he definitely did not agree with me.
http://groups.google.com/group/sage-devel/msg/47ca574f0348fb8b
Since there is agreement to build on test on each supported
platform, Peter Jeremy's point that "supported" should mean binaries
are available is at least worth considering. If the testing is done
on the *.math.washington.edu network, then making a binary should be
reasonably possible, as it only needs 'sage -bdist' to be run to
create the binary.
However, if verification of a successful build comes from someone
using a system that is not on the *.math.washington.edu network, it
may be impractical for them to make the binary available, due to the
bandwidth needed to upload it.
Their reports should still be useful. (Ideally there should be an
option when running tests (building?) that would automatically report
back with the results and system specs.) I don't think having the
bandwidth to upload half a gigabyte is that rare--especially from
other universities around the world.
- Robert
--
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
To unsubscribe, reply using "remove me" as the subject.