Pull Request Model - UrbanOS-Examples/TechnicalWorkingGroup GitHub Wiki
Nearly all projects that take code contributions from the community do so via "Pull Requests". This is literally a request to "pull" a changeset into the mainline code base. Some projects still do this by emailing patches to mailing lists or maintainers, but Github based projects tend to use the feature of the same name.
Although contributors are free to submit a Pull Request without first opening a Bug Report or Feature Request (Issue), we should strongly encourage people to open an Issue so it can be discussed with the core team first. The vast majority of feature requests for a successful project are denied because they are out of scope or at odds with the architecture of a project. Simply talking about a feature request before implementing it and submitting a Pull Request can save a large amount of wasted time and frustration for both contributors and the core team.
The process diagram below describes a typical workflow for accepting contributions to a project. It should be noted that a contributor could also be a member of the core team. In many projects, the core team follows the same process as any other contributor.