From 8ce87abecc484c8041ad63038422ef2f7bba3135 Mon Sep 17 00:00:00 2001 From: Andrew Hunt Date: Thu, 8 Nov 2018 14:34:51 -0500 Subject: [PATCH] 5.8.0 release notes: raw from script --- release-notes/5.8.0.md | 353 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) create mode 100644 release-notes/5.8.0.md diff --git a/release-notes/5.8.0.md b/release-notes/5.8.0.md new file mode 100644 index 0000000000..a3a0efbb60 --- /dev/null +++ b/release-notes/5.8.0.md @@ -0,0 +1,353 @@ +# CiviCRM 5.8.0 + +Released December 5, 2018; + +- **[Features](#features)** +- **[Bugs resolved](#bugs)** +- **[Miscellany](#misc)** +- **[Credits](#credits)** + +## Features + +### CiviReport + +- **[CRM-21677](https://issues.civicrm.org/jira/browse/CRM-21677) Report improvements ([13028](https://github.com/civicrm/civicrm-core/pull/13028), [12922](https://github.com/civicrm/civicrm-core/pull/12922), [12916](https://github.com/civicrm/civicrm-core/pull/12916), and [12892](https://github.com/civicrm/civicrm-core/pull/12892))** + +## Bugs resolved + +### Core CiviCRM + +- **5.7 Release notes for 5.8 ([13070](https://github.com/civicrm/civicrm-core/pull/13070))** + +- **Genericise 'ending' date filter and add tests ([12682](https://github.com/civicrm/civicrm-core/pull/12682))** + +- **5.7.0 release notes ([12944](https://github.com/civicrm/civicrm-core/pull/12944))** + +- **dev/core/495 Introduce generic settings form (fully metadata driven) ([13054](https://github.com/civicrm/civicrm-core/pull/13054))** + +- **Fix isAjaxMode to also recognize angular ajax ([12921](https://github.com/civicrm/civicrm-core/pull/12921))** + +- **dev/core#119 Fix undefined variable notice when going to pages like … ([13063](https://github.com/civicrm/civicrm-core/pull/13063))** + +- **Fix misplaced hyphens in regex ([13064](https://github.com/civicrm/civicrm-core/pull/13064))** + +- **Problem with Custom Field in Contact Reports ([13044](https://github.com/civicrm/civicrm-core/pull/13044))** + +- **Fix handling of advmutltiselect (on localization form). Handle casing issues ([13062](https://github.com/civicrm/civicrm-core/pull/13062))** + +- **Fix international strings test / mishandling of international strings ([12494](https://github.com/civicrm/civicrm-core/pull/12494))** + +- **Fix help for financial acls. ([13053](https://github.com/civicrm/civicrm-core/pull/13053))** + +- **Fix unit tests following merge of PR #12797 ([13061](https://github.com/civicrm/civicrm-core/pull/13061))** + +- **dev/core#6 Add in help text about the is public setting for custom gr… ([13060](https://github.com/civicrm/civicrm-core/pull/13060))** + +- **[CRM-287](https://issues.civicrm.org/jira/browse/CRM-287) php5 only function in php4 version ([12797](https://github.com/civicrm/civicrm-core/pull/12797))** + +- **Remove limit when choosing fields for quick search ([13056](https://github.com/civicrm/civicrm-core/pull/13056))** + +- **Configurable quicksearch settings ([13039](https://github.com/civicrm/civicrm-core/pull/13039))** + +- **cleanup query logic - followup on GH-12991 ([13055](https://github.com/civicrm/civicrm-core/pull/13055))** + +- **Allow contribution search by recurring payment processor ID / Transaction ID ([12818](https://github.com/civicrm/civicrm-core/pull/12818))** + +- **Prevent hard error when a string is too long for a field. ([13014](https://github.com/civicrm/civicrm-core/pull/13014))** + +- **Strtolower fix 'name' ([13035](https://github.com/civicrm/civicrm-core/pull/13035))** + +- **Remove lowercasing in relationship query ([13034](https://github.com/civicrm/civicrm-core/pull/13034))** + +- **Finish unsharing hacks for contribution preferences form ([13047](https://github.com/civicrm/civicrm-core/pull/13047))** + +- **Mark event start date as required and refactoring ([13049](https://github.com/civicrm/civicrm-core/pull/13049))** + +- **[NFC] Preferences form template cleanup ([13046](https://github.com/civicrm/civicrm-core/pull/13046))** + +- **Update casing on setting metadata for html_type = text ([13048](https://github.com/civicrm/civicrm-core/pull/13048))** + +- **Pass path through rawurlencode when not using CIVICRM_CLEANURL ([13043](https://github.com/civicrm/civicrm-core/pull/13043))** + +- **Fix malformed redirect URLs ([12969](https://github.com/civicrm/civicrm-core/pull/12969))** + +- **Convert final settings on the Display form ([13040](https://github.com/civicrm/civicrm-core/pull/13040))** + +- **(dev/core#491) Report results don't show inactive campaigns ([13036](https://github.com/civicrm/civicrm-core/pull/13036))** + +- **Fix custom Home URL parsing ([13031](https://github.com/civicrm/civicrm-core/pull/13031))** + +- **Fix e-notices on Address settings page, convert YesNo field ([13004](https://github.com/civicrm/civicrm-core/pull/13004))** + +- **Fix notices on event settings form ([13027](https://github.com/civicrm/civicrm-core/pull/13027))** + +- **Fix caching issues with Event permissions ([12769](https://github.com/civicrm/civicrm-core/pull/12769))** + +- **dev/core#456 Improve UX of scheduling mass SMS ([13001](https://github.com/civicrm/civicrm-core/pull/13001))** + +- **Add icons to contact summary tabs ([13018](https://github.com/civicrm/civicrm-core/pull/13018))** + +- **dev/core#463 Add in ability for Extensions to use their Extension Utils class to s… ([12986](https://github.com/civicrm/civicrm-core/pull/12986))** + +- **Duplicate upgrade step for 5.7.beta1 in 5.8.alpha1 to capture anyone … ([13033](https://github.com/civicrm/civicrm-core/pull/13033))** + +- **5.7 to master ([13032](https://github.com/civicrm/civicrm-core/pull/13032))** + +- **Fix notices on Campaign preferences form ([13026](https://github.com/civicrm/civicrm-core/pull/13026))** + +- **Convert event search to datepicker and cleanup template ([12978](https://github.com/civicrm/civicrm-core/pull/12978))** + +- **Closes core#477 - display employer/title/group info in print summary ([13030](https://github.com/civicrm/civicrm-core/pull/13030))** + +- **dev/core#481 Ensure that Bulk Mailings is a checkbox rather than radi… ([13019](https://github.com/civicrm/civicrm-core/pull/13019))** + +- **Fix notices on Multisite settings form ([13025](https://github.com/civicrm/civicrm-core/pull/13025))** + +- **dev/core#472 Allow for APIv3 to find examples in Extenion folders as … ([13006](https://github.com/civicrm/civicrm-core/pull/13006))** + +- **Export code cleanup: Convert relationships to pseudonames at the point of loading ([12586](https://github.com/civicrm/civicrm-core/pull/12586))** + +- **Fix notices on mailing components screen, convert to metadata based ([13023](https://github.com/civicrm/civicrm-core/pull/13023))** + +- **Remove use of LOWER from mailing_name searches ([12993](https://github.com/civicrm/civicrm-core/pull/12993))** + +- **Remove instances of LOWER casing searches from sort_name, display_name ([12987](https://github.com/civicrm/civicrm-core/pull/12987))** + +- **Remove instances of LOWER casing searches from ([12988](https://github.com/civicrm/civicrm-core/pull/12988))** + +- **Remove use of LOWER from city & street searches ([12991](https://github.com/civicrm/civicrm-core/pull/12991))** + +- **Fix Contribution settings form per dev/core/473 ([13022](https://github.com/civicrm/civicrm-core/pull/13022))** + +- **Activities can be linked to multiple cases. Handle caseIds being an array ([13021](https://github.com/civicrm/civicrm-core/pull/13021))** + +- **(dev/core#479) Contribution Summary report throw DB error with custom… ([13017](https://github.com/civicrm/civicrm-core/pull/13017))** + +- **Style improvement of radio form elements ([12736](https://github.com/civicrm/civicrm-core/pull/12736))** + +- **Fix Activity api to cope with renamed record type labels (e.g renaming 'Target' to 'Directed At') ([13008](https://github.com/civicrm/civicrm-core/pull/13008))** + +- **dev/core#474 - Show missing log table warning only if logging is enabled ([13010](https://github.com/civicrm/civicrm-core/pull/13010))** + +- **Use description from schema if available when using entityForm ([12971](https://github.com/civicrm/civicrm-core/pull/12971))** + +- **Translate description in DAO files ([13005](https://github.com/civicrm/civicrm-core/pull/13005))** + +- **Replace translation and calendar image icons ([13003](https://github.com/civicrm/civicrm-core/pull/13003))** + +- **Convert Event Participant Registration Date to datepicker ([12979](https://github.com/civicrm/civicrm-core/pull/12979))** + +- **[dev/core#457] Add $ids to hook_civicrm_export ([12957](https://github.com/civicrm/civicrm-core/pull/12957))** + +- **[CRM-21311](https://issues.civicrm.org/jira/browse/CRM-21311) CIVICRM-668 Credit card type is unset on submission causing credit card payment to fail with CVV validation error message ([12615](https://github.com/civicrm/civicrm-core/pull/12615))** + +- **(NFC) Fix comment as hook name was changed ([13009](https://github.com/civicrm/civicrm-core/pull/13009))** + +- **Improve type checking in getContactPhone and use CRM_Utils_Request::r… ([12687](https://github.com/civicrm/civicrm-core/pull/12687))** + +- **Added relationship active filter in CiviCRM Case reports. ([12711](https://github.com/civicrm/civicrm-core/pull/12711))** + +- **(NFC) Fix Namespace issue in Api3DocTrait when calling smarty ([13007](https://github.com/civicrm/civicrm-core/pull/13007))** + +- **dev/financial#33 Add in Hook postIPNProcess to allow Extensions to do c… ([12928](https://github.com/civicrm/civicrm-core/pull/12928))** + +- **do not strtolower() string values while building where clause for cus… ([12930](https://github.com/civicrm/civicrm-core/pull/12930))** + +- **dev/core#461 - Duplicate Message template is generated when it is sav… ([12982](https://github.com/civicrm/civicrm-core/pull/12982))** + +- **Setting conversion ([12925](https://github.com/civicrm/civicrm-core/pull/12925))** + +- **dev/translation#15 Fix backend CC contributions left pending if statuses are localised ([12999](https://github.com/civicrm/civicrm-core/pull/12999))** + +- **5.7 to master ([13002](https://github.com/civicrm/civicrm-core/pull/13002))** + +- **Don't format date twice for RecurringEntity form ([12974](https://github.com/civicrm/civicrm-core/pull/12974))** + +- **Convert EventFees to datepicker ([12992](https://github.com/civicrm/civicrm-core/pull/12992))** + +- **[NFC] Extract function to get component permissions ([12994](https://github.com/civicrm/civicrm-core/pull/12994))** + +- **[NFC] Extract case activity permission check. ([12949](https://github.com/civicrm/civicrm-core/pull/12949))** + +- **Add ts to untranslated string ([12989](https://github.com/civicrm/civicrm-core/pull/12989))** + +- **Convert ManageEvent Fees to datepicker ([12977](https://github.com/civicrm/civicrm-core/pull/12977))** + +- **5.7 to master ([12985](https://github.com/civicrm/civicrm-core/pull/12985))** + +- **Joomla admin theme menu, empty blocks & padding clean-up ([12956](https://github.com/civicrm/civicrm-core/pull/12956))** + +- **Convert ManageEvent Registration Tab to datepicker ([12975](https://github.com/civicrm/civicrm-core/pull/12975))** + +- **5.7 to master ([12976](https://github.com/civicrm/civicrm-core/pull/12976))** + +- **Convert relationship form to datepicker ([12972](https://github.com/civicrm/civicrm-core/pull/12972))** + +- **Fix notices on Membership Settings form. ([12960](https://github.com/civicrm/civicrm-core/pull/12960))** + +- **Fix "crmURL" parameters in various templates ([12968](https://github.com/civicrm/civicrm-core/pull/12968))** + +- **CRM_Core_Resources - Allow container to swap the implementation ([12959](https://github.com/civicrm/civicrm-core/pull/12959))** + +- **Disable ONLY_FULL_GROUP_BY sql mode when doing add2group function on … ([12966](https://github.com/civicrm/civicrm-core/pull/12966))** + +- **5.7 to master ([12964](https://github.com/civicrm/civicrm-core/pull/12964))** + +- **5.7 to master ([12955](https://github.com/civicrm/civicrm-core/pull/12955))** + +- **[NFC] code cleanup in api_v3_CaseTest ([12950](https://github.com/civicrm/civicrm-core/pull/12950))** + +- **Fix (unreleased) fatal error on contribution preferences settings page ([12940](https://github.com/civicrm/civicrm-core/pull/12940))** + +- **[dev/core#412] Avoid truncated UTF-8 strings when using substr() ([12935](https://github.com/civicrm/civicrm-core/pull/12935))** + +- **PHP 7.1 bugfix: undeclared array subdimension with batch CSV export ([12946](https://github.com/civicrm/civicrm-core/pull/12946))** + +- **5.7 to master ([12948](https://github.com/civicrm/civicrm-core/pull/12948))** + +- **dev/core#448 Fix issue where when building mailings with smart groups, removed members of the smart group were being included ([12945](https://github.com/civicrm/civicrm-core/pull/12945))** + +- **Intelligently adjust menubar for D7 toolbar toggle ([12937](https://github.com/civicrm/civicrm-core/pull/12937))** + +- **Membership form submit status message refactor ([12693](https://github.com/civicrm/civicrm-core/pull/12693))** + +- **dev/core#443 Fix Non-static method calls at CRM_Utils_Mail_Incoming ([12934](https://github.com/civicrm/civicrm-core/pull/12934))** + +- **Status page: hush menu should be on top of other headers ([12936](https://github.com/civicrm/civicrm-core/pull/12936))** + +- **Correct inconsistent fileID reference ([12931](https://github.com/civicrm/civicrm-core/pull/12931))** + +- **dev/financial#23 Do not display e-notice for zero dollar transactions ([12926](https://github.com/civicrm/civicrm-core/pull/12926))** + +- **dev-core-166/lessen memory impact ([12306](https://github.com/civicrm/civicrm-core/pull/12306))** + +- **Added further tests for process_membership job: check status for inherited memberships ([12927](https://github.com/civicrm/civicrm-core/pull/12927))** + +- **Adding [CiviMail Draft] on test mailing (for mosaico) ([12758](https://github.com/civicrm/civicrm-core/pull/12758))** + +- **Extract query to generate annual totals and add test ([12810](https://github.com/civicrm/civicrm-core/pull/12810))** + +- **(NFC) Fix misleading comment for dupesInGroup() ([12920](https://github.com/civicrm/civicrm-core/pull/12920))** + +- **Translate various settings information ([12919](https://github.com/civicrm/civicrm-core/pull/12919))** + +- **Fix order by on is_primary. ([12765](https://github.com/civicrm/civicrm-core/pull/12765))** + +- **Slay dragons ([12495](https://github.com/civicrm/civicrm-core/pull/12495))** + +- **Membership form - tidy up receipt code ([12695](https://github.com/civicrm/civicrm-core/pull/12695))** + +- **dev/core#357 Fix issue where user email addresses were keyed on email… ([12828](https://github.com/civicrm/civicrm-core/pull/12828))** + +- **Added more unit tests for process_membership job: testProcessMembershipUpdateStatus ([12918](https://github.com/civicrm/civicrm-core/pull/12918))** + +- **[NFC] Convert some fields on admin display preferences to use metdata ([12906](https://github.com/civicrm/civicrm-core/pull/12906))** + +- **Extract selectedChild tabheader functionality and enable for Manage Events ([12747](https://github.com/civicrm/civicrm-core/pull/12747))** + +- **(dev/core#394) : Wildcards are ignored in some smart group criteria, when the smart group is directly generated for a mailing ([12910](https://github.com/civicrm/civicrm-core/pull/12910))** + +- **core/384 CiviSMS does not fall back to non-primary mobile number ([12890](https://github.com/civicrm/civicrm-core/pull/12890))** + +- **Do not treat an empty array as not set in caches. ([12784](https://github.com/civicrm/civicrm-core/pull/12784))** + +- **Fix payment hangs when registering a user for a paid event without recording payment ([12914](https://github.com/civicrm/civicrm-core/pull/12914))** + +- **Export - small cleanup ([12864](https://github.com/civicrm/civicrm-core/pull/12864))** + +- **Fix typo in hook that enables links to be added to a block ([12913](https://github.com/civicrm/civicrm-core/pull/12913))** + +- **Show contact name on recurring contribution view and improve consistency with Contribution/Membership view ([12819](https://github.com/civicrm/civicrm-core/pull/12819))** + +- **Skip html encoding rich-text fields ([12841](https://github.com/civicrm/civicrm-core/pull/12841))** + +- **Fix spelling error ("sript" vs "script") ([12912](https://github.com/civicrm/civicrm-core/pull/12912))** + +- **On reports make current employer available as a field for display ([12904](https://github.com/civicrm/civicrm-core/pull/12904))** + +- **ensure all valid relationship types are available ([12891](https://github.com/civicrm/civicrm-core/pull/12891))** + +- **Ensure relative dates are preserved for custom fields in smart group ([12824](https://github.com/civicrm/civicrm-core/pull/12824))** + +- **5.7 to master ([12911](https://github.com/civicrm/civicrm-core/pull/12911))** + +- **Send an 500 http response code when an exception is encountered. ([11821](https://github.com/civicrm/civicrm-core/pull/11821))** + +- **Register "short" and "long" cache services ([12873](https://github.com/civicrm/civicrm-core/pull/12873))** + +- **Added a path to the drupal8 path candidates to find civicrm.config.php ([12903](https://github.com/civicrm/civicrm-core/pull/12903))** + +- **GL-425: Log a message if CiviCRM thinks SSL is not enabled ([12908](https://github.com/civicrm/civicrm-core/pull/12908))** + +- **5.7 ([12907](https://github.com/civicrm/civicrm-core/pull/12907))** + +- **Add `ext/` folder to .gitignore ([12905](https://github.com/civicrm/civicrm-core/pull/12905))** + +- **Setting form - start to sync preferences with Setting, using trait ([12731](https://github.com/civicrm/civicrm-core/pull/12731))** + +- **Move towards allowing sending 500 http errors back by switching civiE… ([12902](https://github.com/civicrm/civicrm-core/pull/12902))** + +- **dev/core#423 MySQL 5.7 complains about 4.7.19 upgrade script ([12898](https://github.com/civicrm/civicrm-core/pull/12898))** + +- **Add validate api action for ContributionPage.submit ([12829](https://github.com/civicrm/civicrm-core/pull/12829))** + +- **[NFC] Minor cleanup, return preferred parameter ([12900](https://github.com/civicrm/civicrm-core/pull/12900))** + +- **Added missing field name in custom-field deletion dialog ([12869](https://github.com/civicrm/civicrm-core/pull/12869))** + +- **Recur tpl ([12899](https://github.com/civicrm/civicrm-core/pull/12899))** + +- **Show recurring contribution links based on payment processor capabilities ([12821](https://github.com/civicrm/civicrm-core/pull/12821))** + +- **dev/core#411 - Default currency shown on View participant and contrib… ([12875](https://github.com/civicrm/civicrm-core/pull/12875))** + +- **(NFC) Make datatables in Activities Relationship tab adjust to screen size ([12893](https://github.com/civicrm/civicrm-core/pull/12893))** + +- **Switch UpdateSubscription to use datepicker ([12868](https://github.com/civicrm/civicrm-core/pull/12868))** + +- **ensure search on survey results works properly ([12897](https://github.com/civicrm/civicrm-core/pull/12897))** + +- **Remove crm.admin.js ([12884](https://github.com/civicrm/civicrm-core/pull/12884))** + +- **5.7 ([12895](https://github.com/civicrm/civicrm-core/pull/12895))** + +- **civicrm_handler_field_link_pcp: avoid PHP notice ([547](https://github.com/civicrm/civicrm-drupal/pull/547))** + +- **[NFC] Code style fix for contact image handler ([537](https://github.com/civicrm/civicrm-drupal/pull/537))** + +- **Add a drush command to rebuild SQL triggers ([545](https://github.com/civicrm/civicrm-drupal/pull/545))** + +- **Bring structural consistency to the plugin ([138](https://github.com/civicrm/civicrm-wordpress/pull/138))** + +- **NFC: Give comments and docblocks some TLC ([137](https://github.com/civicrm/civicrm-wordpress/pull/137))** + +- **Allow user-defined shortcode components to be rendered ([134](https://github.com/civicrm/civicrm-wordpress/pull/134))** + +- **Do not start session when running under WP-CLI ([135](https://github.com/civicrm/civicrm-wordpress/pull/135))** + +- **Fix WP-CLI class for PHP 7.2 ([133](https://github.com/civicrm/civicrm-wordpress/pull/133))** + +### CiviMail + +- **[CRM-19751](https://issues.civicrm.org/jira/browse/CRM-19751) Once "multiple bulk" setting, cannot search for opt out or on hold contacts ([12883](https://github.com/civicrm/civicrm-core/pull/12883))** + +### CiviMail, Drupal Integration Modules + +- **[CRM-17667](https://issues.civicrm.org/jira/browse/CRM-17667) Drush: Mail queue processing does not work ([354](https://github.com/civicrm/civicrm-drupal/pull/354))** + +### Drupal Integration Modules + +- **[CRM-20298](https://issues.civicrm.org/jira/browse/CRM-20298) Drupal Views: Custom fields of type Money should use the same filter operators as Integer fields ([435](https://github.com/civicrm/civicrm-drupal/pull/435))** + +## Miscellany + +## Credits + +This release was developed by the following code authors: + +AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel; Australian Greens - Seamus Lee; calbasi; Caltha - Tomasz Pietrzkowski; CEDC - Laryn Kragt Bakker; Chris Burgess; Christian Wach; CiviCoop - Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Community IT Academy - William Mortada; CompuCorp - Davi Alexandre; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; dereklewis123; Electronic Frontier Foundation - Mark Burdett; Fuzion - Jitendra Purohit; Ginkgo Street Labs - Frank Gómez; giovannidalmas1967; Jens Schuppe; JMA Consulting - Monish Deb; John Kingsnorth; Joinery - Allen Shaw; Joost Fock; Ken West; mecachisenros; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich; OSSeed Technologies - Madhavi Malgaonkar; Pradeep Nayak; Progressive Technology Project - Jamie McClelland; Skvare - Mark Hanna; Third Sector Design - Michael McAndrew; Wikimedia Foundation - Eileen McNaughton, Elliott Eggleston + +Most authors also reviewed code for this release; in addition, the following +reviewers contributed their comments: + +AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Agileware Team; Australian Greens - Seamus Lee; British Humanist Association - Andrew West; calbasi; Caltha - Tomasz Pietrzkowski; CEDC - Laryn Kragt Bakker; Chris Burgess; Christian Wach; Circle Interactive - Dave Jenkins; civibot[bot]; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CiviFirst - John Kirk; Clairepickle; CompuCorp - Davi Alexandre, Jamie Novick; Coop SymbioTIC - Mathieu Lutfy; davej; dereklewis123; Donald Lobo; Electronic Frontier Foundation - Mark Burdett; Fuzion - Jitendra Purohit; Ginkgo Street Labs - Frank Gómez; giovannidalmas1967; iXiam - Vangelis Pantazis; JMA Consulting - Joe Murray, Monish Deb; John Kingsnorth; Joinery - Allen Shaw; JonScreat; Joost Fock; Ken West; kirk-jackson; Korlon - Stuart Gaston; Lighthouse Design and Consulting - Brian Shaughnessy; marsh-circle; mecachisenros; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Nicol Wistreich; Pradeep Nayak; Progressive Technology Project - Jamie McClelland; Richard van Oosterhout; Skvare - Mark Hanna; sleewok; Tadpole Collective - Kevin Cristiano; Tech To The People - Xavier Dutoit; Third Sector Design - Michael McAndrew; Wikimedia Foundation - Eileen McNaughton -- 2.25.1