From 90f281344508a26d2f028fdee4cc90a22aad72c0 Mon Sep 17 00:00:00 2001 From: Andie Hunt Date: Tue, 12 Apr 2022 12:23:20 -0400 Subject: [PATCH] 5.49.0 release notes: raw from script --- release-notes/5.49.0.md | 397 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 397 insertions(+) create mode 100644 release-notes/5.49.0.md diff --git a/release-notes/5.49.0.md b/release-notes/5.49.0.md new file mode 100644 index 0000000000..4bb155f733 --- /dev/null +++ b/release-notes/5.49.0.md @@ -0,0 +1,397 @@ +# CiviCRM 5.49.0 + +Released May 4, 2022; + +- **[Features](#features)** +- **[Bugs resolved](#bugs)** +- **[Miscellany](#misc)** +- **[Credits](#credits)** + +## Features + +### Core CiviCRM + +- **crm- Missing Summary ([652](https://github.com/civicrm/civicrm-drupal/pull/652))** + +## Bugs resolved + +### Core CiviCRM + +- **Set limit to 0 when processing send sms task ([23166](https://github.com/civicrm/civicrm-core/pull/23166))** + +- **(dev/mail#107) CiviMail - Fix validation error (5.49) ([23141](https://github.com/civicrm/civicrm-core/pull/23141))** + +- **(dev/core#3166) "Metadata" cache - Strictly separate by version ([23148](https://github.com/civicrm/civicrm-core/pull/23148))** + +- **APIv4 Explorer - Adjust 'Index' field to fit better on narrow screens ([23146](https://github.com/civicrm/civicrm-core/pull/23146))** + +- **Fix incorrect use of icon argument for crmButton function ([23145](https://github.com/civicrm/civicrm-core/pull/23145))** + +- **Remove unnecessary pass-by-ref ([23132](https://github.com/civicrm/civicrm-core/pull/23132))** + +- **Consolidate MapTable.tpl ([23138](https://github.com/civicrm/civicrm-core/pull/23138))** + +- **Enotice fix - membership search ([23136](https://github.com/civicrm/civicrm-core/pull/23136))** + +- **Remove unused property ([23137](https://github.com/civicrm/civicrm-core/pull/23137))** + +- **(REF) Schema - Fix boolean fields in various tables - Split commits ([23134](https://github.com/civicrm/civicrm-core/pull/23134))** + +- **Remove 'in-between' class ([23133](https://github.com/civicrm/civicrm-core/pull/23133))** + +- **Add in APIv4 Logging Entity ([23129](https://github.com/civicrm/civicrm-core/pull/23129))** + +- **Fix OptionValue BAO to call pre/post hooks to prevent force-reset of managed option values ([23130](https://github.com/civicrm/civicrm-core/pull/23130))** + +- **Fixes issue with duplicate is_billing on inline address forms. ([22850](https://github.com/civicrm/civicrm-core/pull/22850))** + +- **Copy Clear value in batch update process for radio button field ([22941](https://github.com/civicrm/civicrm-core/pull/22941))** + +- **core#2633 : Cannot remove Group Organisation selection in multisite setup ([20437](https://github.com/civicrm/civicrm-core/pull/20437))** + +- **[WIP] Schema - Fix boolean fields in various tables ([22954](https://github.com/civicrm/civicrm-core/pull/22954))** + +- **Remove good intentions ([23126](https://github.com/civicrm/civicrm-core/pull/23126))** + +- **5.48 ([23127](https://github.com/civicrm/civicrm-core/pull/23127))** + +- **Tpl cleanup - whitespace, wrong closing tag ([23124](https://github.com/civicrm/civicrm-core/pull/23124))** + +- **Simplify class inheritance ([23121](https://github.com/civicrm/civicrm-core/pull/23121))** + +- **Ensure pay_later_text is always assigned ([22977](https://github.com/civicrm/civicrm-core/pull/22977))** + +- **Remove unused private variables ([23123](https://github.com/civicrm/civicrm-core/pull/23123))** + +- **Fix function calls to be non-static ([23122](https://github.com/civicrm/civicrm-core/pull/23122))** + +- **Respect zero value ([23016](https://github.com/civicrm/civicrm-core/pull/23016))** + +- **Notices on import - consolidate mapping variables ([23119](https://github.com/civicrm/civicrm-core/pull/23119))** + +- **Emit deprecated warning for typo version of hook_civicrm_links ([23117](https://github.com/civicrm/civicrm-core/pull/23117))** + +- **Add APIv4 for RecentItems ([23099](https://github.com/civicrm/civicrm-core/pull/23099))** + +- **Fix enotice, simplify text on Saved field mapping ([23114](https://github.com/civicrm/civicrm-core/pull/23114))** + +- **Cleanup unnecessary variables ([23111](https://github.com/civicrm/civicrm-core/pull/23111))** + +- **Remove unnecessary pass-by-ref ([23110](https://github.com/civicrm/civicrm-core/pull/23110))** + +- **Remove unused variable ([23113](https://github.com/civicrm/civicrm-core/pull/23113))** + +- **Test cleanup (minor) ([23112](https://github.com/civicrm/civicrm-core/pull/23112))** + +- **Remove double return statement ([23108](https://github.com/civicrm/civicrm-core/pull/23108))** + +- **Test cleanup, deprecate ContributionSoft::retrieve ([23106](https://github.com/civicrm/civicrm-core/pull/23106))** + +- **5.48 ([23109](https://github.com/civicrm/civicrm-core/pull/23109))** + +- **dev/financial#186 Do not display partially paid & partially refunded for selection on edit ([23076](https://github.com/civicrm/civicrm-core/pull/23076))** + +- **Stop passing settings into getTaxLabel ([23040](https://github.com/civicrm/civicrm-core/pull/23040))** + +- **Re-fix enotice on templateSelected ([23008](https://github.com/civicrm/civicrm-core/pull/23008))** + +- **Fix smarty notices in billing form ([22992](https://github.com/civicrm/civicrm-core/pull/22992))** + +- **Access invoice_prefix setting directly ([23039](https://github.com/civicrm/civicrm-core/pull/23039))** + +- **Assign totalTaxAmount more consistently ([23038](https://github.com/civicrm/civicrm-core/pull/23038))** + +- **Prevent escaping on cancelInfo_show_ids ([23077](https://github.com/civicrm/civicrm-core/pull/23077))** + +- **Test usability fix ([23096](https://github.com/civicrm/civicrm-core/pull/23096))** + +- **SearchKit - Ensure filters work with multiple search displays on a form ([23018](https://github.com/civicrm/civicrm-core/pull/23018))** + +- **5.48 ([23100](https://github.com/civicrm/civicrm-core/pull/23100))** + +- **First recurring payment (paypal ipn) - remove redundant status set, start_date change ([23081](https://github.com/civicrm/civicrm-core/pull/23081))** + +- **dev/user-interface#26 Use font-awesome icons for contact types and recent items ([23094](https://github.com/civicrm/civicrm-core/pull/23094))** + +- **Event Location fixes ([23041](https://github.com/civicrm/civicrm-core/pull/23041))** + +- **Don't lose search criteria for smart group built with search builder ([23052](https://github.com/civicrm/civicrm-core/pull/23052))** + +- **add image upload support for pcp account ([22223](https://github.com/civicrm/civicrm-core/pull/22223))** + +- **dev/core#3034 ([23083](https://github.com/civicrm/civicrm-core/pull/23083))** + +- **Cleanup FinancialAccount BAO to use `writeRecord` and deprecate `add` ([23079](https://github.com/civicrm/civicrm-core/pull/23079))** + +- **[REF] Create polyfill function for array_key_first which only exists … ([23095](https://github.com/civicrm/civicrm-core/pull/23095))** + +- **Avoid PHP notices in activity search ([23093](https://github.com/civicrm/civicrm-core/pull/23093))** + +- **Add civicrm_contact_type.icon column ([23073](https://github.com/civicrm/civicrm-core/pull/23073))** + +- **SearchKit - Allow creation of new records via in-place edit ([22376](https://github.com/civicrm/civicrm-core/pull/22376))** + +- **Bump minimist from 1.2.5 to 1.2.6 ([23090](https://github.com/civicrm/civicrm-core/pull/23090))** + +- **Add membership_id as a reference to the row ([23049](https://github.com/civicrm/civicrm-core/pull/23049))** + +- **[REF] Update Composer compile plugin ([23088](https://github.com/civicrm/civicrm-core/pull/23088))** + +- **5.48 ([23085](https://github.com/civicrm/civicrm-core/pull/23085))** + +- **SearchKit - Add icon support ([23034](https://github.com/civicrm/civicrm-core/pull/23034))** + +- **Finish conversion of static function to non-static ([23042](https://github.com/civicrm/civicrm-core/pull/23042))** + +- **Avoid trailing spaces in trigger output ([23069](https://github.com/civicrm/civicrm-core/pull/23069))** + +- **Add option_value_fields metadata ([22996](https://github.com/civicrm/civicrm-core/pull/22996))** + +- **5.48 ([23075](https://github.com/civicrm/civicrm-core/pull/23075))** + +- **Ensure formType is assigned to the template ([23078](https://github.com/civicrm/civicrm-core/pull/23078))** + +- **Add support for financial account custom fields ([23067](https://github.com/civicrm/civicrm-core/pull/23067))** + +- **Ensure pay_later variables assigned to template ([22971](https://github.com/civicrm/civicrm-core/pull/22971))** + +- **Ensure some variables are assigned to the template ([22972](https://github.com/civicrm/civicrm-core/pull/22972))** + +- **Ensure soft credit types are assigned to the template ([23037](https://github.com/civicrm/civicrm-core/pull/23037))** + +- **Remove more isset from offline receipt ([23072](https://github.com/civicrm/civicrm-core/pull/23072))** + +- **Remove isset from event registration receipt ([23064](https://github.com/civicrm/civicrm-core/pull/23064))** + +- **SearchKit - Fix joins when RelationshipCache is base search entity ([23066](https://github.com/civicrm/civicrm-core/pull/23066))** + +- **5.48 ([23068](https://github.com/civicrm/civicrm-core/pull/23068))** + +- **Do not default-escape upgrade linkes + Enotice fix on Extension screen ([23058](https://github.com/civicrm/civicrm-core/pull/23058))** + +- **Remove issets from event_offline_receipt pay_later_text ([23060](https://github.com/civicrm/civicrm-core/pull/23060))** + +- **[NFC] Fix URL documenting Batch entity ([23062](https://github.com/civicrm/civicrm-core/pull/23062))** + +- **Fix notices on Task.tpl (grumpy mode) ([23006](https://github.com/civicrm/civicrm-core/pull/23006))** + +- **Remove isset(taxAmount) from membership online receipt ([23017](https://github.com/civicrm/civicrm-core/pull/23017))** + +- **do not URL Encode parameters for PayFlowPro ([23054](https://github.com/civicrm/civicrm-core/pull/23054))** + +- **dev/core#3034 Ensure that filename contains the file extension for PDFs ([22532](https://github.com/civicrm/civicrm-core/pull/22532))** + +- **5.48 ([23050](https://github.com/civicrm/civicrm-core/pull/23050))** + +- **dev/core#3142 - Contact form and summary page completely broken ([23053](https://github.com/civicrm/civicrm-core/pull/23053))** + +- **Add chartEnabled to expectedSmartyVariables for reports ([23045](https://github.com/civicrm/civicrm-core/pull/23045))** + +- **Avoid PHP notices from smarty on pricefield table ([23046](https://github.com/civicrm/civicrm-core/pull/23046))** + +- **5.48 ([23047](https://github.com/civicrm/civicrm-core/pull/23047))** + +- **5.48 ([23028](https://github.com/civicrm/civicrm-core/pull/23028))** + +- **Link to Google Maps over HTTPs ([23044](https://github.com/civicrm/civicrm-core/pull/23044))** + +- **Replace incorrect class comment ([23043](https://github.com/civicrm/civicrm-core/pull/23043))** + +- **[REF] Deprecate BAO_Contact::retrieve ([22966](https://github.com/civicrm/civicrm-core/pull/22966))** + +- **CiviMail - Remove deprecated variable only used by Mosaico ([22689](https://github.com/civicrm/civicrm-core/pull/22689))** + +- **SearchKit - Fix "all selected" checkbox when selecting a single page … ([23003](https://github.com/civicrm/civicrm-core/pull/23003))** + +- **add classes to the membership userdashboard page ([23021](https://github.com/civicrm/civicrm-core/pull/23021))** + +- **Add utils for managing schema to extension upgrader base class ([22955](https://github.com/civicrm/civicrm-core/pull/22955))** + +- **5.48 ([23023](https://github.com/civicrm/civicrm-core/pull/23023))** + +- **Remove grumpy-mode-incompatible isset in payment notification ([23014](https://github.com/civicrm/civicrm-core/pull/23014))** + +- **noexpand seems to never be assigned ([23005](https://github.com/civicrm/civicrm-core/pull/23005))** + +- **SearchKit - mark stable ([23010](https://github.com/civicrm/civicrm-core/pull/23010))** + +- **Afform - Fix collapsible style ([23011](https://github.com/civicrm/civicrm-core/pull/23011))** + +- **Remove bad use of PHP assert, removed in PHP 8.0 ([22981](https://github.com/civicrm/civicrm-core/pull/22981))** + +- **Keep "EntityFile" records until after Symfony "delete" hooks fire ([23002](https://github.com/civicrm/civicrm-core/pull/23002))** + +- **E-notice fix on pdfLetter ([23007](https://github.com/civicrm/civicrm-core/pull/23007))** + +- **Remove issets on pay_later_receipt ([23004](https://github.com/civicrm/civicrm-core/pull/23004))** + +- **dev/core#3132 Ensure that contacts are not placed in null island if g… ([23009](https://github.com/civicrm/civicrm-core/pull/23009))** + +- **Add workflow template for offline event ([22904](https://github.com/civicrm/civicrm-core/pull/22904))** + +- **SampleData - Fix missing option value names ([23000](https://github.com/civicrm/civicrm-core/pull/23000))** + +- **Afform - reset managed entities when deleting a dashlet ([22957](https://github.com/civicrm/civicrm-core/pull/22957))** + +- **5.48 ([22999](https://github.com/civicrm/civicrm-core/pull/22999))** + +- **Enotice fix in grumpy smarty mode ([22970](https://github.com/civicrm/civicrm-core/pull/22970))** + +- **Remove use of deprecated FILTER_SANITIZE_STRING ([22982](https://github.com/civicrm/civicrm-core/pull/22982))** + +- **Enotice fix (grumpy smarty) ([22988](https://github.com/civicrm/civicrm-core/pull/22988))** + +- **Enotice fixes ([22989](https://github.com/civicrm/civicrm-core/pull/22989))** + +- **Grumpy smarty - Never escape 'initHideBoxes' ([22990](https://github.com/civicrm/civicrm-core/pull/22990))** + +- **Do not escape hierarchical select ([22991](https://github.com/civicrm/civicrm-core/pull/22991))** + +- **Fix issues with case sorting/searching from case dashboard ([21514](https://github.com/civicrm/civicrm-core/pull/21514))** + +- **Make note date required when creating note ([22987](https://github.com/civicrm/civicrm-core/pull/22987))** + +- **Fix undefined index by making sure that is_template is always defined ([22993](https://github.com/civicrm/civicrm-core/pull/22993))** + +- **Afform - Easier layout creation with predefined container styles and built-in title ([22975](https://github.com/civicrm/civicrm-core/pull/22975))** + +- **Cleanup variable assigns in ContributionPage confirm ([22902](https://github.com/civicrm/civicrm-core/pull/22902))** + +- **5.48 ([22984](https://github.com/civicrm/civicrm-core/pull/22984))** + +- **Group Contact create -> fix to use post hook for subscription records ([22419](https://github.com/civicrm/civicrm-core/pull/22419))** + +- **Fix copy button float in APIv4 Explorer ([22978](https://github.com/civicrm/civicrm-core/pull/22978))** + +- **5.48 to master ([22980](https://github.com/civicrm/civicrm-core/pull/22980))** + +- **Do not default escape 'create new' links ([22969](https://github.com/civicrm/civicrm-core/pull/22969))** + +- **REF Cleanup activity getBespokeTokens() ([22974](https://github.com/civicrm/civicrm-core/pull/22974))** + +- **Add case ID and make subject optional for case detail report ([22973](https://github.com/civicrm/civicrm-core/pull/22973))** + +- **5.48 ([22968](https://github.com/civicrm/civicrm-core/pull/22968))** + +- **Fix property declarations ([22965](https://github.com/civicrm/civicrm-core/pull/22965))** + +- **What if we stopped publishing Drupal 6 releases in 2022? ([22960](https://github.com/civicrm/civicrm-core/pull/22960))** + +- **Afform - compose layouts with multiple SearchKit displays ([22887](https://github.com/civicrm/civicrm-core/pull/22887))** + +- **[NFC] - Compatibility for PHP-7.4/PHP-8 ([22962](https://github.com/civicrm/civicrm-core/pull/22962))** + +- **Fix double encoding of document title on Contact view form ([22928](https://github.com/civicrm/civicrm-core/pull/22928))** + +- **5.48 ([22961](https://github.com/civicrm/civicrm-core/pull/22961))** + +- **Notice fixes in advanced search ([22956](https://github.com/civicrm/civicrm-core/pull/22956))** + +- **5.48 ([22953](https://github.com/civicrm/civicrm-core/pull/22953))** + +- **REF - Split upgrade SQL into multiple tasks ([22950](https://github.com/civicrm/civicrm-core/pull/22950))** + +- **Search Kit - Auto-enable during normal installation ([22952](https://github.com/civicrm/civicrm-core/pull/22952))** + +- **dev/financial#6 Update the recurring contribution when we edit the template contribution ([21473](https://github.com/civicrm/civicrm-core/pull/21473))** + +- **get membership type ID and number of terms from price_x fields ([22825](https://github.com/civicrm/civicrm-core/pull/22825))** + +- **Schema - Fix boolean fields in civicrm_event and civicrm_contribution ([22925](https://github.com/civicrm/civicrm-core/pull/22925))** + +- **dev/financial#6 Fix creating of template contribution when it has custom data ([21470](https://github.com/civicrm/civicrm-core/pull/21470))** + +- **5.48 ([22945](https://github.com/civicrm/civicrm-core/pull/22945))** + +- **SearchKit - Improve checkbox UX for bulk actions ([22906](https://github.com/civicrm/civicrm-core/pull/22906))** + +- **Core#2918 Implement new UI for configuring dedupe rule usage. ([22804](https://github.com/civicrm/civicrm-core/pull/22804))** + +- **Enable APIv4 export action on UFGroup and UFField. ([22832](https://github.com/civicrm/civicrm-core/pull/22832))** + +- **Optimise isCustomDateField ([22943](https://github.com/civicrm/civicrm-core/pull/22943))** + +- **Dev/core#2524 Fix seriazliation parameter exception in APIv3 ([22934](https://github.com/civicrm/civicrm-core/pull/22934))** + +- **During upgrade log that it ran the sql when there is just a sql file and no corresponding task ([22939](https://github.com/civicrm/civicrm-core/pull/22939))** + +- **5.48 ([22935](https://github.com/civicrm/civicrm-core/pull/22935))** + +- **SearchKit - Fix page size size ([22927](https://github.com/civicrm/civicrm-core/pull/22927))** + +- **SearchKit - Add CiviMail integration ([22808](https://github.com/civicrm/civicrm-core/pull/22808))** + +- **5.48 ([22923](https://github.com/civicrm/civicrm-core/pull/22923))** + +- **dev/core#2833 Fix Contact Type change on Backend Membership Credit Ca… ([21467](https://github.com/civicrm/civicrm-core/pull/21467))** + +- **Add page id and template type as data attributes in contribution templates ([21945](https://github.com/civicrm/civicrm-core/pull/21945))** + +- **Fully deprecate `getTokenDetails` ([22483](https://github.com/civicrm/civicrm-core/pull/22483))** + +- **Split mailing label formatting out from main format ([22463](https://github.com/civicrm/civicrm-core/pull/22463))** + +- **Preserve selected tab when navigating between pages. ([22316](https://github.com/civicrm/civicrm-core/pull/22316))** + +- **[REF] Extract & stdise AmountBlockIsActive ([22291](https://github.com/civicrm/civicrm-core/pull/22291))** + +- **Calculate lifetime memberships more accurately ([22255](https://github.com/civicrm/civicrm-core/pull/22255))** + +- **Simplify fix for smarty/php notice on contributionview ([22886](https://github.com/civicrm/civicrm-core/pull/22886))** + +- **Remove use of overrideDefaultCurrency method from eventInfo page. ([22802](https://github.com/civicrm/civicrm-core/pull/22802))** + +- **5.48 ([22920](https://github.com/civicrm/civicrm-core/pull/22920))** + +- **regenerate civicrm_generated ([22917](https://github.com/civicrm/civicrm-core/pull/22917))** + +- **Add paymentstatus helpers for doPayment and separate return params ([22680](https://github.com/civicrm/civicrm-core/pull/22680))** + +- **dev/core#3085 - Checkbox fields on profile admin page can't be unchecked ([22916](https://github.com/civicrm/civicrm-core/pull/22916))** + +- **5.48 ([22914](https://github.com/civicrm/civicrm-core/pull/22914))** + +- **Allow API4 match to match an empty value ([22882](https://github.com/civicrm/civicrm-core/pull/22882))** + +- **dev/core#3082 enhance EntityRef to show create new link when contact listing is fil… ([22830](https://github.com/civicrm/civicrm-core/pull/22830))** + +- **Add action links for group. ([22912](https://github.com/civicrm/civicrm-core/pull/22912))** + +- **5.48 ([22910](https://github.com/civicrm/civicrm-core/pull/22910))** + +- **Add created & modified dates to "View Relationship" screen ([22909](https://github.com/civicrm/civicrm-core/pull/22909))** + +- **(dev/core#3106) Raise max# of editable websites (5 => 25) ([22908](https://github.com/civicrm/civicrm-core/pull/22908))** + +- **[NFC] Superficial cleanup ([22907](https://github.com/civicrm/civicrm-core/pull/22907))** + +- **Rename test class to reflect form ([22903](https://github.com/civicrm/civicrm-core/pull/22903))** + +- **5.48 ([22901](https://github.com/civicrm/civicrm-core/pull/22901))** + +- **Expose payment processor error from PaymentProcessor.pay ([22900](https://github.com/civicrm/civicrm-core/pull/22900))** + +- **APIv4 - Get dynamic list of entity types ([22826](https://github.com/civicrm/civicrm-core/pull/22826))** + +- **5.48 ([22899](https://github.com/civicrm/civicrm-core/pull/22899))** + +- **[REF] APIv4 - Use new class_args metadata to remove special handing ([22853](https://github.com/civicrm/civicrm-core/pull/22853))** + +- **7.x 5.48 ([657](https://github.com/civicrm/civicrm-drupal/pull/657))** + +- **7.x 5.48 ([655](https://github.com/civicrm/civicrm-drupal/pull/655))** + +- **5.48 ([276](https://github.com/civicrm/civicrm-wordpress/pull/276))** + +## Miscellany + +## Credits + +This release was developed by the following code authors: + +adriano66; AGH Strategies - Alice Frumin, Andie Hunt; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Dave D; dependabot[bot]; Fuzion - Luke Stewart; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Vangelis Pantazis; JMA Consulting - Monish Deb, Seamus Lee; Klangsoft - David Reedy Jr; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Oxfam Germany - Thomas Schüttler; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton + +Most authors also reviewed code for this release; in addition, the following +reviewers contributed their comments: + +adriano66; Agileware - Justin Freeman; ALL IN APPLI; Artful Robot - Rich Lott; Australian Greens - John Twyman; Betty Dolfing; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove, Shane Bill; Dave D; Francesc Bassas i Bullich; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Vangelis Pantazis; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; Klangsoft - David Reedy Jr; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Richard van Oosterhout; Semper IT - Karin Gerritsen; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton \ No newline at end of file -- 2.25.1