11

I've seen some projects that - with each new year - start to change all files in their source-tree to update the copyright year.

Isn't this just pushing hot air on a level of magnitude? AFAIK:

  • Copyright year is based on relevant changes of a work (also) - not only because of a trivial change of the copyright year in a file-header that is the only change.
  • Changing nearly all files without an actual need brings the code out of order in version control.

I can't help myself but have problems to see why someone wants to do such superfluous stuff, albeit I know some projects are doing this (for example Zend Framework 1 in 2012).

Is there any use in changing the copyright year in each file only because Jan 1st has passed?

hakre
  • 1,165
  • 12
  • 17
  • I don't understand the problem. Its a trivial change even in the largest projects. Although I would agree the copyright should only be updated in files that were actually updated, the reason for that, would be an entirely different then yours. – Ramhound May 17 '13 at 12:19
  • @Ramhound: Probably my problem is I don't see a reason to update the headers only because it's January 1st. So if you know one, I would be more than happy to learn about it. Or did you mean because it's trivial most often folks don't care if it is necessary or not and so because of the trivial nature it's very easy to do mistakes? – hakre May 17 '13 at 12:41
  • You update templates and then do a `Find and Replace` across all files. There are lots of legal reasons you should do it. As for the reason you don't do it for every single file, there are historical considerations, you don't update a file that has not been touched since 2000. – Ramhound May 17 '13 at 12:51
  • 2
    AFAIK from a legal standpoint (alone) you should *not* update the file only because it is January 1st. So I wonder where those "lots of legal reasons" come-from that say it should be done you point to here. Can you name something or is that "lots" just unquantified? – hakre May 17 '13 at 13:46
  • are you talking about code which a company would publish to the outside world here, or are you talking about _all_ code? – PeteH May 17 '13 at 13:48
  • @PeteH: I'm talking about code in its source-form (that is the preferred form of the software to make changes to it). And it is about code you have access to, so published. Inside or outside of a company won't matter, it's a programming question. So could be code inside your own company for example. But can also code that is shared publicly within a repository open to the public. – hakre May 17 '13 at 13:55
  • I think it does matter. I can understand if its code that was released externally. If it is only used internally, what's the point? – PeteH May 17 '13 at 15:35
  • @PeteH: Well, go to your internal codebase, delete these lines (or edit them differently), commit them and when you cause some opposition just tell them: *"What's the point?"* :) - I just wrote, that you can imagine *all* of these cases, of matter is that you're authorative doing that Jan 1st change and you can then answer the question what a reason for you is to do the change. If you do the change and then say: "I do it because I don't care" I guess this qualifies as an answer as well, however, I would then comment on that your actions are not what you tell. – hakre May 17 '13 at 15:39
  • This question appears to be off-topic because it is about legal advice. – jmoreno Feb 12 '14 at 07:13
  • This question is of course very relevant to all programmers because we all deal with this. @hakre is right that from a legal standpoint you should *not* update the headers just because it's jan. 1st. The year is supposed to indicate the date the work was created, so that we can get an idea of when the copyright on it expires. So by artificially updating the copyright you are misrepresenting that information. Not that it matters to the *actual* copyright; the notice does not hold any legal value. It's just a courtesy. – Stijn de Witt Jan 10 '16 at 02:17

2 Answers2

9

"All problems in computer science can be solved by another level of indirection." (quote source)

In one of my past projects, we once got such kind of requirement. It has been solved once and forever by inserting a "copyright placeholder" into source code stored under version control:

    // %%COPYRIGHT PLACEHOLDER%%

Whenever any change in that text was required, for whatever reason, we simply modified copyright template containing actual copyright text in our release scripts, so that published code has gotten that template inserted instead of placeholder.

Easy peasy, and programmers didn't waste their time trying to figure is there any use in changing the copyright.

gnat
  • 21,442
  • 29
  • 112
  • 288
  • 1
    exactly what I was about to post, I'd also add that In some companies I've been able to get away with not putting a date at all, it isn't really needed – jk. May 17 '13 at 11:43
  • @jk. back then my intuition also told me me update isn't needed, there are some good points in that in [related question](http://programmers.stackexchange.com/q/130478/31260). However, since the change turned out so minor and easy to do (actually, with placeholder I even stopped noticing when changes happened), cumbersome diving into tricky legal matters became an issue of idle curiosity, so that I didn't bother to learn more – gnat May 17 '13 at 11:55
  • I think your answer suggest a different expression of the same problem. You just have moved it out of the source-tree (and for that matter there is no copyright header in the source-tree any longer and therefore somewhat out of scope of the question). Also your suggestion does not work with authors claiming credits in their files which is common in programming like the many permissive licenses require it. - I'm *not* saying that the idea alone to move this out of the source-tree couldn't solve some problems ;) but I find it a bit misleading for what I ask for. – hakre May 17 '13 at 12:48
  • 1
    @hakre well you described it as "change all files in... source-tree to **update the copyright year**", that's _exactly_ the issue I had in the project I mention, and placeholder is _exactly_ the solution that solved it for us. Regarding _authors claiming credits..._, that would probably be a **[different question](http://meta.stackexchange.com/questions/43478/exit-strategies-for-chameleon-questions "at Stack Exchange sites, “chameleon questions” are not qute welcome")**, consider posting it separately – gnat May 17 '13 at 13:13
  • So your answer to the question *"Updating Copyright Headers each new Year just because Jan 1st has passed?"* is: *"Yes - but do it by replacing a (generic) placehoder, not just replacing last years year."* ? – hakre May 17 '13 at 13:49
  • @hakre my answer to the question is just as posted: if done right, there's no need for developers to "waste their time trying to figure _is there any use in changing the copyright_". Side note insisting on Y/N kind answer here somehow reminds me of [XY problem](http://meta.stackexchange.com/a/66378/165773 "what's this") – gnat May 17 '13 at 13:59
  • @gnat: My question was not about wasting time, but asking about motivations. You just say: I prefer to not care and presented that as an answer, and I would say: Fair-point, but what is *your* answer if there would be no build script and you would need to decide on Jan 1st whether or not to replace the copyright year. That has nothing to do with X/Y problem, maybe more with X/Y answer. So not really the question how to organize the work, but more how to do good work. And "not caring" is normally not a good answer regardless of the question. – hakre May 17 '13 at 14:18
  • I also have some clarification questions if you don't mind: In your answer you wrote *"such kind of requirement"*. Can you say what the requirement was? Was the requirement to change copyright headers on Jan 1st? Was there a reasoning given with the requirement? – hakre May 17 '13 at 14:29
  • @hakre per my recollection, requirement was to change copyright headers on Jan 1st, as for the reasoning - it was presented to us as vague "legal requirement". At first, we planned to proceed with deeper investigation of the reasoning but as I wrote, once we figured placeholder solution, it became a matter of idle curiosity and we stopped bothering – gnat May 17 '13 at 15:02
  • Well, thanks for sharing your story, others seem to like it as well, however I don't see that it answers the question. The solution in your question is to remove the copyright out of the source-tree. My question is about a source-tree that still contains it. Just as clarification from my end - if you don't mind. And it explicitly asks why. So your answer more or less then is: Because it was presented to us as legal requirement (or similar). And that's not your motivation, that's a requirement you're confronted with by someone you want/need to follow. – hakre May 17 '13 at 15:12
  • This solution is pretty silly (not technically, but from a legal perspective). The copyright year is supposed to indicate the year of creation/revision. Either make sure it's correct for all files, or just leave it off (we can see this in version control anyway) and just put a single notice on the entire product as a whole. – Stijn de Witt Jan 10 '16 at 02:22
  • @StijndeWitt I'd rather trust professional lawyers of big corporation who made this [requirement](http://programmers.stackexchange.com/questions/198485/updating-copyright-headers-each-new-year-just-because-jan-1st-has-passed/198486?noredirect=1#comment385729_198486) for us back then than some stranger at the Internet – gnat Jan 10 '16 at 07:50
  • ...note how this solution avoids messing with copyright matters altogether (frankly that was the whole point of it). Source files simply denote the place where copyright is to be inserted, as for its contents, it is left entirely up to folks who manage project. Last thing I as developer want is waste my time editing my source code to bend to whatever is considered legal at particulat phase of the moon – gnat Jan 10 '16 at 09:20
2

Actually the updating of the headers with copyright information is a form of fraud. You cannot claim that a work you made in 2010 has been made in 2014.

Pieter B
  • 12,867
  • 1
  • 40
  • 65
  • Well actually you can claim, however it's just not giving correct information. But sure what I think you want to say (nit picking mode off), you say a simple matter true point here. – hakre Jan 23 '14 at 09:03
  • It's only fraud if you try and say that a previous "work" has to change as well. If Microsoft were to just recompile Windows 3.11 with even a trivial change, they could re-set the copyright to 2014. (The same thing's done for significant works of fiction, from fantasy novels to even Shakesphere and Sherlock Holmes.) – DougM Feb 12 '14 at 02:28
  • 2
    @DougM in the case of the OP the "trivial change" would be the updating of the copyright header, before any source has changed. Change the copyright date when you actually change a file, not when a new year hits. – Pieter B Feb 12 '14 at 07:40