The OpenCPN Development Community
General
So, you are thinking about joining the OpenCPN project? You are most welcome! There are many ways to participate, most of which not requiring programming skills — see TBD.
This manual is about contributing to the code.
OpenCPN is an open-source project. The core parts uses a GPL version 2 or later license (GPLv2+), but there are a lot of other licenses in dependencies used. Contributions to the project must be licensed under an open-source license, normally GPLv2+.
The starting point for developer activities is in many cases the OpenCPN forum at FlySpray. Here, end-user reports problems and sometimes also submits enhancement requests (RFEs).
The core OpenCPN project
For the core OpenCPN project development work is done on the OpenCPN Github site. Github issues are filed for more specific problems or RFEs. Pull requests (PR) is the way used to include patches and new functionality into the program.
The project has no common communication channel lika a mailing list or a developer forum; the core synchronization tool is Github issues.
Dave (@bdbcat) is the lead developer and makes decisions on if/when/how to merge a PR. Also Pavel (@nohal) has commit rights in the project. There are no formal roles besides these.
To contact the project as a developer, filing issues and/or making comments on existing ones is the easiest way to join the community.
Plugins
The community also has a vast number of Plugins on Github. Development of plugins is highly de-centralized and each plugin effectively forms a separate community. Also plugins tends to use Github issues and PR to synchronize work and submit code.