Anyone is able to make contributions to it because PIMF's development and source control is done through GitHub. Everybody can fix bugs and add features.
After submitting proposed changes to the project, the PIMF team will review the changes and make the decision to commit them to PIMF's core.
The pimf repository has multiple branches, each serving a specific purpose:
This is the PIMF release branch. Active development does not happen on this branch. This branch is only for the most recent, stable PIMF core code.
When you download PIMF, you are downloading directly from this master branch. Do not make pull requests to this branch.
This is the working development branch. All proposed code changes and contributions by the community are pulled into this branch. When you make a pull request to the PIMF project, this is the branch you want to pull-request into.
Once certain milestones have been reached and/or the PIMF team is happy with the stability and additional features of the current development branch, the changes in the develop branch are pulled into the master branch, thus creating and releasing the newest stable version of PIMF for the world to use.
GitHub pull requests are a great way for everyone in the community to contribute to the PIMF codebase.
Found a bug? Just fix it in your fork and submit a pull request. This will then be reviewed, and, if found as good, merged into the main repository.
In order to keep the codebase clean, stable and at high quality, even with so many people contributing, some guidelines are necessary for high-quality pull requests:
Unless they are immediate, documentation fixes relevant for old versions, pull requests should be sent to the develop branch only. Make sure to select that branch as target when creating the pull request (GitHub will not automatically select it.)
If you are adding a new feature or changing the API in any relevant way, this should be documented. The documentation files can be found directly in the core repository.
To keep old bugs from re-appearing and generally hold quality at a high level, the PIMF core is thoroughly unit-tested. Thus, when you create a pull request, it is expected that you unit test any new code you add.
For any bug you fix, you should also add regression tests to make sure the bug will never appear again. If you are unsure about how to write tests, the core team or other contributors will gladly help.