IGITUGraz / spore-nest-module

Synaptic Plasticity with Online Reinforcement learning
https://igitugraz.github.io/spore-nest-module/
GNU General Public License v2.0
25 stars 11 forks source link

SPORE v2.10.0 License/Readme #6

Closed mhoff closed 7 years ago

mhoff commented 7 years ago
mhoff commented 7 years ago

Replace README by simple link to README in master branch

kappeld commented 7 years ago

At a minimum we should make sure that the LICENSE file is present at the head of every active branch. In addition I would suggest to add the license header to all .cpp and .h files. The rest is unit tests and the Build environment which are not very interesting anyway. Still we should encourage everyone to move to the NEST 2.12 version now that it is ready. Is there currently any user we know of that uses this branch?

@mhoff do you have time to do this? I could otherwise do it some day next week.

Also I noticed that the license header is missing in some files of the pattern matching example in master. Was that intended?

mhoff commented 7 years ago

At a minimum we should make sure that the LICENSE file is present at the head of every active branch. In addition I would suggest to add the license header to all .cpp and .h files. The rest is unit tests and the Build environment which are not very interesting anyway. Still we should encourage everyone to move to the NEST 2.12 version now that it is ready.

I agree.

Is there currently any user we know of that uses this branch?

I can ask the KIT guys. It's been a while since I heard from the students there.

@mhoff do you have time to do this? I could otherwise do it some day next week.

Sure I can do this. I assume that I can use any existing license header on the master branch as template, right?

Also I noticed that the license header is missing in some files of the pattern matching example in master. Was that intended?

Could it be that they are missing for all files, except for config.py? I can also add the headers to those files..

kappeld commented 7 years ago

All license headers in master should now (hopefully) be the same. Importantly, they should include the copyright statement (which they did not in some earlier commit). Don't bother about the author/date information that is given in some files. You can just replace this by the header or put the header before, i.e. a script that just pasts a fixed header without the author/data at the beginning of every .h and .cpp file should work and is fine with me. You could run then the same script also for the .py files in the example code of master.

mhoff commented 7 years ago

But: git shortlog -s python/config.py | cut -f1 --complement | rev | cut -f1 -d " " | rev | sed 's/Anand/Subramoney/' | sort | tr '\n' ',' | sed 's/,$/\n/' ;)

kappeld commented 7 years ago

If you write a fancy script that does this in a nice way ( and - I know you - you will ;) ) you could place that script in the utils/ folder.

mhoff commented 7 years ago

No, actually I thought about it a second time and I think you are right. The author/date information is of no use for anyone and if one really wanted to retrieve the information we have the git log.

mhoff commented 7 years ago
/*
 * This file is part of SPORE.
 *
 * Copyright (c) 2016, Institute for Theoretical Computer Science,
 * Graz University of Technology
 *
 * SPORE is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * SPORE is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with SPORE.  If not, see <http://www.gnu.org/licenses/>.
 *
 * For more information see: https://github.com/IGITUGraz/spore-nest-module
 *
 * File:   $FILE_NAME
 * Author: Kappel [REMOVE LINE]
 * [REMOVE LINE]
 * Created on November 9, 2016, 2:26 PM [REMOVE LINE]
 */

Like this for every file?

kappeld commented 7 years ago

Yes, ok in principle. Are you planning to revise all files in master? Note that some files include additional information if they are based on a file from NEST. I think we should keep that for transparency.

mhoff commented 7 years ago

Yes, ok in principle. Are you planning to revise all files in master?

No, only files which do not have a header yet. I think I will make sure that all essential files in master have license headers and for the other branches I will simply copy those headers from master. I suppose that makes the most sense.

Note that some files include additional information if they are based on a file from NEST. I think we should keep that for transparency.

The above procedure should take care of this, yes.

mhoff commented 7 years ago

By the way. The python code is not exactly under the copyright of SPORE likewise TU Graz, right? I mean I produced the code being here and it is also a part of my thesis. Plus snn_utils is actually a public repository. How to handle this one?

mhoff commented 7 years ago

Further, the python file format is more structured when it comes to copyright: http://stackoverflow.com/a/1523456/6525140

kappeld commented 7 years ago

This is the reason why I initially asked "Was that intended?" ;-)

I think since everything here is open source we don't really have a problem. I think the common solution is that you don't put a copyright header into files that are not originally part of the project but taken from some other open source. E.g. in NEST they did this in librandom:

https://github.com/nest/nest-simulator/blob/master/librandom/knuthlfg.h

Whatever solution is preferred by you is fine for me since it is mostly your code. I would also be happy if you would just leave it as it is now.

mhoff commented 7 years ago

For now, I will leave it as it is.

Could you double-check f8755e36c2f1a039e00628c4556a5d3cbddf21ac ?

anandtrex commented 7 years ago

AFAIK, the author retains the copyright to the code written by him/her unless its explicitly handed over to someone else (which is what is done in the case of NEST). Using an open source license doesn't change this, it only sets conditions (or lack thereof) for other people to reuse the code.

So it might be better not to have it, or say copyright assigned to the authors (and list the authors in an AUTHORS file). It definitely doesn't belong to TU Graz or IGI (unless the contract says otherwise).

kappeld commented 7 years ago

Looks good to me. Thank you! I think we can leave the NEST 2.10 branch now as it is. Should we close the issue?

mhoff commented 7 years ago

@anandtrex You refer to my code (only), right? @kappeld We still have to decide about the README.

anandtrex commented 7 years ago

@mhoff No, I was referring to all the code. So this line in the files: "Copyright (c) 2016, Institute for Theoretical Computer Science, Graz University of Technology" is not so meaningful.

kappeld commented 7 years ago

My reason to add this line was this statement in the GPL 2.0:

[...]
To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
[...]

My understanding of this, is that this line should be there for the some legal huppy fluppy. Since in our case is not so clear who the authors are, @mhoff and I decided to assign the copyright to the institution under which the code was developed.

anandtrex commented 7 years ago

Yeah but the solution here would be to create an AUTHORS file and put the list of authors there. And you could say something like "Copyright SPORE team" (example from PyNN). Because saying the institution owns the copyright is not actually true

kappeld commented 7 years ago

Why not? You should read your contract ;-)

kappeld commented 7 years ago

No, I was just kidding. I agree the solution with an AUTHORS file would be more consistent, also with regard of people outside the institute contributing (as we see in the case of @mhoff). I will update the copyright statement accordingly in master and the NEST 2.10 branch.

kappeld commented 7 years ago

@mhoff @anandtrex Could you check https://github.com/IGITUGraz/spore-nest-module/commit/deeb8415d70fb3a73c724e8fb06bd4c2d5bb1d73

If you are fine with this solution I would make the same changes in the NEST 2.10 branch.

mhoff commented 7 years ago

Latest: 6b711e128c30599c5a07cdf657376c5f352141be @anandtrex /agree?

kappeld commented 7 years ago

I assumed now that @anandtrex silently agrees and made the changes to the NEST 2.10 branch, since these changes were suggested by him anyway. I also updated the README such that it points to the master branch for a recent version of SPORE. Thanks for all the the help and feedback!

This should be it then, we can finally close this annoying issue and do some more important things :-) Or are there further objections?

mhoff commented 7 years ago

Agreed.