From fd6c0826627db22986b381649fabb2df89bb290a Mon Sep 17 00:00:00 2001 From: Kevin Cristiano <kcristiano@kcristiano.com> Date: Fri, 25 Aug 2023 06:33:25 -0400 Subject: [PATCH] civicrm release-5.64.2 --- civicrm.php | 4 +- civicrm/CRM/Import/Form/DataSource.php | 2 +- civicrm/CRM/Mailing/BAO/Mailing.php | 5 +- civicrm/CRM/Member/Form/MembershipBlock.php | 6 +-- civicrm/CRM/Price/BAO/PriceField.php | 22 ++++----- civicrm/Civi/Api4/Survey.php | 25 ---------- civicrm/civicrm-version.php | 2 +- civicrm/ext/afform/admin/info.xml | 2 +- .../ext/afform/core/Civi/Afform/Tokens.php | 17 ++++++- civicrm/ext/afform/core/afform.php | 7 --- civicrm/ext/afform/core/info.xml | 2 +- civicrm/ext/afform/html/info.xml | 2 +- civicrm/ext/afform/mock/info.xml | 2 +- civicrm/ext/authx/info.xml | 2 +- civicrm/ext/civi_campaign/info.xml | 2 +- civicrm/ext/civi_case/info.xml | 2 +- civicrm/ext/civi_contribute/info.xml | 2 +- civicrm/ext/civi_event/info.xml | 2 +- civicrm/ext/civi_mail/info.xml | 2 +- civicrm/ext/civi_member/info.xml | 2 +- civicrm/ext/civi_pledge/info.xml | 2 +- civicrm/ext/civi_report/info.xml | 2 +- civicrm/ext/civicrm_admin_ui/info.xml | 2 +- civicrm/ext/civigrant/info.xml | 2 +- civicrm/ext/civiimport/info.xml | 2 +- civicrm/ext/ckeditor4/info.xml | 2 +- .../ext/contributioncancelactions/info.xml | 2 +- civicrm/ext/elavon/info.xml | 2 +- civicrm/ext/eventcart/info.xml | 2 +- civicrm/ext/ewaysingle/info.xml | 2 +- civicrm/ext/financialacls/info.xml | 2 +- civicrm/ext/flexmailer/info.xml | 2 +- civicrm/ext/greenwich/info.xml | 2 +- civicrm/ext/legacycustomsearches/info.xml | 2 +- civicrm/ext/message_admin/info.xml | 2 +- civicrm/ext/oauth-client/info.xml | 2 +- civicrm/ext/payflowpro/info.xml | 2 +- civicrm/ext/recaptcha/info.xml | 2 +- .../SearchDisplay/AbstractRunAction.php | 4 +- civicrm/ext/search_kit/info.xml | 2 +- .../api/v4/SearchDisplay/SearchRunTest.php | 46 +++++++++++++++++++ civicrm/ext/sequentialcreditnotes/info.xml | 2 +- civicrm/ext/standaloneusers/info.xml | 2 +- civicrm/release-notes.md | 9 ++++ civicrm/release-notes/5.64.2.md | 43 +++++++++++++++++ civicrm/sql/civicrm_data.mysql | 2 +- civicrm/sql/civicrm_generated.mysql | 2 +- civicrm/vendor/autoload.php | 2 +- civicrm/vendor/composer/autoload_real.php | 14 +++--- civicrm/vendor/composer/autoload_static.php | 12 ++--- civicrm/vendor/composer/installed.php | 4 +- civicrm/xml/version.xml | 2 +- 52 files changed, 186 insertions(+), 108 deletions(-) delete mode 100644 civicrm/Civi/Api4/Survey.php create mode 100644 civicrm/release-notes/5.64.2.md diff --git a/civicrm.php b/civicrm.php index 89d71f97b5..e08434cb7c 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /** * Plugin Name: CiviCRM * Description: CiviCRM - Growing and Sustaining Relationships - * Version: 5.64.1 + * Version: 5.64.2 * Requires at least: 4.9 * Requires PHP: 7.3 * Author: CiviCRM LLC @@ -36,7 +36,7 @@ if (!defined('ABSPATH')) { } // Set version here: changing it forces Javascript and CSS to reload. -define('CIVICRM_PLUGIN_VERSION', '5.64.1'); +define('CIVICRM_PLUGIN_VERSION', '5.64.2'); // Store reference to this file. if (!defined('CIVICRM_PLUGIN_FILE')) { diff --git a/civicrm/CRM/Import/Form/DataSource.php b/civicrm/CRM/Import/Form/DataSource.php index 48c8046a3e..75149c026e 100644 --- a/civicrm/CRM/Import/Form/DataSource.php +++ b/civicrm/CRM/Import/Form/DataSource.php @@ -86,7 +86,7 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms { $this->assign('urlPath', 'civicrm/import/datasource'); $this->assign('urlPathVar', 'snippet=4&user_job_id=' . $this->get('user_job_id')); if ($this->isImportDataUploaded()) { - $this->add('checkbox', 'use_existing_upload', ts('Use data already uploaded'), NULL, FALSE, [ + $this->add('checkbox', 'use_existing_upload', ts('Use data already uploaded'), [ 'onChange' => " CRM.$('.crm-import-datasource-form-block-dataSource').toggle(); CRM.$('#data-source-form-block').toggle()", diff --git a/civicrm/CRM/Mailing/BAO/Mailing.php b/civicrm/CRM/Mailing/BAO/Mailing.php index bb726c6a59..23c089f440 100644 --- a/civicrm/CRM/Mailing/BAO/Mailing.php +++ b/civicrm/CRM/Mailing/BAO/Mailing.php @@ -2579,10 +2579,7 @@ LEFT JOIN civicrm_mailing_group g ON g.mailing_id = m.id ); } $form->add('checkbox', "{$prefix}updateTemplate", ts('Update Template'), NULL); - - $form->add('checkbox', "{$prefix}saveTemplate", ts('Save As New Template'), NULL, FALSE, - ['onclick' => "showSaveDetails(this, '{$prefix}');"] - ); + $form->add('checkbox', "{$prefix}saveTemplate", ts('Save As New Template'), ['onclick' => "showSaveDetails(this, '{$prefix}');"]); $form->add('text', "{$prefix}saveTemplateName", ts('Template Title')); } diff --git a/civicrm/CRM/Member/Form/MembershipBlock.php b/civicrm/CRM/Member/Form/MembershipBlock.php index 9018e63bc4..7910ad9d46 100644 --- a/civicrm/CRM/Member/Form/MembershipBlock.php +++ b/civicrm/CRM/Member/Form/MembershipBlock.php @@ -242,16 +242,16 @@ class CRM_Member_Form_MembershipBlock extends CRM_Contribute_Form_ContributionPa } if (!empty($params['member_is_active'])) { // Don't allow Contribution price set w/ membership signup, CRM-5095. - $priceSetExtendsMembership = \Civi\Api4\PriceSetEntity::get(FALSE) + $priceSetNotExtendingMembership = \Civi\Api4\PriceSetEntity::get(FALSE) ->addSelect('id') ->addJoin('PriceSet AS price_set', 'LEFT', ['price_set_id', '=', 'price_set.id']) ->addWhere('entity_table', '=', 'civicrm_contribution_page') ->addWhere('entity_id', '=', $contributionPageId) - ->addWhere('price_set.extends:name', 'CONTAINS', 'CiviMember') + ->addWhere('price_set.extends:name', 'NOT CONTAINS', 'CiviMember') ->addWhere('price_set.is_quick_config', '=', 0) ->execute() ->first(); - if (!$priceSetExtendsMembership) { + if ($priceSetNotExtendingMembership) { $errors['member_is_active'] = ts('You cannot enable both Membership Signup and a Contribution Price Set on the same online contribution page.'); return $errors; } diff --git a/civicrm/CRM/Price/BAO/PriceField.php b/civicrm/CRM/Price/BAO/PriceField.php index 1a1676e957..0b81350af5 100644 --- a/civicrm/CRM/Price/BAO/PriceField.php +++ b/civicrm/CRM/Price/BAO/PriceField.php @@ -309,20 +309,20 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { ]); $extra = []; - if (!empty($qf->_membershipBlock) && $isQuickConfig && $field->name == 'other_amount') { - $useRequired = 0; - } - elseif (!empty($fieldOptions[$optionKey]['label'])) { + if (!empty($fieldOptions[$optionKey]['label'])) { //check for label. $label = $fieldOptions[$optionKey]['label']; - if ($isQuickConfig && $field->name === 'contribution_amount' && strtolower($fieldOptions[$optionKey]['name']) == 'other_amount') { - $label .= ' ' . $currencySymbol; - $qf->assign('priceset', $elementName); - $extra = [ - 'onclick' => 'useAmountOther();', - 'autocomplete' => 'off', - ]; + } + if ($isQuickConfig && $field->name === 'other_amount') { + if (!empty($qf->_membershipBlock)) { + $useRequired = 0; } + $label .= ' ' . $currencySymbol; + $qf->assign('priceset', $elementName); + $extra = [ + 'onclick' => 'useAmountOther();', + 'autocomplete' => 'off', + ]; } $element = &$qf->add('text', $elementName, $label, diff --git a/civicrm/Civi/Api4/Survey.php b/civicrm/Civi/Api4/Survey.php deleted file mode 100644 index 3aad822743..0000000000 --- a/civicrm/Civi/Api4/Survey.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ -namespace Civi\Api4; - -/** - * Survey entity. - * - * Surveys are used as both surveys and petitions. - * - * @see https://docs.civicrm.org/user/en/latest/survey/what-is-civisurvey/ - * @searchable secondary - * @since 5.64 - * @package Civi\Api4 - */ -class Survey extends Generic\DAOEntity { - -} diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index f58704104f..1ce7916817 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.64.1', + return array( 'version' => '5.64.2', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml index 66da3cb1ed..23008be19a 100644 --- a/civicrm/ext/afform/admin/info.xml +++ b/civicrm/ext/afform/admin/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>beta</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/afform/core/Civi/Afform/Tokens.php b/civicrm/ext/afform/core/Civi/Afform/Tokens.php index 7d291791e4..aa50defa49 100644 --- a/civicrm/ext/afform/core/Civi/Afform/Tokens.php +++ b/civicrm/ext/afform/core/Civi/Afform/Tokens.php @@ -12,8 +12,10 @@ namespace Civi\Afform; use Civi\Core\Event\GenericHookEvent; +use Civi\Core\Service\AutoService; use Civi\Crypto\Exception\CryptoException; use CRM_Afform_ExtensionUtil as E; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** * Every afform with the property `is_token=true` should have a corresponding @@ -21,8 +23,21 @@ use CRM_Afform_ExtensionUtil as E; * * @see MockPublicFormTest * @package Civi\Afform + * @service civi.afform.tokens */ -class Tokens { +class Tokens extends AutoService implements EventSubscriberInterface { + + public static function getSubscribedEvents(): array { + if (!\CRM_Extension_System::singleton()->getMapper()->isActiveModule('authx')) { + return []; + } + + return [ + 'hook_civicrm_alterMailContent' => 'applyCkeditorWorkaround', + 'hook_civicrm_tokens' => 'hook_civicrm_tokens', + 'hook_civicrm_tokenValues' => 'hook_civicrm_tokenValues', + ]; + } /** * CKEditor makes it hard to set an `href` to a token, so we often get diff --git a/civicrm/ext/afform/core/afform.php b/civicrm/ext/afform/core/afform.php index 97dc6143c6..ca1f7acdfa 100644 --- a/civicrm/ext/afform/core/afform.php +++ b/civicrm/ext/afform/core/afform.php @@ -58,13 +58,6 @@ function afform_civicrm_config(&$config) { $dispatcher->addListener('hook_civicrm_alterAngular', ['\Civi\Afform\AfformMetadataInjector', 'preprocess']); $dispatcher->addListener('hook_civicrm_check', ['\Civi\Afform\StatusChecks', 'hook_civicrm_check']); $dispatcher->addListener('civi.afform.get', ['\Civi\Api4\Action\Afform\Get', 'getCustomGroupBlocks']); - - // Register support for email tokens - if (CRM_Extension_System::singleton()->getMapper()->isActiveModule('authx')) { - $dispatcher->addListener('hook_civicrm_alterMailContent', ['\Civi\Afform\Tokens', 'applyCkeditorWorkaround']); - $dispatcher->addListener('hook_civicrm_tokens', ['\Civi\Afform\Tokens', 'hook_civicrm_tokens']); - $dispatcher->addListener('hook_civicrm_tokenValues', ['\Civi\Afform\Tokens', 'hook_civicrm_tokenValues']); - } } /** diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml index 4d0cea40d1..70f884f855 100644 --- a/civicrm/ext/afform/core/info.xml +++ b/civicrm/ext/afform/core/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>beta</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml index 53722b38de..b321d1a913 100644 --- a/civicrm/ext/afform/html/info.xml +++ b/civicrm/ext/afform/html/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml index ae5ad75d72..942396caf3 100644 --- a/civicrm/ext/afform/mock/info.xml +++ b/civicrm/ext/afform/mock/info.xml @@ -12,7 +12,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml index 22900f5def..8467d28f78 100644 --- a/civicrm/ext/authx/info.xml +++ b/civicrm/ext/authx/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-02-11</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/civi_campaign/info.xml b/civicrm/ext/civi_campaign/info.xml index a0619a4cef..7d37024166 100644 --- a/civicrm/ext/civi_campaign/info.xml +++ b/civicrm/ext/civi_campaign/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_case/info.xml b/civicrm/ext/civi_case/info.xml index b19bb7c731..6fb1aeae57 100644 --- a/civicrm/ext/civi_case/info.xml +++ b/civicrm/ext/civi_case/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_contribute/info.xml b/civicrm/ext/civi_contribute/info.xml index 6253c90b26..9cdf339729 100644 --- a/civicrm/ext/civi_contribute/info.xml +++ b/civicrm/ext/civi_contribute/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_event/info.xml b/civicrm/ext/civi_event/info.xml index c09a70ba3a..b73b6d236e 100644 --- a/civicrm/ext/civi_event/info.xml +++ b/civicrm/ext/civi_event/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_mail/info.xml b/civicrm/ext/civi_mail/info.xml index fa1f469c73..6d45b79a31 100644 --- a/civicrm/ext/civi_mail/info.xml +++ b/civicrm/ext/civi_mail/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_member/info.xml b/civicrm/ext/civi_member/info.xml index c0e9b6d430..344dd39d68 100644 --- a/civicrm/ext/civi_member/info.xml +++ b/civicrm/ext/civi_member/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_pledge/info.xml b/civicrm/ext/civi_pledge/info.xml index 9293339469..6459766d20 100644 --- a/civicrm/ext/civi_pledge/info.xml +++ b/civicrm/ext/civi_pledge/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civi_report/info.xml b/civicrm/ext/civi_report/info.xml index a1805a7bc7..2c1c1863ae 100644 --- a/civicrm/ext/civi_report/info.xml +++ b/civicrm/ext/civi_report/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>component</tag> diff --git a/civicrm/ext/civicrm_admin_ui/info.xml b/civicrm/ext/civicrm_admin_ui/info.xml index 2076f433c6..0782b61eae 100644 --- a/civicrm/ext/civicrm_admin_ui/info.xml +++ b/civicrm/ext/civicrm_admin_ui/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-01-02</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/civigrant/info.xml b/civicrm/ext/civigrant/info.xml index b3a219e573..80d8776ba2 100644 --- a/civicrm/ext/civigrant/info.xml +++ b/civicrm/ext/civigrant/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-11-11</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/civiimport/info.xml b/civicrm/ext/civiimport/info.xml index 5f45727491..143f0b456c 100644 --- a/civicrm/ext/civiimport/info.xml +++ b/civicrm/ext/civiimport/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-08-11</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml index f67bfa541f..10349f2cdc 100644 --- a/civicrm/ext/ckeditor4/info.xml +++ b/civicrm/ext/ckeditor4/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-05-23</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml index 8e46462a63..d48f4bf469 100644 --- a/civicrm/ext/contributioncancelactions/info.xml +++ b/civicrm/ext/contributioncancelactions/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-12</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/elavon/info.xml b/civicrm/ext/elavon/info.xml index 69e98f0b00..c3ad494b1e 100644 --- a/civicrm/ext/elavon/info.xml +++ b/civicrm/ext/elavon/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-08-05</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml index e82b737176..2e14c747b2 100644 --- a/civicrm/ext/eventcart/info.xml +++ b/civicrm/ext/eventcart/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-03</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml index 82d327dc70..b1ba3cfa42 100644 --- a/civicrm/ext/ewaysingle/info.xml +++ b/civicrm/ext/ewaysingle/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-07</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml index 3219368db9..c31be30d1d 100644 --- a/civicrm/ext/financialacls/info.xml +++ b/civicrm/ext/financialacls/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-27</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml index 59c0865cde..a5ccecfbfc 100644 --- a/civicrm/ext/flexmailer/info.xml +++ b/civicrm/ext/flexmailer/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-05</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <comments> FlexMailer is an email delivery engine which replaces the internal guts diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml index 1fd46a01e5..6163a17ca2 100644 --- a/civicrm/ext/greenwich/info.xml +++ b/civicrm/ext/greenwich/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-07-21</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml index ac3bd40087..8690c26053 100644 --- a/civicrm/ext/legacycustomsearches/info.xml +++ b/civicrm/ext/legacycustomsearches/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-07-25</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml index 25536fe814..74fe640d79 100644 --- a/civicrm/ext/message_admin/info.xml +++ b/civicrm/ext/message_admin/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-06-12</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml index 75557d6145..10d7a99460 100644 --- a/civicrm/ext/oauth-client/info.xml +++ b/civicrm/ext/oauth-client/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-23</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml index eb034a48d4..4fa0538183 100644 --- a/civicrm/ext/payflowpro/info.xml +++ b/civicrm/ext/payflowpro/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-13</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml index 274b62aa2c..5fbb6d2c57 100644 --- a/civicrm/ext/recaptcha/info.xml +++ b/civicrm/ext/recaptcha/info.xml @@ -13,7 +13,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-03</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php index f2f60e68c0..80eb6d1763 100644 --- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php +++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php @@ -135,8 +135,8 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { 'columns' => $columns, 'cssClass' => implode(' ', $style), ]; - if (isset($data[$keyName])) { - $row['key'] = $data[$keyName]; + if (isset($record[$keyName])) { + $row['key'] = $record[$keyName]; } $rows[] = $row; } diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml index 43124e9285..434ea5219e 100644 --- a/civicrm/ext/search_kit/info.xml +++ b/civicrm/ext/search_kit/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-01-06</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>stable</develStage> <tags> <tag>mgmt:required</tag> diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php index 9efcb9c7b4..3fb1d0baa5 100644 --- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php +++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php @@ -392,6 +392,8 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { ]; $result = civicrm_api4('SearchDisplay', 'run', $params); + $this->assertEquals($contacts[0], $result[0]['key']); + // Contact 1 first name can be updated $this->assertEquals('One', $result[0]['columns'][0]['val']); $this->assertEquals($contacts[0], $result[0]['columns'][0]['edit']['record']['id']); @@ -1342,6 +1344,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { // Second Individual $expectedFirstNameEdit['record']['id'] = $contact[1]['id']; $expectedFirstNameEdit['value'] = NULL; + $this->assertEquals($contact[1]['id'], $result[1]['key']); $this->assertEquals($expectedFirstNameEdit, $result[1]['columns'][0]['edit']); $this->assertTrue(!isset($result[1]['columns'][1]['edit'])); $this->assertTrue(!isset($result[1]['columns'][2]['edit'])); @@ -1578,4 +1581,47 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('fa-star', $result[2]['columns'][0]['icons'][0]['class']); } + public function testKeyIsReturned(): void { + $id = $this->createTestRecord('Email')['id']; + $params = [ + 'checkPermissions' => FALSE, + 'return' => 'page:1', + 'savedSearch' => [ + 'api_entity' => 'Email', + 'api_params' => [ + 'version' => 4, + 'select' => ['email'], + 'where' => [ + ['id', 'IN', [$id]], + ], + ], + ], + 'display' => [ + 'type' => 'table', + 'label' => '', + 'settings' => [ + 'limit' => 20, + 'pager' => TRUE, + 'actions' => TRUE, + 'columns' => [ + [ + 'key' => 'email', + 'label' => 'Email', + 'dataType' => 'String', + 'type' => 'field', + ], + ], + 'sort' => [ + ['id', 'ASC'], + ], + ], + ], + 'afform' => NULL, + ]; + + $result = civicrm_api4('SearchDisplay', 'run', $params); + $this->assertCount(1, $result); + $this->assertEquals($id, $result[0]['key']); + } + } diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml index d8e4fa4812..696c3d6b21 100644 --- a/civicrm/ext/sequentialcreditnotes/info.xml +++ b/civicrm/ext/sequentialcreditnotes/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-28</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <tags> <tag>mgmt:hidden</tag> </tags> diff --git a/civicrm/ext/standaloneusers/info.xml b/civicrm/ext/standaloneusers/info.xml index d04850272d..15350b06fc 100644 --- a/civicrm/ext/standaloneusers/info.xml +++ b/civicrm/ext/standaloneusers/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-11-11</releaseDate> - <version>5.64.1</version> + <version>5.64.2</version> <develStage>alpha</develStage> <compatibility> <ver>5.64</ver> diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index b4bd33b2e6..6c17952602 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.64.2 + +Released August 24, 2023 + +- **[Synopsis](release-notes/5.64.2.md#synopsis)** +- **[Bugs resolved](release-notes/5.64.2.md#bugs)** +- **[Credits](release-notes/5.64.2.md#credits)** +- **[Feedback](release-notes/5.64.2.md#feedback)** + ## CiviCRM 5.64.1 Released August 18, 2023 diff --git a/civicrm/release-notes/5.64.2.md b/civicrm/release-notes/5.64.2.md new file mode 100644 index 0000000000..1b56228416 --- /dev/null +++ b/civicrm/release-notes/5.64.2.md @@ -0,0 +1,43 @@ +# CiviCRM 5.64.2 + +Released August 24, 2023 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +| --------------------------------------------------------------- | -------- | +| Change the database schema? | no | +| 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** | +| Fix security vulnerabilities? | no | + +## <a name="bugs"></a>Bugs resolved + +* **_CiviMember_: Cannot use CiviMember price-set on new contribution page ([dev/core#4523](https://lab.civicrm.org/dev/core/-/issues/4523): [#27120](https://github.com/civicrm/civicrm-core/pull/27120))** +* **_CiviContribute_: If user enters "Other" amount, then old amount should be unselected ([#27129](https://github.com/civicrm/civicrm-core/pull/27129))** +* **_Form Builder_: Email hyperlinks don't render for some messages ([dev/core#4531](https://lab.civicrm.org/dev/core/-/issues/4531): [#27134](https://github.com/civicrm/civicrm-core/pull/27134/))** +* **_Importer_: Form doesn't update after toggling checkbox ([#27132](https://github.com/civicrm/civicrm-core/pull/27132))** +* **_Send Email_: Form doesn't update after toggling checkbox ([#27132](https://github.com/civicrm/civicrm-core/pull/27132))** +* **_Search Kit_: Bulk actions don't work unless ID column is displayed ([dev/core#4519](https://lab.civicrm.org/dev/core/-/issues/4519): [#27123](https://github.com/civicrm/civicrm-core/pull/27123))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wildsight - Lars Sander-Green; Wikimedia Foundation - Eileen McNaughton; Megaphone +Technology Consulting - Brienne Kordis; JMA Consulting - Seamus Lee; Dave D; CiviCRM - Tim +Otten, Coleman Watts; Circle Interactive - Pradeep Nayak + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andie 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 4de6890733..01a03ed3eb 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -23952,4 +23952,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.64.1'; +UPDATE civicrm_domain SET version = '5.64.2'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 46e9a776f7..b71476e51f 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -2959,7 +2959,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.64.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); + (1,'Default Domain Name',NULL,'5.64.2',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 aa52ea0fe7..c8c15ffa68 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1::getLoader(); +return ComposerAutoloaderInit6dbe9fe6364d1cb41be78955baeca716::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 070140adc5..e8424038d0 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 ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1 +class ComposerAutoloaderInit6dbe9fe6364d1cb41be78955baeca716 { private static $loader; @@ -24,9 +24,9 @@ class ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1 require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit6dbe9fe6364d1cb41be78955baeca716', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit6dbe9fe6364d1cb41be78955baeca716', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); @@ -36,7 +36,7 @@ class ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1 if ($useStaticLoader) { require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit017fad674e36ad6b8de89e88350144e1::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -57,12 +57,12 @@ class ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit017fad674e36ad6b8de89e88350144e1::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire017fad674e36ad6b8de89e88350144e1($fileIdentifier, $file); + composerRequire6dbe9fe6364d1cb41be78955baeca716($fileIdentifier, $file); } return $loader; @@ -74,7 +74,7 @@ class ComposerAutoloaderInit017fad674e36ad6b8de89e88350144e1 * @param string $file * @return void */ -function composerRequire017fad674e36ad6b8de89e88350144e1($fileIdentifier, $file) +function composerRequire6dbe9fe6364d1cb41be78955baeca716($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index e5db882f22..e90795327e 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit017fad674e36ad6b8de89e88350144e1 +class ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716 { public static $files = array ( 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', @@ -729,11 +729,11 @@ class ComposerStaticInit017fad674e36ad6b8de89e88350144e1 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit017fad674e36ad6b8de89e88350144e1::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit017fad674e36ad6b8de89e88350144e1::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit017fad674e36ad6b8de89e88350144e1::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInit017fad674e36ad6b8de89e88350144e1::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInit017fad674e36ad6b8de89e88350144e1::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInit6dbe9fe6364d1cb41be78955baeca716::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/vendor/composer/installed.php b/civicrm/vendor/composer/installed.php index f2764b3b02..b322b78b77 100644 --- a/civicrm/vendor/composer/installed.php +++ b/civicrm/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => 'd44c33e641546d1b1cbac0e8230b7c780fca321d', + 'reference' => '23b392e44f489a56415e9c304fa9bd0309455583', 'name' => 'civicrm/civicrm-core', 'dev' => true, ), @@ -43,7 +43,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => 'd44c33e641546d1b1cbac0e8230b7c780fca321d', + 'reference' => '23b392e44f489a56415e9c304fa9bd0309455583', 'dev_requirement' => false, ), 'civicrm/civicrm-cxn-rpc' => array( diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index 399c2192a6..26d3977eec 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.64.1</version_no> + <version_no>5.64.2</version_no> </version> -- GitLab