Sunday, 2 October 2011

new pmi

What should I do with the optimised PMI module? (I mean what would be the best place to put it?)

8 comments:

  1. Usually I would say: nothing. You'd put the standard pmi tar.gz in external/, and you'd put your diff in there also, and have the Makefile apply it during the build.

    However, PMI is rarely available (e.g. there are no Ubuntu packages), and it's Python only, and is actually only one file (right? I was looking at https://github.com/olenz/pmi). So, I think it should go into topo/misc/.

    We do need a record of your changes to pmi, though. Just to remind me of the changes you made, can you post a diff/point me to the diff in your github repository?

    Before doing anything, better wait to see what Jim says. Jim: PMI's license is GPL.

    Thanks!
    Chris

    ReplyDelete
  2. Whew! What a hornets' nest.

    I'm not sure exactly how to read the GPL for this case, but it's certainly skirting close to something prohibited:

    http://www.gnu.org/licenses/gpl-faq.html

    Basically, we are free to modify PMI, and free to distribute that standalone, but one interpretation of the GPL is that if we modify it and distribute it together with our code, then our code can only be released under the GPL. Because we need to support BSD as well, we certainly wouldn't want to have that restriction. On the other hand, I'm not sure that what we'd be doing would be to incorporate PMI into Topographica, but really just to make the required changes, and then distribute it *with* Topographica, as opposed to being a part of topographica, because it's otherwise not readily available. We might want to put a note to that effect in the file if we put it into topo.misc.

    What *I* think you ought to do is to send your changes to the author of PMI, assuming they are general and would be useful to other people, in the hopes that eventually he might accept the changes and we could then be distributing a non-modified version. If your changes are not general, then we need to change the name of the file to make it clear that it's not PMI as the author released it, but something hacked for our specific purposes.

    In either case the most defensible way to release a modified version would be as a separate download (separate .deb/.rpm package, etc.), but that sure seems like a pain to me. I'm inclined to just put it into topo.misc with the above statement (that it's included in topo/ just for convenience for our users, not as part of Topographica), and worry about it later if anyone has an objection for some reason (which they surely wouldn't, as we'd be clearly labeling it as modified for a specific purpose, why we did so, and so on).

    Yuck!

    ReplyDelete
  3. Presumably the changes you've made are a worthwhile improvement to PMI? Let's make sure your changes are tidy and clear, then send them to the author of PMI to consider. PMI's on github so you could clone and then make a pull request, right?

    What about also asking the author to consider releasing PMI under the BSD (or similar) license? If the author already gave serious thought and picked GPL, then that's fine, but maybe it was just GPL by default. The whole of the SciPy suite (including mpi4py) and many of the surrounding packages are BSD. (Topographica was originally GPL, but later switched to BSD.)

    Chris

    ReplyDelete
  4. Asking him to release as BSD would be very reasonable; GPL is probably just the default for him.

    ReplyDelete
  5. Hi. Sorry for late reply, I was away on the weekend. I have just sent Olaf an email asking either to include my changes or change the PMI license if he doesn't mind (or suggest something else). I've put it into topo/misc for now

    ReplyDelete
  6. Hi!
    Sorry for being late to participate, but I'm pretty busy with organization of a tutorial right now.

    I will review your changes and most probably overtake it into the "main" PMI, no problem.

    As for releasing PMI under the BSD license, I have to check first whether I'm really the only author of PMI, or whether some of the other people from my project has done anything. Otherwise I will do it, no problem.

    Olaf

    ReplyDelete
  7. Ok, I checked, no problem. I have just send an BSD-licensed PMI.

    ReplyDelete
  8. Hi Olaf, once again thank you very much!

    ReplyDelete