====== Release Preparation ====== **Notes for the release of Kvalobs as Open Source Software** **Composition of release** //NB internal links below// * kvalobs [[http://cvs/cgi-bin/cvsweb/kvalobs/?only_with_tag=kvalobs-drift-1-0|http://cvs/cgi-bin/cvsweb/kvalobs/?only_with_tag=kvalobs-drift-1-0]] * kvalobs_metadata [[http://cvs/cgi-bin/cvsweb/kvalobs_metadata/|http://cvs/cgi-bin/cvsweb/kvalobs_metadata/]] * kvhqc [[http://cvs/cgi-bin/cvsweb/kvhqc/|http://cvs/cgi-bin/cvsweb/kvhqc/]] * kvhqc_apps [[http://cvs/cgi-bin/cvsweb/kvhqc_apps/|http://cvs/cgi-bin/cvsweb/kvhqc_apps/]] Also required * libpuTools [[http://cvs/cgi-bin/cvsweb/puglocal/src/libs/puTools/|http://cvs/cgi-bin/cvsweb/puglocal/src/libs/puTools/]] available in subversion at: [[https://svn.met.no/viewvc/metlibs/puTools/|https://svn.met.no/viewvc/metlibs/puTools/]]. The puTools library is to be released under subversion separately (i.e. shared with other projects such as Diana). puTools is already an open-source library under LGPL 2.1. **Overall project name** The software to be released as open source has been collectively termed "kvalobs" in discussions between met.no and smhi. However, the s/w comprises four parts: kavlobs, kvalobs_metadata, kvhqc and kvhqc_apps It is proposed to group the software under one project name. Here are some suggestions: * kvalobs * kvnose [no:norge se:sverige] * kvoss [oss:open source software] **+**Please email kvalobs-dev@met.no with your preference/proposal. **++++++** Consensus of opinion is to use **kvoss** as the name for the full bundle. One advantage of this is that access to the group of s/w in subversion can be achieved by only setting access to a single folder. **Proposed structure under subversion** ... using the project name //kvoss// https://svn.met.no/kvoss https://svn.met.no/kvoss/kvalobs/trunk https://svn.met.no/kvoss/kvalobs/branches https://svn.met.no/kvoss/kvalobs/tags https://svn.met.no/kvoss/kvalobs_metadata/trunk https://svn.met.no/kvoss/kvalobs_metadata/branches https://svn.met.no/kvoss/kvalobs_metadata/tags https://svn.met.no/kvoss/kvhqc/trunk https://svn.met.no/kvoss/kvhqc/branches https://svn.met.no/kvoss/kvhqc/tags https://svn.met.no/kvoss/kvhqc_apps/trunk https://svn.met.no/kvoss/kvhqc_apps/branches https://svn.met.no/kvoss/kvhqc_apps/tags i.e. in general https://svn.met.no/project-group/project/trunk /branch /tags ** Initial population ** - prepare the directories trunk, branches and tags under all projects - (kvalobs example) copy from cvs/kvalobs to svn.met.no/kvoss/kvalobs/trunk - also tagged copy to svn.met.no/kvoss/kvalobs/tags/kvalobs-oss-launch with --message "copy of first source code available as open source project" ** Gaining write access ** Full access to subversion requires a user account to be set up by the subversion server system administrator. Proposal: This can be achieved by having an email address for request of account available on the project wiki pages. The address will be to a moderator (or group of moderators) who then inform system administrator that a new account is needed (forward email to system administrator). **+**Email address for account administration to be set up. **Initial Revision.** Propose that the first versions opened on subversion will be a snapshot of the latest version on cvs. The first repository will not constitute a release and hence will have no explicit versioning applied. We should note that the s/w run at met.no is mature (and for kvalobs it is version 1.1.2.53 for example), however steps are required to make the s/w more accessible for use in an open-source context. These steps may include: - Tidy up source tree - Provision of a detailed installation guide - Removal of any specific met.no environment features (e.g. the kvalobs database has to be run by a user kvalobs) - Provision of an autoconf script or similar autobuild tools. After these steps have been accomplished we can think of having a "release" tagged under subversion. **Licensing** All software, not already under license, to be placed under the GNU General Public License (GPL) [[http://www.gnu.org/copyleft/gpl.html|http://www.gnu.org/copyleft/gpl.html]]. In the repository the full license will be imported in the file COPYING e.g. svn.met.no/kvoss/kvalobs/trunk/COPYING Propose to start with GPL v2. There are still ongoing discussions about GPL v3 in the open-source community. GPL v2 is sufficient for the needs of kvoss. Example header: /* Kvalobs - Free Quality Control Software for Meteorological Observations $Id$ Copyright (C) 2007 met.no Contact information: Norwegian Meteorological Institute Box 43 Blindern 0313 OSLO NORWAY email: kvalobs-dev@met.no This file is part of KVALOBS KVALOBS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. KVALOBS 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 General Public License for more details. You should have received a copy of the GNU General Public License along with KVALOBS; if not, write to the Free Software Foundation Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ And similar for kvalobs_metadata, kvhqc, etc. See [[http://www.gnu.org/licenses/gpl-howto.html|http://www.gnu.org/licenses/gpl-howto.html]] for other acceptable variations on the above header. **Copyright Handling** All code is now issued with "Copyright (C) 2007 met.no." How will the evolution of the copyright be handled? Shall we adopt a policy of "Contributor license agreement" or establish a project legal entity, and assign copyright to that? **Third party libraries** No known conflicts are known with respect to external libraries employed by kv projects. E.g for kvalobs: | **Package** | **License** | **Comment** | **Compatibility with kvalobs under GPL** | | OMNIORB | GPL | | OK | | Postgresql | BSD License | A modified BSD with no advertising clause | OK | | Boost | BOOST license | | OK | | SQLlite | N/A | Public Domain | OK | | QT | QT license | Open Source Edition | OK | | | | | | | puTools | LGPL | met.no product | OK | |pkgconfig | GPL 2| |OK | See [[http://www.gnu.org/philosophy/license-list.html|http://www.gnu.org/philosophy/license-list.html]] (for some detail) **+**Reviewers of this document please think if there are any other issues here. **Documentation** Full documentation trees already exist under cvs and therefore these will be copied to subversion and remain under configuration control. Documentation is also being placed into DokuWiki, this shall also be copied into the external wiki server for the project [[https://kvalobs.wiki.met.no/|https://kvalobs.wiki.met.no/]]. **Bugzilla** Bugzilla for the project will be available at the DMZ: ???????????????. As a start existing bugs from the internal bugzilla and items not included in that list shall be copied into the shared bugzilla for the open source project. The TODO list will be phased out since only a tool such as bugzilla is appropriate for managing anomaly reports in the open source project. **Kvalobs Wiki** Initial content being prepared: * This document * Mission statement * Description of policies for using subversion repository * Link to Project Bugzilla page * Details of group email tool * Details of discussion forum * Email for user access request Proposal: expand the alias kvalobs-dev@met.no to also include smhi.se people now, so that we have one email for announcements etc. **Desirables** Automatic documentation builds by doxygen every week and stored in svn. **+**Please add other ideas... **Procedure for CVS to SVN** Some steps for a smooth transition * all activity of the CVS repositories stops Except for: * Scripts are run to add headers to all files, results checked and final commits made, * System administrator performs CVS to SVN migration, * Internal project team checks the integrity of new repository, * Launch of project is announced, * We all work from svn thereon!