0todd0000 / spm1d

One-Dimensional Statistical Parametric Mapping in Python
GNU General Public License v3.0
63 stars 21 forks source link

Contributing... #33

Closed melund closed 8 years ago

melund commented 8 years ago

Hi Todd

I saw the talk by Jos Vanrenterghem on spm in biomechanics. I was quite impressed, and I believe the tools fills a void in the field.

I was happy when I heard that the tools were implemented in Python, and your code looks impressive although I haven't had the chance to use it for real projects yet.

I have few concerns still, and some that may prevent it from beeing more widely adopted. Firstly, the code is based on legacy python, and I mostly use Python 3. I could probably port the code to a python2/3 compatible code base if you are interested. Secondly, the licence for the code is GPL. This makes it impossible to use in other open source project that doesn't also use GPL. Would you consider changing the license terms to for example LGPL or something more liberal? Most of the current open source scientific Python use BSD, Apache or MIT.

Regards, Morten

0todd0000 commented 8 years ago

Hi Morten,

Thank you very much for your feedback, much appreciated! The code is written using Python 2.7 only because most scientific Python releases still use Python 2.7. Over the next two or three versions we'll begin to introduce 2+3 compatibility as more scientific releases shift to Python 3.

Changing the license is indeed possible but while it's the software is still in preliminary development (before release 1.0) I'd prefer GPL unless there's a good case for a specific non-GPL application. Is your concern regarding the license general or do you have specific application in mind?

Todd

melund commented 8 years ago

Hi Todd

You are right. Many scientific python libraries are still python2. However, I think the big shift have started. I try to use python3 everywhere, and then help as I can to convert the code in the project I use. I can recommend the future package (http://python-future.org/). That makes it very easy switch to a unified python2/3 code base. I have used it on my projects as well. I will try to see if I can get spm1d/rft1d converted to python3 without too big an effort.

I think the license is still an issue if you want people to adopt your library. As I understand, I can't do import spm1d in any of my scripts, jupyter notebooks, and programs without having to add a GPL licence to my stuff also. That is how I interpret GPL at least. LGPL is much more friendly in that way. It is similar to GPL, but people can do import spm1d without beeing forced to change their licences. I think that is also why all the foundational scientific python packages (scipy, numpy, jupyter, matplotlib, pandas, sympy, seaborn, and many more) avoid GPL. Only around 20 of the 385 packages in the Anaconda scientific python distribution use the full GPL.

Here is an excellent blog post on why Python libraries shouldn't use GPL, if they are to gain popularity

Python libraries should not be licensed under the GPL

/Morten

0todd0000 commented 8 years ago

Hi Morten,

The MATLAB versions of spm1d and rft1d have to stay under GPL because they use GPL-licensed code. The Python versions are kept under the same license just to be consistent, but there may indeed be good arguments for changing the Python versions to a different license so we'll definitely consider changing the license for the next major release. If you are interested in using a different license for the current release please let us know.

We'll also definitely consider Python 3 compatibility, so please do let us know if you can find a relatively painless way to make them Python 3 compatible.

Todd

melund commented 8 years ago

Hi Todd

That sounds great. I don't mind if it stays under GPL until the next major release. The license is not a problem as long as I don't share code with anyone.

I will try to see what I can do with the python3 stuff.

/Morten

0todd0000 commented 8 years ago

Hi Morten,

Thanks very much again for your feedback.

Todd