From 333a25289eeb82b52e46203fe8f63a41d3446557 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 6 Jul 2026 16:29:12 +0200 Subject: [PATCH 01/11] Added deprecations page for Cohesivo 6.0 --- .../cohesivo_v6.0_deprecations.md | 31 ++ docs/resources/rector.md | 332 ++++++++++++++++++ docs/resources/resources.md | 1 + mkdocs.yml | 2 + 4 files changed, 366 insertions(+) create mode 100644 docs/release_notes/cohesivo_v6.0_deprecations.md create mode 100644 docs/resources/rector.md diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md new file mode 100644 index 0000000000..daa646acc5 --- /dev/null +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -0,0 +1,31 @@ + + +# Cohesivo v6.0 renames, deprecations and removals + +## About Cohesivo 6.0 + +!!! note "Cohesivo v6.0 is not released yet" + + This page is published ahead of the Cohesivo v6.0 release to give you time to prepare your code for the upcoming changes. + + As the work on Cohesivo 6.0 is in progress, this page **isn't exhaustive and will evolve with time**. + +As announced during Ibexa Summit 2026, [Ibexa DXP will be renamed to Cohesivo](https://www.ibexa.co/blog/redefining-the-dxp-from-execution-to-orchestration) to support the new [orchestration platform approach](https://www.ibexa.co/blog/the-orchestration-era). + +This page lists backwards compatibility breaks and deprecations introduced in Cohesivo v6.0. + +## PHP API changes + +### ibexa/http-cache + +| Class | Change | +|:---------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `\Ibexa\Contracts\HttpCache\ResponseTagger\ResponseTagger::supports` | Method added to the interface. All implementations must now specify the value they support for tagging. | +| `\Ibexa\HttpCache\ResponseTagger\Delegator\DispatcherTagger` | `DispatcherTagger` will now log a warning (in Symfony `prod` environment) or throw an exception (in Symfony `dev` environment) when an unsupported value is passed instead of silently ignoring it. | + +### ibexa/messenger + +| Class | Change | +|:------------------------------------------------------------------------------------|:-----------------------------------------------------------| +| [`SudoStamp`](background_tasks.md#sudostamp) | No longer attached automatically to every dispatched message. For messages that should be processed without taking permissions into account, always attach the SudoStamp manually. | +| `\Ibexa\Bundle\Messenger\Stamp\DeduplicateStamp` | Moved to [`\Ibexa\Contracts\Messenger\Stamp\DeduplicateStamp`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Messenger-Stamp-DeduplicateStamp.html). Covered by [[[= product_name_base =]] Rector](../resources/rector.md) refactoring rules. | diff --git a/docs/resources/rector.md b/docs/resources/rector.md new file mode 100644 index 0000000000..eacf2565f6 --- /dev/null +++ b/docs/resources/rector.md @@ -0,0 +1,332 @@ +--- +description: Use [[=product_name_base=]] Rector, an optional package based on Rector, to remove PHP and JavaScript code deprecations. +--- + +# [[= product_name_base =]] Rector + +[[= product_name_base =]] Rector is an optional package based on [Rector](https://getrector.com/) that comes with additional rule sets for working with [[= product_name =]] code. +You can use it to get rid of PHP code deprecations and to help prepare your project for the next major release. + +## Installation + +Add the Composer dependency: + +``` bash +composer require --dev ibexa/rector:[[= latest_tag_5_0 =]] +``` + +## Refactor PHP code + +### Configuration + +Adjust the generated `rector.php` file by: + +- making it match your project's directory structure +- selecting the [[= product_name_base =]] rule set that matches your current version, for example [`IbexaSetList::IBEXA_50`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Rector-Sets-IbexaSetList.html#enumcase_IBEXA_50) +- adding project-specific rules: + - [PHP rules by using `withPhpSets`](https://getrector.com/documentation/set-lists#content-php-sets) + - [Symfony, Twig, or Doctrine rules by using `withComposerBased`](https://getrector.com/documentation/composer-based-sets) + +It's recommended to activate one rule set at a time and preview the output before applying it. + +An example configuration looks as follows: + +``` php +use Ibexa\Contracts\Rector\Sets\IbexaSetList; +use Rector\Config\RectorConfig; + +return RectorConfig::configure() + ->withPaths( + [ + __DIR__ . '/src', + ] + ) + ->withSets( + [ + IbexaSetList::IBEXA_50->value, + ] + ) + ->withPhpSets(php83: true) + ->withComposerBased(symfony: true) +; +``` + +### Usage + +Run Rector in dry-run mode to preview the changes it would make: + +``` bash +vendor/bin/rector --dry-run +``` + +Once you're satisfied with the proposed changes, apply them: + +``` bash +vendor/bin/rector +``` + +## Refactor JavaScipt code + +[[= product_name_base =]] Rector also comes with transform module to help you maintain your JavaScript code. + +### Configuration + +To adjust the default configuration, plugins, or rules, modify the `rector.config.js` file present in your project or bundle directory: + +``` js +module.exports = { + config: { + paths: [{ + input: 'src/bundle/Resources/public', + output: 'src/bundle/Resources/public', + }], + prettierConfigPath: './prettier.js', + } + plugins: (plugins) => { + // modify enabled plugins + + return plugins; + }, + pluginsConfig: (config) => { + // modify plugins config + + return config; + } +}; +``` + +### Configuration options + +#### `paths` + +Array of objects with input and output directories for transformed files, relative to your project or bundle root. +Directory structure is not modified during the transformation. + +#### `prettierConfigPath` + +[Prettier](https://prettier.io/) is run at the end of the transformation. +You can provide the path to your own configuration file, otherwise [the default file](https://github.com/ibexa/eslint-config-ibexa/blob/main/prettier.js) is used. + +#### `plugins` + +Use it to modify enabled plugins. +To learn more about plugins, see [the list of plugins](#list-of-plugins). + +#### `pluginsConfig` + +Use this setting to modify the plugins configuration, as in the example below: + +``` json +{ + "ibexa-rename-string-values": { + "ez-form-error": "ibexa-form-error", + "ez-selection-settings": { + "to": "ibexa-selection-settings", + "exactMatch": true + }, + "(^|\\s)\\.ez-": { + "to": ".ibexa-", + "regexp": true + }, + "ibexa-field-edit--ez([A-Za-z0-9]+)": { + "to": "ibexa-field-edit--ibexa$1", + "regexp": true + } + } +} +``` + +The plugin configuration is an object with plugin names as keys, for example `ibexa-rename-string-values`. +Inside a single plugin configuration, the property names are values that should be replaced. +They can be specified explicitly (`ezform-error`) or by using regexp (`(^|\\s)\\.ez-`). + +#### Shorthand expression + +You can use a shorthand form to specify the configuration: + +- `"ez-form-error": "ibexa-form-error"` - changes all `ez-form-error` occurrences to `ibexa-form-error` + +#### Complete plugin configuration + +When not using the shorthand configuration, the following options are available: + +- `"to": "ibexa-selection-settings"` - specifies the new value +- `"regexp": true/false` - use regexp to find the matching values. Use capture groups to reuse parts of the original value in the new value +- `"exactMatch": true` - replace matching values only when the whole value is matched. Using the example configuration, `ez-selection-settings__field` would not be replaced as it doesn't match `ez-selection-settings` exactly + +#### Shared configuration + +You can create a shared configuration for all plugins by using the `shared` keyword, as in the example below: + +``` json +{ + "shared": { + "ez": { + "to": "ibexa", + "exactMatch": true, + } + } +} +``` + +Values specifies in the `shared` configuration can be overwritten by using configuration for specific plugins. + +### List of plugins + +#### Rename eZ global variables + +This plugin changes all `eZ` variables to `ibexa`. + +Identifier: `ibexa-rename-ez-global` + +Configuration: none + +#### Rename variables + +This plugin allows to rename any variable. + +Identifier: `ibexa-rename-variables` + +Configuration example: + +``` json +{ + "^Ez(.*?)Validator$": { + "to": "Ibexa$1Validator", + "regexp": true + }, + "^EZ_": { + "to": "IBEXA_", + "regexp": true + } +} +``` + +**Example:** + +| Before | After | +|---|---| +| `class EzBooleanValidator extends eZ.BaseFieldValidator` | `class IbexaBooleanValidator extends ibexa.BaseFieldValidator` | +| `const EZ_INPUT_SELECTOR = 'ezselection-settings__input';` | `const IBEXA_INPUT_SELECTOR = 'ezselection-settings__input';` | + +#### Rename string values + +This plugin changes any string value except translations. You can use it to transform selectors and other values. + +Identifier: `ibexa-rename-string-values` + +Configuration example: + +``` json +{ + "(^|\\s)\\.ez-": { + "to": ".ibexa-", + "regexp": true + }, + "ibexa-field-edit--ez([A-Za-z0-9]+)": { + "to": "ibexa-field-edit--ibexa$1", + "regexp": true + }, + "ezselection-settings": "ibexaselection-settings" +} +``` + +**Example output:** + +| Before | After | +|---|---| +| `const SELECTOR_FIELD = '.ez-field-edit--ezboolean';` | `const SELECTOR_FIELD = '.ibexa-field-edit--ezboolean'` | +| `const SELECTOR_FIELD = '.ibexa-field-edit--ezboolean';` | `const SELECTOR_FIELD = '.ibexa-field-edit--ibexaboolean';` | + +#### Rename translation IDs + +This plugin allows to change translation ids. +Extract translations after running this transformation. + +Identifier: `ibexa-rename-trans-id` + +Configuration example: + +``` json +{ + "^ez": { + "to": "ibexa", + "regexp": true + } +} +``` + +**Example output:** + +| Before | After | +|---|---| +|`'ez_boolean.limitation.pick.ez_error'` | `'ibexa_boolean.limitation.pick.ez_error'` | + +#### Rename translation strings + +This plugin changes values in translations. +Extract translations after running this transformation. + +Identifier: `ibexa-rename-in-translations` + +Configuration example: + +``` json +{ + "to": "ibexa-not-$1--show-modal", + "regexp": true, + "selectors-only": true +} +``` + +If the `selectors-only` property is set to `true`, this plugin changes only strings inside HTML tags. +Set to `false` or remove property to change text values as well. + +**Example output:** + +| `selectors-only` value | Before | After | +|---|---|---| +| true | `/*@Desc("

Show message

for ez-not-error--show-modal")*/` | `/*@Desc("

Show message

for ez-not-error--show-modal")*/` | +| false | `/*@Desc("

Show message

for ez-not-error--show-modal")*/` | `/*@Desc("

Show message

for ibexa-not-error--show-modal")*/` | + +#### Rename icons names used in getIconPath method + +This plugin allows you to rename any icon name that is passed as an argument to the `getIconPath` method. + +Identifier: `ibexa-rename-icons` + +Configuration example: + +In this plugin, the `exactMatch` default value is set `true` when using the shorthand expression. + +``` json +{ + "browse": "folder-browse", + "content-": { + "to": "file-", + "exactMatch": false + } +} +``` + +**Example:** + +| Before | After | +|---|---| +| `getIconPath('browse')` | `getIconPath('folder-browse')` | + +### Usage + +To install the dependencies, execute the following command: + +``` bash +yarn --cwd ./vendor/ibexa/rector/js install +``` + +Then, run the transform: + +``` bash +yarn --cwd ./vendor/ibexa/rector/js transform +``` + +The `--cwd` argument must point to the directory where the transform module is installed, by default `./vendor/ibexa/rector/js`. diff --git a/docs/resources/resources.md b/docs/resources/resources.md index c93d0b86de..5ca74e3dbd 100644 --- a/docs/resources/resources.md +++ b/docs/resources/resources.md @@ -10,5 +10,6 @@ See additional information about [[= product_name =]] development process, helpf [[= cards([ "resources/release_process_and_roadmap", "resources/phpstorm_plugin", + "resources/rector", "resources/contributing/report_and_follow_issues", ], columns=3) =]] diff --git a/mkdocs.yml b/mkdocs.yml index 9a9d01ad3f..d65d12462e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -946,6 +946,7 @@ nav: - Resources: resources/resources.md - Release process and roadmap: resources/release_process_and_roadmap.md - Ibexa DXP PhpStorm plugin: resources/phpstorm_plugin.md + - Ibexa DXP Rector: resources/rector.md - New in documentation: resources/new_in_doc.md - Contributing: - Report and follow issues: resources/contributing/report_and_follow_issues.md @@ -955,6 +956,7 @@ nav: - Product guides: product_guides/product_guides.md - Release notes: - Release notes: release_notes/release_notes.md + - Cohesivo v6.0 deprecations and BC breaks: release_notes/cohesivo_v6.0_deprecations.md - Ibexa DXP v5.0 LTS: release_notes/ibexa_dxp_v5.0.md - Ibexa DXP v5.0 deprecations and BC breaks: release_notes/ibexa_dxp_v5.0_deprecations.md - Ibexa DXP v4.6 LTS: release_notes/ibexa_dxp_v4.6.md From 91b576828d1849b9382f62ee28247b30d2d17b3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 10:46:31 +0200 Subject: [PATCH 02/11] Selfreview --- docs/release_notes/cohesivo_v6.0_deprecations.md | 9 +++++++-- docs/resources/rector.md | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md index daa646acc5..32bc2d1605 100644 --- a/docs/release_notes/cohesivo_v6.0_deprecations.md +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -1,8 +1,13 @@ +--- +description: Adapt your project for the Cohesivo v6.0 release. +month_change: true +--- + # Cohesivo v6.0 renames, deprecations and removals -## About Cohesivo 6.0 +## About Cohesivo v6.0 !!! note "Cohesivo v6.0 is not released yet" @@ -19,7 +24,7 @@ This page lists backwards compatibility breaks and deprecations introduced in Co ### ibexa/http-cache | Class | Change | -|:---------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|---------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `\Ibexa\Contracts\HttpCache\ResponseTagger\ResponseTagger::supports` | Method added to the interface. All implementations must now specify the value they support for tagging. | | `\Ibexa\HttpCache\ResponseTagger\Delegator\DispatcherTagger` | `DispatcherTagger` will now log a warning (in Symfony `prod` environment) or throw an exception (in Symfony `dev` environment) when an unsupported value is passed instead of silently ignoring it. | diff --git a/docs/resources/rector.md b/docs/resources/rector.md index eacf2565f6..5c5c1fa249 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -105,7 +105,7 @@ Directory structure is not modified during the transformation. #### `prettierConfigPath` [Prettier](https://prettier.io/) is run at the end of the transformation. -You can provide the path to your own configuration file, otherwise [the default file](https://github.com/ibexa/eslint-config-ibexa/blob/main/prettier.js) is used. +You can provide the path to your own configuration file, otherwise [the default file](https://github.com/ibexa/eslint-config-ibexa/blob/main/prettier.mjs) is used. #### `plugins` From 2a624a1a79d54dac7cb00979586fb6f02ea66b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 11:23:12 +0200 Subject: [PATCH 03/11] Selfreview --- .../cohesivo_v6.0_deprecations.md | 23 ++++++------- docs/resources/rector.md | 32 ++++++++++--------- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md index 32bc2d1605..9bdd442b0f 100644 --- a/docs/release_notes/cohesivo_v6.0_deprecations.md +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -7,9 +7,9 @@ month_change: true # Cohesivo v6.0 renames, deprecations and removals -## About Cohesivo v6.0 +## Cohesivo v6.0 -!!! note "Cohesivo v6.0 is not released yet" +!!! note "Cohesivo v6.0 isn't released yet" This page is published ahead of the Cohesivo v6.0 release to give you time to prepare your code for the upcoming changes. @@ -17,20 +17,21 @@ month_change: true As announced during Ibexa Summit 2026, [Ibexa DXP will be renamed to Cohesivo](https://www.ibexa.co/blog/redefining-the-dxp-from-execution-to-orchestration) to support the new [orchestration platform approach](https://www.ibexa.co/blog/the-orchestration-era). -This page lists backwards compatibility breaks and deprecations introduced in Cohesivo v6.0. +This page lists backwards compatibility breaks introduced in Cohesivo v6.0. ## PHP API changes ### ibexa/http-cache -| Class | Change | -|---------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `\Ibexa\Contracts\HttpCache\ResponseTagger\ResponseTagger::supports` | Method added to the interface. All implementations must now specify the value they support for tagging. | -| `\Ibexa\HttpCache\ResponseTagger\Delegator\DispatcherTagger` | `DispatcherTagger` will now log a warning (in Symfony `prod` environment) or throw an exception (in Symfony `dev` environment) when an unsupported value is passed instead of silently ignoring it. | +| Deprecated since | Entity | Change | +| --- |---------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| N/A | `\Ibexa\HttpCache\ResponseTagger\Delegator\DispatcherTagger` | With `kernel.debug` enabled, [`DispatcherTagger`](content_aware_cache.md#dispatchertagger) will throw an exception when you pass an unsupported value instead of silently ignoring it. | +| v5.0.7 | `\Ibexa\Contracts\HttpCache\ResponseTagger\ResponseTagger::supports` | Method added to the interface. All implementations must specify [the value they support for tagging](content_aware_cache.md#delegator-and-value-taggers). | + ### ibexa/messenger -| Class | Change | -|:------------------------------------------------------------------------------------|:-----------------------------------------------------------| -| [`SudoStamp`](background_tasks.md#sudostamp) | No longer attached automatically to every dispatched message. For messages that should be processed without taking permissions into account, always attach the SudoStamp manually. | -| `\Ibexa\Bundle\Messenger\Stamp\DeduplicateStamp` | Moved to [`\Ibexa\Contracts\Messenger\Stamp\DeduplicateStamp`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Messenger-Stamp-DeduplicateStamp.html). Covered by [[[= product_name_base =]] Rector](../resources/rector.md) refactoring rules. | +| Deprecated since | Entity | Change | +| --- |------------------------------------------------------------------------------------|-----------------------------------------------------------| +| v5.0.9 | [`SudoStamp`](background_tasks.md#sudostamp) | No longer attached automatically to every dispatched message. For messages that should be processed without taking permissions into account, always attach the SudoStamp manually. | +| v5.0.9 | `\Ibexa\Bundle\Messenger\Stamp\DeduplicateStamp` | Moved to [`\Ibexa\Contracts\Messenger\Stamp\DeduplicateStamp`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Messenger-Stamp-DeduplicateStamp.html). Covered by [[[= product_name_base =]] Rector](../resources/rector.md) refactoring rules. | diff --git a/docs/resources/rector.md b/docs/resources/rector.md index 5c5c1fa249..4b29d73348 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -5,7 +5,7 @@ description: Use [[=product_name_base=]] Rector, an optional package based on R # [[= product_name_base =]] Rector [[= product_name_base =]] Rector is an optional package based on [Rector](https://getrector.com/) that comes with additional rule sets for working with [[= product_name =]] code. -You can use it to get rid of PHP code deprecations and to help prepare your project for the next major release. +Use it to get rid of PHP and JavaScript code deprecations and prepare your project for the next major release. ## Installation @@ -51,6 +51,8 @@ return RectorConfig::configure() ; ``` +For more information, see [Rector documentatation](https://getrector.com/documentation). + ### Usage Run Rector in dry-run mode to preview the changes it would make: @@ -59,7 +61,7 @@ Run Rector in dry-run mode to preview the changes it would make: vendor/bin/rector --dry-run ``` -Once you're satisfied with the proposed changes, apply them: +Once you're satisfied with the proposed changes, apply them by running: ``` bash vendor/bin/rector @@ -108,7 +110,7 @@ Directory structure is not modified during the transformation. You can provide the path to your own configuration file, otherwise [the default file](https://github.com/ibexa/eslint-config-ibexa/blob/main/prettier.mjs) is used. #### `plugins` - +** Use it to modify enabled plugins. To learn more about plugins, see [the list of plugins](#list-of-plugins). @@ -175,10 +177,10 @@ Values specifies in the `shared` configuration can be overwritten by using confi #### Rename eZ global variables -This plugin changes all `eZ` variables to `ibexa`. - Identifier: `ibexa-rename-ez-global` +This plugin changes all `eZ` variables to `ibexa`. + Configuration: none #### Rename variables @@ -187,7 +189,7 @@ This plugin allows to rename any variable. Identifier: `ibexa-rename-variables` -Configuration example: +##### Configuration example ``` json { @@ -202,7 +204,7 @@ Configuration example: } ``` -**Example:** +##### Example output | Before | After | |---|---| @@ -215,7 +217,7 @@ This plugin changes any string value except translations. You can use it to tran Identifier: `ibexa-rename-string-values` -Configuration example: +##### Configuration example ``` json { @@ -231,7 +233,7 @@ Configuration example: } ``` -**Example output:** +##### Example output | Before | After | |---|---| @@ -245,7 +247,7 @@ Extract translations after running this transformation. Identifier: `ibexa-rename-trans-id` -Configuration example: +##### Configuration example ``` json { @@ -256,7 +258,7 @@ Configuration example: } ``` -**Example output:** +##### Example output | Before | After | |---|---| @@ -269,7 +271,7 @@ Extract translations after running this transformation. Identifier: `ibexa-rename-in-translations` -Configuration example: +##### Configuration example ``` json { @@ -282,7 +284,7 @@ Configuration example: If the `selectors-only` property is set to `true`, this plugin changes only strings inside HTML tags. Set to `false` or remove property to change text values as well. -**Example output:** +##### Example output | `selectors-only` value | Before | After | |---|---|---| @@ -295,7 +297,7 @@ This plugin allows you to rename any icon name that is passed as an argument to Identifier: `ibexa-rename-icons` -Configuration example: +##### Configuration example In this plugin, the `exactMatch` default value is set `true` when using the shorthand expression. @@ -309,7 +311,7 @@ In this plugin, the `exactMatch` default value is set `true` when using the shor } ``` -**Example:** +##### Example output | Before | After | |---|---| From 740f7798d2038fd027a84e1a8adfc948d31eac63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 11:34:22 +0200 Subject: [PATCH 04/11] Fixes --- docs/release_notes/cohesivo_v6.0_deprecations.md | 1 - docs/resources/rector.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md index 9bdd442b0f..20f1de12e7 100644 --- a/docs/release_notes/cohesivo_v6.0_deprecations.md +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -28,7 +28,6 @@ This page lists backwards compatibility breaks introduced in Cohesivo v6.0. | N/A | `\Ibexa\HttpCache\ResponseTagger\Delegator\DispatcherTagger` | With `kernel.debug` enabled, [`DispatcherTagger`](content_aware_cache.md#dispatchertagger) will throw an exception when you pass an unsupported value instead of silently ignoring it. | | v5.0.7 | `\Ibexa\Contracts\HttpCache\ResponseTagger\ResponseTagger::supports` | Method added to the interface. All implementations must specify [the value they support for tagging](content_aware_cache.md#delegator-and-value-taggers). | - ### ibexa/messenger | Deprecated since | Entity | Change | diff --git a/docs/resources/rector.md b/docs/resources/rector.md index 4b29d73348..e00421ea3d 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -110,7 +110,7 @@ Directory structure is not modified during the transformation. You can provide the path to your own configuration file, otherwise [the default file](https://github.com/ibexa/eslint-config-ibexa/blob/main/prettier.mjs) is used. #### `plugins` -** + Use it to modify enabled plugins. To learn more about plugins, see [the list of plugins](#list-of-plugins). From a2457349cfe62fbbfbd9d4df95e867b67b60cee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 11:37:20 +0200 Subject: [PATCH 05/11] Spellcheck --- docs/resources/rector.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/resources/rector.md b/docs/resources/rector.md index e00421ea3d..ac746d0c12 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -51,7 +51,7 @@ return RectorConfig::configure() ; ``` -For more information, see [Rector documentatation](https://getrector.com/documentation). +For more information, see [Rector documentation](https://getrector.com/documentation). ### Usage From 647bf78316acc09cb53c91cbf59e6bf64bc64537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 11:37:53 +0200 Subject: [PATCH 06/11] Monthchange: true --- docs/resources/rector.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/resources/rector.md b/docs/resources/rector.md index ac746d0c12..c0fdbd66a9 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -1,5 +1,6 @@ --- description: Use [[=product_name_base=]] Rector, an optional package based on Rector, to remove PHP and JavaScript code deprecations. +month_change: true --- # [[= product_name_base =]] Rector From 1fda0e83f550b3143cfdbfea359e9f7561615eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 15:19:57 +0200 Subject: [PATCH 07/11] Review feedback --- docs/release_notes/cohesivo_v6.0_deprecations.md | 2 +- docs/resources/rector.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md index 20f1de12e7..750b8eeb08 100644 --- a/docs/release_notes/cohesivo_v6.0_deprecations.md +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -32,5 +32,5 @@ This page lists backwards compatibility breaks introduced in Cohesivo v6.0. | Deprecated since | Entity | Change | | --- |------------------------------------------------------------------------------------|-----------------------------------------------------------| -| v5.0.9 | [`SudoStamp`](background_tasks.md#sudostamp) | No longer attached automatically to every dispatched message. For messages that should be processed without taking permissions into account, always attach the SudoStamp manually. | +| v5.0.9 | [`\Ibexa\Contracts\Messenger\Stamp\SudoStamp`](background_tasks.md#sudostamp) | No longer attached automatically to every dispatched message. For messages that should be processed without taking permissions into account, always attach the SudoStamp manually. | | v5.0.9 | `\Ibexa\Bundle\Messenger\Stamp\DeduplicateStamp` | Moved to [`\Ibexa\Contracts\Messenger\Stamp\DeduplicateStamp`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Messenger-Stamp-DeduplicateStamp.html). Covered by [[[= product_name_base =]] Rector](../resources/rector.md) refactoring rules. | diff --git a/docs/resources/rector.md b/docs/resources/rector.md index c0fdbd66a9..79f8f2b98f 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -13,7 +13,7 @@ Use it to get rid of PHP and JavaScript code deprecations and prepare your proje Add the Composer dependency: ``` bash -composer require --dev ibexa/rector:[[= latest_tag_5_0 =]] +composer require --dev ibexa/rector ``` ## Refactor PHP code From 787c6b8aac90c378c9663ecb18c7e231decf3df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 15:34:27 +0200 Subject: [PATCH 08/11] Fixed typo --- docs/resources/rector.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/resources/rector.md b/docs/resources/rector.md index 79f8f2b98f..e61d264376 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -68,7 +68,7 @@ Once you're satisfied with the proposed changes, apply them by running: vendor/bin/rector ``` -## Refactor JavaScipt code +## Refactor JavaScript code [[= product_name_base =]] Rector also comes with transform module to help you maintain your JavaScript code. From 72cb5cb3ec94e3086eef8e59b6c8b841c8fbee8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Mon, 13 Jul 2026 16:13:39 +0200 Subject: [PATCH 09/11] Added sentence linking to the official marketing site --- docs/release_notes/cohesivo_v6.0_deprecations.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md index 750b8eeb08..b4a1c5af94 100644 --- a/docs/release_notes/cohesivo_v6.0_deprecations.md +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -17,6 +17,8 @@ month_change: true As announced during Ibexa Summit 2026, [Ibexa DXP will be renamed to Cohesivo](https://www.ibexa.co/blog/redefining-the-dxp-from-execution-to-orchestration) to support the new [orchestration platform approach](https://www.ibexa.co/blog/the-orchestration-era). +To learn more about the new brand, visit the [Cohesivo official site](https://cohesivo.com). + This page lists backwards compatibility breaks introduced in Cohesivo v6.0. ## PHP API changes From da9f87ad6f4ca560b7ccc725ff4276322fd583c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Tue, 14 Jul 2026 10:18:56 +0200 Subject: [PATCH 10/11] DeduplicateStamp: replace with Symfony one --- docs/release_notes/cohesivo_v6.0_deprecations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release_notes/cohesivo_v6.0_deprecations.md b/docs/release_notes/cohesivo_v6.0_deprecations.md index b4a1c5af94..6e507e547c 100644 --- a/docs/release_notes/cohesivo_v6.0_deprecations.md +++ b/docs/release_notes/cohesivo_v6.0_deprecations.md @@ -35,4 +35,4 @@ This page lists backwards compatibility breaks introduced in Cohesivo v6.0. | Deprecated since | Entity | Change | | --- |------------------------------------------------------------------------------------|-----------------------------------------------------------| | v5.0.9 | [`\Ibexa\Contracts\Messenger\Stamp\SudoStamp`](background_tasks.md#sudostamp) | No longer attached automatically to every dispatched message. For messages that should be processed without taking permissions into account, always attach the SudoStamp manually. | -| v5.0.9 | `\Ibexa\Bundle\Messenger\Stamp\DeduplicateStamp` | Moved to [`\Ibexa\Contracts\Messenger\Stamp\DeduplicateStamp`](/api/php_api/php_api_reference/classes/Ibexa-Contracts-Messenger-Stamp-DeduplicateStamp.html). Covered by [[[= product_name_base =]] Rector](../resources/rector.md) refactoring rules. | +| v5.0.9 | `\Ibexa\Bundle\Messenger\Stamp\DeduplicateStamp` | Replaced with [`\Symfony\Component\Messenger\Stamp\DeduplicateStamp`]([[= symfony_doc =]]/messenger.html#message-deduplication). Covered by [[[= product_name_base =]] Rector](/resources/rector.md) refactoring rules. | From d78c046bb188d336f2c4e92fa7ec85cd6058d9f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Wed, 15 Jul 2026 12:14:27 +0200 Subject: [PATCH 11/11] Apply suggestions from code review Co-authored-by: julitafalcondusza <117284672+julitafalcondusza@users.noreply.github.com> --- docs/resources/rector.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/resources/rector.md b/docs/resources/rector.md index e61d264376..6d362baa69 100644 --- a/docs/resources/rector.md +++ b/docs/resources/rector.md @@ -154,8 +154,8 @@ You can use a shorthand form to specify the configuration: When not using the shorthand configuration, the following options are available: - `"to": "ibexa-selection-settings"` - specifies the new value -- `"regexp": true/false` - use regexp to find the matching values. Use capture groups to reuse parts of the original value in the new value -- `"exactMatch": true` - replace matching values only when the whole value is matched. Using the example configuration, `ez-selection-settings__field` would not be replaced as it doesn't match `ez-selection-settings` exactly +- `"regexp": true/false` - uses regexp to find the matching values. Use capture groups to reuse parts of the original value in the new value +- `"exactMatch": true` - replaces matching values only when the whole value is matched. Using the example configuration, `ez-selection-settings__field` would not be replaced as it doesn't match `ez-selection-settings` exactly #### Shared configuration @@ -214,7 +214,8 @@ Identifier: `ibexa-rename-variables` #### Rename string values -This plugin changes any string value except translations. You can use it to transform selectors and other values. +This plugin changes any string value except translations. +You can use it to transform selectors and other values. Identifier: `ibexa-rename-string-values` @@ -243,7 +244,7 @@ Identifier: `ibexa-rename-string-values` #### Rename translation IDs -This plugin allows to change translation ids. +This plugin allows to change translation IDs. Extract translations after running this transformation. Identifier: `ibexa-rename-trans-id` @@ -300,7 +301,7 @@ Identifier: `ibexa-rename-icons` ##### Configuration example -In this plugin, the `exactMatch` default value is set `true` when using the shorthand expression. +In this plugin, the `exactMatch` default value is set to `true` when using the shorthand expression. ``` json {