>> Sage *is* different than other programs, since even in the binary
>> release it comes with .hg repositories (under devel and local/bin) and
>> lets users actually modify what they want.

> Sage is indeed different in that the technology is constructed to
> discourage to  "developer"/"end user" dichotomy that you mention
> above.  Anyone who is at all serious about using Sage is also a
> programmer, since the user interface to Sage is a programming
> language.

Sorry, but

     Mission: Creating a viable free open source alternative to
     Magma, Maple, Mathematica and Matlab.

also expresses that you care about people who just want to use Sage, not 
primarily extend it.

> Because the goals of the Sage project require massive
> people-power, Sage provides every user with an easy environment in
> which to do development.

I hope you understood, that I was mentioning that opportunity for people 
to change sage since even a binary sage comes with sources, because I 
appreciate it. I was thinking about a somewhat more GNU-like build 
standard without losing this sage feature.

For the following... correct me if I see something wrongly.

* Sage currently comes either as a source or binary tarball.
* To develop sage, one downloads the sourc tarball and then develops 
inside the devel/sage-xyz directory.
* As I learned today devel/sage-main is actually called the Sage-Library 
and available as an spkg.
* There is no repository for the source code (i.e. source tarball minus 
the directories spkg, devel, data, examples, local, (ipython).
* Suppose such a repository would exist. Call it "sage-bare".
* Add the code from http://hg.sagemath.org/scripts-main/ into the local 
directory of sage-bare and call the whole thing "sage-bootstrap".

So what should sage-bootstrap (when compiled) do.
1) (configure) Test and setup the environment (provide sage-env).
2) (make step: download) Consult a certain config file to figure out 
about all the other parts that are not yet on the local machine. I 
imagine that all these other parts are, in fact spkgs. The config file 
would list the spkg together with a (known good) version and some places 
where to try to download these packages from.
3) (make step: build) Delegate the installation of the .spkg to the 
spkg-install of the corresponding spkg.
4) (make install step) Move all installed spkg's into the directory 
given via --prefix at configure time.

Stopping after 2) gives all the files that should be packed into a sage 
source tarball.

Stopping after 3) gives the binary distro.

Step 4) is for people who don't want to develop any further on sage, 
i.e. system administrators can install Sage into /usr/local.

Not performing step 4) or just keeping all that is there after step 3), 
should give (after putting the "sage" script into the PATH) a working 
Sage and a Sage development environment in exactly the same way as it is 
now.

The difference to the current sage is the not yet existing 
"sage-bootstrap" *repository*. Tags inside that repo mark the sage releases.

"sage-bootstrap" is basically responsible for setting what is now 
"sage-env" for all the other spkgs and it brings the sage script under 
revision control. Furthermore it should contain code to download other 
spkgs. Not a big deal, eh?

Comments?

Ralf



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