-
-
Notifications
You must be signed in to change notification settings - Fork 369
Project Graduation Checklist
Based on the OSGeo Project Graduation Checklist version 2.0.
This checklist is based on the pgRouting master branch at https://github.com/pgRouting/pgrouting/tree/main)
The project has demonstrated that it has an open, active and healthy user and developer community:
-
Open: projects are expected to function in an open and public manner and include:
- Open source license(s),
-
Open communication channels,
- Mailing /Discourse lists:
- Twitter: https://twitter.com/pgrouting
- Gitter: https://gitter.im/pgRouting/pgrouting
- GitHub Discussions: https://github.com/pgRouting/pgrouting/discussions
-
Open decision making process.
- A Project Steering Committee exists which was elected by the community on limesurvey. The official announcement is available here
-
Active and healthy community:
- 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.
- Release processes and guidelines are open and documented pgRouting How to make a release
- Bugs and features on GitHub at https://github.com/pgRouting/pgrouting/issues
- Discussion in mailing list, Gitter and GitHub discussions
- Long term viability of the project is demonstrated by showing participation and direction from multiple developers, who come from multiple organizations. Ex. The project is resilient enough to sustain loss of a developer or supporting organization, often referred to as having a high bus factor. 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.
- description of the developers
- List of contributors: https://github.com/pgRouting/pgrouting/graphs/contributors
- Various statistics (including number of contributors) for the project can be found at
- Professional support options are mentioned in:
- Decisions are made openly via mailing list: https://lists.osgeo.org/mailman/listinfo/pgRouting-dev
- PSC meetings are documented on NextCloud https://nextcloud.osgeo.org/apps/files/?dir=/pgRouting&fileid=6579998
- In support of an inclusive and welcoming community: the pgRouting code of conduct can always be found at https://github.com/pgRouting/pgrouting/blob/main/CODE_OF_CONDUCT.md
- The project receives many contributions/fixes through:
- GitHub. https://github.com/pgRouting/pgrouting/issues
- Google Summer of Code for new developers. https://github.com/pgRouting/pgrouting/wiki/Google-Summer-of-Code
- description of the developers
- 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.
We need to ensure that the project owns or otherwise has obtained the ability to release the project code by completing the following steps:
- All project source code is available under an Open Source license
- Link to license: https://github.com/pgRouting/pgrouting/blob/main/LICENSE
- Project documentation is available under an open license (e.g. Creative Commons)
- All documentation files are under Creative Commons License and mentioned on the Contribution Agreement
- The project code, documentation and data has been adequately vetted to assure it is all properly licensed, and a copyright notice
- The project maintains a list of all copyright holders identified in the Provenance Review Document
- All code contributors have agreed to abide by the project's license policy, and this agreement has been documented and archived
- Contributors & Contribution agreement: https://github.com/pgRouting/pgrouting/issues/2527
- All time contributors https://docs.pgrouting.org/3.6/en/pgRouting-introduction.html#individuals-in-alphabetical-order
- The project has code under configuration management (Eg, subversion, git.)
- Git: https://github.com/pgRouting/pgrouting
- The project uses an issue tracker and keeps the status of the issue tracker up to date
- GitHub issues: https://github.com/pgRouting/pgrouting/issues
- The project has documented its management processes. This is typically done within a Developers Guide or Project Management Plan.
- Developer's guide at https://docs.pgrouting.org/doxygen/
- Release packaging guide at
- 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 organizations as there will be a greater variety of technical visions and the project is more resilient to a sponsor leaving.
- The project uses public communication channels for decision making to maintain transparency.
- Decisions are made openly via mailing list: https://lists.osgeo.org/mailman/listinfo/pgRouting-dev
- The project has user documentation:
- Link: https://docs.pgrouting.org/latest/en/index.html
- Including sufficient detail to guide a new user through performing the core functionality provided by the application.
- Have the workshop: https://workshop.pgrouting.org/
- Have the OSM data converter: https://github.com/pgRouting/osm2pgrouting
- The project has developer documentation:
- https://docs.pgrouting.org/doxygen/
- Including checkout and build instructions.
- Including commented code, ideally published for developer use. Examples: Sphinx documentation for Python.
- with doxygen
- Providing sufficient detail for an experienced programmer to contribute patches or a new module in accordance with the project's programming conventions.
- Training videos. https://video.osgeo.org/c/pgrouting_gsoc/videos
- pgRouting Workshops. https://workshop.pgrouting.org/
- pgRouting Documentation. https://docs.pgrouting.org/latest/en/index.html
In order to maintain a consistent level of quality, the project should follow defined release and testing processes.
- The project follows a defined release process:
- Links:
- Which includes execution of the testing process before releasing a stable release
- Using GitHub Actions for CI testing on commits and pull requests to ensure proper testing and functionality*
- The project follows a documented testing process. Ideally, this includes both automated and manual testing. Ideally this includes documented conformance to set quality goals, such as reporting Percentage Code.
- Yes, automated testing through GitHub Actions
- Unit tests exist at https://github.com/pgRouting/pgrouting/tree/main/pgtap
- Release and testing processes provide sufficient detail for an experienced programmer to follow
- pgRouting How to make a release. https://github.com/pgRouting/pgrouting/wiki/pgRouting---How-to-make-a-release
- pgRouting Release Process Checklist. https://github.com/pgRouting/pgrouting/wiki/pgRouting-Release-Process-Checklist
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 OSGeo Board holds ultimate responsibility for all OSGeo activities. The Board requests:
- A project provide a Project Officer as primary contact
- Select a project officer: Vicky Vergara
- The Project Officer should be listed at Officers and Board of Directors and Contacts
- This person is established when the incubation committee recommends the project for graduation
- Your community can change the project officer as needed: YES
- Add an agenda item to the next board meeting so they can recognize the change of officer.
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 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:
- https://github.com/OSGeo/osgeo/tree/master/marketing/collateral/one-page-info/pgRouting
- Application
- Application Quick Start
- Logo
- Graphical Image
-
Ideally, stable version(s) of executable applications are bundled with appropriate distributions. In most cases, this will at least include OSGeoLive, but may also include DebianGIS, UbuntuGIS, and/or osgeo4w, ms4w, etc.)
- OSGeoLive
- DebianGIS https://salsa.debian.org/debian-gis-team/pgrouting
- Fedora https://src.fedoraproject.org/rpms/pgRouting
- Ubuntu https://packages.ubuntu.com/search?suite=all&searchon=names&keywords=pgrouting
- Cloud services:
- amazon: https://aws.amazon.com/blogs/database/vehicle-routing-optimization-with-amazon-aurora-postgresql-compatible-edition/
- google: https://cloud.google.com/sql/docs/postgres/extensions#postgresql-extensions-supported-by-cloud-sql
- microsoft: https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/introducing-support-for-pgrouting-and-plv8-extensions-in/ba-p/3552072
- Projects do not exist in isolation; and are expected to communicate and collaborate on key issues.
- We communicate with QGIS, PostGIS, PostgreSQL, MobilityDB and many others
- pgRouting has a plugin with QGIS
The System Administration Committee is available to help with infrastructure and facilities. Information for this committee is collected as part of the Project Graduation Checklist.
-
The following should be set up:
-
A https://pgrouting.osgeo.org domain name: the osgeo.org website should link to https://pgrouting.org/
-
A project may optionally request SAC help to make use
- OSGeo issue tracker: Not requested: issues are managed on GitHub
- OSGeo mailing list: exists already
- OSGeo svn: Not requested: pgrouting source code is managed on GitHub
- https://downloads.osgeo.org: Not requested: pgRouting releases are made available on GitHub