Question

I am working at translating a github repo, which I do not own, from Python to Java. The logic will remain the same, which is significant, as this is a Neural Network application, but I need to be able to deploy and run this in a more platform agnostic manner, and Python simply doesn't offer that.

My question is this: should I fork the original repo to demonstrate that my work is clearly derivative? There would never be any potential for pull requests or merges, as there will be no code in common between the two projects...

Was it helpful?

Solution

If I were the author of the original project, what I'd appreciate most would be if you'd simply ask me. Drop them a short e-mail explaining how you value their work and that you intend to port it to Java. In particular, ask them whether they have any preferences on the naming of your port. (For example, if the original project was named Foo, you could name your port JFoo to closely relate it to the original or choose an unrelated name if such association is not desired.) Maybe the original authors have a need for a Java port too and would even be willing to cooperate with you. Users of either project will benefit from a link in your respective READMEs to the other project. Maybe the authors even regret their original choice of technology and would continue development on the new project if somebody was providing substantial help in porting the existing code base.

If you do not get an answer within reasonable time or their answer is not cooperative, you haven't lost anything. You can still do whatever their license permits you to do. It would be wise, though, to choose the words carefully when you first approach them so to make it clear that you are not asking for permission but offering collaboration. And keep in mind that it is their good right to have no interest in your port or even be unhappy about it. If you're going to develop your new port without the blessings of the original authors, make sure to pick a distinct name for your new project that doesn't imply any endorsement. Your README should of course explain that your project has roots in the other project but is now developed independently.

OTHER TIPS

The point of forking is that the complete history of the original repository remains available. Since the two repositories are linked, merges or pull requests between them are possible.

When you are porting a project to a different language, you are probably not interested into merging back to the original repo. The change history of the original code seems useless as well. I'd therefore start a new repository, and instead write a README file that links to the original version.

Licensed under: CC-BY-SA with attribution
scroll top