Le 17/01/2012 21:10, Jason Grout a écrit :
On 1/17/12 2:04 PM, Julien Puydt wrote:
Le 17/01/2012 20:54, Jason Grout a écrit :
On 1/17/12 1:38 PM, Julien Puydt wrote:
Le 17/01/2012 15:33, Jason Grout a écrit :
If we separate out twisted on principle, it seems like we should
separate out the other 13 dependent packages that are included.
That's a
maintenance burden I can't take on right now.

Are those heavily patched with respect to upstream?

None, including twisted, are patched with respect to upstream.

Why is there a maintenance burden for pieces of code which upstream
takes full care of?

The maintenance burden is in making and releasing a new spkg for every
single upstream update if we split those off into separate spkgs,
compared to the sagenb spkg automatically downloading and including
necessary dependencies in itself.

This is something I have noticed : on the other hand, having spkg means that to share some experimental code with inexperienced people, it's just a single file to transmit, and it will mostly just work. This is good, and must stay!

On the other hand, that means that each spkg is its own repository, which is quite a pain during development. For example, sage may have foo-3.14.p3, and on some bug report, someone comes up with foo-3.14.p4 with a patch (and must hence share the whole big archive instead of the one-liner patch) ; and on another bug report, someone else has a foo-3.14.p4 with another patch (same problem). This also implies that when a new upstream comes, a new spkg must be made, which isn't that trivial. A maintenance pain, as you put it.

Does it really make sense to have the shipped (both mandatory and optional) parts of sage as spkg? Spkg is nice for optional *and* external stuff, why would it make sense for the "base" install?

Wouldn't it be better to have sage structured like this somewhere (just the inspiration of the moment, don't take this as a polished and perfect design document) :

sage/
  mandatory/
    upstream/
      foo-3.14.tar.bz2
      bar-20120115.tar.bz2
      ...
    foo/
      patches/
      build-script
    bar/
     patches/
     build-script
    ...
  optional/ (but shipped with sage)
    upstream/
      ...
    whatever/
      ...
    ...
  spkg/
    (the necessary things to list, download& install spkg)

where the tarballs in the upstream directories are the upstream *unmodified* archives.

The advantages would be :

- everything is under the same revision control tree (no more one repository by package [and worse, a tar+bzip2-ed repository!]) ;

- just share patches of a few bytes instead of several megs ;

- it's easy to see if sage has specific patches for something or not ;

- updating a package can be as simple as dropping the new upstream tarball, remove the old and change the version number in the corresponding build-script (one-liner).

- it's easier to share in-progress work within the community : just get the repository, and you'll know what is 4.8.alpha1 [it's tagged], you'll even see the changes of the day by the maintainers ;

Just some thoughts,

Snark on #sagemath

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