Differences between revisions 11 and 12
Revision 11 as of 2006-03-08 00:13:31
Size: 9473
Editor: gamay
Comment:
Revision 12 as of 2009-02-12 01:03:09
Size: 9479
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
[[TableOfContents([2])]] <<TableOfContents([2])>>
Line 13: Line 13:
For details on RFCs in general, check out the [http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Request+for+Comments&gwp=8&curtab=2222_1&linktext=Request%20for%20Comments Wikipedia Entry: Request for Comments (RFCs)] For details on RFCs in general, check out the [[http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Request+for+Comments&gwp=8&curtab=2222_1&linktext=Request%20for%20Comments|Wikipedia Entry: Request for Comments (RFCs)]]
Line 185: Line 185:
[[BR]] <<BR>>
Line 189: Line 189:
 * Using this [attachment:addCopyright.pl script] and this [attachment:header.cytoscape header] file, I added the new copyright information.  * Using this [[attachment:addCopyright.pl|script]] and this [[attachment:header.cytoscape|header]] file, I added the new copyright information.
Line 196: Line 196:
[[BR]] <<BR>>

RFC Name : Java code license clean-up

Editor(s): Mike Smoot, Gary Bader

<<TableOfContents: execution failed [Argument "maxdepth" must be an integer value, not "[2]"] (see also the log)>>

About this document

This is an official Request for Comment (RFC) for Java code license clean-up

For details on RFCs in general, check out the Wikipedia Entry: Request for Comments (RFCs)

Status

This RFC is closed and has been implemented. See the implementation details below.

Proposal

  • We would like to standardize the headers of all Java class files that were created by Cytoscape developers in the cytoscape directory in CVS.
  • We are not changing any code in the csplugins directory now.
  • We need to respect the headers of files that are in the cytoscape directory, but were not written by us (exceptions)

We propose to put the following header at the top of each Cytoscape 'owned' Java source code file.

/*
File: Cytoscape.java

Copyright (c) 2006 The Cytoscape Consortium (www.cytoscape.org)
The Cytoscape Consortium is: 
- Institute for Systems Biology 
- University of California San Diego
- Memorial Sloan-Kettering Cancer Center
- Pasteur Institute
- Agilent Technologies

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; either version 2.1 of the License, or
any later version.

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.  The software and
documentation provided hereunder is on an "as is" basis, and the
Institute for Systems Biology and the Whitehead Institute 
have no obligations to provide maintenance, support,
updates, enhancements or modifications.  In no event shall the
Institute for Systems Biology and the Whitehead Institute 
be liable to any party for direct, indirect, special,
incidental or consequential damages, including lost profits, arising
out of the use of this software and its documentation, even if the
Institute for Systems Biology and the Whitehead Institute 
have been advised of the possibility of such damage.  See
the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/

Followed by package and import statements and code

Existing license examples

//ExpressionData.java

/** Copyright (c) 2002 Institute for Systems Biology and the Whitehead Institute
 **
 ** 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; either version 2.1 of the License, or
 ** any later version.
 ** 
 ** 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.  The software and
 ** documentation provided hereunder is on an "as is" basis, and the
 ** Institute for Systems Biology and the Whitehead Institute 
 ** have no obligations to provide maintenance, support,
 ** updates, enhancements or modifications.  In no event shall the
 ** Institute for Systems Biology and the Whitehead Institute 
 ** be liable to any party for direct, indirect, special,
 ** incidental or consequential damages, including lost profits, arising
 ** out of the use of this software and its documentation, even if the
 ** Institute for Systems Biology and the Whitehead Institute 
 ** have been advised of the possibility of such damage.  See
 ** the GNU Lesser General Public License for more details.
 ** 
 ** You should have received a copy of the GNU Lesser General Public License
 ** along with this library; if not, write to the Free Software Foundation,
 ** Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 **/

//--------------------------------------------------------------------
// $Revision: 1.22 $
// $Date: 2005/01/18 19:22:38 $
// $Author: cerami $
//--------------------------------------------------------------------

//---------------------------------------------------------------------------
//  $Revision: 1.1 $ 
//  $Date: 2004/06/15 22:46:56 $
//  $Author: amarkiel $
//---------------------------------------------------------------------------

/*
 * The contents of this file are subject to the Sapient Public License
 * Version 1.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 * http://carbon.sf.net/License.html.
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 *
 * The Original Code is The Carbon Component Framework.
 *
 * The Initial Developer of the Original Code is Sapient Corporation
 *
 * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
 */

(no longer) Open Issues

  • Who should copyright be assigned to? Should all code be assigned to the Cytoscape Consortium?
    • yes
  • How should we deal with existing author statements? Ideally they would be preserved.
    • Author information preserved in the original copyright statement (if it existed) was not preserved. Author information external of the original copyright statemet was preserved. Of course, all author information still exists in CVS.

Discussion

MikeSmoot comments:

  • I don't like the double ** at the beginning of each line of comments because it implies that the comment is javadoc, even though it isn't. I'd prefer something like:

/*
 * Copyright...
 */

  • or

//-------------------------------------------------
// Copyright...
//-------------------------------------------------
  • but that's just a minor quibble.

GaryBader - sounds good, though we could make it even simpler like:

/*
Copyright...
...
*/
  • It's not clear to me whether we're changing all of the licenses to be the same or whether we're just adding a header to those files that are missing it.
    • GaryBader - Ideally, we normalize all the code that is copyright Cytoscape. Maybe this needs more discussion.

  • I don't think that we can change the Sapient licensed code.
    • GaryBader - definitely agree. The script needs to somehow avoid replacing headers on code that is not our own.

  • I don't like the CVS tags included in the file. I find the information redundant (that's what CVS is for) and that it clutters up the code. Also, for some files, the Log at the botton of the file will get really, really long (e.g. Cytoscape.java is currently at revision 95).
    • GaryBader - Fine with me, following the 'when in doubt, keep it simple' design maxim.

  • We might want to add the name of the file to the Copyright statement, e.g.:

//-------------------------------------------------
// File: Cytoscape.java
// Copyright (c) 2006  Cytoscape Consortium.
// ...
//-------------------------------------------------
  • GaryBader - since the script is automatic, this would be easy. Personally, I don't find this that useful, since my IntelliJ IDE makes this information easy to read, but maybe it is useful in emacs or something.

    • MikeSmoot - I was thinking it was appropriate just because most licenses (including the LGPL) list the file name as part of the copyright statement.


Implementation

  • Using this script and this header file, I added the new copyright information.

  • The first step was to move the cytoscape/src/cytoscape/util/swing directory to some place where the files wouldn't have their copyrights altered. This is because some of the copyright on some files in this directory are not owned by us and therefore we can't change them.
  • To add the copyright to all of the other files, the command I ran was something like (from the cytoscape/src directory).
    • find . -name "*.java" -exec addCopyright.pl -a none -h cytoscape.header --extract {} \;
  • Next I moved the cytoscape/src/cytoscape/util/swing back into place and updated all of the copyrights I was allowed to manually:
    • addCopyright.pl -a none -h cytoscape.header --extract Bio*.java
  • Check the code in, because you're done.


  • A handy trick that can be used to fix small mistakes:
    • find . -name "*.java" -exec perl -p -i.bak -e "s/Institute of Systems Biology/Institute for Systems Biology/;" {} \;

License_clean-up_RFC (last edited 2009-02-12 01:03:09 by localhost)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux