GeoTools : Graduate from OSGeo

Motivation:

OSGeo graduation

Contact:

Jody Garnett Adrian Custer

Tagline:

The last step for OSGeo graduation

Description

2008

The board has met and approved a letter for us to sign:

GeoTools IRC Meeting of January 21, 2008 accepted this document and made the decision to go ahead. After email discussion, Jody Garnett made the decision to require new contributors to sign this document prior to handing out svn access.

2007

Adrian Custer's work leading up to this proposal is found here: Geotools Legal Review

We have received conflicting advice from different board members (along the following lines):

  • Leave (c) with individual developers (50% of the OSGeo projects are doing this). OSGeo then licenses Geotools like any other user. Geotools might choose to formalize this by adding the explicit list of (c) holders in each file.
  • Assign (c) to an organization (the other 50% are doing this). This is our current plan ... assigning (c) to OSGeo. An alternative version of this plan could be to assign (c) to the FSF Europe using their 'Fiduciary Licensing Agreement'.
  • Mark the (c) down to a fictional group (ie status quo where (c) GeoTools PMC is used); this is what PostgreSQL has gone on and it has not prevented investment from the likes of Sun. The end result of this option is similar to the first option: you can never change the license without contacting all the developers; and the record of the developers is to be found in version control.

2006

The providence review of all the files has previously been done to identify the origin and license terms of the files and find any problem areas. These issues have all been marked.

A key remaining step is to resolve the copyright situation of the code base. When this is resolved, Geotools can undertake the final sweep of the code and update the headers in all the files. The working assumption was that the new headers would all assign copyright, at least in part, to the Open Source Geospatial Foundation. As part of this change, it was assumed that many developers would sign a document formally assigning the contributor's copyright over to OSGeo.

Status

This proposal has been slapped together based on a number of recent irc meetings. Apparently much of the initial communication we had with the OSGeo board was complicated by talking with their legal representative at the time. Completing our graduation requirements may be as simple as:

  1. Signing a Code Contribution Agreement
  2. Updating our headers to have an OSGeo copyright and updating the providence review.txt files

During the IRC meeting of 21 January 2008, a show of hands indicating who would be willing to assign their copyright to OSGeo was taken. The request was: "+1 is "I'm willing to assign my copyright to OSGeo" 0 is "I don't care" -1 is "no way josé" " as can be seen in the IRC logs . That show of hands resulted in the following:

Community support:

Also, Chris Holmes had indicated that The Open Planning Project would be willing to sign such an agreement and Paul Ramsey had indicated that Refractions Research, Inc. would as well. So the decision has been to go forward with the OSGeo agreement.

Left unresolved during this meeting was the question of whether to force future contributors to sign the agreement or not, with several people suggesting that would be a good idea.

After email discussion, Jody Garnett went ahead with the assumption; we are no longer accepting new contributors until the sign and send in the contributors agreement. Adrian Custer was kind enough to update the developers guide

Tasks

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

Get a Contributors Agreement and Sign it

  1. (tick) acuster: Attend November 2nd OSGeo Board Meeting, ask board for a direction they are comfortable with.
  2. (tick) osgeo: Review and Approve the contributors agreement http://wiki.osgeo.org/index.php/Thirty_Second_Board_Meeting
  3. (tick) acuster: Confirm direction with geotools community Proposal to assign our copyright to OSGeo, with attach sample contributor agreement.
  4. (tick) jgarnett: write up a letter to send to code contributors
  5. (tick) Obtain contact information by:
  6. (tick) Code contributors: signs documents and sends them as a FAX to OSGeo central
  7. (tick) Shut off svn access for members who have not signed by end of March
    • Access list available here: GeoTools Contributor Status
    • Some members have asked for more time, we will check with osgeo central just before graduation and do a final cut

Update Headers

  1. module maintainers: update header as shown
    • cql providence review
    • ....
  2. Update plugins headers
    • geometry module providence review (important!)
    • ...
  3. Update extensions headers
    • ...
  4. Update unsupported headers
    • ...

It would make sense to refresh the providence review at this time; basically a manual sanity check of header information. Particularly important for new modules listed above.

Out of Scope - Update License

We are only worried about OSGeo Graduation (signing the contributors agreement and updating our headers by hand as part of a providence review). Changing license to LGPL3 is out of scope. If we update our license in the future chances are we can do it with a search and replace (something that is not an option here).

API Changes

Updating a Normal Header

Normal Headers are a mix of boiler plate, initial (c) holders and some license information.

  1. The only thing we do to the file is to replace every (C) holders that signed the copyright assignment by a single a line:
    (C) 2008, Open Source Geospatial Foundation (OSGeo)
  2. Add a line to the review.txt file saying the package name and that you updated headers
  3. Update the review.txt file with your name and the date (so we don't duplicate work)

BEFORE

/*
 *    GeoTools - OpenSource mapping toolkit
 *    http://geotools.org
 *    (C) 2005-2006, GeoTools Project Managment Committee (PMC)
 *    (C) 2004, Refractions Research Inc (RRI)
 *
 *    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.
 */
package org.geotools.catalog;

AFTER

/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2004-2008, 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.
 */
package org.geotools.catalog;

Updating an Empty Header

Empty Headers are something that was probably just added to the library

  1. We need to add the full header here; you can use svn history to check on the initial date and author
  2. Make a note of this file in the review.txt; if there are many files just list the package name as containing new files
  3. Update the review.txt file with your name and the date (so we don't duplicate work)

BEFORE

package org.geotools.demo.example;

AFTER

/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2008, 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.
 */
package org.geotools.demo.example;

Updating Something Odd

Something Odd is usuall one of three things:

  • A non LGPL license (happy fun ball license comes to mind)
  • A developer without a signed code contribution agreement

Once again:

  1. Confirm that the License.TXT file matching this header exists (and it is bundled with our distribution)
  2. Add the usual line:
    (C) 2008, Open Source Geospatial Foundation (OSGeo)
  3. Make a note of this file in the review.txt; along with the issue
  4. Send an email to the developer author (some have given us permission to fix the license; others wont)
  5. Update the review.txt file with your name and the date (so we don't duplicate work)

If the license really does not work (ie is non open source), down check the entire module and strip it from the pom.xml build.

BEFORE

/*
 *    Geotools2 - OpenSource mapping toolkit
 *    http://geotools.org
 *    (C) 2004-2006, Geotools Project Managment Committee (PMC)
 *    (C) 2002-2004, Dennis M. Sosnoski.
 *
 *    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.
 *
 */
/*
   Copyright (c) 2002-2004, Dennis M. Sosnoski.
   All rights reserved.
   Redistribution and use in source and binary forms, with or without modification,
   are permitted provided that the following conditions are met:
 * Redistributions of source code must retain the above copyright notice, this
      list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
 * Neither the name of JiBX nor the names of its contributors may be used
      to endorse or promote products derived from this software without specific
      prior written permission.
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

AFTER

/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2008, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2002-2004, Dennis M. Sosnoski.
 *
 *    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.
 */
/*
   Copyright (c) 2002-2004, Dennis M. Sosnoski.
   All rights reserved.
   Redistribution and use in source and binary forms, with or without modification,
   are permitted provided that the following conditions are met:
 * Redistributions of source code must retain the above copyright notice, this
      list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
 * Neither the name of JiBX nor the names of its contributors may be used
      to endorse or promote products derived from this software without specific
      prior written permission.
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package org.geotools.feature;

Documentation Changes

Please list the pages effected by this proposal.

Developers Guide:

OSGeo Wiki:

Comments:

From acuster:

Hey all,

Rumors brought by grey mice to the basement where I work appear to
suggest that the OSGeo board accepted the proposed copyright assignment
agreement (hereinafter CAA). The mice were too interested in the cheese
used to bribe them to tell us anything else about what happened at that
meeting so I don't know anything about the discussion which occurred.
Regardless, it appears we are free to control our own destiny towards
graduation.

There are several steps which need to happen and I suggest that we lay
out a schedule for each of them so we can meet our incubation mentor's
90 day deadline. (Cameron, when is day 89?)

Would it make sense for two of the PMC members to be placed in charge of
such a schedule to keep us on track?

The steps as I see them are as follows.

I. Agree on a plan:
------------------
The last informal discussion I saw resulted in a general consensus that
everyone present would rather use the OSGeo copyright contribution
agreement to assign copyright to OSGeo rather than work with the FSF.
The latter had been a possibility recently. We really need to form a
common front on this aspect to get essentially everyone on board the
direction we choose.

A. We need to confirm that we are going this route and address
any residual concerns any of those who are willing to assign
copyright may still have.

B. We need to decide on how we will treat future contributors.
If we are planning to move SVN to OSGeo, do we grant access to
that SVN only to those who have signed? If not, we need to be
very clear about how a contributor needs to track their
copyright over the files they touch.

II. Invite all past contributors to assign copyright:
----------------------------------------------------

The group of people who already plan to participate need to compose a
letter explaining what is happening, why, laying out the benefits and
generally showing that by assigning copyright we will achieve world
peace, place free geospatial software in everyone's pockets, and reform
the planet to be tide-free, perfectly spheroidal and with only long-lat
coordinates. The letter should also explain how to play along: where to
get the form, where to send it, how to know when it has been
countersigned and accepted.

Since part of the intent of this work is to allow OSGeo to re-license
the code one day, it might be worth mentioning the fact that Java itself
has moved to GPL plus classpath exception and therefore we might need to
follow that move someday.

C. We must compose a letter, we must get an authoritative list
of emails of past contributors, send the letter out to all the
past contributors and attempt to get a statement of intent
(will/won't sign) from each so we can know where everyone
stands.

III. Torture committers to get docs signed, sealed and delivered.
----------------------------------------------------------------

The ultimate threat to miss access to a 'future, better svn' may not be
enough to get our lazy selves to mail the docs.

D. Form a 'torture committee' able and willing to cause intense
psychological torture, public mockery and general abuse to
achieve our goals.

IV. Setup the OSGeo SVN space:
------------------------------

>From a quick look, it seems we need to first all get nicks in the OSGeo
namespace using this page:
http://www.osgeo.org/osgeo_userid
then we can use the same nick in the SVN space.

We need to ask to setup an OSGeo SVN space and grant commit rights to
those who have signed the contributor agreement (and others if we want
as well although that would probably require another legal document
saying they will play nice and not pollute the codebase).

For now, that space will remain empty or temporary. People could attempt
test commits to show their access rights work; we would then wipe the
space when we actually transfer the SVN.

E. We need to have someone responsible for getting this space
setup and having a way to grant commit rights as the letters
land at OSGeo.

IV. Clean up the headers on trunk:
---------------------------------

We can't start this step until we have all signed the copyright
assignment document. Then the question arises how we want to go about
automating this as much as possible.

The situation today is that the headers are WRONG. The line that says
(c) PMC is incorrect since that entity does not exist, it cannot hold
copyright. The legal situation today, DESPITE what the headers may say,
is that each contributor of non-trivial changes to any file holds a
joint copyright to that file. The best assumption is that all the
usernames in the svn log are those who have copyright on the file.
Essentially,
svn log FILE | grep '^r0-9'
gives the full list of copyright holders, except that for some of those
the copyright will rest with their employers.

Somehow we need to come up with a strategy and possilby automated
scripts to help us with the cleanup.

Jody proposed some new headers here:
http://docs.codehaus.org/display/GEOTOOLS/Gradudate+from+OSGeo
but I don't think that stuff is right yet. Especially the (c) PMC needs
to be REMOVED since it is WRONG.

F. We need to do a header cleanup sprint, possibly coordinated
with the svn cleanup work.

That's all I see for now. I'm sure I've missed something,
--adrian

Posted by jive at Jan 16, 2008 18:44