[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Maintaining copyright notices
From: |
John W. Eaton |
Subject: |
Maintaining copyright notices |
Date: |
Fri, 3 Jan 2020 19:10:50 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
The Octave source files currently contain copyright notices that list
individual contributors. I adopted these file-scope copyright notices
because that is what everyone was doing 30 years ago in the days before
distributed version control systems. But now, with many contributors
and modern version control systems, having these file-scope copyright
notices causes trouble when we update copyright years or refactor code.
Over time, the file-scope copyright notices may become outdated as new
contributions are made or code is moved from one file to another.
Sometimes people contribute significant patches but do not add a line
claiming copyright. Other times, people add a copyright notice for
their contribution but then a later refactoring moves part or all of
their contribution to another file and the notice is not moved with the
code. As a practical matter, moving such notices is difficult --
determining what parts are due to a particular contributor requires a
time-consuming search through the project history. Even managing the
yearly update of copyright years is problematic. We have some
contributors who are no longer living. Should we update the copyright
dates for their contributions when we release new versions? Probably
not, but we do still want to claim copyright for the project as a whole.
To minimize the difficulty of maintaining the copyright notices, I would
like to change Octave's sources to use what is described here
https://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html
in the section "Maintaining centralized copyright notices":
The centralized notice approach consolidates all copyright
notices in a single location, usually a top-level file.
This file should contain all of the copyright notices
provided project contributors, unless the contribution was
clearly insignificant. It may also credit—without a copyright
notice—anyone who helped with the project but did not
contribute code or other copyrighted material.
This approach captures less information about contributions
within individual files, recognizing that the DVCS is better
equipped to record those details. As we mentioned before, it
does have one disadvantage as compared to the file-scope
approach: if a single file is separated from the distribution,
the recipient won’t see the contributors’ copyright notices.
But this can be easily remedied by including a single
copyright notice in each file’s header, pointing to the
top-level file:
Copyright YYYY-YYYY The Octave Project Developers
See the COPYRIGHT file at the top-level directory
of this distribution or at https://octave.org/COPYRIGHT.html.
followed by the usual GPL copyright statement.
The COPYRIGHT file would also point to the COPYING file and the AUTHORS
file. A draft version of that file is attached. I created it from
Mercurial history and old ChangeLog files (for even older changes). I
did not generate it directly from the Copyright lines in current source
files because those lines have things like copyright years updated just
because we were updating years and those dates have nothing to do with
the years people actually made contributions. I'd rather avoid
propagating the mistake of updating copyright years for people who are
no longer contributing (possibly because they are dead).
In the future, we will update copyright years for each contributor
listed in the COPYRIGHT file. If we are doing that from Mercurial
history each year, then it seems easier than attempting to do it for
each source file.
Then the guidelines for updating copyright info each year would be
something like
* Update the dates the copyright statements of each file
so that all source files list the current year. I believe
this is justified because the Octave developers are claiming
copyright for the project as a whole and we publish a version
during the current year (even without a formal release, the
sources are published on the web always).
* Update the dates in the COPYRIGHT file for anyone who
contributed some change during the year. It should be
easy to generate a list of contributors from the hg history
and fairly easy to match them up with previous contributors
listed in the COPYRIGHT file. Should we also try to skip
trivial changes? If so, then maybe we should make it
possible to automate this job by tagging such changes with a
"[trivial change]" marker in the commit message.
Should the COPYRIGHT file include email addresses with the names? For
now, I have them as <...> in the attached copy but the original version
that I created includes the full addresses.
Additionally, I think it is time to drop the "Author:", "Created:",
"Adapted-by:" and similar lines that appear in some source files since
that information is incomplete, tends to become inaccurate over time,
and is duplicated in the version control system (where it is also most
likely to be correct).
I'm ready to make these changes prior to the 6.1 release but would like
to hear from others before proceeding.
jwe
COPYRIGHT.txt
Description: Text document
- Maintaining copyright notices,
John W. Eaton <=
- Re: Maintaining copyright notices, Andrew Janke, 2020/01/03
- Re: Maintaining copyright notices, Ben Abbott, 2020/01/03
- Re: Maintaining copyright notices, Mike Miller, 2020/01/04
- Re: Maintaining copyright notices, Torsten Lilge, 2020/01/04
- Re: Maintaining copyright notices, PhilipNienhuis, 2020/01/04
- Re: Maintaining copyright notices, John W. Eaton, 2020/01/07