Answers.Body: <p>Noah - hi - am sure there will be better answers for this but this might help get the ball/conversation rolling. A lot of discussion about 'is this something that can go in core' happens on <a href="https://chat.civicrm.org/civicrm/channels/dev" rel="nofollow noreferrer">https://chat.civicrm.org/civicrm/channels/dev</a></p>
  
  <p>There is an ongoing debate about what new features should go in to core versus Extensions that ship with core, versus other Extensions.</p>
  
  <p>There is a real focus on tests coming with any new PR.</p>
  
  <p>If you aren't building it yourself? Well if you are commissioning the core team or one of the Partners then they will worry about such things on your behalf. If you are shipping the idea off to freelancer or some such then it is probably the same as if you are doing the dev, ie you are responsible for providing the tests and the arguments for why something should be a fix/add to core versus an extension.</p>
  
  <p>Other resources that might help you answer this more yourself, but expect you have already trawled for them but may be useful for others who read this</p>
  
  <ul>
  <li><p><a href="https://wiki.civicrm.org/confluence/display/CRMDOC/Develop" rel="nofollow noreferrer">https://wiki.civicrm.org/confluence/display/CRMDOC/Develop</a></p></li>
  <li><p><a href="https://docs.civicrm.org/dev/en/master/" rel="nofollow noreferrer">https://docs.civicrm.org/dev/en/master/</a></p></li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-03-13T23:46:36.420Z
Answers.LastActivityDate: 2017-03-13T23:46:36.420Z
Answers.UserDisplayName: petednz - fuzion
Body: <p>I have an idea for a small new feature. I think this feature would be useful to a significant portion of the Civi user community. I'm willing to build it. Is there a standard process for proposing my feature, getting approval (from the community? from the Civi core team?), and then developing it?</p>
  
  <p>(To give an example, I'd like to expose "Payment Processor" as a search criterion on the Find Contributions form. No change to the database schema, not a huge change to the UI, and probably not a lot of new code. This feature would probably be useful to a larger portion of the Civi community than just the client who requested it.)</p>
  
  <p>Is the process any different if I won't be building the feature myself?</p>
  
  <p>How is the process different for features of different sizes? (And how is it determined whether a feature is "big" or "small" -- or what constitutes a "new feature" versus an "improvement on an existing feature"?)</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-03-14T01:55:47.577Z
Comments.Text: IMO another good question here is "Is this a new feature, or a modification of an existing feature? How do I tell?" ... the feature you describe might be considered part of an existing feature, the "Find Contributions" form.
Comments.UserDisplayName: Chris Burgess
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-03-14T02:03:11.450Z
Comments.Text: @ChrisBurgess, good point. I edited the question to include that.
Comments.UserDisplayName: Noah Miller
Tags: <extension><developer><core>
Title: How should I go about proposing (and then possibly creating) a new CiviCRM feature?
ThreadText: # How should I go about proposing (and then possibly creating) a new CiviCRM feature?
  
  (Asked by: username_0 on 2017-03-13)
  
  I have an idea for a small new feature. I think this feature would be useful to a significant portion of the Civi user community. I'm willing to build it. Is there a standard process for proposing my feature, getting approval (from the community? from the Civi core team?), and then developing it?
  
  (To give an example, I'd like to expose "Payment Processor" as a search criterion on the Find Contributions form. No change to the database schema, not a huge change to the UI, and probably not a lot of new code. This feature would probably be useful to a larger portion of the Civi community than just the client who requested it.)
  
  Is the process any different if I won't be building the feature myself?
  
  How is the process different for features of different sizes? (And how is it determined whether a feature is "big" or "small" -- or what constitutes a "new feature" versus an "improvement on an existing feature"?)
  
  **Tags:** extension, developer, core
  
  > **Comments:**
  > **username_1**: IMO another good question here is "Is this a new feature, or a modification of an existing feature? How do I tell?" ... the feature you describe might be considered part of an existing feature, the "Find Contributions" form.  
  > **username_0**: @username_1, good point. I edited the question to include that.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2017-03-13. Score: 1
  
  username_0 - hi - am sure there will be better answers for this but this might help get the ball/conversation rolling. A lot of discussion about 'is this something that can go in core' happens on <https://chat.civicrm.org/civicrm/channels/dev>
  
  There is an ongoing debate about what new features should go in to core versus Extensions that ship with core, versus other Extensions.
  
  There is a real focus on tests coming with any new PR.
  
  If you aren't building it yourself? Well if you are commissioning the core team or one of the Partners then they will worry about such things on your behalf. If you are shipping the idea off to freelancer or some such then it is probably the same as if you are doing the dev, ie you are responsible for providing the tests and the arguments for why something should be a fix/add to core versus an extension.
  
  Other resources that might help you answer this more yourself, but expect you have already trawled for them but may be useful for others who read this
  
  * <https://wiki.civicrm.org/confluence/display/CRMDOC/Develop>
  * <https://docs.civicrm.org/dev/en/master/>
  
  
  ---
  
  