Re: [galaxy-dev] Introducing Conda as a new standard for Galaxy tool dependencies

2016-09-01 Thread Léo Biscassi
Hi Bjorn,
I read the documentation about conda shared early in this email and I have
one more question:

If I already a conda installation on computer and don't wish share this
installation to control galaxy dependencies, galaxy works fine with your
own conda auto installation or I have pay attention in more some detail?

On Mon, Aug 29, 2016 at 5:37 AM Peter Cock 
wrote:

> That's great Bjoern,
>
> I was thinking we should mention this on the wiki (with a link
> to the documentation rather than duplicating it). There are
> some existing pages about the tool_dependencies.xml
> system - but no obvious top level introduction that I saw?
>
> https://wiki.galaxyproject.org/ToolDependencyRecipes
> https://wiki.galaxyproject.org/ToolShed/PackageRecipes
> https://wiki.galaxyproject.org/ToolDependenciesTagSets
> https://wiki.galaxyproject.org/ToolsWithDependenciesInSeparateRepositories
>
> Where on the wiki do people think would be best?
>
> Peter
>
> On Sun, Aug 28, 2016 at 9:41 PM, Léo Biscassi 
> wrote:
> > Nice job! I was really anxious for some documentation about this theme!
> > Thanks all involved!
> >
> > On Fri, Aug 26, 2016 at 3:38 PM Björn Grüning  >
> > wrote:
> >>
> >> Hi all,
> >>
> >> Galaxy 16.07 was just released:
> >> https://docs.galaxyproject.org/en/master/releases/16.07_announce.html
> >> and the IUC has some news to share with you.
> >>
> >> For a more readable version please see:
> >> https://docs.galaxyproject.org/en/master/admin/conda_faq.html
> >>
> >> 
> >>
> >> Galaxy tools (also called wrappers) traditionally use Tool Shed package
> >> recipes to install their dependencies. At the tool’s installation time
> >> the recipe is downloaded and executed in order to provide the underlying
> >> software executables. Introduction of these Galaxy-specific recipes was
> >> a necessary step at the time, however nowadays there are other more
> >> mature and stable options to install software in a similar manner. The
> >> Galaxy community has taken steps to improve the tool dependency system
> >> in order to enable new features and expand its reach. This document aims
> >> to describe these and answer the FAQ.
> >>
> >> It is a pleasure to announce the adoption of a new standard for tool
> >> dependencies in Galaxy which has been integrated over the last six
> >> months: Conda packages!
> >> Not only do Conda packages make tool dependencies more reliable and
> >> stable, they are also easier to test and faster to develop than the
> >> traditional Tool Shed package recipes .
> >>
> >> Conda is a package manager like apt-get, yum, pip, brew or guix. We
> >> don’t want to argue about the relative merits of various package
> >> managers here, in fact Galaxy supports multiple package managers and we
> >> welcome community contributions (such as implementing a Guix package
> >> manager or enhancing the existing brew support to bring it on par with
> >> Conda).
> >>
> >> As a community, we have decided that Conda is the one that best fulfills
> >> our needs. The following are some of the crucial Conda features that led
> >> to this decision:
> >>
> >> * Installation of packages does not require root privileges
> >> (Installation at any location  the Galaxy user has write access to)
> >> * Multiple versions of software can be installed in parallel
> >> * HPC-ready
> >> * Faster and more robust package installations through pre-compiled
> >> packages (no build environment complications)
> >> * Independent of programming language (R, Perl, Python, Julia, Java,
> >> pre-compiled binaries, and more)
> >> * Easy to write recipes (1 YAML description file + 1 Bash install
> script)
> >> * An active, large and growing community (with more and more software
> >> authors managing their own recipes)
> >> * Extensive documentation: Conda documentation
> >> (http://conda.pydata.org/docs/building/build.html) and Conda
> quick-start
> >> (http://conda.pydata.org/docs/get-started.html)
> >>
> >> Below we answer some common questions (collected by Lance Parsons):
> >>
> >> 1. How do I enable Conda dependency resolution for existing Galaxy
> >> installations?
> >> ---
> >>
> >> Most Galaxy administrators have not set up a dependency resolvers
> >> configuration file (dependency_resolvers_conf.xml) which means they are
> >> using Galaxy’s default (dependency_resolvers_conf.xml.sample). Galaxy
> >> has enabled Conda dependency resolution by default since release 16.04
> >> (if Conda was installed already), so many existing installations can use
> >> Conda dependencies. Having Conda enabled in
> >> dependency_resolvers_conf.xml means that Galaxy will look for
> >> dependencies using the Conda system when it attempts to run tools. If
> >> conda_auto_install is True, and a dependency is not found, Galaxy will
> >> attempt to install it using the configured Conda channels. A graphical
> >> user interface that allows administrators install Conda packages
> >> direc

Re: [galaxy-dev] Introducing Conda as a new standard for Galaxy tool dependencies

2016-08-29 Thread Peter Cock
That's great Bjoern,

I was thinking we should mention this on the wiki (with a link
to the documentation rather than duplicating it). There are
some existing pages about the tool_dependencies.xml
system - but no obvious top level introduction that I saw?

https://wiki.galaxyproject.org/ToolDependencyRecipes
https://wiki.galaxyproject.org/ToolShed/PackageRecipes
https://wiki.galaxyproject.org/ToolDependenciesTagSets
https://wiki.galaxyproject.org/ToolsWithDependenciesInSeparateRepositories

Where on the wiki do people think would be best?

Peter

On Sun, Aug 28, 2016 at 9:41 PM, Léo Biscassi  wrote:
> Nice job! I was really anxious for some documentation about this theme!
> Thanks all involved!
>
> On Fri, Aug 26, 2016 at 3:38 PM Björn Grüning 
> wrote:
>>
>> Hi all,
>>
>> Galaxy 16.07 was just released:
>> https://docs.galaxyproject.org/en/master/releases/16.07_announce.html
>> and the IUC has some news to share with you.
>>
>> For a more readable version please see:
>> https://docs.galaxyproject.org/en/master/admin/conda_faq.html
>>
>> 
>>
>> Galaxy tools (also called wrappers) traditionally use Tool Shed package
>> recipes to install their dependencies. At the tool’s installation time
>> the recipe is downloaded and executed in order to provide the underlying
>> software executables. Introduction of these Galaxy-specific recipes was
>> a necessary step at the time, however nowadays there are other more
>> mature and stable options to install software in a similar manner. The
>> Galaxy community has taken steps to improve the tool dependency system
>> in order to enable new features and expand its reach. This document aims
>> to describe these and answer the FAQ.
>>
>> It is a pleasure to announce the adoption of a new standard for tool
>> dependencies in Galaxy which has been integrated over the last six
>> months: Conda packages!
>> Not only do Conda packages make tool dependencies more reliable and
>> stable, they are also easier to test and faster to develop than the
>> traditional Tool Shed package recipes .
>>
>> Conda is a package manager like apt-get, yum, pip, brew or guix. We
>> don’t want to argue about the relative merits of various package
>> managers here, in fact Galaxy supports multiple package managers and we
>> welcome community contributions (such as implementing a Guix package
>> manager or enhancing the existing brew support to bring it on par with
>> Conda).
>>
>> As a community, we have decided that Conda is the one that best fulfills
>> our needs. The following are some of the crucial Conda features that led
>> to this decision:
>>
>> * Installation of packages does not require root privileges
>> (Installation at any location  the Galaxy user has write access to)
>> * Multiple versions of software can be installed in parallel
>> * HPC-ready
>> * Faster and more robust package installations through pre-compiled
>> packages (no build environment complications)
>> * Independent of programming language (R, Perl, Python, Julia, Java,
>> pre-compiled binaries, and more)
>> * Easy to write recipes (1 YAML description file + 1 Bash install script)
>> * An active, large and growing community (with more and more software
>> authors managing their own recipes)
>> * Extensive documentation: Conda documentation
>> (http://conda.pydata.org/docs/building/build.html) and Conda quick-start
>> (http://conda.pydata.org/docs/get-started.html)
>>
>> Below we answer some common questions (collected by Lance Parsons):
>>
>> 1. How do I enable Conda dependency resolution for existing Galaxy
>> installations?
>> ---
>>
>> Most Galaxy administrators have not set up a dependency resolvers
>> configuration file (dependency_resolvers_conf.xml) which means they are
>> using Galaxy’s default (dependency_resolvers_conf.xml.sample). Galaxy
>> has enabled Conda dependency resolution by default since release 16.04
>> (if Conda was installed already), so many existing installations can use
>> Conda dependencies. Having Conda enabled in
>> dependency_resolvers_conf.xml means that Galaxy will look for
>> dependencies using the Conda system when it attempts to run tools. If
>> conda_auto_install is True, and a dependency is not found, Galaxy will
>> attempt to install it using the configured Conda channels. A graphical
>> user interface that allows administrators install Conda packages
>> directly from Galaxy when tools are installed from the Tool Shed is
>> available in the 16.07 release of Galaxy.
>>
>>
>> 2. How do Conda dependencies work? Where do things get installed?
>> -
>> In contrast to the old dependency system, which was used exclusively by
>> Galaxy, Conda is a pre-existing, independent project. With Conda it is
>> possible for an admin to install packages without touching Galaxy at all
>> – managing your dependencies independently from Galaxy. Galaxy can
>> handle these depend

Re: [galaxy-dev] Introducing Conda as a new standard for Galaxy tool dependencies

2016-08-28 Thread Léo Biscassi
Nice job! I was really anxious for some documentation about this theme!
Thanks all involved!

On Fri, Aug 26, 2016 at 3:38 PM Björn Grüning 
wrote:

> Hi all,
>
> Galaxy 16.07 was just released:
> https://docs.galaxyproject.org/en/master/releases/16.07_announce.html
> and the IUC has some news to share with you.
>
> For a more readable version please see:
> https://docs.galaxyproject.org/en/master/admin/conda_faq.html
>
> 
>
> Galaxy tools (also called wrappers) traditionally use Tool Shed package
> recipes to install their dependencies. At the tool’s installation time
> the recipe is downloaded and executed in order to provide the underlying
> software executables. Introduction of these Galaxy-specific recipes was
> a necessary step at the time, however nowadays there are other more
> mature and stable options to install software in a similar manner. The
> Galaxy community has taken steps to improve the tool dependency system
> in order to enable new features and expand its reach. This document aims
> to describe these and answer the FAQ.
>
> It is a pleasure to announce the adoption of a new standard for tool
> dependencies in Galaxy which has been integrated over the last six
> months: Conda packages!
> Not only do Conda packages make tool dependencies more reliable and
> stable, they are also easier to test and faster to develop than the
> traditional Tool Shed package recipes .
>
> Conda is a package manager like apt-get, yum, pip, brew or guix. We
> don’t want to argue about the relative merits of various package
> managers here, in fact Galaxy supports multiple package managers and we
> welcome community contributions (such as implementing a Guix package
> manager or enhancing the existing brew support to bring it on par with
> Conda).
>
> As a community, we have decided that Conda is the one that best fulfills
> our needs. The following are some of the crucial Conda features that led
> to this decision:
>
> * Installation of packages does not require root privileges
> (Installation at any location  the Galaxy user has write access to)
> * Multiple versions of software can be installed in parallel
> * HPC-ready
> * Faster and more robust package installations through pre-compiled
> packages (no build environment complications)
> * Independent of programming language (R, Perl, Python, Julia, Java,
> pre-compiled binaries, and more)
> * Easy to write recipes (1 YAML description file + 1 Bash install script)
> * An active, large and growing community (with more and more software
> authors managing their own recipes)
> * Extensive documentation: Conda documentation
> (http://conda.pydata.org/docs/building/build.html) and Conda quick-start
> (http://conda.pydata.org/docs/get-started.html)
>
> Below we answer some common questions (collected by Lance Parsons):
>
> 1. How do I enable Conda dependency resolution for existing Galaxy
> installations?
> ---
>
> Most Galaxy administrators have not set up a dependency resolvers
> configuration file (dependency_resolvers_conf.xml) which means they are
> using Galaxy’s default (dependency_resolvers_conf.xml.sample). Galaxy
> has enabled Conda dependency resolution by default since release 16.04
> (if Conda was installed already), so many existing installations can use
> Conda dependencies. Having Conda enabled in
> dependency_resolvers_conf.xml means that Galaxy will look for
> dependencies using the Conda system when it attempts to run tools. If
> conda_auto_install is True, and a dependency is not found, Galaxy will
> attempt to install it using the configured Conda channels. A graphical
> user interface that allows administrators install Conda packages
> directly from Galaxy when tools are installed from the Tool Shed is
> available in the 16.07 release of Galaxy.
>
>
> 2. How do Conda dependencies work? Where do things get installed?
> -
> In contrast to the old dependency system, which was used exclusively by
> Galaxy, Conda is a pre-existing, independent project. With Conda it is
> possible for an admin to install packages without touching Galaxy at all
> – managing your dependencies independently from Galaxy. Galaxy can
> handle these dependencies for you, but admins are not required to use
> Galaxy for dependency management.
>
> There are a few new config options in the galaxy.ini file, but by
> default Galaxy will install Conda (the package manager) and the required
> packages in the /_conda/ directory. In this
> directory, Galaxy will create an envs folder with all of the
> environments managed by Galaxy. Every environment contains a lib, bin,
> share, and include subdirectory, depending on the tool, and is
> sufficient to get a Galaxy tool up and running. Galaxy simply sources
> this folder via Conda and makes everything available before the tool is
> executed on your cluster.
>
> To summarize, there are four ways to manage

[galaxy-dev] Introducing Conda as a new standard for Galaxy tool dependencies

2016-08-26 Thread Björn Grüning
Hi all,

Galaxy 16.07 was just released:
https://docs.galaxyproject.org/en/master/releases/16.07_announce.html
and the IUC has some news to share with you.

For a more readable version please see:
https://docs.galaxyproject.org/en/master/admin/conda_faq.html



Galaxy tools (also called wrappers) traditionally use Tool Shed package
recipes to install their dependencies. At the tool’s installation time
the recipe is downloaded and executed in order to provide the underlying
software executables. Introduction of these Galaxy-specific recipes was
a necessary step at the time, however nowadays there are other more
mature and stable options to install software in a similar manner. The
Galaxy community has taken steps to improve the tool dependency system
in order to enable new features and expand its reach. This document aims
to describe these and answer the FAQ.

It is a pleasure to announce the adoption of a new standard for tool
dependencies in Galaxy which has been integrated over the last six
months: Conda packages!
Not only do Conda packages make tool dependencies more reliable and
stable, they are also easier to test and faster to develop than the
traditional Tool Shed package recipes .

Conda is a package manager like apt-get, yum, pip, brew or guix. We
don’t want to argue about the relative merits of various package
managers here, in fact Galaxy supports multiple package managers and we
welcome community contributions (such as implementing a Guix package
manager or enhancing the existing brew support to bring it on par with
Conda).

As a community, we have decided that Conda is the one that best fulfills
our needs. The following are some of the crucial Conda features that led
to this decision:

* Installation of packages does not require root privileges
(Installation at any location  the Galaxy user has write access to)
* Multiple versions of software can be installed in parallel
* HPC-ready
* Faster and more robust package installations through pre-compiled
packages (no build environment complications)
* Independent of programming language (R, Perl, Python, Julia, Java,
pre-compiled binaries, and more)
* Easy to write recipes (1 YAML description file + 1 Bash install script)
* An active, large and growing community (with more and more software
authors managing their own recipes)
* Extensive documentation: Conda documentation
(http://conda.pydata.org/docs/building/build.html) and Conda quick-start
(http://conda.pydata.org/docs/get-started.html)

Below we answer some common questions (collected by Lance Parsons):

1. How do I enable Conda dependency resolution for existing Galaxy
installations?
---

Most Galaxy administrators have not set up a dependency resolvers
configuration file (dependency_resolvers_conf.xml) which means they are
using Galaxy’s default (dependency_resolvers_conf.xml.sample). Galaxy
has enabled Conda dependency resolution by default since release 16.04
(if Conda was installed already), so many existing installations can use
Conda dependencies. Having Conda enabled in
dependency_resolvers_conf.xml means that Galaxy will look for
dependencies using the Conda system when it attempts to run tools. If
conda_auto_install is True, and a dependency is not found, Galaxy will
attempt to install it using the configured Conda channels. A graphical
user interface that allows administrators install Conda packages
directly from Galaxy when tools are installed from the Tool Shed is
available in the 16.07 release of Galaxy.


2. How do Conda dependencies work? Where do things get installed?
-
In contrast to the old dependency system, which was used exclusively by
Galaxy, Conda is a pre-existing, independent project. With Conda it is
possible for an admin to install packages without touching Galaxy at all
– managing your dependencies independently from Galaxy. Galaxy can
handle these dependencies for you, but admins are not required to use
Galaxy for dependency management.

There are a few new config options in the galaxy.ini file, but by
default Galaxy will install Conda (the package manager) and the required
packages in the /_conda/ directory. In this
directory, Galaxy will create an envs folder with all of the
environments managed by Galaxy. Every environment contains a lib, bin,
share, and include subdirectory, depending on the tool, and is
sufficient to get a Galaxy tool up and running. Galaxy simply sources
this folder via Conda and makes everything available before the tool is
executed on your cluster.

To summarize, there are four ways to manage Conda dependencies for use
with Galaxy. For all of these options, Conda dependency management must
be configured in the dependency_resolvers_conf.xml and the galaxy.ini file.

a) Manual Install - Conda dependencies may be installed by
administrators from the command line. Conda (and thus the conda
environments) should be