4.7.28 release notes: partway through bugs
authorAndrew Hunt <andrew@aghstrategies.com>
Tue, 5 Dec 2017 22:58:44 +0000 (17:58 -0500)
committerAndrew Hunt <andrew@aghstrategies.com>
Wed, 6 Dec 2017 05:37:09 +0000 (00:37 -0500)
contributor-key.yml
release-notes/4.7.28.md

index d1a4b2f33b36b519b57aa51c4dd43336f5887eef..f3dcb1533c6ac3b043db71668abd354e7aa1173f 100644 (file)
 - name        : Daniel Martinez
   jira        : danielmart
 
+- github      : DanielvV
+  name        : Daniël van Vuuren
+
 - github      : darrick
   name        : Darrick Servis
   organization: Davis Media Access
   organization: JMA Consulting
   jira        : monish.deb
 
+- github      : mukeshcompucorp
+  name        : Mukesh Ram
+  organization: CompuCorp
+
 - name        : Nathan Brettell
   jira        : nathan_b
 
index c602f0a8bc7c031450aad1f699ea5ed3c485a5c3..e932a13d4f5335af700beb85d5b19a975298d97f 100644 (file)
@@ -13,8 +13,8 @@ Released December 6, 2017
 | *Does this version...?*                                     |         |
 |:----------------------------------------------------------- |:-------:|
 | Fix security vulnerabilities?                               |         |
-| Change the database schema?                                 |         |
-| Alter the API?                                              |         |
+| **Change the database schema?**                             | **yes** |
+| **Alter the API?**                                          | **yes** |
 | Require attention to configuration options?                 |         |
 | Fix problems installing or upgrading to a previous version? |         |
 | **Introduce features?**                                     | **yes** |
@@ -94,6 +94,14 @@ Released December 6, 2017
   Smart Groups with Public Pages visibility are now available for users to join
   them through the User Dashboard.
 
+- **[CRM-21379](https://issues.civicrm.org/jira/browse/CRM-21379) Fix Activity
+  dashlet issues ([11221](https://github.com/civicrm/civicrm-core/pull/11221))**
+
+  The Activities dashlet now has the option to display all activities regardless
+  of status.  The default is the legacy behavior of only displaying scheduled
+  activities.  Legacy users should note that the default order is reversed, with
+  the newest activities displayed first.
+
 ### CiviCase
 
 - **[CRM-20078](https://issues.civicrm.org/jira/browse/CRM-20078) Activity card -
@@ -106,9 +114,13 @@ Released December 6, 2017
 
 ### CiviContribute
 
-- **[CRM-20868](https://issues.civicrm.org/jira/browse/CRM-20868) set
+- **[CRM-20868](https://issues.civicrm.org/jira/browse/CRM-20868),
+  [CRM-21480](https://issues.civicrm.org/jira/browse/CRM-21480), and
+  [CRM-21479](https://issues.civicrm.org/jira/browse/CRM-21479) set
   invoice_number at contribution->create, not invoice creation
-  ([10681](https://github.com/civicrm/civicrm-core/pull/10681))**
+  ([10681](https://github.com/civicrm/civicrm-core/pull/10681),
+  [11341](https://github.com/civicrm/civicrm-core/pull/11341), and
+  [11321](https://github.com/civicrm/civicrm-core/pull/11321))**
 
   Every contribution now comes with an invoice number regardless of whether an
   invoice has been generated.
@@ -173,11 +185,19 @@ Released December 6, 2017
   recipient field isn't marked as required
   ([11185](https://github.com/civicrm/civicrm-core/pull/11185))**
 
-- **[CRM-21508](https://issues.civicrm.org/jira/browse/CRM-21508) civicrm_mailing.created_date information passed to Doctor When is incorrect ([11361](https://github.com/civicrm/civicrm-core/pull/11361))**
+- **[CRM-21508](https://issues.civicrm.org/jira/browse/CRM-21508)
+  civicrm_mailing.created_date information passed to Doctor When is incorrect
+  ([11361](https://github.com/civicrm/civicrm-core/pull/11361))**
+
+  The mailing date would default to the current timestamp when null.
 
-- **[CRM-21411](https://issues.civicrm.org/jira/browse/CRM-21411) When Sending a CiviMail from an advanced search no unsubscribe group field shows ([11258](https://github.com/civicrm/civicrm-core/pull/11258))**
+- **[CRM-21411](https://issues.civicrm.org/jira/browse/CRM-21411) When Sending a
+  CiviMail from an advanced search no unsubscribe group field shows
+  ([11258](https://github.com/civicrm/civicrm-core/pull/11258))**
 
-- **[CRM-21284](https://issues.civicrm.org/jira/browse/CRM-21284) Outdated link to mail setup documentation ([11104](https://github.com/civicrm/civicrm-core/pull/11104))**
+- **[CRM-21284](https://issues.civicrm.org/jira/browse/CRM-21284) Outdated link
+  to mail setup documentation
+  ([11104](https://github.com/civicrm/civicrm-core/pull/11104))**
 
 ### Core CiviCRM
 
@@ -196,77 +216,98 @@ Released December 6, 2017
   The French overseas departments Wallis-et-Futuna and Nouvelle-Calédonie are
   now available in the State/Province list.
 
-- **Fix for mysql 5.7 crash due to not adding ANY_VALUE ([11346](https://github.com/civicrm/civicrm-core/pull/11346))**
-
-- **[CRM-21455](https://issues.civicrm.org/jira/browse/CRM-21455) Intra-rc regression supportsFullGroupBy: MariaDB 10.2 does not support ANY_VALUE ([11339](https://github.com/civicrm/civicrm-core/pull/11339))**
-
-- **[CRM-21480](https://issues.civicrm.org/jira/browse/CRM-21480) INTRA-rc regression 4.7.28-rc: updateContributionInvoiceNumber: fails on MariaDB 10.2 strict (default) mode: 'Truncated incorrect DOUBLE value' ([11341](https://github.com/civicrm/civicrm-core/pull/11341))**
-
-- **[CRM-21481](https://issues.civicrm.org/jira/browse/CRM-21481) 4.7.28-rc: needs to call rebuildMultilingualSchema() ([11322](https://github.com/civicrm/civicrm-core/pull/11322))**
-
-- **[CRM-21479](https://issues.civicrm.org/jira/browse/CRM-21479) 4.7.28-rc: updateContributionInvoiceNumber() syntax error ([11321](https://github.com/civicrm/civicrm-core/pull/11321))**
-
-- **[CRM-21436](https://issues.civicrm.org/jira/browse/CRM-21436) Fatal error on contribution page with only pay later enabled. ([11286](https://github.com/civicrm/civicrm-core/pull/11286))**
-
-- **[CRM-21363](https://issues.civicrm.org/jira/browse/CRM-21363) Ensure that tests run using ONLY_FULL_GROUP_BY sql_mode for mysql 5.7 ([11249](https://github.com/civicrm/civicrm-core/pull/11249) and [10934](https://github.com/civicrm/civicrm-core/pull/10934))**
+- **[CRM-21481](https://issues.civicrm.org/jira/browse/CRM-21481) 4.7.28-rc:
+  needs to call rebuildMultilingualSchema()
+  ([11322](https://github.com/civicrm/civicrm-core/pull/11322))**
 
-- **[CRM-21364](https://issues.civicrm.org/jira/browse/CRM-21364) Fix Tests which fail on ONLY_FULL_GROUP_BY ([11229](https://github.com/civicrm/civicrm-core/pull/11229), [11219](https://github.com/civicrm/civicrm-core/pull/11219), and [11209](https://github.com/civicrm/civicrm-core/pull/11209))**
+  The introduction of multilingual columns means that the multilingual schema
+  must be rebuilt.  Otherwise, multilingual sites will encounter an error when
+  upgrading.
 
-- **[CRM-21388](https://issues.civicrm.org/jira/browse/CRM-21388) Extension Page should only throw exception if key is set ([11234](https://github.com/civicrm/civicrm-core/pull/11234))**
+- **[CRM-21363](https://issues.civicrm.org/jira/browse/CRM-21363) and
+  [CRM-21455](https://issues.civicrm.org/jira/browse/CRM-21455) Ensure that
+  tests run using ONLY_FULL_GROUP_BY sql_mode for mysql 5.7
+  ([11249](https://github.com/civicrm/civicrm-core/pull/11249),
+  [10934](https://github.com/civicrm/civicrm-core/pull/10934),
+  [11339](https://github.com/civicrm/civicrm-core/pull/11339), and
+  [11346](https://github.com/civicrm/civicrm-core/pull/11346))**
 
-- **Fix Recurring contribution sql so that it doesen't use group by as th… ([11231](https://github.com/civicrm/civicrm-core/pull/11231))**
+- **[CRM-21364](https://issues.civicrm.org/jira/browse/CRM-21364) Fix Tests
+  which fail on ONLY_FULL_GROUP_BY
+  ([11229](https://github.com/civicrm/civicrm-core/pull/11229),
+  [11219](https://github.com/civicrm/civicrm-core/pull/11219), and
+  [11209](https://github.com/civicrm/civicrm-core/pull/11209))**
 
-- **[CRM-21379](https://issues.civicrm.org/jira/browse/CRM-21379) Fix Activity dashlet issues ([11221](https://github.com/civicrm/civicrm-core/pull/11221))**
+  This resolves a variety of problems that may occur if the MySQL `sql_mode` is
+  set to `ONLY_FULL_GROUP_BY`.
 
-- **HW-382: Moved help section outside of block ([11220](https://github.com/civicrm/civicrm-core/pull/11220))**
+- **[CRM-21388](https://issues.civicrm.org/jira/browse/CRM-21388) Extension Page
+  should only throw exception if key is set
+  ([11234](https://github.com/civicrm/civicrm-core/pull/11234))**
 
-- **[CRM-20934](https://issues.civicrm.org/jira/browse/CRM-20934) Child groups not present in group list selector ([10717](https://github.com/civicrm/civicrm-core/pull/10717))**
+  When checking that an extension's key follows the expected standard, the
+  extension page should not throw an exception if the key is blank or missing.
 
-- **[CRM-21373](https://issues.civicrm.org/jira/browse/CRM-21373) Notice error on creating cases ([11217](https://github.com/civicrm/civicrm-core/pull/11217))**
+- **[CRM-20934](https://issues.civicrm.org/jira/browse/CRM-20934) Child groups
+  not present in group list selector
+  ([10717](https://github.com/civicrm/civicrm-core/pull/10717))**
 
-- **[CRM-21255](https://issues.civicrm.org/jira/browse/CRM-21255) Error when downloading document from case activity ([11186](https://github.com/civicrm/civicrm-core/pull/11186))**
+  This resolves a problem where having a disabled parent group would prevent a
+  group from appearing in a group selection field even if another parent group
+  is active.
 
-- **[CRM-21351](https://issues.civicrm.org/jira/browse/CRM-21351) Contact deceased date does not respect the localisation date format ([11200](https://github.com/civicrm/civicrm-core/pull/11200))**
+- **[CRM-21351](https://issues.civicrm.org/jira/browse/CRM-21351) Contact
+  deceased date does not respect the localisation date format
+  ([11200](https://github.com/civicrm/civicrm-core/pull/11200))**
 
-- **[CRM-21321](https://issues.civicrm.org/jira/browse/CRM-21321) Membership fields not loading in 'On behalf of' profile ([11148](https://github.com/civicrm/civicrm-core/pull/11148))**
+- **[CRM-21306](https://issues.civicrm.org/jira/browse/CRM-21306) DoctorWhen
+  extension looses the comments from columns when converting
+  ([11129](https://github.com/civicrm/civicrm-core/pull/11129))**
 
-- **[CRM-21339](https://issues.civicrm.org/jira/browse/CRM-21339) Fix fatal js error on cart checkout when pay later not enabled ([11170](https://github.com/civicrm/civicrm-core/pull/11170))**
+  When replacing columns to resolve date fields, Doctor When now restores the
+  field comments to the database.
 
-- **CRM - 21340 using civi function to get contact id because it is cms agnostic ([11172](https://github.com/civicrm/civicrm-core/pull/11172))**
+- **[CRM-21337](https://issues.civicrm.org/jira/browse/CRM-21337) ISO compliance
+  for Romanian and Bulgarian counties
+  ([11168](https://github.com/civicrm/civicrm-core/pull/11168))**
 
-- **[CRM-21009](https://issues.civicrm.org/jira/browse/CRM-21009) Removing event selection from participant does not free up capacity ([10805](https://github.com/civicrm/civicrm-core/pull/10805))**
+  This fixes the spelling of a Bulgarian province and a number of Romanian
+  counties in the state/province list.
 
-- **[CRM-21306](https://issues.civicrm.org/jira/browse/CRM-21306) DoctorWhen extension looses the comments from columns when converting ([11129](https://github.com/civicrm/civicrm-core/pull/11129))**
+- **[CRM-21267](https://issues.civicrm.org/jira/browse/CRM-21267) Error 500 -
+  Call to undefined method CRM_Contact_Import_Parser::formatCustomDate
+  ([11124](https://github.com/civicrm/civicrm-core/pull/11124))**
 
-- **[CRM-21337](https://issues.civicrm.org/jira/browse/CRM-21337) ISO compliance for Romanian and Bulgarian counties ([11168](https://github.com/civicrm/civicrm-core/pull/11168))**
+  Some code reorganization resulted in a method being called from within the
+  wrong class during import of custom date fields, resulting in a fatal error.
+  This calls it correctly.
 
-- **[CRM-21203](https://issues.civicrm.org/jira/browse/CRM-21203) cli.php PHP error prevents cron jobs from running ([11062](https://github.com/civicrm/civicrm-core/pull/11062))**
+- **Navigation - Fix serialization error
+  ([11107](https://github.com/civicrm/civicrm-core/pull/11107))**
 
-- **[CRM-21305](https://issues.civicrm.org/jira/browse/CRM-21305) Sorting not working on Batch listing page ([11127](https://github.com/civicrm/civicrm-core/pull/11127))**
+- **[CRM-19346](https://issues.civicrm.org/jira/browse/CRM-19346) gender_id
+  uniqueness not enforced on option groups edit form
+  ([11089](https://github.com/civicrm/civicrm-core/pull/11089))**
 
-- **[CRM-21267](https://issues.civicrm.org/jira/browse/CRM-21267) Error 500 - Call to undefined method CRM_Contact_Import_Parser::formatCustomDate ([11124](https://github.com/civicrm/civicrm-core/pull/11124))**
+  Now each value in an option group must be unique.
 
-- **Navigation - Fix serialization error ([11107](https://github.com/civicrm/civicrm-core/pull/11107))**
+- **[CRM-21214](https://issues.civicrm.org/jira/browse/CRM-21214) Chaining
+  shared addresses doesn't work correctly
+  ([11019](https://github.com/civicrm/civicrm-core/pull/11019))**
 
-- **[nfc] Fix missing comma for phpcs ([11119](https://github.com/civicrm/civicrm-core/pull/11119))**
+  This prevents complex address inheritance cases such as second-degree address
+  sharing and recursive address sharing.
 
-- **4.7.26 rc ([11111](https://github.com/civicrm/civicrm-core/pull/11111))**
+- **[CRM-20779](https://issues.civicrm.org/jira/browse/CRM-20779) Incorrect
+  files showing in Tab for custom field
+  ([11082](https://github.com/civicrm/civicrm-core/pull/11082))**
 
-- **HW-381: Added container block to wrap elements ([11096](https://github.com/civicrm/civicrm-core/pull/11096))**
+  On file custom fields in multiple-entry custom data sets, the first entry's
+  file would display for all entries.
 
-- **[CRM-21281](https://issues.civicrm.org/jira/browse/CRM-21281) Post Hook for LineItem does not receive entity_id and entity_table  ([11108](https://github.com/civicrm/civicrm-core/pull/11108) and [11097](https://github.com/civicrm/civicrm-core/pull/11097))**
-
-- **[CRM-19346](https://issues.civicrm.org/jira/browse/CRM-19346) gender_id uniqueness not enforced on option groups edit form ([11089](https://github.com/civicrm/civicrm-core/pull/11089))**
-
-- **[CRM-21214](https://issues.civicrm.org/jira/browse/CRM-21214) Chaining shared addresses doesn't work correctly ([11019](https://github.com/civicrm/civicrm-core/pull/11019))**
-
-- **[CRM-20779](https://issues.civicrm.org/jira/browse/CRM-20779) Incorrect files showing in Tab for custom field ([11082](https://github.com/civicrm/civicrm-core/pull/11082))**
-
-- **[CRM-20468](https://issues.civicrm.org/jira/browse/CRM-20468) Attachment.create API HTML escapes the uploaded content ([10876](https://github.com/civicrm/civicrm-core/pull/10876))**
-
-- **4.7.26 rc ([11083](https://github.com/civicrm/civicrm-core/pull/11083))**
-
-- **(NFC) Add in test of current practice in updating multiselect custom data ([11081](https://github.com/civicrm/civicrm-core/pull/11081))**
+- **[CRM-20468](https://issues.civicrm.org/jira/browse/CRM-20468)
+  Attachment.create API HTML escapes the uploaded content
+  ([10876](https://github.com/civicrm/civicrm-core/pull/10876))**
 
 - **Hw 390 fixed iframe popup ([11075](https://github.com/civicrm/civicrm-core/pull/11075))**
 
@@ -294,6 +335,14 @@ Released December 6, 2017
 
 ### CiviMember
 
+- **[CRM-21321](https://issues.civicrm.org/jira/browse/CRM-21321) Membership
+  fields not loading in 'On behalf of' profile
+  ([11148](https://github.com/civicrm/civicrm-core/pull/11148))**
+
+  You can now add membership fields to the profile for contributions on behalf
+  of an organization, and they will display in the on-behalf section of the
+  contribution page.
+
 - **[CRM-20227](https://issues.civicrm.org/jira/browse/CRM-20227) Regression - Membership status override gets 'stuck' ([11188](https://github.com/civicrm/civicrm-core/pull/11188))**
 
 - **[CRM-20955](https://issues.civicrm.org/jira/browse/CRM-20955) Contact's second membership fails to inherit when created in back end using price set ([11184](https://github.com/civicrm/civicrm-core/pull/11184))**
@@ -310,9 +359,25 @@ Released December 6, 2017
 
 - **[CRM-21367](https://issues.civicrm.org/jira/browse/CRM-21367) Get help
   section out of container
-  ([11156](https://github.com/civicrm/civicrm-core/pull/11156))**
+  ([11096](https://github.com/civicrm/civicrm-core/pull/11096),
+  [11156](https://github.com/civicrm/civicrm-core/pull/11156), and
+  [11220](https://github.com/civicrm/civicrm-core/pull/11220))**
+
+  Help text on the case types screens is now outside of the CiviCRM content
+  block.
 
-  Help text on the case types screen is now outside of the CiviCRM content block.
+- **[CRM-21373](https://issues.civicrm.org/jira/browse/CRM-21373) Notice error
+  on creating cases
+  ([11217](https://github.com/civicrm/civicrm-core/pull/11217))**
+
+  This resolves a PHP notice that would appear upon creating a case.
+
+- **[CRM-21255](https://issues.civicrm.org/jira/browse/CRM-21255) Error when
+  downloading document from case activity
+  ([11186](https://github.com/civicrm/civicrm-core/pull/11186))**
+
+  This resolves a bug in CiviCase 5.0 (org.civicrm.civicase) when printing a
+  case document.
 
 ### CiviContribute
 
@@ -323,6 +388,37 @@ Released December 6, 2017
   This resolves a bug where tax rates would always display 8 decimal places on
   contribution page confirmation and thank-you pages.
 
+- **[CRM-21436](https://issues.civicrm.org/jira/browse/CRM-21436) Fatal error on
+  contribution page with only pay later enabled.
+  ([11286](https://github.com/civicrm/civicrm-core/pull/11286))**
+
+- **Fix Recurring contribution sql so that it doesen't use group by as there
+  doesn't appear to be a reason to do so given that we have a where id = x
+  clause and we were grouping on the same field
+  ([11231](https://github.com/civicrm/civicrm-core/pull/11231))**
+
+  This resolves a test failure on retrieving the related contact for a recurring
+  contribution.
+
+- **[CRM-21340](https://issues.civicrm.org/jira/browse/CRM-21340) make "view my
+  invoices" permission cms agnostic
+  ([11172](https://github.com/civicrm/civicrm-core/pull/11172))**
+
+  This removes the use of a Drupal-specific global when checking permissions to
+  download an invoice.
+
+- **[CRM-21305](https://issues.civicrm.org/jira/browse/CRM-21305) Sorting not
+  working on Batch listing page
+  ([11127](https://github.com/civicrm/civicrm-core/pull/11127))**
+
+- **[CRM-21281](https://issues.civicrm.org/jira/browse/CRM-21281) Post Hook for
+  LineItem does not receive entity_id and entity_table
+  ([11108](https://github.com/civicrm/civicrm-core/pull/11108) and
+  [11097](https://github.com/civicrm/civicrm-core/pull/11097))**
+
+  When editing a line item, `hook_civicrm_post` now specifies the ID and table
+  of the line item that was modified.
+
 - **[CRM-20772](https://issues.civicrm.org/jira/browse/CRM-20772) Price set calculation precision when sales tax enabled ([11016](https://github.com/civicrm/civicrm-core/pull/11016))**
 
 - **[CRM-20572](https://issues.civicrm.org/jira/browse/CRM-20572) Remove jcalendar from Contrib Sybunt custom Search ([10355](https://github.com/civicrm/civicrm-core/pull/10355))**
@@ -334,6 +430,14 @@ Released December 6, 2017
   replacement because the parenthesis is outside the ts markers
   ([10942](https://github.com/civicrm/civicrm-core/pull/10942))**
 
+- **[CRM-21339](https://issues.civicrm.org/jira/browse/CRM-21339) Fix fatal js
+  error on cart checkout when pay later not enabled
+  ([11170](https://github.com/civicrm/civicrm-core/pull/11170))**
+
+- **[CRM-21009](https://issues.civicrm.org/jira/browse/CRM-21009) Removing event
+  selection from participant does not free up capacity
+  ([10805](https://github.com/civicrm/civicrm-core/pull/10805))**
+
 - **[CRM-21327](https://issues.civicrm.org/jira/browse/CRM-21327) Not able to change Payment Processor in event fees ([11153](https://github.com/civicrm/civicrm-core/pull/11153))**
 
 ### Drupal Integration Modules
@@ -387,6 +491,15 @@ Released December 6, 2017
 
 - **[CRM-21258](https://issues.civicrm.org/jira/browse/CRM-21258) Display name fatal error if names are too long ([11063](https://github.com/civicrm/civicrm-core/pull/11063))**
 
+### Joomla Integration
+
+- **[CRM-21203](https://issues.civicrm.org/jira/browse/CRM-21203) cli.php PHP
+  error prevents cron jobs from running
+  ([11062](https://github.com/civicrm/civicrm-core/pull/11062))**
+
+  Changes in Joomla 3.8--along with difficulties in detecting the Joomla
+  version--prevented cron from executing on many Joomla sites.
+
 ## <a name="misc"></a>Miscellany
 
 - **[CRM-20710](https://issues.civicrm.org/jira/browse/CRM-20710) Add function
@@ -408,11 +521,17 @@ Released December 6, 2017
 
   This change regenerates the DAO checksum.
 
+- **[nfc] Fix missing comma for phpcs
+  ([11119](https://github.com/civicrm/civicrm-core/pull/11119))**
+
+- **(NFC) Add in test of current practice in updating multiselect custom data
+  ([11081](https://github.com/civicrm/civicrm-core/pull/11081))**
+
 ## <a name="credits"></a>Credits
 
 This release was developed by the following code authors:
 
-AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel, Justin Freeman; Australian Greens - Seamus Lee; Christian Wach; Circle Interactive - Dave Jenkins; CiviCoop - Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Nicolas Ganivet, Yashodha Chaku; CiviFirst - John Kirk; Community IT Academy - William Mortada; CompuCorp - Michael Devery, Omar Abu Hussein; Coop SymbioTIC - Mathieu Lutfy; DanielvV; Deepak Srivastava; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; JMA Consulting - Edsel Lopez, Monish Deb, Pradeep Nayak; John Kingsnorth; Joinery - Allen Shaw; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; mukeshcompucorp; olivierh65; Pawel Nowak; powdevel; Progressive Technology Project - Jamie McClelland; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton, Maggie Epps
+AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel, Justin Freeman; Australian Greens - Seamus Lee; Christian Wach; Circle Interactive - Dave Jenkins; CiviCoop - Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Nicolas Ganivet, Yashodha Chaku; CiviFirst - John Kirk; Community IT Academy - William Mortada; CompuCorp - Michael Devery, Omar Abu Hussein; Coop SymbioTIC - Mathieu Lutfy; Daniël van Vuuren; Deepak Srivastava; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; JMA Consulting - Edsel Lopez, Monish Deb, Pradeep Nayak; John Kingsnorth; Joinery - Allen Shaw; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; mukeshcompucorp; olivierh65; Pawel Nowak; powdevel; Progressive Technology Project - Jamie McClelland; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton, Maggie Epps
 
 Most authors also reviewed code for this release; in addition, the following
 reviewers contributed their comments: