As CiviCRM evolves, we anticipate that significant improvements and additional functionality will be developed and contributed to the project by folks outside of the core engineering team. The following guidelines are a "first pass" at facilitating that process:
- Discuss the proposed functionality with member(s) of the core team (AND ideally share it with the community via the Forums, Developer Mailing List and/or by posting a specification on this wiki and soliciting feedback).
- Verify your willingness to provide support for the feature if applicable.
- Ensure that the code follows CiviCRM style and naming conventions as much as possible.
- Include AFL licensing and copyright notice in file header(s) as documented here.
- Post an issue to the Issue Tracker describing the feature or patch. Attach code files to the issue. (If you're working on a complex piece of functionality - it's best to create the specification on this wiki under Specifications - "OFFICIAL" Docs.)
- A member of the core team will review the code and either commit it to the repository or get back to you with questions / suggestions etc.