Skip to content

Updates to Copyright Header Policy

Jody Garnett edited this page Jun 6, 2016 · 23 revisions
  • Contact: jdeolive
  • TLDR: Updates to Copyright Header Policy
  • Branch: master

Description

Currently committers and contributors must update copyright headers for any changed file so that the second year in the date range is always the current year. This has a few drawbacks.

  • It's tedious. Both for the developer making the change and the for the reviewer to constantly be reminding whomever is making the change.
  • It's unnecessary. There has been no solid argument that this policy adds any sort of legal benefit. In fact in the email discussion referenced below there is a strong argument made that the date in the copyright header is meaningless from a legal standpoint.

The goal of this proposal is to strike a better balance between convenience and legal assurance.

Options

There have been a number of suggestions put forward. The following is a list of choices for moving forward.

  • A. Do nothing

    Keep our current policy in tact.

  • B. Update only when an "significant" event occurs

    This involves updating the copyright only when an event that impacts copyright occurs. This would mean some sort of copyright transfer, or if a class is significantly rewritten.

  • C. Drop the copyright date all together

    This would involve dropping the date all together.

  • D. Automate the copyright date update

    This would involve adding a post commit hook to do the update automatically.

References:

Alternatives

Since there are many alternatives on the table, initial voting for this proposal will involve determining which options each PSC member prefers. Each PSC member should rank options A through D in order of preference.

Member Preferences
Andrea Aime B, D, A, C
Ben Caradoc-Davies C, B, D, A
Christian Mueller D,C,B,A
Ian Turton D, C, B, A
Justin Deoliveira C, B, D, A
Jody Garnett B, D, A, C
Simone Giannecchini D, C, B, A

Header with Creation Date

This is a compromise proposal base on voting showing both a PSC split on having copyright headers, and support for any option that does not require change to the header on every commit.

  • Apply OSGeo copyright on creation/contribution

The examples in What about the header in the developers guide will need to be paired down to the following:

  • If the code is being created by you strictly for the GeoTools project it should be a copy and paste, followed filling in the current year.

    /*
     *    GeoTools - The Open Source Java GIS Toolkit
     *    http://geotools.org
     *
     *    (C) 2016, Open Source Geospatial Foundation (OSGeo)
     *
     *    This library is free software; you can redistribute it and/or
     *    modify it under the terms of the GNU Lesser General Public
     *    License as published by the Free Software Foundation;
     *    version 2.1 of the License.
     *
     *    This library is distributed in the hope that it will be useful,
     *    but WITHOUT ANY WARRANTY; without even the implied warranty of
     *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     *    Lesser General Public License for more details.
     */
    

    The above code reflects a file that was created in 2016 and explicitly contributed to the GeoTools project (the Open Source Geospatial Foundation is our legal entity holding the copywrite). The file is being made available under the LGPL License (which is included in our project documentation and downloads).

  • The header for all demo code is:

    /*
     *    GeoTools - The Open Source Java GIS Toolkit
     *    http://geotools.org
     *
     *    (C) 2016, Open Source Geospatial Foundation (OSGeo)
     *
     *    This file is hereby placed into the Public Domain. This means anyone is
     *    free to do whatever they wish with this file. Use it well and enjoy!
     */
    

    In this case we are placing the demo code into the public domain so people can cut and paste the examples into their own code as they are learning.

  • When reusing code from another LGPL project reflect the prior organizations that were custodians of the code::

     /*
      *    GeoTools - The Open Source Java GIS Toolkit
      *    http://geotools.org
      *
      *    (C) 2006, Open Source Geospatial Foundation (OSGeo)
      *    (C) 2002, Navel Ltd.
      *
      *    This library is free software; you can redistribute it and/or
      *    modify it under the terms of the GNU Lesser General Public
      *    License as published by the Free Software Foundation;
      *    version 2.1 of the License.
      *
      *    This library is distributed in the hope that it will be useful,
      *    but WITHOUT ANY WARRANTY; without even the implied warranty of
      *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      *    Lesser General Public License for more details.
      */
    

    The the above example from the gt-caching module some of the spatial index functionality has been produced using of code from Navel Ltd that was published under the LGPL license in 2002. The work was contributed to GeoTools in 2006.

  • When reusing code published under another license do not modify the initial header at all; add the geotools header on top.

    Based on the license restrictions you may need to add some credits to the GeoTools user guide; and list the license.

Status

Choose one of:

  • Under Discussion
  • In Progress
  • Completed
  • Rejected,
  • Deferred

Voting:

  • Andrea Aime +1
  • Ben Caradoc-Davies +1
  • Christian Mueller +1
  • Ian Turton +1
  • Justin Deoliveira +1
  • Jody Garnett +1
  • Simone Giannecchini +1

Tasks

  1. JG: Update developers guide

    https://github.com/geotools/geotools/pull/1209

Clone this wiki locally