I'm browsing for a small change made to a template, and I'm navigating through a bunch of NFC changes like 2a73d3b0 and 6b83d5bd. (Clicking on those commits may even WSoD Gitlab, so here's 2a73d3b on Github.)
Credit to those doing the busywork, but those changes contribute little to the software while adding noise to the commit history of every file in CiviCRM.
The commit messages are fairly inconsistent over time, so someone browsing history can't be 100% sure that any given commit is safe to ignore.
I say it's time to stop changing hundreds of^W^W thousands of (?!) files over and over just to update the copyright & CiviCRM version.
Let's make one final commit and remove them all, removing those comments in favour of references to licensing via COPYRIGHT.md (copyright year and owner), LICENSE.md (contents of the AGPL), and https://civicrm.org/licensing instead.
No shortage of other projects demonstrating this - I don't think it's legally contentious based on the number of projects using that approach.
Edited
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
Activity
Sort or filter
Newest first
Oldest first
Show all activity
Show comments only
Show history only
xurizaemonchanged title from Remove copyright & years from all code, except LICENSE.txt etc to Remove copyright & years from all code, except LICENSE.md etc
changed title from Remove copyright & years from all code, except LICENSE.txt etc to Remove copyright & years from all code, except LICENSE.md etc
If there is a legal issue, an alternative to completely removing would be to replace them with tokens that get replaced by the tarball creation process.
(repeating reply from chat.civicrm.org for the issue)
If there is a legal issue, an alternative to completely removing would be to replace them with tokens that get replaced by the tarball creation process.
This suggestion has potential - it would at least allow for the return of specific version strings, which can be easier to work with if a project has copied a file into an override without decent documentation process. OTOH I'm not sure that's always helpful, ex below.
The use case here (for me, anyway) was when you have to update a patched file, and don't know which version of CiviCRM it came from to identify what was changed. But even then, I'd say git history is a more reliable tool, and replacing tokens at distribution time would mean that NO copied files match the git SHA of the file from that point in time, which is a net loss. (Now, you have a lot of noise if you try to diff your retrieved tarball against upstream core, for example, and you can't do the below as effectively.)
I've had to face that "when the heck did this get copied" problem before - and ended up using git SHAsums to find the "least different" file because a patched file had "relevant" code updated while the original "CiviCRM v1.2.3" comment is left as insignificant and becomes even more misleading.
All of this is to deal with poor developer process / documentation, which IMO is not a use case that compels CiviCRM to spray magic strings or tokens throughout the codebase - less is more, etc.
I'm personally on simplifying to reduce git-noise.
The full origins of the current blurb aren't clear. It must be based in some legal theory... I don't know what the theory is, but it seems like the matter isn't really well settled -- e.g. let's spot-check some files from projects which ought to have their shit together:
Angular - Copyright claim with brief license-reference (URL) but no version or year
Apache HTTPD - Copyright claim with verbose license-reference (but no version or year)
emacs - Copyright claim with verbose license-reference as well as year
Linux - Copyright claim with years. License-references are a bit thin. (Actually, there's a lot of variety on file-by-file basis...)
React - Copyright claim with brief license-reference (filename) but no version or year
To my eye, a majority of projects do provide a some copyright statement at the top of typical source-code files, and I think that serves a good communications purpose (e.g. reminding folks about the copyright/license regime, regardless of the journey that's led them to editing the file), but the use of version#s and years is variable, and the license references take different forms (license-name vs attached file vs URL vs SPDX-code vs full-text). IANAL, but I think a trimmed version like this would have good precedent (Angular/Google and React/Facebook), would reduce git-noise, and wouldn't make a major substantive change:
+--------------------------------------------------------------------+ | Copyright CiviCRM LLC. All rights reserved. | | | | Use of this source code is governed by the AGPL license with | | some permitted exceptions. For full license and copyright | | information, see https://civicrm.org/licensing | +--------------------------------------------------------------------+
NOTE: It'd be good to also get a //comment from @colemanw@josh on this change.
This seems like a softball question for the folks at Software Freedom Law Center, Software Freedom Conservance, or the Free Software Foundation. I pinged Steven Mahood on chat.c.o to get the FSF take.
Thanks @xurizaemon for raising this for discussion.
Everyone on the Agileware team votes for reducing git-noise to signal ratio. Thumbs-up to removing the boilerplate text which appears at the top of all files.