
Make Sagelib a pip-installable Python source package, listed on PyPI (2016) - macawfish
https://trac.sagemath.org/ticket/21507
======
marmaduke
CoCalc is an amazing thing they’ve also built which does real time
collaborative Jupyter notebooks,

[https://cocalc.com](https://cocalc.com)

along with full LaTeX suite, Sage of course, X11 desktops, etc. It can be
deployed trivially as a container to boot.

~~~
antt
We use it at work for debugging small snippets, e.g. "why does this loop kill
performance?".

Throw in Jitsi for talking/videoing while doing that and we don't really need
anything else 'enterprise'.

~~~
williamstein
I switched CoCalc from using appear.in to Jitsi a few months ago (when
appear.in removed similar functionality), and Jitsi has been __really
__amazing. There were some issues with Jitsi involving using too much CPU, but
they 've been fixed.

~~~
marmaduke
thanks for CoCalc and your prolific open source work; it sets a technical,
academic and moral standard to aspire to.

------
man-and-laptop
Is there a program, free or otherwise, that lets you to do various algebraic
manipulations, like:

\- complete the square

\- factorise something out

\- expand something out

\- etc

Doing that stuff by hand can get tedious.

I find that Sympy's simplify() often doesn't do what I want. WolframAlpha
often understands what I want better. It seems like it would need non-trivial
work on the UI front.

~~~
svantana
My go-to for these things is wolframalpha.com, mainly for ease of access, and
the natural language interface means I don't have to remember any syntax. You
can input queries like "complete the square a _x^2 + b_ x + c" or "derivative
of exp(x^3)" and get solutions, it's a real timesaver. Also, for vector/matrix
derivatives, [http://www.matrixcalculus.org/](http://www.matrixcalculus.org/)
is amazing.

------
mikorym
Any readers here who are active Sage users?

I last used it in 2012 and have not heard much since then.

~~~
williamstein
I started Sage, and worked on it a huge amount 2004-2012, but less so recently
(due to working mostly on CoCalc). Actual contributions to and work on Sage by
the community have gone UP a lot since 2012, as this plot
([https://github.com/sagemath/sage/graphs/contributors](https://github.com/sagemath/sage/graphs/contributors))
at Github shows. Much of that work is from research mathematicians that are
adding large swaths of important functionality (e.g., in differential
manifolds) to Sage. But there's also a very welcome push for quality, e.g.,
the number one recent contributor, fchapoton, has been fixing every little
detail in the codebase revealed by [https://lgtm.com/](https://lgtm.com/) and
other tools, and there's also been a lot of work to fully transition Sage to
Python 3 (which is difficult since so much is written in Cython and make
nontrivial use of comparisons).

I would have likely made Sage pip-installable from day 1 if I had known that
pip would turn out to be so popular. It was really unclear what was going on
with Python packaging 15 years ago. I'm really glad that one package manager
(pip) has become so good at this point.

------
infinity0
That's not what the ticket is about. The main part of sagemath is sagelib a
python/cython library, and the ticket is about making this part pip-
installable. Sagemath the whole package depends on many non-python programs
and it won't ever be possible or desirable to make this all pip-installable.

OTOH we have done a ton of work making sagemath apt-get installable, and that
works since about 2 years ago.

~~~
macawfish
Ah, I think I understand... Thanks for clarifying. I'm used to thinking of
Sage as the thing that does `from sage.all import ...` But I also understand
that there are lots of things in Sage relying on libraries like GAP or Magma.

So it sounds like this wouldn't necessarily guarantee that what you import
from sagelib will necessarily be available or configured to work with sagelib,
unless that piece you've imported has all python dependencies. Is that right?

Really I'm just hoping to be able to use some of the algebra modules
(specifically Clifford algebra) without installing all of sagemath.

It seems like for a lot of modules that should be possible, and then for a lot
of other modules it wouldn't be. Am I understanding this right?

The idea of being able to write packages python packages that depend on
sagelib (yet live on pypi.org) is very exciting, and I feel that it could push
the quality and consistency of sagelib by drawing new contributors (e.g. from
the greater scipy ecosystem).

For a long time, I've been sad that I couldn't write python packages that
depend on sage stuff without limiting their working environment to a full-
blown sage environment.

So the thought of this becoming a reality is pretty exciting to me!

 _P.S. could someone change the title to "Sagelib is slowly moving toward
being pip-installable" ?_

~~~
dimpase
> this wouldn't necessarily guarantee that what you import from sagelib will
> necessarily be available or configured to work with sagelib, unless that
> piece you've imported has all python dependencies. Is that right?

No, not really - what you can import will be working, whether via python
bindings in sagelib, or external ones. The corresponding ongoing challenge of
sagelib/sagemath development is to un-vendor a lot of components currently
bundled in. Debian has managed this in their own not very portable way.

