There's a RFID Reader library for Arduino that I wish to adapt to another reader model. But since the original library not only has the same name of the reader it supports, the reader model name is all over the place, therefore my adaptation surely won't be merged. That said, should I still click "Fork" on its GitHub page and keep my adaptation linked to the original library, or should I simply make a copy and reference the original author (without the "fork" link)?

In this question, there was a remote possibility that the original repo could merge the changes. This is not the case.

If I fork, Github will always show on my repo "This branch is n commits behind original_author:master", and that's the main disadvantage I can think of.

1 Answer 1


Fork or creating a new repository is a detail, in particular if there is no chance of pull requests. As far as comparing these options goes, forking may ease discovering your repository, while signaling that your repository is not its own thing.

If you do not want updates from the original repository, you probably should not fork.

Also, just because you are taking a lot of code from a particular repository does not mean it has to be a fork. In particular if your project is not meant to be able to replace the original in deployment, I would advise against a fork.

To be clear consider this example:

I have backported/pollyfilled/bridged a lot of .Net features to old version, you could argue my project is an alternative to installing a newer runtime, however I am not making a runtime. As such, I did not fork Mono, but do my own thing. In doing so I did find somethings I could improve in Mono, and then I forked and did a pull request just for those changes. My contributions has since been replaced by Microsoft code. I eventually took code form .Net Core and other projects (all under MIT license).

I suppose that could not be clear at the start of the project. For example, you may decide to fork, but then go on a different path. See: Delete fork dependency of a GitHub repository.


Under what license is the original? I suppose that being in Github you can always re-implement the API – although there is precedent for copyright protecting an API – remember that open source and free software are not the same. For example, if the original repository is under a shared source license (meaning one that allows you to see the source but not make modifications) then do not fork.

  • FWIW, shared source as you are defining it is neither free software nor open source. Sep 26, 2019 at 7:09
  • Thank you, that's what I was looking for. The original library has a GPL-3.0 license, so it's okay to do what I want. Sep 26, 2019 at 11:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.