gnu-octave / octave-doctest

Doctests for Octave/Matlab
https://gnu-octave.github.io/packages/doctest/
BSD 3-Clause "New" or "Revised" License
16 stars 4 forks source link

OctaveForge package design #29

Closed cbm755 closed 9 years ago

cbm755 commented 9 years ago

@catch22 Let's (eventually) pick one of these.

Also:

catch22 commented 9 years ago

I would be happy for us to be an Octave package. (I understand that for Matlab users, the only change required is to add the inst/ subdirectory to the PATH.) Do you want to go ahead and reorganize the repository in an appropriate way?

I added travis-ci integration earlier this morning; it would be great if you could adjust the make test command appropriately.

catch22 commented 9 years ago

I believe the license is the 3-clause BSD license. My understanding is that we are free to modify the sources, rename the software (e.g. we might rename the repository to doctest-for-octave), and distribute the result as long as we make sure to preserve the original copyright and license statements. However, IANAL :smiley:

cbm755 commented 9 years ago

I agree that it is 3-clause BSD. But also IANAL.

But that would be a fork for sure.

Names: "octave-doctest" or perhaps try to avoid both octave and matlab: "doctestm", "doctestem", "Doc Test'em" -- ala Duke Nukem :)

catch22 commented 9 years ago

I like these names ;)

I recall that you had contacted Thomas Smith a little while ago. Did he get back to you at all?

cbm755 commented 9 years ago

I wrote to him on some contact form on BitBucket. But maybe that just goes to /dev/null.

I notice he has a github account: so ping @tgs

Here's my message:

Hi Thomas,

Thanks for this code. Are you still interested in maintaining it?

I've been making a few changes to better-support Octave. Currently, we have two octave forge packages using this for testing, with a rough idea to have the full Octave core using doctests eventually.

I've also been fixed bugs that are true on Matlab as well.

I've been organizing this around catch22's github clone but could organize it elsewhere (i.e., your bitbucket).

thanks again,

Colin
cbm755 commented 9 years ago

@catch22 and I'm sorry that should have said "we have been organizing".

catch22 commented 9 years ago

It would be great if he's onboard with our changes!

oheim commented 9 years ago

It is very important to have this as an Octave Forge package. To have an installable and loadable package is necessary if documenation checking shall be available to more than one developer in an easy way (which is a prerequisite for using it).

Otherwise everybody would have to download it manually and we have to mess with load paths in everybody's workspace.

catch22 commented 9 years ago

@oheim This discussion was purely about the organization of the repository (and not about whether doctest should be available on OctaveForge). However, we agreed on organizing the repository in the "standard" OctaveForge way.

oheim commented 9 years ago

@catch22 Okay, I just wanted to leave that comment somewhere ;-)

IMHO you have to choose a new name (clause 3), must not name T. Smith as the package author (clause 3) and keep the copying conditions (clause 1) as well as the copyright statements of course.

However, you may use GPL for new function files in the package, because the license is compatible with GPL.

catch22 commented 9 years ago

@oheim Thanks, that was very helpful. So unless @tgs endorses this modified version, is the following procedure correct?

  1. Rename the project to something different than doctest-for-matlab before we distribute it on octaveforge (as to not violate clause 3).
  2. Keep the current content of COPYING and possibly add a copyright statement next to the existing one.
  3. Remove all attributions to @tgs from doctest.m (as this would violate clause 3).

(I want to keep the license as BSD.)

oheim commented 9 years ago
  1. Good. Please choose a simple name like “doctest”. That benefits installation and usage.
  2. That's complicated in general, but if you plan to keep everything under the same license, you can (and should) just add copyright statements there.
  3. Clause 3 says that you shall not advertise @tgs as the package creator anymore. That is, you shall not name @tgs in the DESCRIPTION file for example. It is okay to give attribution.

I am not familiar with the BSD-style licenses, but it's probably not needed to have a separate CONTRIBUTORS file when you have copyright statements from all contributors in COPYING.

cbm755 commented 9 years ago

But if the name is simple ("doctest") then I don't think we can realistically claim this in the license:

Neither the name of Doctest nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

E.g., given that doctest is already used in Python community.

I wonder if its still "modified BSD" if you just put:

The names of the contributors may not be
used to endorse or promote products derived from this software without specific
prior written permission.

I dislike license proliferation so probably bad idea to be rolling our own.

cbm755 commented 9 years ago

See PR #36 for some copyright updates.

oheim commented 9 years ago

With the simple name the product name stuff should be removed from the license. Then it will be an exact ModifiedBSD.

cbm755 commented 9 years ago

I don't really understand Octave pkg naming. Because things often have generic names like "image" or "interval", which is good within Octave. But then outside, should they be called the "Octave-Forge Image package"... @oheim opinion?

oheim commented 9 years ago

It's a local name within the octave forge namespace. For example Debian packages will then carry the name octave-packagename. And in any kind of documentation you have to say “Octave Forge name package” to make clear what you mean. I personally like the simple names as long as the name matches the content.

However, you should probably ask Carnë about the actual backgrounds and conventions.

cbm755 commented 9 years ago

Thanks @oheim. @catch22 so how about:

  1. rename github project to: catch22/octave-doctest
  2. package name: "doctest". e.g., in DESCRIPTION file, so users do "pkg install -forge doctest". Simple.
  3. clone on sourceforge.net gets called "doctest" (git.code.sf.net/p/octave/doctest)
  4. in longer form (i.e., README.md) we refer to it as "the Octave-Forge Doctest package".
  5. Matlab package is just called "doctest" (e.g., doctest-0.3.0.zip).

Does that sound reasonable? We can also run it by Carnë when I ask him to setup the sourceforge stuff.

oheim commented 9 years ago

Sounds all good to me.

cbm755 commented 9 years ago

(I want to keep the license as BSD.)

For the record, I prefer GPLv3+ but am happy enough with Modified BSD.

tgs commented 9 years ago

Hi! I'm terribly excited that you folks are making an Octave version! I don't use Matlab or Octave at work any more, so I don't want to be in charge of anything. Fork with all my blessings!

@psexton has an active fork of this plus Matlab-xunit going, I think he's been mostly focused on making it work with non-ancient versions of Matlab, and fixing bugs. That system uses classdef, so maybe it still doesn't work in Octave?

My interpretation of that part of the license is simply that you can't advertise your version as "Thomas Smith's Doctests for Matlab!" That said, I would be happy to give you another license, eg 2-clause BSD. Let me know.

cbm755 commented 9 years ago

Thanks @tgs. I was not aware of the other fork, thanks for that.

I don't think another license from you is needed, but appreciate the offer.

cbm755 commented 9 years ago

@catch22 So do you think we should rename the github project to "octave-doctest"? We should do so before an 0.3.0 release...

Upstream Octave has preference for mercurial so you might consider switching to that. (I have no strong opinion either way).

catch22 commented 9 years ago

@tgs Thanks for the kind reply!

@cbm755 That sounds good to me. Should I just go ahead and rename the repository?

cbm755 commented 9 years ago

Should I just go ahead and rename the repository?

Sure! There may be some fallout but I think it mostly effects @oheim and I: we'll deal with it.

catch22 commented 9 years ago

Done; travis-ci is running again & I've fixed some links. Feel free to close this issue as you deem appropriate.

cbm755 commented 9 years ago

Thanks!