The copyright years have many issues:
- They may be wrong. For example, this can happen when code is moved from one file to a different one without taking over the copyright years. Or it may happen when the wrong years are inserted by a script or developer.
- They are redundant.
git
already tracks the author date for every line of code in every commit. - They are not needed to establish “copyright”, see https://www.linuxfoundation.org/blog/copyright-notices-in-open-source-software-projects/, or https://reuse.software/faq/#years-copyright. Also, anyone who needs them for legal reasons would need to discover the ground truth themselves anyway. For example, with
git blame
, orgit log ...
, or by other means. - They cause pointless churn. See for example commit 306ccd4927a2efe325c8d84be1bdb79edeb29b04, or drive-by contributions bumping them.
- Many modern open source software projects never added them in the first place, or already removed them, see section below.
In theory they can be removed completely. While this should be legally fine, some contributors raised legal uncertainty. So instead, bump each year range one final time to -present
and leave the initial year untouched.
Moreover, a URL redirect is resolved in the second commit.
Finally, the _COPYRIGHT_YEAR
build constant is kept untouched, and still expected to be bumped every year, see for example commit 06dd571534c8ecdf7ade77546fcf3a56b3651f68. In theory it could be bumped to -present
as well, but this change would cause user-visible changes, so discussion should be done in a separate thread.
Examples of removed years in other projects:
- https://github.com/facebook/react/commit/b87aabdfe1b7461e7331abb3601d9e6bb27544bc (Done before accepting external contributions?)
- https://github.com/curl/curl/commit/2bc1d775f510196154283374284f98d3eae03544 (Not legally reviewed?)
- …
Examples of no years in other projects:
- https://github.com/microsoft/terminal/blame/2d66dc44f5abef975bed86af12cb5facb6729a1a/src/renderer/base/FontInfoBase.cpp#L1
- https://github.com/angular/angular/blob/33f35b04ef0f32f25624a6be59f8635675e3e131/packages/compiler/src/chars.ts#L3
- https://github.com/llvm/llvm-project/blame/27b8f54f5174aa4d8ea254a7efefd7110b247c17/clang/lib/Basic/Targets/X86.cpp#L4-L5
- …