All-in-one vs. Conda

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

All-in-one vs. Conda

DS Blank
Devs,

Building a Gramps binary release for Windows and Macs is a real burden, and there are better ways to do releases these days.

One such method is using conda/anaconda. Conda [1] is a cross-platform package management system. It grew out of the desire to be able to have Python-based binaries for different "environments". Anaconda [2] is a complete setup, including conda but also the Python binaries and many other Python packages. An anaconda install allows one to quickly setup (and switch between) different Python versions, and different variations [3].

Anaconda is a free product from a company (Continuum Analytics). But now conda packages are open source [4]. 

Rather than building an AIO package for each new version, we could invest that time and energy into building common packages in conda. For example, I don't think that there are currently a Gtk packages for Windows or Macs. But we could help build those.

Pros to AIO:

* simple for the user: download and run

Cons to AIO:

* requires a complete build, including Python and all libraries
* large installation files
* on some platforms, can't easily switch between Python versions
* we have to do everything ourselves
* hard to integrate with other Python software
* we don't make releases very often

Pros to Anaconda:

* users can upgrade easily: "pip install gramps --upgrade"
* devs can build new pip versions quickly and easily
* users can switch between environments (gramps34, gramps42, gramps50)
* updates to dependencies are handled by system
* upgrades are small: only the parts that change are needed
* even on Linux, we could distribute better Gtk versions than come with distro

Cons to Anaconda:

* for Gtk (and probably other things) we'd need to build binaries, or recipes to build binaries
* users might need to run gramps from a command line (not sure about this)
* users would need to maintain their own environment

There may be other packaging type systems to consider, but this one has been around for a while and appears to be gaining momentum outside of scientific circles. 

If we wanted to consider this, we'd first probably want to explore what it would take to build a Gtk recipe for building binaries, and then try the system to see if it works.

-Doug


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: All-in-one vs. Conda

prculley
Gentlemen;

I know I'm pretty new around here, but I feel I have to chime in here.  This type of idea is great from a sophisticated user/developer point of view.  But i assure you that Aunt Martha would be completely at a loss if you told her to just do a "pip install gramps".  And she has NEVER opened a command line in her life.  Yet she is able to use gramps with a little occasional help.  There are a LOT more people like Aunt Martha, than there are sophisticated users.

Coming from a Windows world, I think most users are used to the idea of downloading a single .exe which does the installation.  Same for most upgrades (unless the program automatically installs an upgrade watcher, or performs its own upgrade at startup).

So unless you want to alienate some of our users, I think you will still have to provide a single file installation method, that does everything else necessary under the covers.

My opinion only
Paul Culley

On Thu, May 5, 2016 at 10:48 AM, Doug Blank <[hidden email]> wrote:
Devs,

Building a Gramps binary release for Windows and Macs is a real burden, and there are better ways to do releases these days.

One such method is using conda/anaconda. Conda [1] is a cross-platform package management system. It grew out of the desire to be able to have Python-based binaries for different "environments". Anaconda [2] is a complete setup, including conda but also the Python binaries and many other Python packages. An anaconda install allows one to quickly setup (and switch between) different Python versions, and different variations [3].

Anaconda is a free product from a company (Continuum Analytics). But now conda packages are open source [4]. 

Rather than building an AIO package for each new version, we could invest that time and energy into building common packages in conda. For example, I don't think that there are currently a Gtk packages for Windows or Macs. But we could help build those.

Pros to AIO:

* simple for the user: download and run

Cons to AIO:

* requires a complete build, including Python and all libraries
* large installation files
* on some platforms, can't easily switch between Python versions
* we have to do everything ourselves
* hard to integrate with other Python software
* we don't make releases very often

Pros to Anaconda:

* users can upgrade easily: "pip install gramps --upgrade"
* devs can build new pip versions quickly and easily
* users can switch between environments (gramps34, gramps42, gramps50)
* updates to dependencies are handled by system
* upgrades are small: only the parts that change are needed
* even on Linux, we could distribute better Gtk versions than come with distro

Cons to Anaconda:

* for Gtk (and probably other things) we'd need to build binaries, or recipes to build binaries
* users might need to run gramps from a command line (not sure about this)
* users would need to maintain their own environment

There may be other packaging type systems to consider, but this one has been around for a while and appears to be gaining momentum outside of scientific circles. 

If we wanted to consider this, we'd first probably want to explore what it would take to build a Gtk recipe for building binaries, and then try the system to see if it works.

-Doug


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel



------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: All-in-one vs. Conda

DS Blank
On Thu, May 5, 2016 at 12:32 PM, Paul Culley <[hidden email]> wrote:
Gentlemen;

I know I'm pretty new around here, but I feel I have to chime in here.  This type of idea is great from a sophisticated user/developer point of view.  But i assure you that Aunt Martha would be completely at a loss if you told her to just do a "pip install gramps".  And she has NEVER opened a command line in her life.  Yet she is able to use gramps with a little occasional help.  There are a LOT more people like Aunt Martha, than there are sophisticated users.

Hi Paul,

It doesn't matter how new you are: a valid point is a valid point. And you have a valid point. (BTW, I don't really like the term "Aunt Martha"... let's just say users. "Uncle Martin" also needs some help. And we do have female developers/lurkers as well.)

Your point about ease of use could be handled in a slightly different way. For example, we could make some simple little programs to help manage installation, start-up, and updates. So, let's not throw the whole idea out just yet, but see if we can handle each issue separately.
 

Coming from a Windows world, I think most users are used to the idea of downloading a single .exe which does the installation.  Same for most upgrades (unless the program automatically installs an upgrade watcher, or performs its own upgrade at startup).

That is an idea. Gramps could internally check to see if there is an upgrade. pip is a python package, for example. That would be even better than AIO for the users, because it will tell you when there is a new version available.
 

So unless you want to alienate some of our users, I think you will still have to provide a single file installation method, that does everything else necessary under the covers.

We do not want to alienate users (or developers for that matter). But if we could keep it easy to use, and better (more releases, more often, less work) then we should explore that.
 

My opinion only
Paul Culley

No need to qualify... these are all only opinions and ideas! Hopefully worth discussing. Thanks for the feedback.

-Doug
 

On Thu, May 5, 2016 at 10:48 AM, Doug Blank <[hidden email]> wrote:
Devs,

Building a Gramps binary release for Windows and Macs is a real burden, and there are better ways to do releases these days.

One such method is using conda/anaconda. Conda [1] is a cross-platform package management system. It grew out of the desire to be able to have Python-based binaries for different "environments". Anaconda [2] is a complete setup, including conda but also the Python binaries and many other Python packages. An anaconda install allows one to quickly setup (and switch between) different Python versions, and different variations [3].

Anaconda is a free product from a company (Continuum Analytics). But now conda packages are open source [4]. 

Rather than building an AIO package for each new version, we could invest that time and energy into building common packages in conda. For example, I don't think that there are currently a Gtk packages for Windows or Macs. But we could help build those.

Pros to AIO:

* simple for the user: download and run

Cons to AIO:

* requires a complete build, including Python and all libraries
* large installation files
* on some platforms, can't easily switch between Python versions
* we have to do everything ourselves
* hard to integrate with other Python software
* we don't make releases very often

Pros to Anaconda:

* users can upgrade easily: "pip install gramps --upgrade"
* devs can build new pip versions quickly and easily
* users can switch between environments (gramps34, gramps42, gramps50)
* updates to dependencies are handled by system
* upgrades are small: only the parts that change are needed
* even on Linux, we could distribute better Gtk versions than come with distro

Cons to Anaconda:

* for Gtk (and probably other things) we'd need to build binaries, or recipes to build binaries
* users might need to run gramps from a command line (not sure about this)
* users would need to maintain their own environment

There may be other packaging type systems to consider, but this one has been around for a while and appears to be gaining momentum outside of scientific circles. 

If we wanted to consider this, we'd first probably want to explore what it would take to build a Gtk recipe for building binaries, and then try the system to see if it works.

-Doug


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel




------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: All-in-one vs. Conda

Josip
In reply to this post by DS Blank
5.5.2016. u 17:48, Doug Blank je napisao/la:

> Devs,
>
> Building a Gramps binary release for Windows and Macs is a real burden, and
> there are better ways to do releases these days.
>
> One such method is using conda/anaconda. Conda [1] is a cross-platform
> package management system. It grew out of the desire to be able to have
> Python-based binaries for different "environments". Anaconda [2] is a
> complete setup, including conda but also the Python binaries and many other
> Python packages. An anaconda install allows one to quickly setup (and
> switch between) different Python versions, and different variations [3].
>

Suggesting packagers to change their package manager is like suggesting
programmers to change the programming language they use ;-)

> Anaconda is a free product from a company (Continuum Analytics). But now
> conda packages are open source [4].
>
> Rather than building an AIO package for each new version, we could invest
> that time and energy into building common packages in conda. For example, I
> don't think that there are currently a Gtk packages for Windows or Macs.
> But we could help build those.
>
> Pros to AIO:
>
> * simple for the user: download and run
>

That is the reason why they are made in first place

> Cons to AIO:
>
> * requires a complete build, including Python and all libraries

No they only build Gramps and installation program which bundled
prebuilt libraries with them.

> * large installation files

True, but size and count of installed files is more important (and it is
HUGE)

> * on some platforms, can't easily switch between Python versions

On some platform Python is made that way to prevent easily switch
between Python versions, because of that aio use own one.

> * we have to do everything ourselves

"we could help build those" if those is nonexistent actually means "we
have to do everything ourselves"

> * hard to integrate with other Python software

whatever that means ...
aio purpose is to avoid use/necessity of any other software

> * we don't make releases very often

and when do don't care much for OS-es which uses aio
on the other hand releases of aio suffer from shortage of packagers

>
> Pros to Anaconda:
>
> * users can upgrade easily: "pip install gramps --upgrade"
> * devs can build new pip versions quickly and easily
> * users can switch between environments (gramps34, gramps42, gramps50)
> * updates to dependencies are handled by system
> * upgrades are small: only the parts that change are needed
> * even on Linux, we could distribute better Gtk versions than come with
> distro
>
> Cons to Anaconda:
>
> * for Gtk (and probably other things) we'd need to build binaries, or
> recipes to build binaries
> * users might need to run gramps from a command line (not sure about this)
> * users would need to maintain their own environment
>
> There may be other packaging type systems to consider, but this one has
> been around for a while and appears to be gaining momentum outside of
> scientific circles.
>
> If we wanted to consider this, we'd first probably want to explore what it
> would take to build a Gtk recipe for building binaries, and then try the
> system to see if it works.
>
> -Doug
>







--
Josip

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel