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.
