Re: [sage-devel] packaging vision (pip etc)

2015-08-16 Thread François Bissey
On 08/17/15 09:46, Ondřej Čertík wrote:
 And my next question is what should we do currently to make it easy
 for Sage users to install SymEngine. Should we continue using the spkg
 to install the C++ dependencies (cmake, the C++ libsymengine.so
 library) and then use pip to install the Python wrappers?

As far as I can see the biggest obstacle is the inclusion of cmake
in sage.
While functionally equivalent autotools has a strong lead in mind
share and length of its proven record.
The fact that autotools doesn't need anything to be installed for the
user deploying is also usually seen as a bonus. If you had
50 packages using cmake, having to install one more wouldn't
seem such a bad deal but that's not where we are.

Francois

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] packaging vision (pip etc)

2015-08-16 Thread Ondřej Čertík
On Tue, Aug 11, 2015 at 7:44 AM, William Stein wst...@gmail.com wrote:
 On Tue, Aug 11, 2015 at 1:15 AM, Volker Braun vbraun.n...@gmail.com wrote:
 [Top-posted to stop threadjacking the SymEngine post]

 I'm sorry for doing that -- it was sort of relevant to his question,
 but starting a new thread is much better.


 Just have the sage-python-library install using pip, assuming your system
 has all the dependencies, is almost trivial. The real question is always how
 to handle the dependencies, starting at a Fortran compiler. Also, just to
 establish a baseline for discussion, Daniel Holth (pip author) said: When
 people ask whether wheel can be used to distribute any other kind of
 software or dependency (libsdl, libqt, etc.) I recommend they take a look at
 system packaging tools or conda (comment at
 http://continuum.io/blog/conda_packaging).

 So IMHO the right solution is to first separate all the C/C++-level
 dependencies (gcc, pari, python itself,...) from the Python libraries. We
 still need a way to have a canonical stack of the C/C++ dependencies to
 test against and patch if necessary, but you could switch that for OS
 packages (if there is such a thing on your platform). There are various ways
 to do this, hashdist being one of them, and we can likely share at least
 some of the package maintenance effort with others.

 +1  -- this makes good sense.

I like this. I was going to ask about it, because SymEngine depends on
CMake, and that's not very practical to build using pip. Also, we are
discussing to split the symengine C++ library and its Python wrappers
into separate packages (so that the Python wrappers can be installed
against multiple Python versions at once, if needed, and also so that
other wrappers like Julia/Ruby can reuse the same C++ library --- it
can be done already, but it's cleaner if it is separate). The C++
package can be installed using cmake and would be part of the C/C++
level dependencies. The Python wrappers would be installed using pip,
and those would be tightly integrated with SymPy and Sage.

That seems to be aligned with what Volker proposed. Let me know.

Ondrej


 Then sage-the-python-library could just install itself and its Python
 dependencies with pip and requirements.txt

 That would be awesome.



 --
 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 sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/d/optout.



 --
 William (http://wstein.org)

 --
 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 sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/d/optout.

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] packaging vision (pip etc)

2015-08-16 Thread Ondřej Čertík
On Sun, Aug 16, 2015 at 3:33 PM, Ondřej Čertík ondrej.cer...@gmail.com wrote:
 On Tue, Aug 11, 2015 at 7:44 AM, William Stein wst...@gmail.com wrote:
 On Tue, Aug 11, 2015 at 1:15 AM, Volker Braun vbraun.n...@gmail.com wrote:
 [Top-posted to stop threadjacking the SymEngine post]

 I'm sorry for doing that -- it was sort of relevant to his question,
 but starting a new thread is much better.


 Just have the sage-python-library install using pip, assuming your system
 has all the dependencies, is almost trivial. The real question is always how
 to handle the dependencies, starting at a Fortran compiler. Also, just to
 establish a baseline for discussion, Daniel Holth (pip author) said: When
 people ask whether wheel can be used to distribute any other kind of
 software or dependency (libsdl, libqt, etc.) I recommend they take a look at
 system packaging tools or conda (comment at
 http://continuum.io/blog/conda_packaging).

 So IMHO the right solution is to first separate all the C/C++-level
 dependencies (gcc, pari, python itself,...) from the Python libraries. We
 still need a way to have a canonical stack of the C/C++ dependencies to
 test against and patch if necessary, but you could switch that for OS
 packages (if there is such a thing on your platform). There are various ways
 to do this, hashdist being one of them, and we can likely share at least
 some of the package maintenance effort with others.

 +1  -- this makes good sense.

 I like this. I was going to ask about it, because SymEngine depends on
 CMake, and that's not very practical to build using pip. Also, we are
 discussing to split the symengine C++ library and its Python wrappers
 into separate packages (so that the Python wrappers can be installed
 against multiple Python versions at once, if needed, and also so that
 other wrappers like Julia/Ruby can reuse the same C++ library --- it
 can be done already, but it's cleaner if it is separate). The C++
 package can be installed using cmake and would be part of the C/C++
 level dependencies. The Python wrappers would be installed using pip,
 and those would be tightly integrated with SymPy and Sage.

 That seems to be aligned with what Volker proposed. Let me know.

And my next question is what should we do currently to make it easy
for Sage users to install SymEngine. Should we continue using the spkg
to install the C++ dependencies (cmake, the C++ libsymengine.so
library) and then use pip to install the Python wrappers?

Ondrej

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] packaging vision (pip etc)

2015-08-16 Thread Ondřej Čertík
On Sun, Aug 16, 2015 at 8:08 PM, François Bissey
francois.bis...@canterbury.ac.nz wrote:
 On 08/17/15 09:46, Ondřej Čertík wrote:
 And my next question is what should we do currently to make it easy
 for Sage users to install SymEngine. Should we continue using the spkg
 to install the C++ dependencies (cmake, the C++ libsymengine.so
 library) and then use pip to install the Python wrappers?

 As far as I can see the biggest obstacle is the inclusion of cmake
 in sage.
 While functionally equivalent autotools has a strong lead in mind
 share and length of its proven record.
 The fact that autotools doesn't need anything to be installed for the
 user deploying is also usually seen as a bonus. If you had
 50 packages using cmake, having to install one more wouldn't
 seem such a bad deal but that's not where we are.

So now when we agreed to split the C++ library from the Python
wrappers (and use pip for those), the C++ library itself is actually
relatively easy to build, and so in principle we can also support
autotools, especially if we only support the Release configuration
using it. For development we would still use cmake.

But I think getting cmake into Sage would be worthy, there are a lot
of packages that use it and it has wide adoption (e.g. VTK, Paraview,
Piranha, Armadillo, CGAL, Dolfin, Eigen, GiNaC, Gromacs, HPX, ITK,
Lapack, LLVM, MPQC, Trilinos, ...). Even Google trends (I don't know
if it is representative) shows that cmake is more searched than
autotools/automake:

https://www.google.com/trends/explore#q=cmake%2C%20autotools%2C%20automakecmpt=qtz=Etc%2FGMT%2B6

Ondrej

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-devel] packaging vision (pip etc)

2015-08-11 Thread Volker Braun
[Top-posted to stop threadjacking the SymEngine post]

Just have the sage-python-library install using pip, assuming your system 
has all the dependencies, is almost trivial. The real question is always 
how to handle the dependencies, starting at a Fortran compiler. Also, just 
to establish a baseline for discussion, Daniel Holth (pip author) said: 
When people ask whether wheel can be used to distribute any other kind of 
software or dependency (libsdl, libqt, etc.) I recommend they take a look 
at system packaging tools or conda (comment at 
http://continuum.io/blog/conda_packaging). 

So IMHO the right solution is to first separate all the C/C++-level 
dependencies (gcc, pari, python itself,...) from the Python libraries. We 
still need a way to have a canonical stack of the C/C++ dependencies to 
test against and patch if necessary, but you could switch that for OS 
packages (if there is such a thing on your platform). There are various 
ways to do this, hashdist being one of them, and we can likely share at 
least some of the package maintenance effort with others. 

Then sage-the-python-library could just install itself and its Python 
dependencies with pip and requirements.txt


-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] packaging vision (pip etc)

2015-08-11 Thread William Stein
On Tue, Aug 11, 2015 at 1:15 AM, Volker Braun vbraun.n...@gmail.com wrote:
 [Top-posted to stop threadjacking the SymEngine post]

I'm sorry for doing that -- it was sort of relevant to his question,
but starting a new thread is much better.


 Just have the sage-python-library install using pip, assuming your system
 has all the dependencies, is almost trivial. The real question is always how
 to handle the dependencies, starting at a Fortran compiler. Also, just to
 establish a baseline for discussion, Daniel Holth (pip author) said: When
 people ask whether wheel can be used to distribute any other kind of
 software or dependency (libsdl, libqt, etc.) I recommend they take a look at
 system packaging tools or conda (comment at
 http://continuum.io/blog/conda_packaging).

 So IMHO the right solution is to first separate all the C/C++-level
 dependencies (gcc, pari, python itself,...) from the Python libraries. We
 still need a way to have a canonical stack of the C/C++ dependencies to
 test against and patch if necessary, but you could switch that for OS
 packages (if there is such a thing on your platform). There are various ways
 to do this, hashdist being one of them, and we can likely share at least
 some of the package maintenance effort with others.

+1  -- this makes good sense.

 Then sage-the-python-library could just install itself and its Python
 dependencies with pip and requirements.txt

That would be awesome.



 --
 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 sage-devel+unsubscr...@googlegroups.com.
 To post to this group, send email to sage-devel@googlegroups.com.
 Visit this group at http://groups.google.com/group/sage-devel.
 For more options, visit https://groups.google.com/d/optout.



-- 
William (http://wstein.org)

-- 
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 sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.