Skip to content
Snippets Groups Projects
Commit 4fc0ba79 authored by Andie Hunt's avatar Andie Hunt
Browse files

5.60.0 release notes: raw from script

parent 83a5ebc4
Branches
Tags
No related merge requests found
# CiviCRM 5.60.0
Released March 8, 2023;
- **[Features](#features)**
- **[Bugs resolved](#bugs)**
- **[Miscellany](#misc)**
- **[Credits](#credits)**
## <a name="features"></a>Features
## <a name="bugs"></a>Bugs resolved
### Core CiviCRM
- **Load submitted `fieldSeparator` on back on `Import Datasource` screen ([25758](https://github.com/civicrm/civicrm-core/pull/25758))**
- **Remove the correct extraneous field separator field ([25753](https://github.com/civicrm/civicrm-core/pull/25753))**
- **PayPal Prp IPN - Fix incorrect option_group update ([25724](https://github.com/civicrm/civicrm-core/pull/25724))**
- **Fix for 5.59 upgrade on multilingual ([25733](https://github.com/civicrm/civicrm-core/pull/25733))**
- **Contribution pages crash for logged-in users when CiviMember is disabled ([25729](https://github.com/civicrm/civicrm-core/pull/25729))**
- **(dev/core#4147) Add test and fix for various flaky tokens ([25704](https://github.com/civicrm/civicrm-core/pull/25704))**
- **dev/core#4145 Prevent fatal on event sched reminders when CiviEvent enabled ([25703](https://github.com/civicrm/civicrm-core/pull/25703))**
- **Stricter typing in Apiv4 ([25706](https://github.com/civicrm/civicrm-core/pull/25706))**
- **Remove deprecated function calls to Event::del, Membership functions del, OptionValue ([25705](https://github.com/civicrm/civicrm-core/pull/25705))**
- **5.59 ([25702](https://github.com/civicrm/civicrm-core/pull/25702))**
- **Remove deprecated use of $ids ([25698](https://github.com/civicrm/civicrm-core/pull/25698))**
- **5.59 to master ([25699](https://github.com/civicrm/civicrm-core/pull/25699))**
- **Delete long-deprecated functions ([25696](https://github.com/civicrm/civicrm-core/pull/25696))**
- **Pull over a few more deprecations + blockDelete deprecation ([25695](https://github.com/civicrm/civicrm-core/pull/25695))**
- **Address portions of deprecated code replacement ([25693](https://github.com/civicrm/civicrm-core/pull/25693))**
- **Deprecations for Mailing::delete functions ([25691](https://github.com/civicrm/civicrm-core/pull/25691))**
- **Deprecations for delete on ACL entities ([25690](https://github.com/civicrm/civicrm-core/pull/25690))**
- **Remove deprecated functions from tests ([25688](https://github.com/civicrm/civicrm-core/pull/25688))**
- **Remove 2020-deprecated handling of `legacyAddressCreate` ([25686](https://github.com/civicrm/civicrm-core/pull/25686))**
- **Remove function noisily deprecated when the world was young (2020) ([25685](https://github.com/civicrm/civicrm-core/pull/25685))**
- **Remove deprecated function call ([25684](https://github.com/civicrm/civicrm-core/pull/25684))**
- **Afform - Filter autocomplete fields belonging to a search display ([25646](https://github.com/civicrm/civicrm-core/pull/25646))**
- **dev/core#4146 Remove (old) Smarty-forward incompatible syntax from Address.tpl ([25669](https://github.com/civicrm/civicrm-core/pull/25669))**
- **Add gentle deprecation to `debug_log_message` ([25683](https://github.com/civicrm/civicrm-core/pull/25683))**
- **Log Smarty debug to it's own channel ([25682](https://github.com/civicrm/civicrm-core/pull/25682))**
- **Smarty notice fix on bank_account_number ([25680](https://github.com/civicrm/civicrm-core/pull/25680))**
- **Remove unnecessary pass-by-reference ([25678](https://github.com/civicrm/civicrm-core/pull/25678))**
- **Remove code deprecated in 2018 ([25679](https://github.com/civicrm/civicrm-core/pull/25679))**
- **Remove empty on location - it should always be set now ([25675](https://github.com/civicrm/civicrm-core/pull/25675))**
- **Afform: Allow selecting case for relationship ([25618](https://github.com/civicrm/civicrm-core/pull/25618))**
- **Fix e-notice pattern around location not defined in formButtons.tpl ([25668](https://github.com/civicrm/civicrm-core/pull/25668))**
- **closes core#4070 - respect default return path ([25309](https://github.com/civicrm/civicrm-core/pull/25309))**
- **dev/core#4127 move cms user parameters to userSystem ([25585](https://github.com/civicrm/civicrm-core/pull/25585))**
- **SearchKit - Clarify how to view SQL output ([25671](https://github.com/civicrm/civicrm-core/pull/25671))**
- **Remove unused variables ([25670](https://github.com/civicrm/civicrm-core/pull/25670))**
- **Remove unused property - not used since import code refactor `_lineCount` ([25466](https://github.com/civicrm/civicrm-core/pull/25466))**
- **Remove conditional assignment around `is_deductible` ([25237](https://github.com/civicrm/civicrm-core/pull/25237))**
- **Event test cleanup, fix test to use submitted form values, rather than require a lot of contorting ([25621](https://github.com/civicrm/civicrm-core/pull/25621))**
- **Extend testing for ContributionConfirm & consolidate `isSeparateMembershipPayment` ([25270](https://github.com/civicrm/civicrm-core/pull/25270))**
- **Fix mixin to use `addTemplateDir` ([25667](https://github.com/civicrm/civicrm-core/pull/25667))**
- **Add noisy deprecation to deprecated function, after universe search ([25662](https://github.com/civicrm/civicrm-core/pull/25662))**
- **(NFC) crmURL - Add examples and whitespace. Crosslink docs. ([25665](https://github.com/civicrm/civicrm-core/pull/25665))**
- **Remove forward incompatible syntax from template ([25664](https://github.com/civicrm/civicrm-core/pull/25664))**
- **Add `crmUrl function` to smarty in the standard way ([25661](https://github.com/civicrm/civicrm-core/pull/25661))**
- **run `civix update` on `recaptcha`, `legacyCustomSearches`, `financialacls` ([25663](https://github.com/civicrm/civicrm-core/pull/25663))**
- **ext/* - General update to civix v23.02.0 ([25659](https://github.com/civicrm/civicrm-core/pull/25659))**
- **Smarty - {htxt} blocks should not be evaluated unless needed ([25653](https://github.com/civicrm/civicrm-core/pull/25653))**
- **HTML definition for subscription history date ([25655](https://github.com/civicrm/civicrm-core/pull/25655))**
- **5.59 ([25660](https://github.com/civicrm/civicrm-core/pull/25660))**
- **Notice fix on preferred_language, when null ([25656](https://github.com/civicrm/civicrm-core/pull/25656))**
- **Remove legacy handling of locks for discontinued mysql/mariaDB versions ([25654](https://github.com/civicrm/civicrm-core/pull/25654))**
- **Event registration activity target ([25650](https://github.com/civicrm/civicrm-core/pull/25650))**
- **Php8.x compatibility - do not try to count NULL ([25652](https://github.com/civicrm/civicrm-core/pull/25652))**
- **Smarty - Fix warnings about 'mb_truncate' modifier ([25651](https://github.com/civicrm/civicrm-core/pull/25651))**
- **dev/core#4126 - Fix force-url parameters on case dashboard ([25649](https://github.com/civicrm/civicrm-core/pull/25649))**
- **Allow (some) permissions with colons ([23782](https://github.com/civicrm/civicrm-core/pull/23782))**
- **Update Smarty addTemplateDir function signature to future smarty ([25248](https://github.com/civicrm/civicrm-core/pull/25248))**
- **(dev/core#4106) Add filter on pledge payment in contribution report t… ([25629](https://github.com/civicrm/civicrm-core/pull/25629))**
- **Reduce processing load in test `assertAPIFailure` ([25648](https://github.com/civicrm/civicrm-core/pull/25648))**
- **Deprecate unused, exception class with non-standard name-spacing ([25641](https://github.com/civicrm/civicrm-core/pull/25641))**
- **Make job ID accessible to searchkit for joblog ([24746](https://github.com/civicrm/civicrm-core/pull/24746))**
- **dev/core#4127 move Drupal stuff in getCiviSourceStorage to Drupal use… ([25587](https://github.com/civicrm/civicrm-core/pull/25587))**
- **Fix add version for civicrm_custom_field.fk_entity ([25642](https://github.com/civicrm/civicrm-core/pull/25642))**
- **Fix handling of invalid sql query during import ([25600](https://github.com/civicrm/civicrm-core/pull/25600))**
- **5.59 to master ([25640](https://github.com/civicrm/civicrm-core/pull/25640))**
- **Fix master-only regression - upgrade script is in wrong version ([25638](https://github.com/civicrm/civicrm-core/pull/25638))**
- **dev/core#4127 move is_drupal to use userSystem logger ([25573](https://github.com/civicrm/civicrm-core/pull/25573))**
- **5.59 ([25637](https://github.com/civicrm/civicrm-core/pull/25637))**
- **Add 'SavePoint' to import to statusBounce back to ([25602](https://github.com/civicrm/civicrm-core/pull/25602))**
- **Move form specific code to the form ([25457](https://github.com/civicrm/civicrm-core/pull/25457))**
- **Make dedupe exceptions searchable in SearchKit ([25522](https://github.com/civicrm/civicrm-core/pull/25522))**
- **E-notice fix Ical display ([25612](https://github.com/civicrm/civicrm-core/pull/25612))**
- **dev/core#4112 Privatise `prevNextCache` functions ([25392](https://github.com/civicrm/civicrm-core/pull/25392))**
- **Reduce unneeded DNS queries during OAuth flow ([25446](https://github.com/civicrm/civicrm-core/pull/25446))**
- **composer require --dev yoast/phpunit-polyfills ([25631](https://github.com/civicrm/civicrm-core/pull/25631))**
- **Extra deprecation for clarity on token function `convertPseudoConstantsUsingMetadata` ([25511](https://github.com/civicrm/civicrm-core/pull/25511))**
- **Angular Coder: Fix unescaping of quotes breaking attributes ([25630](https://github.com/civicrm/civicrm-core/pull/25630))**
- **EntityRef - Format custom field display value on QuickForms ([25632](https://github.com/civicrm/civicrm-core/pull/25632))**
- **Add new EntityReference custom field type ([25471](https://github.com/civicrm/civicrm-core/pull/25471))**
- **getStatus() should be returning a string ([25441](https://github.com/civicrm/civicrm-core/pull/25441))**
- **Add setting to disable Smarty in scheduled reminders ([25444](https://github.com/civicrm/civicrm-core/pull/25444))**
- **Regression: Fix DB syntax error on Parse address scheduled job ([25616](https://github.com/civicrm/civicrm-core/pull/25616))**
- **Afform: Fix broken syntax for saving reciprocal relationships ([25620](https://github.com/civicrm/civicrm-core/pull/25620))**
- **Always show "add more buttons" dropdown in searchkit view ([25596](https://github.com/civicrm/civicrm-core/pull/25596))**
- **[REF][PHP8.2] Remove unnecessary dynamic property ([25622](https://github.com/civicrm/civicrm-core/pull/25622))**
- **[REF][PHP8.2] Fix use of self in callables deprecation ([25625](https://github.com/civicrm/civicrm-core/pull/25625))**
- **[REF][PHP8.2] Tidy up properties on api_v3_GroupContactTest ([25626](https://github.com/civicrm/civicrm-core/pull/25626))**
- **[REF][PHP8.2] Tidy up properties in CRM_Event_BAO_EventPermissionsTest ([25623](https://github.com/civicrm/civicrm-core/pull/25623))**
- **(REF) Remove test reference to property which no longer exists ([25624](https://github.com/civicrm/civicrm-core/pull/25624))**
- **Php8.2 test fix, remove one instance of undeclared property ([25619](https://github.com/civicrm/civicrm-core/pull/25619))**
- **Stop loading unused `relatedObjects` ([25617](https://github.com/civicrm/civicrm-core/pull/25617))**
- **[NFC] doc block fix ([25610](https://github.com/civicrm/civicrm-core/pull/25610))**
- **dev/core#4127 move mailing workflow check to userSystem ([25586](https://github.com/civicrm/civicrm-core/pull/25586))**
- **Remove function deprecated a year ago ([25615](https://github.com/civicrm/civicrm-core/pull/25615))**
- **Fix test to test the thing it was written to test ([25608](https://github.com/civicrm/civicrm-core/pull/25608))**
- **[NFC] php8.2 support in test class `ActivitySearchTest` ([25607](https://github.com/civicrm/civicrm-core/pull/25607))**
- **distmaker - Fix export of WordPress patches ([25599](https://github.com/civicrm/civicrm-core/pull/25599))**
- **Make private function private ([25604](https://github.com/civicrm/civicrm-core/pull/25604))**
- **Disambiguate `Address.state_province_id:abbr` ([25550](https://github.com/civicrm/civicrm-core/pull/25550))**
- **update entity mapping logic for profile fields to include contact subtypes ([25570](https://github.com/civicrm/civicrm-core/pull/25570))**
- **Allow OAuth redirect URI to be overridden in client or provider config ([25445](https://github.com/civicrm/civicrm-core/pull/25445))**
- **(REF) Tidy up unused params in api_v3_ContributionSoftTest ([25322](https://github.com/civicrm/civicrm-core/pull/25322))**
- **APIv4 - Limited support for casting ([25595](https://github.com/civicrm/civicrm-core/pull/25595))**
- **Remove unused constants left over from import cleanup ([25601](https://github.com/civicrm/civicrm-core/pull/25601))**
- **api4 explorer: make boolean params work in cv (short syntax) ([25589](https://github.com/civicrm/civicrm-core/pull/25589))**
- **Disambiguate `Address.state_province_id:abbr` (PHP asort) ([25552](https://github.com/civicrm/civicrm-core/pull/25552))**
- **Filter expired searches from search kit results ([25568](https://github.com/civicrm/civicrm-core/pull/25568))**
- **Fix empty values of Note on Import contribution ([25569](https://github.com/civicrm/civicrm-core/pull/25569))**
- **Deprecate unused `CRM_Core_BAO_UFField::copy()` function ([25594](https://github.com/civicrm/civicrm-core/pull/25594))**
- **dev/core#4127 move ipAddress to userSystem ([25572](https://github.com/civicrm/civicrm-core/pull/25572))**
- **Fix more schema checks to use mysql DATABASE() function, deprecate php function ([25593](https://github.com/civicrm/civicrm-core/pull/25593))**
- **Remove empty function ([25592](https://github.com/civicrm/civicrm-core/pull/25592))**
- **Fix Contact import e-notice on preview screen ([25302](https://github.com/civicrm/civicrm-core/pull/25302))**
- **dev/core#4127 use userSystem method to check for Views ([25571](https://github.com/civicrm/civicrm-core/pull/25571))**
- **[REF] Fix undefined variable notice in WordPress tests ([25591](https://github.com/civicrm/civicrm-core/pull/25591))**
- **5.59 ([25590](https://github.com/civicrm/civicrm-core/pull/25590))**
- **5.59 ([25584](https://github.com/civicrm/civicrm-core/pull/25584))**
- **5.59 ([25582](https://github.com/civicrm/civicrm-core/pull/25582))**
- **5.59 ([25581](https://github.com/civicrm/civicrm-core/pull/25581))**
- **CiviContribute - Fix warning about 'suppressedEmails' when generating PDF ([25576](https://github.com/civicrm/civicrm-core/pull/25576))**
- **Smarty {ts} - For extensions, use fallback similar to E::ts() and JS ts() ([25383](https://github.com/civicrm/civicrm-core/pull/25383))**
- **Make `activity_type_id` available to `links` hook, test ([25565](https://github.com/civicrm/civicrm-core/pull/25565))**
- **Make unshared `getTree` function private, remove never passed params ([25517](https://github.com/civicrm/civicrm-core/pull/25517))**
- **5.59 to master ([25567](https://github.com/civicrm/civicrm-core/pull/25567))**
- **Preliminary cleanup, comments, type hints ([25564](https://github.com/civicrm/civicrm-core/pull/25564))**
- **dev/core#4076 split up the theme method ([25329](https://github.com/civicrm/civicrm-core/pull/25329))**
- **Fix fatal error on upgrade success screen ([25554](https://github.com/civicrm/civicrm-core/pull/25554))**
- **Mailing Summary Report: support pseudofields ([25560](https://github.com/civicrm/civicrm-core/pull/25560))**
- **[REF][PHP8.2] Remove use of dynamic properties in CRM_Contact_Form_Task_EmailTest ([25562](https://github.com/civicrm/civicrm-core/pull/25562))**
- **[REF][PHP8.2] Get rid of dynamic properties in CRM_Core_Payment_AuthorizeNetTest ([25561](https://github.com/civicrm/civicrm-core/pull/25561))**
- **[REF][PHP8.2] Stop use of dynamic property in AdditionalPaymentTest ([25559](https://github.com/civicrm/civicrm-core/pull/25559))**
- **[REF][PHP8.2] Use variable instead of dynmaic property (CRM_Group_Page_AjaxTest) ([25558](https://github.com/civicrm/civicrm-core/pull/25558))**
- **[REF][PHP8.2] Declare property in CRM_Pledge_BAO_PledgeBlockTest ([25557](https://github.com/civicrm/civicrm-core/pull/25557))**
- **[REF][PHP8.2] Declare property in CRM_Utils_FakeObject ([25556](https://github.com/civicrm/civicrm-core/pull/25556))**
- **A couple of minor smarty notice fixes ([25514](https://github.com/civicrm/civicrm-core/pull/25514))**
- **Upgrade test to use more recent methodology for testing forms ([25551](https://github.com/civicrm/civicrm-core/pull/25551))**
- **Smarty notice fix ([25544](https://github.com/civicrm/civicrm-core/pull/25544))**
- **Remove always-NULL `$singleRecord` variable ([25519](https://github.com/civicrm/civicrm-core/pull/25519))**
- **Enotice fix, pledge block on UserDashboard ([25546](https://github.com/civicrm/civicrm-core/pull/25546))**
- **SearchKit - Configurable action menu tasks per-search-display ([25521](https://github.com/civicrm/civicrm-core/pull/25521))**
- **Do not use reference for Object parameter, death to `_NULLObject` ([25541](https://github.com/civicrm/civicrm-core/pull/25541))**
- **Remove invalid 'world_region' => 'India' from test ([25540](https://github.com/civicrm/civicrm-core/pull/25540))**
- **Fix a couple more places to use mysql DATABASE() function ([25537](https://github.com/civicrm/civicrm-core/pull/25537))**
- **5.59 ([25538](https://github.com/civicrm/civicrm-core/pull/25538))**
- **Typo executequery => executeQuery ([25539](https://github.com/civicrm/civicrm-core/pull/25539))**
- **NFC cleanup in test class ([25524](https://github.com/civicrm/civicrm-core/pull/25524))**
- **Use mysql DATABASE() function instead of php code ([25530](https://github.com/civicrm/civicrm-core/pull/25530))**
- **5.59 ([25531](https://github.com/civicrm/civicrm-core/pull/25531))**
- **Use `DATABASE()` function rather than lossa code ([25528](https://github.com/civicrm/civicrm-core/pull/25528))**
- **Enotice fix on userDashboard with contributions, replace deprecated functions with api4v calls ([24861](https://github.com/civicrm/civicrm-core/pull/24861))**
- **5.59 ([25526](https://github.com/civicrm/civicrm-core/pull/25526))**
- **Bump dompdf/dompdf from 2.0.2 to 2.0.3 ([25520](https://github.com/civicrm/civicrm-core/pull/25520))**
- **Add noisy deprecation to `replaceHookTokens` ([25510](https://github.com/civicrm/civicrm-core/pull/25510))**
- **dev/core#4117 Add is_current to UserJob, Search ([25516](https://github.com/civicrm/civicrm-core/pull/25516))**
- **Remove never-true IF ([25518](https://github.com/civicrm/civicrm-core/pull/25518))**
- **Remove interaction with complex legacy `getTree` function ([25395](https://github.com/civicrm/civicrm-core/pull/25395))**
- **only load dedupe rules for the chosen entity ([25515](https://github.com/civicrm/civicrm-core/pull/25515))**
- **Post divide code tidy up ([25195](https://github.com/civicrm/civicrm-core/pull/25195))**
- **(dev/core#4028) make CRM_Admin_Form_Setting_UF more CMS agnostic ([25328](https://github.com/civicrm/civicrm-core/pull/25328))**
- **Fully deprecate `CRM_Utils_Token::getMembershipTokenDetails`, `CRM_Utils_Token::replaceEntityTokens` ([25507](https://github.com/civicrm/civicrm-core/pull/25507))**
- **PaymentProcessor - Use ajax refresh ([25512](https://github.com/civicrm/civicrm-core/pull/25512))**
- **Fully deprecate `CRM_Core_SelectValues::eventTokens()` ([25509](https://github.com/civicrm/civicrm-core/pull/25509))**
- **Add extra test, comment how it could be used to fix bug ([25503](https://github.com/civicrm/civicrm-core/pull/25503))**
- **Remove unused variable ([25508](https://github.com/civicrm/civicrm-core/pull/25508))**
- **Fully deprecate `CRM_Core_SelectValues::membershipTokens()` ([25506](https://github.com/civicrm/civicrm-core/pull/25506))**
- **Fully deprecate legacy contributionTokens ([25505](https://github.com/civicrm/civicrm-core/pull/25505))**
- **API4: Allow save() to match on null values ([24971](https://github.com/civicrm/civicrm-core/pull/24971))**
- **Fix Scheduled reminders form to use tokenProcessor to get token list ([25052](https://github.com/civicrm/civicrm-core/pull/25052))**
- **Default to supporting partial locales ([25063](https://github.com/civicrm/civicrm-core/pull/25063))**
- **fix the id help instead use class help ([25487](https://github.com/civicrm/civicrm-core/pull/25487))**
- **[REF][PHP8.2] Refactor properties on CRM_Event_Form_SearchTest ([25501](https://github.com/civicrm/civicrm-core/pull/25501))**
- **[REF][PHP8.2] Declare dynamic property in two SMS tests ([25502](https://github.com/civicrm/civicrm-core/pull/25502))**
- **dev/drupal#176 - allow symfony 6 ([25499](https://github.com/civicrm/civicrm-core/pull/25499))**
- **(REF) Remove unused setup from AdhocMailingTest ([25500](https://github.com/civicrm/civicrm-core/pull/25500))**
- **dev/drupal#176 - Move cache/integrationtest only used for testing into require-dev ([25054](https://github.com/civicrm/civicrm-core/pull/25054))**
- **Fix user profile file fields not saving. ([80](https://github.com/civicrm/civicrm-drupal-8/pull/80))**
- **[REF] Add support for composer installers v2 which seems to be needed… ([79](https://github.com/civicrm/civicrm-drupal-8/pull/79))**
- **update CiviCrmTestBase setup() method declaration to match BrowserTestBase ([78](https://github.com/civicrm/civicrm-drupal-8/pull/78))**
- **CiviCRM Stable Version bump ([291](https://github.com/civicrm/civicrm-wordpress/pull/291))**
- **5.59 ([290](https://github.com/civicrm/civicrm-wordpress/pull/290))**
## <a name="misc"></a>Miscellany
## <a name="credits"></a>Credits
This release was developed by the following code authors:
AGH Strategies - Andie Hunt; anemirovsky; BrightMinded Ltd - Bradley Taylor; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; dependabot[bot]; ES-Progress - Sandor Semsey; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - Luciano Spiegel; JMA Consulting - Seamus Lee; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Skvare - Mark Hanna; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi, Michael McAndrew; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
Agileware - Francis Whittle, Justin Freeman; Andreas Howiller; BeccaTregenna; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; civibot[bot]; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Luke Stewart; Jens Schuppe; JMA Consulting - Joe Murray, Seamus Lee; Lemniscus - Noah Miller; Megaphone Technology Consulting - Brienne Kordis, Jon Goldberg; MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; Tadpole Collective - Kevin Cristiano; Third Sector Design - Michael McAndrew; Wikimedia Foundation - Eileen McNaughton
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment