# CiviCRM 5.12.0
Released April 3, 2019
- **[Synopsis](#synopsis)**
- **[Features](#features)**
- **[Bugs resolved](#bugs)**
- **[Miscellany](#misc)**
- **[Credits](#credits)**
- **[Feedback](#feedback)**
## Synopsis
| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
| Fix security vulnerabilities? | |
| Change the database schema? | |
| Alter the API? | **yes** |
| Require attention to configuration options? | |
| Fix problems installing or upgrading to a previous version? | **yes** |
| Introduce features? | **yes** |
| Fix bugs? | **yes** |
## Features
### Core CiviCRM
- **CRM-21643 Missing Summary ([12337](https://github.com/civicrm/civicrm-core/pull/12337))**
## Bugs resolved
### Core CiviCRM
- **dev/report#7 fix trxn_date on bookkeeping report ([13571](https://github.com/civicrm/civicrm-core/pull/13571))**
- **reporting#8 - add thank-you dates to Contribution Summary/Detail reports ([13653](https://github.com/civicrm/civicrm-core/pull/13653))**
- **reporting#9: parity between getContactFields and getBasicContactFields ([13657](https://github.com/civicrm/civicrm-core/pull/13657))**
- **test for reporting#10 ([13678](https://github.com/civicrm/civicrm-core/pull/13678))**
- **reporting-11 - fix Soft Credit report with full group by ([13671](https://github.com/civicrm/civicrm-core/pull/13671))**
- **dev/core#397 Dedupe for Individual Birth Date Results in Error ([13538](https://github.com/civicrm/civicrm-core/pull/13538))**
- **dev/core#469 Fix Error on action 'Email - schedule/send via CiviMail' with multiple event names filter ([13539](https://github.com/civicrm/civicrm-core/pull/13539))**
- **dev/core#561 Upgrade age_asof_date to datepicker in search ([13704](https://github.com/civicrm/civicrm-core/pull/13704))**
- **dev/core#562 Remove free calls from Activity and Member sections of CRM ([13560](https://github.com/civicrm/civicrm-core/pull/13560))**
- **fixes core#580 - view all groups when appropriately permissioned ([13373](https://github.com/civicrm/civicrm-core/pull/13373))**
- **dev/core#631 - Enable 'add new' by default on merge screen ([13588](https://github.com/civicrm/civicrm-core/pull/13588))**
- **dev/core#644 fix from address before calling hook ([13776](https://github.com/civicrm/civicrm-core/pull/13776))**
- **dev/core#657 - Add filter for country on Repeat Contributions Report ([13432](https://github.com/civicrm/civicrm-core/pull/13432))**
- **dev/core#659 Catch payment processor exceptions, log, hide, do not return 500 error ([13796](https://github.com/civicrm/civicrm-core/pull/13796))**
- **fixes dev/core#683 Incorrectly encoded state and country names ([13591](https://github.com/civicrm/civicrm-core/pull/13591))**
- **dev/core#684 - Case Manager not updating correctly ([13528](https://github.com/civicrm/civicrm-core/pull/13528))**
- **dev/core#690 - Civi\API - Fix entity permission check for trusted calls ([13529](https://github.com/civicrm/civicrm-core/pull/13529))**
- **dev/core#691 Make default country optional on setting form ([13523](https://github.com/civicrm/civicrm-core/pull/13523))**
- **(dev/core#696) Changes to copied event phone and email reflects in or… ([13534](https://github.com/civicrm/civicrm-core/pull/13534))**
- **dev/core/issues/700, Show Qill when searched using contact id ([13549](https://github.com/civicrm/civicrm-core/pull/13549))**
- **(dev/core#705) Disabling Alphabetical Pager is not respected for cont… ([13592](https://github.com/civicrm/civicrm-core/pull/13592))**
- **dev/core#708, Fix Qill for Added by and Modified By ([13566](https://github.com/civicrm/civicrm-core/pull/13566))**
- **dev/core/issues/714, Inline edit should be disabled if user doesn't have edit group permission ([13573](https://github.com/civicrm/civicrm-core/pull/13573))**
- **/dev/core#716 - Add decimals in Contribution Amount on Repeat Contrib… ([13659](https://github.com/civicrm/civicrm-core/pull/13659))**
- **dev/core#720 [REF] refactor out components of contributionSummary function ([13607](https://github.com/civicrm/civicrm-core/pull/13607))**
- **dev/core#720 Remove median & mode stats from contribution summary in order to improve performance ([13630](https://github.com/civicrm/civicrm-core/pull/13630))**
- **dev/core#720 add unit test, remove legacy code style. ([13605](https://github.com/civicrm/civicrm-core/pull/13605))**
- **dev/core#735 Do not include product in search results if site has none ([13638](https://github.com/civicrm/civicrm-core/pull/13638))**
- **dev/core#739 Fix case detail report breaking when sorted by case type. ([13666](https://github.com/civicrm/civicrm-core/pull/13666))**
- **dev/core#742 Fix XML parasing by swapping & for , ([13654](https://github.com/civicrm/civicrm-core/pull/13654))**
- **dev/core#746 Add in unit tests to ensure that where clause is as is w… ([13685](https://github.com/civicrm/civicrm-core/pull/13685))**
- **dev/core#748 Move UPPER() from sql to php domain ([13732](https://github.com/civicrm/civicrm-core/pull/13732))**
- **dev/core#767 Add 'Cancelled / Refunded Date' and 'Cancellation / Refund Reason' ([13726](https://github.com/civicrm/civicrm-core/pull/13726))**
- **dev/core#769 - Fix for ZipArchive->open() PHP bug ([13728](https://github.com/civicrm/civicrm-core/pull/13728))**
- **dev/core#770 - View Case Activity page displays disabled custom fields ([13741](https://github.com/civicrm/civicrm-core/pull/13741))**
- **dev/core#790 - Exclue menubar on frontend pages ([13820](https://github.com/civicrm/civicrm-core/pull/13820))**
- **dev/core#801 Fix from email on PDF Letters, such as Thank You Letters. ([13825](https://github.com/civicrm/civicrm-core/pull/13825))**
- **(ops#878) (Fast)ArrayDecorator - Emit expected exception when using WP and strict PSR-16 ([13808](https://github.com/civicrm/civicrm-core/pull/13808))**
- **Remove mcrypt system status check ([13770](https://github.com/civicrm/civicrm-core/pull/13770))**
- **Fix api bug whereby 0 & '0' are not accepted as range parameters for BETWEEN ([13766](https://github.com/civicrm/civicrm-core/pull/13766))**
- **Render Note field tokens correctly - they are already HTML. ([13283](https://github.com/civicrm/civicrm-core/pull/13283))**
- **Extract getSearchSQLParts function ([13735](https://github.com/civicrm/civicrm-core/pull/13735))**
- **Convert activity_date_time field to datepicker and add support for url input ([13746](https://github.com/civicrm/civicrm-core/pull/13746))**
- **Speed up contribution results by removing join on civicrm_financial_type table when rendering search results. ([13720](https://github.com/civicrm/civicrm-core/pull/13720))**
- **Try and add data set example where email_on_hold / on_hold is NULL in… ([13765](https://github.com/civicrm/civicrm-core/pull/13765))**
- **Upgrade Karma version to latest version ([13751](https://github.com/civicrm/civicrm-core/pull/13751))**
- **Rationalise Activity api ACLs for consistency, to respect the hook & improve performance ([13664](https://github.com/civicrm/civicrm-core/pull/13664))**
- **Fix Custom post outer div class on event registration form ([13753](https://github.com/civicrm/civicrm-core/pull/13753))**
- **Clean up Payment.create function ([13690](https://github.com/civicrm/civicrm-core/pull/13690))**
- **fix broken logic in CRM_Utils_System_DrupalBase::formatResourceUrl() ([13400](https://github.com/civicrm/civicrm-core/pull/13400))**
- **Allow viewing of cancelled recurring contributions ([13745](https://github.com/civicrm/civicrm-core/pull/13745))**
- **Upgrader: Don't abort if state_province already exists ([13744](https://github.com/civicrm/civicrm-core/pull/13744))**
- **Fix the invocation of post hook for ParticipantPayment ensuring that … ([13739](https://github.com/civicrm/civicrm-core/pull/13739))**
- **Decommision getPartialPaymentTrxn function ([13718](https://github.com/civicrm/civicrm-core/pull/13718))**
- **Status of test contribution is not fetched on ThankYou page. ([13724](https://github.com/civicrm/civicrm-core/pull/13724))**
- **CiviCRM Membership Detail report, add column to display if membership is Primary or Inherited ([13736](https://github.com/civicrm/civicrm-core/pull/13736))**
- **Mark de.systopia.recentitems obsolete ([13729](https://github.com/civicrm/civicrm-core/pull/13729))**
- **Upgrade PHPWord ([13686](https://github.com/civicrm/civicrm-core/pull/13686))**
- **Migrate date field to datepicker on ChangeCaseType form ([13701](https://github.com/civicrm/civicrm-core/pull/13701))**
- **Move assign of currency for entityForm outside of foreach so order of fields don't matter ([13696](https://github.com/civicrm/civicrm-core/pull/13696))**
- **Fix & test searchQuery order by to be less dependent on what is selected for search ([13680](https://github.com/civicrm/civicrm-core/pull/13680))**
- **Add pseudoconstant for payment_processor_id to contributionrecur ([13702](https://github.com/civicrm/civicrm-core/pull/13702))**
- **Phase out CIVICRM_TEMP_FORCE_UTF8 ([13658](https://github.com/civicrm/civicrm-core/pull/13658))**
- **Extract record refund function ([13694](https://github.com/civicrm/civicrm-core/pull/13694))**
- **Migrate KAM smartmenus to core ([13582](https://github.com/civicrm/civicrm-core/pull/13582))**
- **Move pear/mail from packages to composer.json ([13289](https://github.com/civicrm/civicrm-core/pull/13289))**
- **Do not attempt to store out-of-range street number ([13340](https://github.com/civicrm/civicrm-core/pull/13340))**
- **Use CRM_Utils_SQL_TempTable to drop and create table. ([13688](https://github.com/civicrm/civicrm-core/pull/13688))**
- **Record change log entry when contact is moved to or restored from trash ([13276](https://github.com/civicrm/civicrm-core/pull/13276))**
- **geocode job: Do not return more messages than can fit in the log data column ([13346](https://github.com/civicrm/civicrm-core/pull/13346))**
- **Towards supporting EntityForm for 'View Action' ([13578](https://github.com/civicrm/civicrm-core/pull/13578))**
- **only set custom field to null if it is really null, not string 'null' ([13042](https://github.com/civicrm/civicrm-core/pull/13042))**
- **CiviMail: Fix reply forwarding for mailers with From: and Return-path: limitations ([12641](https://github.com/civicrm/civicrm-core/pull/12641))**
- **CRM/Logging - Fix various bugs in schema parsing ([13441](https://github.com/civicrm/civicrm-core/pull/13441))**
- **Force utf8mb4 query to throw exception as the check expects ([13682](https://github.com/civicrm/civicrm-core/pull/13682))**
- **Payment notification formatting, move greeting into table ([13669](https://github.com/civicrm/civicrm-core/pull/13669))**
- **CRM/Logging - Fix log table exceptions ([13675](https://github.com/civicrm/civicrm-core/pull/13675))**
- **Switch additional payment form to use Payment.sendconfirmation api ([13649](https://github.com/civicrm/civicrm-core/pull/13649))**
- **Update Payment Notification to use greeting, remove text to 'Please print this confirmation for your records. ([13655](https://github.com/civicrm/civicrm-core/pull/13655))**
- **Payment.sendconfirmation api - add further tpl variables. ([13610](https://github.com/civicrm/civicrm-core/pull/13610) and [13609](https://github.com/civicrm/civicrm-core/pull/13609))**
- **Remove another instance of 'lower' ([13636](https://github.com/civicrm/civicrm-core/pull/13636))**
- **Fix html2pdf default PDF format when multiple pdf_format are available. ([13543](https://github.com/civicrm/civicrm-core/pull/13543))**
- ** EntityRef - standardize on PascalCase for entity name and fix minor bug ([13631](https://github.com/civicrm/civicrm-core/pull/13631))**
- **Contribution/ContributionRecur metadata updates for EntityForm ([13579](https://github.com/civicrm/civicrm-core/pull/13579))**
- **Standardize format for entityRef create links ([13628](https://github.com/civicrm/civicrm-core/pull/13628))**
- **Always load recaptcha JS over HTTPS ([13601](https://github.com/civicrm/civicrm-core/pull/13601))**
- **If a profile is used to create a contact with a subtype the contact will not have any existing subtypes ([13499](https://github.com/civicrm/civicrm-core/pull/13499))**
- **Fix (sometimes serious) performance problem on submitting profiles for specified contacts ([13606](https://github.com/civicrm/civicrm-core/pull/13606))**
- **Move l10n.js to coreResourcesList ([13612](https://github.com/civicrm/civicrm-core/pull/13612))**
- **Add install and runtime status warnings if MySQL utf8mb4 is not supported ([13425](https://github.com/civicrm/civicrm-core/pull/13425))**
- **Add in Exception API to support the refactor of Dedupe Exception Page ([13611](https://github.com/civicrm/civicrm-core/pull/13611))**
- **Add new Payment.sendconfirmation api ([13561](https://github.com/civicrm/civicrm-core/pull/13561))**
- **Find Contributions columns/headers not aligned when "Contributions OR Soft Credits?" filter set to "Soft Credits Only" ([13517](https://github.com/civicrm/civicrm-core/pull/13517))**
- **Improves styling on Joomla! upgrade screen ([13557](https://github.com/civicrm/civicrm-core/pull/13557))**
- **Remove activitystatus js. Add submitOnce handler for activity create ([13342](https://github.com/civicrm/civicrm-core/pull/13342))**
- **Bump minimum upgradable ver to 4.2.9 ([13580](https://github.com/civicrm/civicrm-core/pull/13580))**
- **Remove hurty free calls from campaign and case ([13564](https://github.com/civicrm/civicrm-core/pull/13564))**
- **Fix contact ID help on advanced search ([13569](https://github.com/civicrm/civicrm-core/pull/13569))**
- **Used buildoptions function to get all groups ([13327](https://github.com/civicrm/civicrm-core/pull/13327))**
- **Show Add to group on create new report after refresh of result ([13404](https://github.com/civicrm/civicrm-core/pull/13404))**
- **Optimize CRM_Core_BAO_FinancialTrxn::getTotalPayment ([13187](https://github.com/civicrm/civicrm-core/pull/13187))**
- **CRM.loadScript improvements ([13555](https://github.com/civicrm/civicrm-core/pull/13555))**
- **Make submitOnce() button js into a button parameter ([13333](https://github.com/civicrm/civicrm-core/pull/13333))**
- **Port fix for dev/core#381 to custom file field handler file ([564](https://github.com/civicrm/civicrm-drupal/pull/564))**
- **Make address Supplemental line 3 available to views ([551](https://github.com/civicrm/civicrm-drupal/pull/551))**
- **CMS path fix in wp-cli ([147](https://github.com/civicrm/civicrm-wordpress/pull/147))**
- **Remove old menu plugin ([240](https://github.com/civicrm/civicrm-packages/pull/240))**
- **"Only variable references should be returned by reference" notice in Mail_smtp ([220](https://github.com/civicrm/civicrm-packages/pull/220))**
## Miscellany
- **[Test changes] Mailing job test use
([13629](https://github.com/civicrm/civicrm-core/pull/13629))**
- **Code cleanup - remove extraneous permissions clause
([13645](https://github.com/civicrm/civicrm-core/pull/13645))**
- **Fix typo in comments
([13771](https://github.com/civicrm/civicrm-core/pull/13771))**
- **Removes redundant IF
([13769](https://github.com/civicrm/civicrm-core/pull/13769))**
- **(NFC) formatting changes
([148](https://github.com/civicrm/civicrm-wordpress/pull/148))**
- **report clean up - remove redundant code
([13761](https://github.com/civicrm/civicrm-core/pull/13761))**
- **Fix typo and space
([13577](https://github.com/civicrm/civicrm-core/pull/13577))**
- **[minor cleanup] reduce params passed to searchQuery
([13715](https://github.com/civicrm/civicrm-core/pull/13715))**
- **[TEST FIX] Increase uniqueness in testSingleNowDates
([13705](https://github.com/civicrm/civicrm-core/pull/13705))**
- **Revert "[REF] Extract record refund function"
([13693](https://github.com/civicrm/civicrm-core/pull/13693))**
- **Minor code cleanup
([13687](https://github.com/civicrm/civicrm-core/pull/13687))**
- **[NFC, test class] formatting, remove unused variables
([13634](https://github.com/civicrm/civicrm-core/pull/13634))**
- **Authorizenet test - reduce chance of intermittent fails
([13642](https://github.com/civicrm/civicrm-core/pull/13642))**
- **[unused code cleanup] Remove unused 'signupType' url support
([13620](https://github.com/civicrm/civicrm-core/pull/13620))**
- **[Test support] Add extra output info when getsingle fails as this seems to
be common in intermittant fails
([13618](https://github.com/civicrm/civicrm-core/pull/13618))**
- **Remove tests that no longer work due to dead service
([13617](https://github.com/civicrm/civicrm-core/pull/13617))**
- **Refactor CRM_Utils_SQL_TempTable::build()->createWithQuery($sql) interface
to support MEMORY tabls
([13644](https://github.com/civicrm/civicrm-core/pull/13644))**
- **REF Convert deprecated functions to buildOptions for case
([13364](https://github.com/civicrm/civicrm-core/pull/13364))**
- **[REF] Extract record refund function
([13691](https://github.com/civicrm/civicrm-core/pull/13691))**
- **[REF] Extract getSearchSQL from getSearchQuery.
([13668](https://github.com/civicrm/civicrm-core/pull/13668))**
- **[REF] minor code cleanup - do not build order var just to hurt brains
([13650](https://github.com/civicrm/civicrm-core/pull/13650))**
- **[REF] minor cleanup of groupBy definition.
([13656](https://github.com/civicrm/civicrm-core/pull/13656))**
- **[REF] extract add median to stats
([13616](https://github.com/civicrm/civicrm-core/pull/13616))**
- **[REF] extract cancelled stats to own function
([13626](https://github.com/civicrm/civicrm-core/pull/13626))**
- **[REF] Move entityRef filters into their respective BAOs
([13625](https://github.com/civicrm/civicrm-core/pull/13625))**
- **[REF] extract basic soft credit stats to separate function
([13622](https://github.com/civicrm/civicrm-core/pull/13622))**
- **[REF] Remove unused function parameter
([13619](https://github.com/civicrm/civicrm-core/pull/13619))**
- **[REF] Extract lines to add the pseudoconstant to the select
([13717](https://github.com/civicrm/civicrm-core/pull/13717))**
- **[REF] extract calculation of mode stat
([13614](https://github.com/civicrm/civicrm-core/pull/13614))**
- **[REF] extract calculation of basic stats
([13608](https://github.com/civicrm/civicrm-core/pull/13608))**
- **[REF] Move addSelectWhere-like function to be located on BAO_Contribution
([13587](https://github.com/civicrm/civicrm-core/pull/13587))**
- **[REF] Fix silly function to do less handling of non-existent scenarios
([13563](https://github.com/civicrm/civicrm-core/pull/13563))**
- **[REF] extract chunk of code to a separate function
([13600](https://github.com/civicrm/civicrm-core/pull/13600))**
- **[REF} User api rather than selector for rendering contributions on user
dashboard ([13584](https://github.com/civicrm/civicrm-core/pull/13584))**
- **[REF] switch from (undeclared) class property to local variable.
([13583](https://github.com/civicrm/civicrm-core/pull/13583))**
- **[REF] Minor readability cleanup
([13562](https://github.com/civicrm/civicrm-core/pull/13562))**
- **[REF] Remove useless class CRM_Report_Form_Event
([13632](https://github.com/civicrm/civicrm-core/pull/13632))**
- **[REF] extract getToFinancialAccount from
CRM_Contribute_PseudoConstantt::contributionStatus
([13757](https://github.com/civicrm/civicrm-core/pull/13757))**
- **[ref] Extract activity payment creation
([13695](https://github.com/civicrm/civicrm-core/pull/13695))**
- **[REF] separate financial handling & component transitioning in
Payment.create ([13756](https://github.com/civicrm/civicrm-core/pull/13756))**
- **[REF] towards cleanup of update membership code
([13759](https://github.com/civicrm/civicrm-core/pull/13759))**
- **(REF) Rename variables and adjust variable definitions for Event Register
form ([13287](https://github.com/civicrm/civicrm-core/pull/13287))**
- **[REF] Extract recordPayment portion
([13692](https://github.com/civicrm/civicrm-core/pull/13692))**
- **[REF] minor refactor around retrieving processor id for recur
([13643](https://github.com/civicrm/civicrm-core/pull/13643))**
- **[code cleanup] Default wrong declared
([13621](https://github.com/civicrm/civicrm-core/pull/13621))**
- **[Code cleanup] Remove unused $stationery_path parameter
([13624](https://github.com/civicrm/civicrm-core/pull/13624))**
- **Remove long block of commented out code from 4 years ago
([13623](https://github.com/civicrm/civicrm-core/pull/13623))**
- **Add unit test on getContributionBalance fn (#13187)
([13558](https://github.com/civicrm/civicrm-core/pull/13558))**
## Credits
This release was developed by the following code authors:
AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel; Alexy Mikhailichenko; Australian Greens - Seamus Lee; avall-llovera; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Electronic Frontier Foundation - Mark Burdett; Francesc Bassas i Bullich; Fuzion - Jitendra Purohit; GreenPeace Central and Eastern Europe - Patrick Figel; JMA Consulting - Edsel Lopez, Monish Deb; Ken West; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich; Pradeep Nayak; Skvare - Mark Hanna; Squiffle Consulting - Aidan Saunders; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
Justin Freeman; Circle Interactive - Dave Jenkins; CiviDesk - Sunil Pawar; Dave D; Fuzion - Peter Davis; JMA Consulting - Joe Murray; Luna Design - Andrew Wasson; MJCO - Mikey O'Toole; mwestergaard; Progressive Technology Project - Jamie McClelland; reecebenson; Richard van Oosterhout; Tadpole Collective - Kevin Cristiano; Third Sector Design - Michael McAndrew
## Feedback
These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
and contact `@agh1`.