Anaconda Release

Hi,

I noticed problems with the Ubuntu release, not to mention the trouble one
would have to go through to make this work on Windows.

As a result the only simple way to get graph-tool working is on OSX with brew.
Which makes it virtually inaccessible for people living in countries with a
GDP that doesn't by everyone a shiny MacBook. Furthermore there is currently
no way to have it onto a production system except for docker. Which to be fair
is my personal concern.

Anaconda or just conda, has been around for a while now. In case you don't
know it, it's a cross platform package manager. Like apt-get but on linux, osx
and windows. It will allow you to even get a compiler inside a virtual
environment.

Most of the dependencies are already available on conda, therefore it should
be rather simple to get graph-tool on there as well. As a added bonus, you can
even vendor dependencies (maybe good for boost).

There have been already some efforts by people like Alexey Strokach to
delivery graph-tool on conda. (https://anaconda.org/ostrokach/graph-tool)

It would be great tho, to get some official support. I must admit, I don't
have much experience with releasing packages on conda.

I still think its worth looking into for a couple of reasons:

\- Support for all OS

\- Support for multiple python versions (not only the systems default)

\- single command install

Please let me know what you thing about this idea? I'd be willing to invest
some time into that, but only if it is your interest.

Cheers,

Joe

\--

**Johannes Hoppe**
Lead Software Engineer
  
[johannes.hoppe(a)thermondo.de](mailto:johannes.hoppe(a)thermondo.de)

**°Thermondo
**- Der Heizungsbauer.

**We are hiring: [www.thermondo.de/jobs/](http://www.thermondo.de/jobs/)**

[www.thermondo.de](http://www.thermondo.de/) | Thermondo GmbH, Brunnenstr.
153, 10115 Berlin
Eingetragen in Berlin unter: HRB 129321 I Steuernummer: 30/557/33244
Geschäftsführer: Florian Tetzlaff, Philipp A. Pausder | USt-IdNr.: DE273951924

[Facebook](https://www.facebook.com/thermondo) |
[Google+](https://plus.google.com/+ThermondoDe/posts) |
[Twitter](https://twitter.com/thermondo) |
[Youtube](https://www.youtube.com/channel/UCaM56yLLGe4y4qohjjKFAYA)

attachment.html (3.68 KB)

Anaconda's system is mostly (or only?) targeted for python packages.
Graph-tool have some non-python dependencies. I wish more time would be
spent towards a package repo that's cross platform and not only targeted
for a single language. I believe nixpkgs (https://github.com/NixOS/nixpkgs)
can be that. Graph-tool have been in there for over a year (
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/graph-tool/2.x.x.nix).
Some people are supporting OS X, and the CI tool, hydra have been set up
with both OS X and linux machines. I can only say that graph-tool at the
moment works in linux because that's what I use.

attachment.html (5.03 KB)

I noticed problems with the Ubuntu release, not to mention the trouble
one would have to go through to make this work on Windows.

What Ubuntu problems are you referring to?

If this is about the most recent thread on this list about Ubuntu
installation, it was about a user who refused to use the precompiled
packages available (despite being encouraged to the contrary), and
attempted to compile by hand, without fully understanding how to do so
(which is fine, this is why we have this list), and then running into
memory problems.

The installation on Ubuntu and Debian using the available packages is
trivial -- far easier than any other OS.

As a result the only simple way to get graph-tool working is on OSX
with brew. Which makes it virtually inaccessible for people living in
countries with a GDP that doesn't by everyone a shiny
MacBook. Furthermore there is currently no way to have it onto a
production system except for docker. Which to be fair is my personal
concern.

I don't think this is true. The simplest systems to install are
Ubuntu/Debian, then other GNU/Linux distros like Arch and Gentoo. MacOS
is in fact significantly more annoying, since Macports and Homebrew are
inferior package and dependency-tracking systems.

I don't own a MacOS system, and I routinely install graph-tool on
production HPC systems using Arch and Debian.

Anaconda or just conda, has been around for a while now. In case you
don't know it, it's a cross platform package manager. Like apt-get but
on linux, osx and windows. It will allow you to even get a compiler
inside a virtual environment.

Most of the dependencies are already available on conda, therefore it
should be rather simple to get graph-tool on there as well. As a added
bonus, you can even vendor dependencies (maybe good for boost).

There have been already some efforts by people like Alexey Strokach to
delivery graph-tool on
conda. (https://anaconda.org/ostrokach/graph-tool) It would be great
tho, to get some official support. I must admit, I don't have much
experience with releasing packages on conda.

I still think its worth looking into for a couple of reasons:
- Support for all OS
- Support for multiple python versions (not only the systems default)
- single command install

Please let me know what you thing about this idea? I'd be willing to
invest some time into that, but only if it is your interest.

It would be an incredible pain to support anaconda. The points above are
valid only for pure-python packages. Anaconda does _not_ solve any of
those for modules that need to be compiled. As you know, graph-tool is
implemented in C++, and has other C++ dependencies. Therefore, in order
to support all OSs and Python versions, a different anaconda package
(for graph-tool _and_ its dependencies) would have to be compiled for
each combination of OS and Python version! This would be nothing short
of a full-scale duplication of the current packaging effort... (There is
a reason why Alexey Strokach's packages only work for 64 bit GNU/Linux.)
Strictly speaking, it is _possible_, and would be convenient for users
in the end (module the usual packaging issues), but it would be an
amazing amount of work.

In other words, graph-tool is a C++ library with a Python interface.
Unfortunately, this means that it requires a C++ packaging solution, not
a Python one. GNU/Linux package managements are usually very good at
this. MacOS is a pain, but is possible. Windows is a nonstarter.

I understand that the biggest problem with graph-tool is that it is
difficult to install. It is not, in fact, more difficult to install than
other C++ libraries. But since the Python world expects "pip install" to
work, people get frustrated. But unless it is possible to do something
like "pip install boost cgal cairomm expat sparsehash", this problem
remains difficult to solve.

Best,
Tiago