On Fri, May 6, 2011 at 2:21 PM, Ondrej Certik <ond...@certik.cz> wrote:
> On Fri, May 6, 2011 at 2:19 PM, Ondrej Certik <ond...@certik.cz> wrote:
>> On Fri, May 6, 2011 at 11:26 AM, Robert Bradshaw
>> <rober...@math.washington.edu> wrote:
>> [...]
>>> Were I to design the system from scratch, I'd put
>>> all our code (devel/scripts/...) in a single repo, along with the
>>> top-level files, and a list of dependencies (spkgs). Building sage
>>> would fetch (locally or remotely) the dependencies listed and build
>>> them in such a way that changing the list of dependencies and
>>> re-building would easily and cheaply reversible. I would probably
>>> still build my own Python, but may require it (flexible version) as a
>>> bootstrapping prerequisite. Whether the non-upstream parts of an spkg
>>> belong in the spkgs or the main repo, I'm not sure, but I'd rather
>>> *everything* be expressed as commit to a single repository (possibly
>>> moving a pointer to some new, vanilla upstream source, rather than
>>> putting all upstream sources in our repo).
>>>
>>> If others have similar views, maybe we could move in that direction.
>>
>> I actually developed such a system from scratch (it's called Qsnake:
>> http://qsnake.com) and pretty much followed your paragraph above, so I
>> pushed all the repos at github:
>>
>> https://github.com/qsnake

Cool.

>> for example the Cython repo is here:
>>
>> https://github.com/qsnake/cython
>>
>> it is actually a fork of the official Cython repo. And then Qsnake is
>> clever enough, that when it is fetching the sources, and if there is
>> setup.py and no spkg-install, it creates spkg-install automatically
>> with "setup.py install" (and other default stuff), and then saves the
>> cython.spkg package into the spkg/standard/ directory.
>>
>> Having all spkg-install scripts in the main repository (so in my case
>> in this repository: https://github.com/qsnake/qsnake) is a valid idea,
>> that I have been bouncing around too. I decided not to, to keep things
>> localized, as sometimes nontrivial modifications are needed to the
>> upstream packages, and the best way to do such modifications is to
>> simply create couple git patches. Also for testing, if there is
>> spkg-install file, committed, I can checkout the git repo for a
>> particular package and
>>
>> qsnake install .
>>
>> and it will install the package. And I can debug it easily.

Is it a reversible install? What about concurrent versions? What about
dependancies (e.g. if the version of Cython was updated, would all the
stuff depending on Cython get re-compiled?

> Oh, and then people can simply send pull requests to the respective
> packages directly. So I think it solves lots of the problems raised in
> this thread. For sage, it would have to move to github though, so it
> might not be an option.

Probably not. Is it really tied to github, or could any dvcs be plugged in?

- 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

Reply via email to