Difference between revisions of "Project Graduation Checklist"

From OSGeo
Jump to navigation Jump to search
(→‎Review Notes: link updated)
 
(39 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''The official copy of this document lives at http://www.osgeo.org/incubator/process/project_graduation_checklist.html'''
+
'''Please note that this Wiki page is out of date. Find the current Checklist on the official OSGeo web site at: https://www.osgeo.org/resources/project-graduation-checklist/'''
  
<font color="red">Wiki version [http://wiki.osgeo.org/index.php?title=Project_Graduation_Checklist&oldid=50824 50824] of this document was discussed at [http://wiki.osgeo.org/wiki/IncCom_Meeting14 Incubation Meeting 14], and a number of suggested changes were made. Logs here: http://irclogs.geoapt.com/osgeo/%23osgeo.2010-03-03.log</font>
+
------
  
= Document Status =
+
= <span style="color:red">Review Notes</span> =
 +
* <span style="color:red">This wiki provides a draft for a 3.0 version of the [https://www.osgeo.org/resources/project-graduation-checklist/ Project Graduation Checklist].</span>
 +
* <span style="color:red">It incorporates some content from the OSGeo [[General_Principles_of_Incubation]], which is proposed to be retired.</span>
 +
* <span style="color:red">It incorporates some concepts from the [[Live_GIS_Disc_Apply| selection criteria for adding a project to OSGeoLive]].</span>
 +
* <span style="color:red"> New text is in red font. Removed text in strike font. All points in the checklist now have an indentifier.</span>
 +
* <span style="color:red"> When publishing the final section, these Review Notes will be removed.</span>
  
'''IncCom Document Number''': <font color="red">X</font>
+
'''The official copy of this document lives at http://www.osgeo.org/incubator/process/project_graduation_checklist.html'''
  
'''Version''': <font color="red">2.0. Updates since 1.0 are in red.</font>
+
= Document Status =
 
+
This is the draft version of the stable document living at: http://www.osgeo.org/incubator/process/project_graduation_checklist.html
'''Last Updated''': <font color="red">January 2012.</font>
 
  
'''Status''': <font color="red">draft</font>
+
'''Version:''' TBD<br/>
 +
'''Status:''' draft<br/>
 +
'''Last Edited:''' TBD<br/>
 +
'''Previous:''' 2.0<br/>
  
 
= Purpose =
 
= Purpose =
 
 
The purpose of this checklist is to determine whether an Incubator Project produces quality products, remains true to its stated licence and is sustainable. Satisfying this checklist is a pre-requisite for graduation.
 
The purpose of this checklist is to determine whether an Incubator Project produces quality products, remains true to its stated licence and is sustainable. Satisfying this checklist is a pre-requisite for graduation.
  
A project should have institutionalized the processes in this list or provide justification why the process is not used.
+
* A project should have institutionalized the processes in this list or provide justification why the process is not used.
 +
* See also the [http://www.osgeo.org/incubator/process/application.html Incubation Application Questionnaire]
  
 
= Terms and Definitions =
 
= Terms and Definitions =
  
 
; Mentor : A member of the Incubation Committee chosen to assist a Project through the Incubation Process.
 
; Mentor : A member of the Incubation Committee chosen to assist a Project through the Incubation Process.
; Institutionalized Process : A documented process which which addresses a need and is actively in use. It typically takes months before a process becomes institutionalized. ''A more detailed definition of institutionalization is found in the [http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr012.pdf Capability Maturity Model (CMMI)] <font color="red">- "Generic Goal 2: Institutionalize a Managed Process"</font>''
+
; Institutionalized Process : A documented process which which addresses a need and is actively in use. It typically takes months before a process becomes institutionalized. ''A more detailed definition of institutionalization is found in the [http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr012.pdf Capability Maturity Model (CMMI)] - "Generic Goal 2: Institutionalize a Managed Process"''
 +
; Open Source License : a license recognized by the [http://opensource.org Open Source Initiative]
  
= Checklist =
+
= Incubation Checklist =
  
<strike><font color="red">The following checklist is used during graduation to ensure we have not missed anything.</font></strike>
+
== Open ==
<span style=background:yellow>Cameron Shorter comment: This sentence is covered under the "Purpose" heading above, hence it doesn't need repeating here.</span>
+
 +
The project has demonstrated that it has an open, active and healthy user and developer community:
 +
# <span id="open.1">[open.1]</span> Open: projects are expected to function in an open and public manner and include:
 +
#* <span id="open.1a">[open.1a]</span> Open source license(s),
 +
#* <span id="open.1b">[open.1b]</span> Open communication channels,
 +
#* <span id="open.1c">[open.1c]</span> Open decision making process,
 +
# <span id="open.2">[open.2]</span> Active and healthy community:
 +
#* <span id="open.2a">[open.2a]</span> The project should have a community of developers and users who actively collaborate and support each other in a healthy way. <br/><i>Eg. collaboration on project activities such as testing, release and feature development.</i>
 +
#* <span id="open.2b">[open.2b]</span> Long term viability of the project is demonstrated by showing participation, <span style="color:red">support</span> and direction from multiple developers, <span style="color:red">and/or power users, and/or sponsors</span>, who come from multiple organisations. <br/><i>Eg. The project is resilient enough to sustain loss of a developer or supporting organisation, often referred to as having a high [http://en.wikipedia.org/wiki/Bus_factor bus factor].</i>
 +
#* <span id="open.2c">[open.2c] Decisions are made openly instead of behind closed doors, which empowers all developers to take ownership of the project and facilitates spreading of knowledge between current and future team members.</span>
 +
#* <span id="open.2d" style="color:red"><strike>[open.2d] Users are supported and encouraged, via an email list or similar.</strike></span>
 +
#* <span style="color:red"><span id="open.2d" style="color:red">[open.2d]</span> The project has a Code of Conduct. <br/><i>This may be a reference to the [http://www.osgeo.org/code_of_conduct OSGeo Code of Conduct].</i></span>
  
== <font color="red">Legal</font><strike>License</strike>==
+
== Copyright and License ==
  
<font color="red">We need to ensure that project owns or otherwise has obtained the ability to release:</font>
+
We need to ensure that the project owns or otherwise has obtained the ability to release the project code by completing the following steps:
# The <font color="red">project</font> code<font color="red">, documentation and data</font> has been adequately vetted to assure it is all properly licensed <strike>(a.k.a</strike><font color="red">as per a</font> [http://www.osgeo.org/incubator/process/codereview.html provenance review].
+
# <span id="copyright.1">[copyright.1]</span> All project source code is available under an Open Source license.
# All code contributors have agreed to abide by the project's license policy<font color="red">, and this agreement has been documented and archived</font>.
+
# <span id="copyright.2">[copyright.2]</span> Project documentation is available under an open license, such as Creative Commons.
# <font color="red"><strike>Any other legal checks such as trademark and patent.</strike>The project has checked for inappropriate use of trademark or patents and documented the result of such checks.</font><span style=background:yellow>Cameron Shorter comment: This point needs to be definitive if it is included. Also, I think that it should be included in the "Provenance Review" checklist (which could be renamed "Legal Checklist"). And before it is included (which I think is a good idea long term), we need to do an audit of existing graduated projects to see if they would pass. Hence, I suggest that inclusion of this point be delayed until a future version of this document.</span>
+
# <span id="copyright.3">[copyright.3]</span> <span id="copyright.1">[copyright.1]</span> The project code, documentation and data has been adequately vetted to assure it is all properly licensed, and a copyright notice included, as per a [http://www.osgeo.org/incubator/process/codereview.html Provenance Review].
# <font color="red">The project has the ability to shut off downloads if a blocking legal issue is found.</font>
+
# <span id="copyright.4">[copyright.4]</span> The project maintains a list of all copyright holders identified in the Provenance Review Document.  
 +
# <span id="copyright.5">[copyright.5]</span> All code contributors have agreed to abide by the project's license policy, and this agreement has been documented and archived.
  
 
== Processes ==
 
== Processes ==
  
<strike><font color="red">Documented processes:</font></strike>
+
# <span id="processes.1">[processes.1]</span> The project has code under configuration management. <br/><i>Eg, subversion, git.</i>
<span style=background:yellow>Cameron Shorter comment: This line isn't required if you have "Processes" heading above.</span>
+
# <span id="processes.2">[processes.2]</span> The project uses an issue tracker and keeps the status of the issue tracker up to date.
 
+
# <span id="processes.3">[processes.3]</span> The project has documented <span style="color:red">and follows</span> its management processes. <br/><i>This is typically done within a Developers Guide or Project Management Plan.</i>
# The project has code under configuration <font color="red">management</font><strike>control</strike>. <i>Eg, subversion, <font color="red">git.</font></i>
+
#* <span id="processes.3a">[processes.3a]</span> The project has a suitable open governance policy ensuring decisions are made, documented and adhered to in a public manner. <br/><i>This typically means a Project Management Committee has been established with a process for adding new members. A robust Project Management Committee will typically draw upon developers, users and key stakeholders from multiple organisations as there will be a greater variety of technical visions and the project is more resilient to a sponsor leaving.</i>
# The project uses an issue tracker<font color="red"> and keeps the status of the issue tracker up to date</font>.
+
#* <span id="processes.3b">[processes.3b]</span> The project uses public communication channels for decision making to maintain transparency.<br/><i> E.g. archived email list(s), archived IRC channel(s), public issue tracker.</i>
# The project has documented its management processes. <i>This is typically done within a Developers Guide or Project Management Plan.</i>
 
#* The project has a suitable <font color="red">open</font> governance policy ensuring decisions are made, documented and adhered to. <i><font color="red">This typically means a</font> Project Management Committee has been established with a <font color="red">process for adding new members. A robust Project Management Committee will typically draw upon developers, users and key stakeholders from multiple organisations</font> as there will be a greater variety of technical visions and the project is more resilient to a sponsor leaving.</i>
 
#* The project uses public communication channels <font color="red">for decision making to maintain transparency.</font><i> E.g. archived email list(s)<font color="red">, archived IRC channel(s), public issue tracker.</font></i>
 
<strike>#* See Documentation and Release Procedure for more information</strike>
 
<span style=background:yellow>Cameron Shorter comment: This line is out of place in a check list (Also this doc is short enough that we don't need to reference another heading).</span>
 
  
<strike><font color="red">This checklist can only document process requirements; the goal of the above procedures is to check that</font> the developer community works in a healthy way:
+
== Documentation ==
* <font color="red">Open Development:</font> open to input, new members and reaching consensus on decisions.
 
* Ideally, the developers <font color="red">and Project Management Committee members </font>come from a diversity of backgrounds as there will be a greater variety of technical visions and the project is more resilient to a sponsor leaving.</strike>
 
<span style=background:yellow>Cameron Shorter comment: Covered in list above.</span>
 
  
==<font color="red">Documentation</font>==
+
# <span id="documentation.1">[documentation.1]</span> The project has user documentation:
 +
#* <span id="documentation.1a">[documentation.1a]</span> Including sufficient detail to guide a new user through performing the core functionality provided by the application.
 +
# <span id="documentation.2">[documentation.2]</span> The project has developer documentation:
 +
#* <span id="documentation.2a">[documentation.2a]</span> Including checkout and build instructions.
 +
#* <span id="documentation.2b">[documentation.2b]</span> Including commented code, ideally published for developer use. <br/><i>Examples: javadocs for Java applications, or Sphinx documentation for Python applications.</i>
 +
#* <span id="documentation.2c">[documentation.2c]</span> Providing sufficient detail for an experience programmer to contribute patches or a new module in accordance with the project's programming conventions.
 +
# <span id="documentation.3" style="color:red">[documentation.3] The project has deployment documentation:</span>  
 +
#* <span id="documentation.3a" style="color:red">[documentation.3a] Including, where appropriate, how to deploy, configure and optimise the application.</span>
  
<strike><font color="red">We ask that extra care be taken to ensure high quality documentation and releases:</font></strike>
+
==Release Procedure==
  
# The project has user documentation:
+
In order to maintain a consistent level of quality, the project should follow defined release and testing processes.
#* <font color="red">Including sufficient detail to guide a new user through performing the core functionality provided by the application</font>.
 
# The project has developer documentation:
 
#* <font color="red">Including checkout and build instructions.</font>
 
#* <font color="red">Including commented code, ideally published for developer use. Examples: javadocs for Java applications, or Sphinx documentation for Python applications.</font>
 
#* <font color="red">Providing sufficient detail for an experience programmer to contribute patches or a new module in accordance with the project's programming conventions.</font>
 
  
==<font color="red">Release Procedure</font>==
+
# <span id="release.1">[release.1]</span> The project follows a defined release process:
 +
#* <span id="release.1a" style="color:red"><strike>[release.1a] Which supports both stable and development releases.</strike></span>
 +
#* <span id="release.1b">[release.1b]</span> Which includes execution of the testing process before releasing a stable release.
 +
# <span id="release.2">[release.2]</span> The project follows a documented testing process.
 +
#* <span id="release.2a">[release.2a]</span> <i>Ideally, this includes both automated and manual testing.</i>
 +
#* <span id="release.2b">[release.2b]</span> <i>Ideally this includes documented conformance to set quality goals, such as reporting Percentage Code Coverage of Unit Tests.</i>
 +
# <span id="release.3">[release.3]</span> Release and testing processes provide sufficient detail for an experienced programmer to follow.
 +
# <span id="release.4" style="color:red">[release.4] The project has released stable, feature complete releases.
 +
#* <i>Ideally this is demonstrated by describing risk adverse organisations who have deployed releases into production systems.</i></span>
  
<strike><font color="red">It is not enough to make and document a release; the goal of the above checklist is to focus team reliability:</font>
+
= OSGeo Committees and Community =
* <font color="red">Ideally we would like a new developer to walk up; follow the instructions and correctly engage the community to build a release</font></strike>
 
  
<font color="red">In order to maintain a consistent level of quality, the project should follow defined release and testing processes.</font>
+
The OSGeo Foundation is made up of a number of committees, projects and local chapters. This section gathers up information these groups have requested from OSGeo projects. These expectations are not mandatory requirements before graduation, but a project should be prepared to address them in order to be considered a good OSGeo citizen.
 
 
# The project <font color="red">follows</font><strike>has</strike> a defined release process:
 
#* <font color="red">Which includes execution of the testing process before releasing a stable release.</font>
 
#<strike> The project has an automated build process.</strike> The project <font color="red">follows a documented <font color="red">testing process:</font></font><strike> manages quality</strike>
 
#* Ideally, this includes <font color="red>both automated and manual testing</font><strike>an automated test system</strike>.
 
#* <font color="red">Ideally this includes documentation conformance to set quality goals, such as reporting Percentage Code Coverage of Unit Tests.</font>
 
# <font color="red">Release and testing processes provide sufficient detail for an experienced programmer to follow.</font>
 
 
 
* <span style=background:yellow>Cameron Shorter comment: At a later stage, it would be good to expect OSGeo projects to maintain a periodic stable release schedule, ideally linked in with distribution release cycles. However, I don't think we have reached that level of maturity across our projects yet.</span>
 
* <span style=background:yellow>Jody Garnett comment: You will need an OSGeo project as a good example before asking for a Quality Process. Example: GeoTools mandates modules obtain 40% code coverage prior to being published</span>
 
 
 
= Community =
 
 
 
<font color="red">The OSGeo Foundation is made up of a number of committees, projects and local chapters. This section gathers up information these groups have requested from OSGeo projects. <strike>Participation is optional but recommended.</strike></font>
 
<span style=background:yellow>Cameron Shorter comment: The items listed in this section should all be addressed during incubation (or an explanation provided as to why it hasn't been addressed).</span>
 
  
 
== Board ==
 
== Board ==
  
<font color="red">The OSGeo [[Board]] holds ultimate responsibility for all OSGeo activities. The Board requests:
+
The OSGeo [[Board]] holds ultimate responsibility for all OSGeo activities. The Board requests:
  
# A project provide a Project Officer as a contract point:
+
# <span id="board.1">[board.1]</span>  A project provide a Project Officer as a contract point:
 
#* The Project Officer should be listed at: [[Contacts#Software_Projects|Project Officer]]
 
#* The Project Officer should be listed at: [[Contacts#Software_Projects|Project Officer]]
 
#* This person is established when the incubation committee recommends the project for graduation
 
#* This person is established when the incubation committee recommends the project for graduation
#* Your community can change the project officer as needed (just add an agenda item to the next board meeting so they can recognise the change of officer).</font>
+
#* Your community can change the project officer as needed (just add an agenda item to the next board meeting so they can recognise the change of officer).
  
 
== Marketing ==
 
== Marketing ==
  
<font color="red">Access to OSGeo's [[Marketing_Committee]] and associated [[Marketing_Pipeline]] is one of the key benefits of joining the OSGeo foundation<strike> - please help them out with the following information</strike>. The Marketing Committee requests:</font>
+
Access to OSGeo's [[Marketing_Committee]] and associated [[Marketing_Pipeline]] is one of the key benefits of joining the OSGeo foundation. The Marketing Committee requests:
  
# Marketing <strike>material</strike>artefacts have been created about the project <strike>for</strike><font color="red">in line with the incubation criteria listed in</font> the OSGeo Marketing Committee<font color="red">'s [http://wiki.osgeo.org/wiki/Marketing_Artefacts Marketing Artefacts]. This lists the documentation requirements for [http://live.osgeo.org OSGeo-Live].</font> <strike>(can we assume pdf handout, presentation slides and a feature matrix?)</strike> Marketing Artefacts include:
+
# <span id="marketing.1">[marketing.1]</span> Marketing artefacts have been created about the project in line with the incubation criteria listed in the OSGeo Marketing Committee's [http://wiki.osgeo.org/wiki/Marketing_Artefacts Marketing Artefacts]. This lists the documentation requirements for [http://live.osgeo.org OSGeo-Live]. Marketing Artefacts include:
#* Application Overview
+
#* <span id="marketing.1a">[marketing.1a]</span> Application Overview
#* Application Quick Start
+
#* <span id="marketing.1b">[marketing.1b]</span> Application Quick Start
#* Logo
+
#* <span id="marketing.1c">[marketing.1c]</span> Logo
#* Graphical Image</font>
+
#* <span id="marketing.1d">[marketing.1d]</span> Graphical Image
# <font color="red">Ideally, stable version(s) of executable applications are bundled with appropriate distributions, (In most cases, this will at least include [http://live.osgeo.org OSGeo-Live], but may also include [http://wiki.debian.org/DebianGis DebianGIS], [https://wiki.ubuntu.com/UbuntuGIS UbuntuGIS], and/or [http://trac.osgeo.org/osgeo4w/ osgeo4w] [http://www.maptools.org/ms4w/ ms4w], etc.)</font>
+
# <span id="marketing.2">[marketing.2]</span> Ideally, stable version(s) of executable applications are bundled with appropriate distributions.<br/><i>In most cases, this will at least include [http://live.osgeo.org OSGeo-Live], but may also include [http://wiki.debian.org/DebianGis DebianGIS], [https://wiki.ubuntu.com/UbuntuGIS UbuntuGIS], and/or [http://trac.osgeo.org/osgeo4w/ osgeo4w] [http://www.ms4w.com ms4w], etc.)</i>
 +
# <span id="marketing.3" style="color: red">[marketing.3] The project incorporates OSGeo branding, such as including an OSGeo logo on its website.</span>
 +
# <span id="marketing.4" style="color: red">[marketing.4] The project has been registered with Open HUB, and Open HUB has been updated to reference the correct code repository(s) for the project. [https://www.openhub.net/ Open HUB] provides metrics to help assess the health of a project. </span>
  
 
== Projects ==
 
== Projects ==
  
<font color="red">Projects do not exist in isolation; and are expected to communicate and collaborate on key issues. As an example the PostGIS release procedure asks that the release be checked with MapServer, GeoServer and others.</font>
+
# <span id="projects.1">[projects.1]</span> Projects do not exist in isolation; and are expected to communicate and collaborate on key issues. <br><i>As an example, the PostGIS release procedure asks that the release be checked with MapServer, GeoServer and others.</i>
 
+
# <span id="projects.2" style="color:red">[projects.2] Where applicable, projects are expected to interoperate effectively with other applications.</span>
== SAC ==
+
#* <span id="projects.2a" style="color:red">[projects.2a] Interoperability is preferably achieved by supporting relevant Open Standards.</span>
 
+
#* <span id="projects.2b" style="color:red">[projects.2b] Where applicable, standards compliance is verified by executing compliance tests, such as provided by OGC CITE testing.</span>
The [[SAC|System Administration Committee]] is available to help infrastructure and facilities. Information for this committee is collected as part of the [[Project Status Template]]. The following should be set up:
 
* A http://projectname.osgeo.org domain name.
 
 
 
A project may optionally request SAC help to make use of:
 
* OSGeo issue tracker
 
* OSGeo mailing list
 
* OSGeo svn
 
* http://downloads.osgeo.org
 
 
 
[[Category: Incubation]]
 

Latest revision as of 03:15, 25 July 2018

Please note that this Wiki page is out of date. Find the current Checklist on the official OSGeo web site at: https://www.osgeo.org/resources/project-graduation-checklist/


Review Notes

The official copy of this document lives at http://www.osgeo.org/incubator/process/project_graduation_checklist.html

Document Status

This is the draft version of the stable document living at: http://www.osgeo.org/incubator/process/project_graduation_checklist.html

Version: TBD
Status: draft
Last Edited: TBD
Previous: 2.0

Purpose

The purpose of this checklist is to determine whether an Incubator Project produces quality products, remains true to its stated licence and is sustainable. Satisfying this checklist is a pre-requisite for graduation.

Terms and Definitions

Mentor
A member of the Incubation Committee chosen to assist a Project through the Incubation Process.
Institutionalized Process
A documented process which which addresses a need and is actively in use. It typically takes months before a process becomes institutionalized. A more detailed definition of institutionalization is found in the Capability Maturity Model (CMMI) - "Generic Goal 2: Institutionalize a Managed Process"
Open Source License
a license recognized by the Open Source Initiative

Incubation Checklist

Open

The project has demonstrated that it has an open, active and healthy user and developer community:

  1. [open.1] Open: projects are expected to function in an open and public manner and include:
    • [open.1a] Open source license(s),
    • [open.1b] Open communication channels,
    • [open.1c] Open decision making process,
  2. [open.2] Active and healthy community:
    • [open.2a] The project should have a community of developers and users who actively collaborate and support each other in a healthy way.
      Eg. collaboration on project activities such as testing, release and feature development.
    • [open.2b] Long term viability of the project is demonstrated by showing participation, support and direction from multiple developers, and/or power users, and/or sponsors, who come from multiple organisations.
      Eg. The project is resilient enough to sustain loss of a developer or supporting organisation, often referred to as having a high bus factor.
    • [open.2c] Decisions are made openly instead of behind closed doors, which empowers all developers to take ownership of the project and facilitates spreading of knowledge between current and future team members.
    • [open.2d] Users are supported and encouraged, via an email list or similar.
    • [open.2d] The project has a Code of Conduct.
      This may be a reference to the OSGeo Code of Conduct.

Copyright and License

We need to ensure that the project owns or otherwise has obtained the ability to release the project code by completing the following steps:

  1. [copyright.1] All project source code is available under an Open Source license.
  2. [copyright.2] Project documentation is available under an open license, such as Creative Commons.
  3. [copyright.3] [copyright.1] The project code, documentation and data has been adequately vetted to assure it is all properly licensed, and a copyright notice included, as per a Provenance Review.
  4. [copyright.4] The project maintains a list of all copyright holders identified in the Provenance Review Document.
  5. [copyright.5] All code contributors have agreed to abide by the project's license policy, and this agreement has been documented and archived.

Processes

  1. [processes.1] The project has code under configuration management.
    Eg, subversion, git.
  2. [processes.2] The project uses an issue tracker and keeps the status of the issue tracker up to date.
  3. [processes.3] The project has documented and follows its management processes.
    This is typically done within a Developers Guide or Project Management Plan.
    • [processes.3a] The project has a suitable open governance policy ensuring decisions are made, documented and adhered to in a public manner.
      This typically means a Project Management Committee has been established with a process for adding new members. A robust Project Management Committee will typically draw upon developers, users and key stakeholders from multiple organisations as there will be a greater variety of technical visions and the project is more resilient to a sponsor leaving.
    • [processes.3b] The project uses public communication channels for decision making to maintain transparency.
      E.g. archived email list(s), archived IRC channel(s), public issue tracker.

Documentation

  1. [documentation.1] The project has user documentation:
    • [documentation.1a] Including sufficient detail to guide a new user through performing the core functionality provided by the application.
  2. [documentation.2] The project has developer documentation:
    • [documentation.2a] Including checkout and build instructions.
    • [documentation.2b] Including commented code, ideally published for developer use.
      Examples: javadocs for Java applications, or Sphinx documentation for Python applications.
    • [documentation.2c] Providing sufficient detail for an experience programmer to contribute patches or a new module in accordance with the project's programming conventions.
  3. [documentation.3] The project has deployment documentation:
    • [documentation.3a] Including, where appropriate, how to deploy, configure and optimise the application.

Release Procedure

In order to maintain a consistent level of quality, the project should follow defined release and testing processes.

  1. [release.1] The project follows a defined release process:
    • [release.1a] Which supports both stable and development releases.
    • [release.1b] Which includes execution of the testing process before releasing a stable release.
  2. [release.2] The project follows a documented testing process.
    • [release.2a] Ideally, this includes both automated and manual testing.
    • [release.2b] Ideally this includes documented conformance to set quality goals, such as reporting Percentage Code Coverage of Unit Tests.
  3. [release.3] Release and testing processes provide sufficient detail for an experienced programmer to follow.
  4. [release.4] The project has released stable, feature complete releases.
    • Ideally this is demonstrated by describing risk adverse organisations who have deployed releases into production systems.

OSGeo Committees and Community

The OSGeo Foundation is made up of a number of committees, projects and local chapters. This section gathers up information these groups have requested from OSGeo projects. These expectations are not mandatory requirements before graduation, but a project should be prepared to address them in order to be considered a good OSGeo citizen.

Board

The OSGeo Board holds ultimate responsibility for all OSGeo activities. The Board requests:

  1. [board.1] A project provide a Project Officer as a contract point:
    • The Project Officer should be listed at: Project Officer
    • This person is established when the incubation committee recommends the project for graduation
    • Your community can change the project officer as needed (just add an agenda item to the next board meeting so they can recognise the change of officer).

Marketing

Access to OSGeo's Marketing_Committee and associated Marketing_Pipeline is one of the key benefits of joining the OSGeo foundation. The Marketing Committee requests:

  1. [marketing.1] Marketing artefacts have been created about the project in line with the incubation criteria listed in the OSGeo Marketing Committee's Marketing Artefacts. This lists the documentation requirements for OSGeo-Live. Marketing Artefacts include:
    • [marketing.1a] Application Overview
    • [marketing.1b] Application Quick Start
    • [marketing.1c] Logo
    • [marketing.1d] Graphical Image
  2. [marketing.2] Ideally, stable version(s) of executable applications are bundled with appropriate distributions.
    In most cases, this will at least include OSGeo-Live, but may also include DebianGIS, UbuntuGIS, and/or osgeo4w ms4w, etc.)
  3. [marketing.3] The project incorporates OSGeo branding, such as including an OSGeo logo on its website.
  4. [marketing.4] The project has been registered with Open HUB, and Open HUB has been updated to reference the correct code repository(s) for the project. Open HUB provides metrics to help assess the health of a project.

Projects

  1. [projects.1] Projects do not exist in isolation; and are expected to communicate and collaborate on key issues.
    As an example, the PostGIS release procedure asks that the release be checked with MapServer, GeoServer and others.
  2. [projects.2] Where applicable, projects are expected to interoperate effectively with other applications.
    • [projects.2a] Interoperability is preferably achieved by supporting relevant Open Standards.
    • [projects.2b] Where applicable, standards compliance is verified by executing compliance tests, such as provided by OGC CITE testing.