On Thu, Mar 10, 2016 at 5:19 PM, Jeroen Demeyer <[email protected]> wrote:
> On 2016-03-10 17:12, Erik Bray wrote:
>>
>> It might almost be worth rebuilding Sage's packaging on top of the
>> conda platform, so that we can eliminate a lot of the overhead of
>> developing a packaging system alongside sage.  But the devil is of
>> course in the details, and I could also understand any wariness over
>> depending on a third-party system, over which we don't have full
>> control, for Sage-the-distribution's packaging.
>
>
> Never having used conda, some quick questions in case you know the answer:
> 1) Does conda support the same operating systems as Sage?

No--this is one of the "details" that would count out sole reliance on
something like conda right now.  Most significantly out of the Fully
Supported and Expected to Work columns in [1] being the Solaris
variants.  A question I have is for how long does Sage intend to fully
support those platforms?  There's nothing particular about conda that
would preclude supporting Solaris that I'm aware of (it doesn't rely
deeply on kernel-specific features or anything like that).  Its lack
of support for Solaris is probably mostly due to lack of demand.

Anaconda (and subsequently conda) has been intended mostly for
individuals working on their personal / work computers, as installing
a full scientific Python stack was otherwise difficult for those
users.  So it focused primarily on the OS's the majority of
researchers are using for their day-to-day work, less so on servers
managed by IT professionals.

> 2) Does conda deal with non-Python packages too?

Yes, that was one of the primary motivations behind developing their
own packaging system, rather than just relying on pip-installing into
virtualenvs.  It also predated the standardization of the "wheel"
format, just barely.  But it's well known that the wheel format is
still insufficient for certain types of binary dependencies.

> 3) Does conda support building packages in parallel?

That I don't know.  The main challenge to building packages in
parallel is just ensuring that all of a package's dependencies are
built first, right?  I honestly don't know how Continuum builds their
full stack.  Worth asking though.

> Do you consider conda superior than the Sage package system? Do you know of
> problems that conda has but Sage doesn't?

I don't have deep enough experience with either to have a strong
opinion on the first question.  I'll suggest a few points though:
Perhaps the single greatest advantage I can think of is the support
for multiple, simultaneous installation environments a la virtualenv.
If I had to guess this should be possible with Sage too by changing
around $SAGE_LOCAL and rebuilding, but I haven't tried that.  You can
probably answer for me how simple that is.  The advantage to conda
environments though is nothing needs to be rebuilt to be installed in
multiple environments--the existing binary packages can just be
unpacked to different locations, and there are explicit command-line
programs for managing environments.

You can see more about the package format itself here:
http://conda.pydata.org/docs/build_tutorials/pkgs2.html#about-conda-build-recipe
 As one would expect, it's not terribly different from what goes into
an spkg (there are only so many obvious ways to do this).  I suppose
one advantage it does have (which you've seen me agitate for) is
slightly more structured metadata (it uses yaml, which means a yaml
parser needs to be bootstrapped before any other package can be
built).  But this is a mostly superficial point, I think.

I don't know what specific problems conda has, much less that sage
doesn't.  I haven't built any large collections of packages for conda
so I haven't personally tested its limits.  I know other people who
are happy with it though.

To me the biggest reason for bringing up the idea of using it is less
whether one is better than the other, and more how much we can save
time and effort by leveraging an existing project.  To be clear, I'm
not saying the existing effort has been misspent by any means. conda
didn't even exist until a couple years ago.  It also doesn't have as
wide platform support.

Best,
Erik

[1] https://wiki.sagemath.org/SupportedPlatforms

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to