Hacker News new | ask | show | jobs
Ask HN: Plagiarism on GitHub – What to do?
12 points by compassios 3629 days ago
Hi everyone,

I've been working on a command line tool for more than 6 months.

A member on Github changed the name of the project, reduced the number of features by removing 3rd-party libraries (all of them are optional in my CLI), and took the entire idea including modularity, plugins and even the mac logo () on the title of the project.

He should have created Pull Requests to contribute to the project instead of modifying the original project and posting it as a separate project in 4 days (vs 6 months that it took to me to organize and create all that code).

100% of the changes he made could have been made through Pull Requests.

If someone wants to take a look and contribute to the original project, this is the URL: https://github.com/guarinogabriel/Mac-CLI

What would you do if this happens with your project?

Please let me know your thoughts.

Thanks!

7 comments

Two answers:

1) You could potentially use a DMCA claim to take down the repo, if there has been a license violation. But:

2) This is not plagiarism. You put the code under a license that says almost-literally "do anything you want with this code", and they did. There is no legal obligation to use pull requests instead of forks.

> What would you do if this happens with your project?

Probably ignore it. If your version is better, people will use it instead. If it isn't, that's life.

His license requires that his credit be retained. If the new project didn't do that (which I'm assuming it didn't), it's both plagiarism and a copyright violation (which aren't the same thing).

If the new project did retain his credit, then, yeah, he's got no legal recourse.

Hi Turing_Machine,

How should the other project retain the original project credit? How should be my project referenced?

The author of the competing project claims to have used no code from Mac-CLI. Why do you feel you deserve anything more than the "inspired by" credit they currently offer in their README file?

Your wording here:

  A member on Github changed the name of the project, reduced the number of features by removing 3rd-party libraries (all of them are optional in my CLI), and took the entire idea including modularity, plugins and even the mac logo () on the title of the project.
Heavily implies the repository was cloned then edited, but it's being claimed that isn't the case. Can you clarify?
Absolutely. I am okay with creating a better tool using Python for example, but the competing project took the entire idea of a bash script on the local folder that implements plugins like my project.

Small details like the colors are the same on the colors script. I was referring to the fact that all those changes could have been done on the original project through Pull Requests, instead of dividing the effort.

>but the competing project took the entire idea of a bash script on the local folder that implements plugins like my project.

Ideas don't belong to anyone, though. And I'm sure you're not the first or only person to come up with "a bash script on the local folder that implements plugins". And unless you've got a patent on that, you've got no right to be upset that someone else does something you did first.

And again, you know, you did open source the code, which implies you want people to use your code and modify it if they wish.

But did they actually fork your project and not provide you credit? Your original comment made it seem as if they did, but now it appears you're just upset that someone else created a similar project to yours, rather than contribute to you.

If that's the case, it's understandable that you would rather they contribute to your project than have their own, but it's not plagiarism on their part. Contributions are a privilege, but forking is a right as far as open source is concerned.

The idea of using a bash script is not original. People have been writing custom bash scripts since about 1989. Why does it matter that the project was written in the same language if the argument is that they've copied your idea?

As for the specific colors, many people use those color choices when designing a CLI.

It's your license, dude. :-) It specifies how credit should be given.

Did they actually use any of your code? The idea doesn't count (unless you filed a patent in a country that recognizes software patents, which I'm guessing you didn't).

If they didn't use any of your code, "inspired by" is probably the best you're going to get (and they really wouldn't have to do that).

Hanlon's razor. [0]

Assume that the person doesn't know how to correctly contribute code to an existing project. Reach out to them and gently let them know that they are welcome to contribute via Pull Requests. Also, be flattered that someone found value in your work. Assume that the other person simply doesn't know any better. If no response, or no change in a small period of time, then DMCA as mentioned in the other comment.

[0] https://en.wikipedia.org/wiki/Hanlon%27s_razor

Hi jonkiddy,

Thanks for your comment. Do you think that I can do something by changing the license on my open source project?

>> Do you think that I can do something by changing the license on my open source project?

You can do something about future forks by changing the license on your project. The existing fork was created under the current license on your project and you can not retroactively change that.

INAL. I'm not sure if there is much you can do. If you open sourced the project in such a way as another party can do what they want, we'll expect them to do whatever they want.
I understand. Thanks for your comment!
I found the supposed plagiarism and I'm not seeing it. From what I can see, it's all original code and while what you made is thoroughly useful and certainly took a lot of work, it's not exactly uncommon. You've created a very comprehensive, plugin-ready, Mac-specific bash config. Yours handles numerous cases, this person wrote their own handling a smaller set of cases that works better for them. Traceur[0] was one of the first major JavaScript transpilers. Does that mean Babel[1] is plagiarism?

[0] https://github.com/google/traceur-compiler

[1] https://babeljs.io/

Thanks for your comment. My concern is that all the changes introduced by the other project could have been done through pull requests.

Also, the other project wouldn't exist if my project wasn't there. One thing is being inspired, another one is creating a separate project that is dividing the community effort in two, instead of focusing in one project.

They could have but would removing those 3rd party libraries be in the best interest of your project? It appears that the other developer merely wanted a trimmed down version of what you have.

As for possibly dividing the community: first, there's always competition. This is especially true in software where anyone with a keyboard and know-how can create a competitor. Second, if you're really concerned about community division, consider what happened with Node.js[0] and io.js[1]. Initially, io.js provided a slimmer and more frequently updated version of the same framework. Then they got together to discuss how they were dividing the community and decided to bring their projects together. Perhaps you should discuss such a merge with the author of the other project.

[0] https://nodejs.org/en/

[1] https://iojs.org/en/

Thanks for your suggestion! Specially for providing the example. I will take a look at that.
You are able to take his code (with credit and license) and incorporate it into yours, just as he can do to you.
You published this under an open source license that allows anyone to fork and modify it as they see fit, as long as they include the license with their fork[0].

If they did so, then all you can (and should) do is stop complaining about other people doing what you gave them explicit permission to do.

The entire point of open source is that the code you write doesn't belong to you, it belongs equally to anyone who wants it.

[0]https://github.com/guarinogabriel/Mac-CLI/blob/master/LICENS...

Thanks for your comment. Taking that license into account, should be there a reference to my project on the other project?
I'm not a lawyer, but it does look like they need to include the original copyright notice with your credit.

Of course, if they do, then there's not much you can do.

Frankly, that's one of the reasons I'm not interested in GNU GPL (at least, yet). I would rather go with BSD License instead.

But really, the benefits that come from open source programming vs. writing proprietary software are just a one-way road: while proprietary software can benefit from ideas found in the open-source world, the open-source community cannot benefit from proprietary software written by big giants like Microsoft or Apple. So the bottom line is, the major purpose of writing open-source software is maintaining the FreedomOfSoftware, not preserving your rights as the programmer.

Now to address your question, I would try to look at it as a "force majeure" to keep maintaining my code and improve it in many ways. Like it or not, you have actually started a competition, and to win that, you have to keep making your code better.

If you're referring to the project which cites yours as "a great source of inspiration", they are materially different. The idea of a shell-script collection for common admin tasks is not unique.

A quick look between the two (if my suspicion is correct) shows the new one being pared down to tasks which are universal to OS X management, whereas yours has things which appear to be useful primarily to you (magento configuration?)

The OP has even opened an issue on that other project's github and discussed it with the author of that other tool. The other author was very polite and explained clearly that it is not plagiarized or ripped from Mac-CLI.
So in summary, from that issue you've referenced, it's a clean code implementation (no code from OP's project) and has different goals and abilities.

In that issue OP opened, they have demanded to be credited at the top of the README.

This seems very unreasonable.

Thanks for the URL!