diff --git a/civicrm.php b/civicrm.php index 5463d699ebdd04ffdcc6d5478dbca46fd1f764ad..bfc0c589da33361ccbebb0e39602feeaf55a2fc9 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /* Plugin Name: CiviCRM Description: CiviCRM - Growing and Sustaining Relationships -Version: 5.30.0 +Version: 5.30.1 Requires at least: 4.9 Requires PHP: 7.1 Author: CiviCRM LLC @@ -56,7 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Set version here: when it changes, will force JS to reload -define( 'CIVICRM_PLUGIN_VERSION', '5.30.0' ); +define( 'CIVICRM_PLUGIN_VERSION', '5.30.1' ); // Store reference to this file if (!defined('CIVICRM_PLUGIN_FILE')) { diff --git a/civicrm/CRM/Contact/BAO/RelationshipCache.php b/civicrm/CRM/Contact/BAO/RelationshipCache.php index edb76cd1dba402000a508a3582b26162c474a32d..c1483973e8120dfed4339228f97e1d4777a486aa 100644 --- a/civicrm/CRM/Contact/BAO/RelationshipCache.php +++ b/civicrm/CRM/Contact/BAO/RelationshipCache.php @@ -71,6 +71,9 @@ class CRM_Contact_BAO_RelationshipCache extends CRM_Contact_DAO_RelationshipCach */ public static function onHookTriggerInfo($e) { $relUpdates = self::createInsertUpdateQueries(); + // Use utf8mb4_bin or utf8_bin, depending on what's in use. + $collation = preg_replace('/^(utf8(?:mb4)?)_.*$/', '$1_bin', CRM_Core_BAO_SchemaHandler::getInUseCollation()); + foreach ($relUpdates as $relUpdate) { /** * This trigger runs whenever a "civicrm_relationship" record is inserted or updated. @@ -97,8 +100,8 @@ class CRM_Contact_BAO_RelationshipCache extends CRM_Contact_DAO_RelationshipCach 'sql' => sprintf("\nIF (%s) THEN\n %s;\n END IF;\n", // Condition - implode(' OR ', array_map(function ($col) { - return "(OLD.$col != NEW.$col COLLATE utf8_bin)"; + implode(' OR ', array_map(function ($col) use ($collation) { + return "(OLD.$col != NEW.$col COLLATE $collation)"; }, self::$relTypeWatchFields)), // Action diff --git a/civicrm/CRM/Contact/Form/Edit/TagsAndGroups.php b/civicrm/CRM/Contact/Form/Edit/TagsAndGroups.php index 9299246d9beb57312e3c9bd8172f874e589c74e8..73e9420dff9e5ffb87b958a45414943f682daf93 100644 --- a/civicrm/CRM/Contact/Form/Edit/TagsAndGroups.php +++ b/civicrm/CRM/Contact/Form/Edit/TagsAndGroups.php @@ -88,12 +88,13 @@ class CRM_Contact_Form_Edit_TagsAndGroups { } if ($groupID || !empty($group)) { - $groups = CRM_Contact_BAO_Group::getGroupsHierarchy($ids); + $groups = CRM_Contact_BAO_Group::getGroupsHierarchy($ids, NULL, '- '); $attributes['skiplabel'] = TRUE; $elements = []; $groupsOptions = []; - foreach ($groups as $id => $group) { + foreach ($groups as $group) { + $id = $group['id']; // make sure that this group has public visibility if ($visibility && $group['visibility'] == 'User and User Admin Only' diff --git a/civicrm/CRM/Contact/Form/Search/Basic.php b/civicrm/CRM/Contact/Form/Search/Basic.php index c1e84382319ffdfe400087c705c29717c939118d..158055fed7193edb2b582840d468cf5dc35b1ee8 100644 --- a/civicrm/CRM/Contact/Form/Search/Basic.php +++ b/civicrm/CRM/Contact/Form/Search/Basic.php @@ -49,7 +49,7 @@ class CRM_Contact_Form_Search_Basic extends CRM_Contact_Form_Search { // add select for groups // Get hierarchical listing of groups, respecting ACLs for CRM-16836. - $groupHierarchy = CRM_Contact_BAO_Group::getGroupsHierarchy($this->_group, NULL, ' '); + $groupHierarchy = CRM_Contact_BAO_Group::getGroupsHierarchy($this->_group, NULL, '- '); if (!empty($searchOptions['groups'])) { $this->addField('group', [ 'entity' => 'group_contact', diff --git a/civicrm/CRM/Contact/Form/Search/Criteria.php b/civicrm/CRM/Contact/Form/Search/Criteria.php index bd2d5829da5c6efc18760951f28fadd76716e4f4..6bcad01d86d63464a215fcf15a5a97d84ee7b42c 100644 --- a/civicrm/CRM/Contact/Form/Search/Criteria.php +++ b/civicrm/CRM/Contact/Form/Search/Criteria.php @@ -42,7 +42,7 @@ class CRM_Contact_Form_Search_Criteria { // multiselect for groups if ($form->_group) { // Arrange groups into hierarchical listing (child groups follow their parents and have indentation spacing in title) - $groupHierarchy = CRM_Contact_BAO_Group::getGroupsHierarchy($form->_group, NULL, ' ', TRUE); + $groupHierarchy = CRM_Contact_BAO_Group::getGroupsHierarchy($form->_group, NULL, '- ', TRUE); $form->add('select', 'group', ts('Groups'), $groupHierarchy, FALSE, ['id' => 'group', 'multiple' => 'multiple', 'class' => 'crm-select2'] diff --git a/civicrm/CRM/Core/BAO/SchemaHandler.php b/civicrm/CRM/Core/BAO/SchemaHandler.php index a6c9845a224de45e2feb8e740d16d68a553232f7..675475bd4e1ff92b96b29fe2160e8bda9811804b 100644 --- a/civicrm/CRM/Core/BAO/SchemaHandler.php +++ b/civicrm/CRM/Core/BAO/SchemaHandler.php @@ -889,6 +889,9 @@ MODIFY {$columnName} varchar( $length ) // Disable i18n rewrite. CRM_Core_DAO::executeQuery($query, $params, TRUE, NULL, FALSE, FALSE); } + // Rebuild triggers and other schema reconciliation if needed. + $logging = new CRM_Logging_Schema(); + $logging->fixSchemaDifferences(); return TRUE; } diff --git a/civicrm/CRM/Event/Page/UserDashboard.php b/civicrm/CRM/Event/Page/UserDashboard.php index 39097caa463dcb73d461a60027fa6cb21c6b52d1..e1c0aa73c2c089217de4a78efd2b0d020e3a11aa 100644 --- a/civicrm/CRM/Event/Page/UserDashboard.php +++ b/civicrm/CRM/Event/Page/UserDashboard.php @@ -25,19 +25,29 @@ class CRM_Event_Page_UserDashboard extends CRM_Contact_Page_View_UserDashBoard { * */ public function listParticipations() { - $controller = new CRM_Core_Controller_Simple( - 'CRM_Event_Form_Search', - ts('Events'), - NULL, - FALSE, FALSE, TRUE, FALSE - ); - $controller->setEmbedded(TRUE); - $controller->reset(); - $controller->set('context', 'user'); - $controller->set('cid', $this->_contactId); - $controller->set('force', 1); - $controller->process(); - $controller->run(); + $event_rows = []; + + $participants = \Civi\Api4\Participant::get(FALSE) + ->addSelect('id', 'contact_id', 'status_id:name', 'status_id:label', 'event.id', 'event.title', 'event.start_date', 'event.end_date') + ->addWhere('contact_id', '=', $this->_contactId) + ->addOrderBy('event.start_date', 'DESC') + ->execute() + ->indexBy('id'); + + // Flatten the results in the format expected by the template + foreach ($participants as $p) { + $p['participant_id'] = $p['id']; + $p['status'] = $p['status_id:name']; + $p['participant_status'] = $p['status_id:label']; + $p['event_id'] = $p['event.id']; + $p['event_title'] = $p['event.title']; + $p['event_start_date'] = $p['event.start_date']; + $p['event_end_date'] = $p['event.end_date']; + + $event_rows[] = $p; + } + + $this->assign('event_rows', $event_rows); } /** diff --git a/civicrm/CRM/Mailing/BAO/Recipients.php b/civicrm/CRM/Mailing/BAO/Recipients.php index 14820ed84cf19e35450e17770867f781be48d62c..53cf1802078d84d3bac14729e816bbbc4160b98c 100644 --- a/civicrm/CRM/Mailing/BAO/Recipients.php +++ b/civicrm/CRM/Mailing/BAO/Recipients.php @@ -57,28 +57,23 @@ WHERE mailing_id = %1 $limitString = "LIMIT $offset, $limit"; } - $isSMSmode = CRM_Core_DAO::getFieldValue('CRM_Mailing_BAO_Mailing', $mailingID, 'sms_provider_id', 'id'); - $additionalJoin = ''; - if (!$isSMSmode) { - // mailing_recipients added when mailing is submitted in UI by user. - // if any email is marked on_hold =1 or contact is deceased after mailing is submitted - // then it should be get skipped while preparing event_queue - // event_queue list is prepared when mailing job gets started. - $additionalJoin = " INNER JOIN civicrm_email e ON (r.email_id = e.id AND e.on_hold = 0) - INNER JOIN civicrm_contact c on (c.id = r.contact_id AND c.is_deceased <> 1 AND c.do_not_email = 0 AND c.is_opt_out = 0) -"; - } - else { - $additionalJoin = "INNER JOIN civicrm_contact c on (c.id = r.contact_id AND c.is_deceased <> 1 AND c.do_not_sms = 0 AND c.is_opt_out = 0)"; - } + $isSMSMode = CRM_Core_DAO::getFieldValue('CRM_Mailing_BAO_Mailing', $mailingID, 'sms_provider_id', 'id'); + $additionalJoin = $isSMSMode ? '' : " INNER JOIN civicrm_email e ON (r.email_id = e.id AND e.on_hold = 0)"; $sql = " -SELECT r.contact_id, r.email_id, r.phone_id -FROM civicrm_mailing_recipients r -{$additionalJoin} -WHERE r.mailing_id = %1 - $limitString -"; + SELECT r.contact_id, r.email_id, r.phone_id + FROM civicrm_mailing_recipients r + INNER JOIN civicrm_contact c on + (c.id = r.contact_id + AND c.is_deleted = 0 + AND c.is_deceased = 0 + AND c.do_not_" . ($isSMSMode ? 'sms' : 'email') . " = 0 + AND c.is_opt_out = 0 + ) + {$additionalJoin} + WHERE r.mailing_id = %1 + $limitString + "; $params = [1 => [$mailingID, 'Integer']]; return CRM_Core_DAO::executeQuery($sql, $params); diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.30.1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.30.1.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..20f875dd0af4f0dfacabc17eaff5d311d174e2c2 --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.30.1.mysql.tpl @@ -0,0 +1 @@ +{* file to handle db changes in 5.30.1 during upgrade *} diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index 0474649f10b21372a0cba0075913cab9a87db544..7997fa7ef41e035fb4749b3efd1df38060fdb80d 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.30.0', + return array( 'version' => '5.30.1', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index 970335ce2d46916a877c4c1ce7ae3bfc3e86e99e..d8e085523bc70105adcad03ee7b977627bbeb817 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,6 +15,15 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.30.1 + +Released October 21, 2020 + +- **[Synopsis](release-notes/5.30.1.md#synopsis)** +- **[Bugs resolved](release-notes/5.30.1.md#bugs)** +- **[Credits](release-notes/5.30.1.md#credits)** +- **[Feedback](release-notes/5.30.1.md#feedback)** + ## CiviCRM 5.30.0 Released October 7, 2020 diff --git a/civicrm/release-notes/5.30.1.md b/civicrm/release-notes/5.30.1.md new file mode 100644 index 0000000000000000000000000000000000000000..28137c0e32816869d2dfd5d7bb59b8e3196f5af9 --- /dev/null +++ b/civicrm/release-notes/5.30.1.md @@ -0,0 +1,41 @@ +# CiviCRM 5.30.1 + +Released October 21, 2020 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +| --------------------------------------------------------------- | -------- | +| **Change the database schema?** | **yes** | +| Alter the API? | no | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +* **_CiviMail_: Recently deleted contacts still receive email ([dev/core#2119](https://lab.civicrm.org/dev/core/-/issues/2119): [#18763](https://github.com/civicrm/civicrm-core/pull/18763))** +* **_Contact Dashboard_: Authenticated user cannot see their own events ([dev/event#43](https://lab.civicrm.org/dev/event/-/issues/43): [#18758](https://github.com/civicrm/civicrm-core/pull/18758))** +* **_Groups_: Styling error when selecting groups ([dev/core#2105](https://lab.civicrm.org/dev/core/-/issues/2105): [#18719](https://github.com/civicrm/civicrm-core/pull/18719))** +* **_Relationships_: Error editing "Relationship Types" when using utf8mb4 ([#18721](https://github.com/civicrm/civicrm-core/pull/18721), [#18751](https://github.com/civicrm/civicrm-core/pull/18751))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; Rar9; Megaphone Technology Consulting - Jon +Goldberg; MJCO - Mikey O'Toole; Lighthouse Consulting and Design - Brian Shaughnessy; JMA +Consulting - Seamus Lee, Monish Deb; Fuzion - Luke Stewart; Dave D; Coop SymbioTIC - +Mathieu Lutfy; CiviCRM - Coleman Watts, Tim Otten; Artful Robot - Rich Lott; Andy Clarke; + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index b565cd5f8bc0f185829dddad09ef40638c982d70..8bb41cad738989a3d29841538e15cb518430a9a3 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -23896,4 +23896,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.30.0'; +UPDATE civicrm_domain SET version = '5.30.1'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 7bea0df4a5d0e25048d6c2a96c95fb0d4a062248..d3f61f51b377be90fc49dfb719949808dd91c6ee 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -399,7 +399,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; -INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.30.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); +INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.30.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index 7a74b810e6251b1633490fb3350011c7803d22bf..88a6c222653210b66fd7a4bcf10722cf03d39f87 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit157c8f429cb411f5002e91a721972659::getLoader(); +return ComposerAutoloaderInit53b94b8697ed3e528623510a6d85b3d5::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index b76ea7c666459ff43c4330222beb188063e1131c..8d780b7acb541145a903da77d58d5100fe69dd90 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit157c8f429cb411f5002e91a721972659 +class ComposerAutoloaderInit53b94b8697ed3e528623510a6d85b3d5 { private static $loader; @@ -19,9 +19,9 @@ class ComposerAutoloaderInit157c8f429cb411f5002e91a721972659 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit157c8f429cb411f5002e91a721972659', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit53b94b8697ed3e528623510a6d85b3d5', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit157c8f429cb411f5002e91a721972659', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit53b94b8697ed3e528623510a6d85b3d5', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); @@ -31,7 +31,7 @@ class ComposerAutoloaderInit157c8f429cb411f5002e91a721972659 if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit157c8f429cb411f5002e91a721972659::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -52,19 +52,19 @@ class ComposerAutoloaderInit157c8f429cb411f5002e91a721972659 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit157c8f429cb411f5002e91a721972659::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire157c8f429cb411f5002e91a721972659($fileIdentifier, $file); + composerRequire53b94b8697ed3e528623510a6d85b3d5($fileIdentifier, $file); } return $loader; } } -function composerRequire157c8f429cb411f5002e91a721972659($fileIdentifier, $file) +function composerRequire53b94b8697ed3e528623510a6d85b3d5($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index 4ef4257dbf96cf18d58fb37809f854e09a616bab..2b8c10e09b8b6ce1097cbf474aab08f44358e683 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit157c8f429cb411f5002e91a721972659 +class ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5 { public static $files = array ( '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', @@ -535,11 +535,11 @@ class ComposerStaticInit157c8f429cb411f5002e91a721972659 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit157c8f429cb411f5002e91a721972659::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit157c8f429cb411f5002e91a721972659::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit157c8f429cb411f5002e91a721972659::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInit157c8f429cb411f5002e91a721972659::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInit157c8f429cb411f5002e91a721972659::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInit53b94b8697ed3e528623510a6d85b3d5::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index e8dc6c3e450d8aa9e4577e010995195d9170c0be..57d18a2041aa88dd58f45f4c01364f4c22be0792 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.30.0</version_no> + <version_no>5.30.1</version_no> </version>