views:

33

answers:

1

I'm wondering what is the culturally-acceptable way to handle this code situation. I have a personal project that is MIT licensed. I've run into a situation where I need a certain functionality that another MIT licensed project contains the framework for. I have had to modify the original code substantially, tripling the LOC. These are mostly Java classes.

Since I've added so much to the original base & fixed several bugs, I'm really only reusing the underlying framework of objects and basic variables. The java package has the other developer's name in it and each of the files has a license statement with his name.

I know that the license will need to remain in the files, but what about attribution for my very large modifications? Am I limited to only adding in a second note into the license with my name, date and what I contributed, or is there some point at which the new code is so unrecognizable from the original that it's ok to just declare it part of my package now, rename the package and integrate it fully into my project with a note in the readme of where seed code came from?

Since it's been modified so much, I can't use the old jar file as an ext for my project. I could fork the code entirely and add my changes to the fork, with some attribution for me.

What's the right way to handle this?

+2  A: 

For that degree of change I think it is very legitimate to rename the packages of that part of your project and just make it a part of your project. The changes are too intensive to say that is an extension. Of course crediting the original author on your project page is only polite (if not required by the license).

It would be even nicer (if possible) to contribute your bug fixes back to the original project, or at least report the bugs with what it would take to fix them in the old code base if they were not known issues.

Yishai
Thanks. I agree, the bug fixes are something I should try to get pushed into the original. Do you think that I should make a new fork altogether (and if so, would it be ok to rename the package in the fork), or just rename the package and include the class files directly in my main project?
deet
@deet, I would only fork if you intend to maintain it separately (or if it has real value a separate project), if not I would maintain it as part of your project. Regarding renaming the package in a fork, I think that is very important. Even if there is no trademark issue in the package name, a fork should have a completely new name.
Yishai
@Yishai If I was to rename the package, either in a fork or not, how should I maintain attribution for the original code? The license text is originally placed in each java file. Could I extract that out into a LICENSE file or the README in the project root, would that suffice?
deet
I would think that the copyright should stay on the source file itself (as you are likely to add other files to the same or similar locations) but I'm not sure.
Yishai