How to stay compliant with GPL when forking on Github

githubgpllicensing

I've recently forked a project on Github and made some modifications to it, pushed them back to the forked repository and asked the original developer to pull the changes. (I gather this is the preferred way of contributing on Github.) The project is licensed under GPLv3.

I am the author and the copyright holder of the changes I've made to the code. I am also allowed to publish the modified code (i.e. the combination of the original code and my changes — which I've done by pushing the changes into my fork) as long as I comply with the license the original author set up.

Now, I came across the following requirement in GPL.

The work must carry prominent notices stating that you modified it, and giving a relevant date.

It seems that some work beyond actual coding is required before I'm legally allowed to push my changes to Github. What does this work entail? How do I comply with the above requirement? (Do I add additional copyright notices to the modified source files? Do I create Contributors file and add myself to it? Or is the fact that the commits indicate my ownership sufficient?) Are there any additional pitfalls when forking a project protected by GPL?

Best Answer

This line is meant to pertain to derivative works which are maintained and shipped separately from the master. In such a case, you would need to keep these records (which is done automatically by source control)

What you have done however is not a derivative work. You have committed your changes and have been pulled back to the main branch. Your changes are now part of the original project.

Furthermore, using source control (a public repository) means you will always be complying with this requirement.

There is the issue of how each person may define "prominent". To developers, source control(/+issue tracker) is a prominent way of viewing changes, however if you are maintaining a derivative work, you may want to maintain a list of substantial changes in a non-technical format.