Rebuilding preview: 682fa8d4e6348478b3b48ba1 (mr1063)682fa8d6e6348478b3b4947f# sh -c mkdir -p $(dirname /var/lib/tugboat)682fa8d6e6348478b3b4947f# git clone git@git.drupal.org:project/experience_builder.git /var/lib/tugboatCloning into '/var/lib/tugboat'...
Warning: Permanently added 'git.drupal.org' (ED25519) to the list of known hosts.
682fa8d6e6348478b3b4947f# bash -c git -C /var/lib/tugboat remote show origin && git -C /var/lib/tugboat remote set-url origin git@git.drupal.org:project/experience_builder.git || git -C /var/lib/tugboat remote add origin git@git.drupal.org:project/experience_builder.git* remote origin
  Fetch URL: git@git.drupal.org:project/experience_builder.git
  Push  URL: git@git.drupal.org:project/experience_builder.git
  HEAD branch: 0.x
  Remote branches:
    0.x                                                 tracked
    canvas                                              tracked
    cypress_starter                                     tracked
    easyblocks_backend                                  tracked
    eb-form-sandbox                                     tracked
    eb-ui-sandbox                                       tracked
    exp-canvas                                          tracked
    experience_builder-3452489-3452489-aliases-restruct tracked
    experience_builder_default_design_system            tracked
    hotfix-0.2.1-alpha10                                tracked
    poc-codemirror                                      tracked
    poc_reactrouter                                     tracked
    poc_xb_ui                                           tracked
    prettier                                            tracked
    research__component_export_poc                      tracked
    research__data_model                                tracked
    research__design_versions                           tracked
    research_sdb_config                                 tracked
    setup-module-vite                                   tracked
  Local branch configured for 'git pull':
    0.x merges with remote 0.x
  Local ref configured for 'git push':
    0.x pushes to 0.x (up to date)
682fa8d6e6348478b3b4947f# git -C /var/lib/tugboat fetch --no-recurse-submodules origin 0.xFrom git.drupal.org:project/experience_builder
 * branch              0.x        -> FETCH_HEAD
682fa8d6e6348478b3b4947f# git -C /var/lib/tugboat checkout origin/0.xNote: switching to 'origin/0.x'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at c5f17c17 Issue #3519891 by phenaproxima, wim leers, f.mazeikis, isholgueras, lauriii: Constrain slot names allowed by XB in Components (and in its component tree)
682fa8d6e6348478b3b4947f# git -C /var/lib/tugboat pull --no-edit --rebase=false git@git.drupal.org:issue/experience_builder-3525565.git 3525565-personalization-pocFrom git.drupal.org:issue/experience_builder-3525565
 * branch              3525565-personalization-poc -> FETCH_HEAD
Auto-merging docs/data-model.md
Auto-merging src/Controller/ClientServerConversionTrait.php
Auto-merging src/Entity/Component.php
Merge made by the 'ort' strategy.
 docs/components.md                                 |   1 +
 docs/data-model.md                                 |   2 +
 experience_builder.services.yml                    |   6 +
 modules/xb_personalization/src/Entity/Segment.php  |  12 +
 .../src/Entity/SegmentInterface.php                |   2 +
 .../src/Plugin/Condition/UtmParameters.php         |   4 +
 .../xb_personalization_demo/assets/halloween.png   | Bin 0 -> 423504 bytes
 .../xb_personalization_demo/assets/motorbike.png   | Bin 0 -> 2335997 bytes
 .../install/xb_personalization.segment.default.yml |   7 +
 .../xb_personalization.segment.halloween.yml       |  16 ++
 .../xb_personalization_demo.info.yml               |   8 +
 .../xb_personalization_demo.install                | 109 ++++++++
 src/Attribute/ComponentSource.php                  |   2 +
 .../ComponentSourceWithSwitchCasesInterface.php    |  21 ++
 src/ContextProvider/XbPersonalizationContext.php   |  69 +++++
 src/Controller/ClientServerConversionTrait.php     |  16 +-
 src/Element/RenderSafeComponentContainer.php       |   1 +
 src/Entity/Component.php                           |   1 +
 src/Hook/ComponentSourceHooks.php                  |   2 +
 .../ComponentSource/BlockComponent.php             |   1 +
 .../PersonalizationWrapperComponent.php            | 308 +++++++++++++++++++++
 .../FieldFormatter/NaiveComponentTreeFormatter.php |  10 +-
 .../Field/FieldType/ComponentTreeItemList.php      |  68 ++++-
 ui/src/app/store.ts                                |   3 +
 ui/src/components/list/ListItem.tsx                |   4 +-
 .../components/personalization/VariationInfo.tsx   |  78 ++++++
 ui/src/components/sidePanel/SidebarNode.tsx        |   2 +
 ui/src/components/topbar/Topbar.tsx                |   2 +
 ui/src/features/layout/layers/ComponentLayer.tsx   |  38 ++-
 ui/src/features/layout/layers/LayersDropZone.tsx   |   5 +-
 ui/src/features/layout/layers/SlotLayer.tsx        |   7 +-
 ui/src/features/layout/layoutModelSlice.ts         |  28 +-
 ui/src/features/layout/layoutUtils.ts              |  97 +++++--
 .../layout/preview/ComponentContextMenu.tsx        |   4 +-
 .../layout/preview/ComponentContextMenuRegions.tsx |   6 +-
 ui/src/features/layout/preview/NameTag.module.css  |   5 +
 ui/src/features/layout/preview/NameTag.tsx         |   1 +
 .../layout/previewOverlay/ComponentDropZone.tsx    |   6 +-
 .../layout/previewOverlay/ComponentOverlay.tsx     |  22 +-
 .../layout/previewOverlay/EmptySlotDropZone.tsx    |   7 +-
 .../features/layout/previewOverlay/SlotOverlay.tsx |  11 +-
 .../features/personalization/variationDataSlice.ts |  27 ++
 ui/src/hooks/useCopyPasteComponents.ts             |   4 +-
 ui/src/hooks/useGetComponentName.ts                |  22 +-
 ui/src/services/personalization.ts                 |  26 ++
 ui/src/types/Segment.ts                            |   5 +
 46 files changed, 1002 insertions(+), 74 deletions(-)
 create mode 100644 modules/xb_personalization_demo/assets/halloween.png
 create mode 100644 modules/xb_personalization_demo/assets/motorbike.png
 create mode 100644 modules/xb_personalization_demo/config/install/xb_personalization.segment.default.yml
 create mode 100644 modules/xb_personalization_demo/config/install/xb_personalization.segment.halloween.yml
 create mode 100644 modules/xb_personalization_demo/xb_personalization_demo.info.yml
 create mode 100644 modules/xb_personalization_demo/xb_personalization_demo.install
 create mode 100644 src/ComponentSource/ComponentSourceWithSwitchCasesInterface.php
 create mode 100644 src/ContextProvider/XbPersonalizationContext.php
 create mode 100644 src/Plugin/ExperienceBuilder/ComponentSource/PersonalizationWrapperComponent.php
 create mode 100644 ui/src/components/personalization/VariationInfo.tsx
 create mode 100644 ui/src/features/personalization/variationDataSlice.ts
 create mode 100644 ui/src/services/personalization.ts
 create mode 100644 ui/src/types/Segment.ts
Running INIT commandsRunning UPDATE commands682fa8d6e6348478b3b4947f# /bin/sh -c curl -fsSL https://deb.nodesource.com/setup_$(cat $TUGBOAT_ROOT/ui/.nvmrc).x -o nodesource_setup.sh682fa8d6e6348478b3b4947f# /bin/sh -c bash nodesource_setup.sh2025-06-04 16:19:50 - Installing pre-requisites
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:4 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [265 kB]
Fetched 368 kB in 0s (1,153 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
apt-transport-https is already the newest version (2.6.1).
ca-certificates is already the newest version (20230311).
curl is already the newest version (7.88.1-10+deb12u12).
gnupg is already the newest version (2.2.40-1.1).
0 upgraded, 0 newly installed, 0 to remove and 53 not upgraded.
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 http://deb.debian.org/debian bookworm-updates InRelease
Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
Get:4 https://deb.nodesource.com/node_20.x nodistro InRelease [12.1 kB]
Get:5 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages [11.5 kB]
Fetched 23.7 kB in 0s (66.7 kB/s)
Reading package lists...
2025-06-04 16:19:54 - Repository configured successfully.
2025-06-04 16:19:54 - To install Node.js, run: apt-get install nodejs -y
2025-06-04 16:19:54 - You can use N|solid Runtime as a node.js alternative
2025-06-04 16:19:54 - To install N|solid Runtime, run: apt-get install nsolid -y 

682fa8d6e6348478b3b4947f# /bin/sh -c apt-get install -y nodejsReading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  nodejs
0 upgraded, 1 newly installed, 0 to remove and 53 not upgraded.
Need to get 32.0 MB of archives.
After this operation, 199 MB of additional disk space will be used.
Get:1 https://deb.nodesource.com/node_20.x nodistro/main amd64 nodejs amd64 20.19.2-1nodesource1 [32.0 MB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 32.0 MB in 1s (60.2 MB/s)
Selecting previously unselected package nodejs.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 27078 files and directories currently installed.)
Preparing to unpack .../nodejs_20.19.2-1nodesource1_amd64.deb ...
Unpacking nodejs (20.19.2-1nodesource1) ...
Setting up nodejs (20.19.2-1nodesource1) ...
Processing triggers for runit (2.1.2-54) ...
682fa8d6e6348478b3b4947f# /bin/sh -c set -eux

# This is an environment variable we added in the Dockerfile that
# provides the path to Drupal composer root (not the web root).
cd $DRUPAL_COMPOSER_ROOT

# Configure composer to require this module as a symlink.
composer config minimum-stability dev
composer config repositories.tugboat path $TUGBOAT_ROOT
composer require \
  drupal/experience_builder \
  drupal/demo_design_system \
  drupal/components

# Install Drupal on the site.
rm -f $DRUPAL_DOCROOT/sites/default/settings.php
php -d memory_limit=-1 \
  vendor/bin/drush.php \
  --yes \
  --db-url=mysql://tugboat:tugboat@mysql:3306/tugboat \
  --site-name="Live preview for ${TUGBOAT_PREVIEW_NAME}" \
  --account-pass=admin \
  site:install standard

# Require settings.local.php increase CLI memory limit, add trusted
# host patterns, and allow for enabling hidden xb_dev_standard module.
echo "require_once '$TUGBOAT_ROOT/.tugboat/settings.local.php';" >> $DOCROOT/sites/default/settings.php

# Set up the files directory permissions.
mkdir -p $DRUPAL_DOCROOT/sites/default/files
chgrp -R www-data $DRUPAL_DOCROOT/sites/default/files
chmod 2775 $DRUPAL_DOCROOT/sites/default/files
chmod -R g+w $DRUPAL_DOCROOT/sites/default/files

# Enable the module.
vendor/bin/drush --yes pm:install \
  experience_builder \
  xb_dev_standard \
  media_library \
  components

# Enable starshot_demo theme.
vendor/bin/drush --yes theme:enable starshot_demo
vendor/bin/drush --yes config:set system.theme default starshot_demo

# Create node/1
vendor/bin/drush scr $TUGBOAT_ROOT/.tugboat/create-article-node.php
+ cd /var/www/drupal
+ composer config minimum-stability dev
+ composer config repositories.tugboat path /var/lib/tugboat
+ composer require drupal/experience_builder drupal/demo_design_system drupal/components
./composer.json has been updated
Running composer update drupal/experience_builder drupal/demo_design_system drupal/components
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
  - Locking drupal/components (3.1.0)
  - Locking drupal/demo_design_system (1.0.1)
  - Locking drupal/experience_builder (dev-main)
  - Locking justinrainbow/json-schema (5.3.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
  - Downloading drupal/components (3.1.0)
  - Downloading drupal/demo_design_system (1.0.1)
  - Downloading justinrainbow/json-schema (5.3.0)
 0/3 [>---------------------------]   0%
 1/3 [=========>------------------]  33%
 2/3 [==================>---------]  66%
 3/3 [============================] 100%
  - Installing drupal/components (3.1.0): Extracting archive
  - Installing drupal/demo_design_system (1.0.1): Extracting archive
  - Installing justinrainbow/json-schema (5.3.0): Extracting archive
  - Installing drupal/experience_builder (dev-main): Symlinking from /var/lib/tugboat
 0/3 [>---------------------------]   0%
 3/3 [============================] 100%
2 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
43 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
Using version dev-main for drupal/experience_builder
Using version ^1.0 for drupal/demo_design_system
Using version ^3.1 for drupal/components
+ rm -f /var/www/drupal/web/sites/default/settings.php
+ php -d memory_limit=-1 vendor/bin/drush.php --yes --db-url=mysql://tugboat:tugboat@mysql:3306/tugboat --site-name=Live preview for 3525565-personalization-poc --account-pass=admin site:install standard
 You are about to:
 * Create a sites/default/settings.php file
 * DROP all tables in your 'tugboat' database.

 // Do you want to continue?: yes.                                              

 [notice] Starting Drupal installation. This takes a while.
 [notice] Performed install task: install_select_language
 [notice] Performed install task: install_select_profile
 [notice] Performed install task: install_load_profile
 [notice] Performed install task: install_verify_requirements
 [notice] Performed install task: install_settings_form
 [notice] Performed install task: install_verify_database_ready
 [notice] Performed install task: install_base_system
 [notice] Performed install task: install_bootstrap_full
 [notice] Performed install task: install_profile_modules
 [notice] Performed install task: install_profile_themes
 [notice] Performed install task: install_install_profile
 [notice] Performed install task: install_configure_form
 [notice] Performed install task: install_finished
 [success] Installation complete.
+ echo require_once '/var/lib/tugboat/.tugboat/settings.local.php';
+ mkdir -p /var/www/drupal/web/sites/default/files
+ chgrp -R www-data /var/www/drupal/web/sites/default/files
+ chmod 2775 /var/www/drupal/web/sites/default/files
+ chmod -R g+w /var/www/drupal/web/sites/default/files
+ vendor/bin/drush --yes pm:install experience_builder xb_dev_standard media_library components
The following module(s) will be installed: experience_builder, xb_dev_standard, media_library, components, media

 // Do you want to continue?: yes.                                              

 [success] Module experience_builder has been installed. (Permissions - Configure)
 [success] Module xb_dev_standard has been installed.
 [success] Module media_library has been installed. (Configure)
 [success] Module components has been installed.
 [success] Module media has been installed. (Permissions - Configure)
+ vendor/bin/drush --yes theme:enable starshot_demo

In ThemeInstaller.php line 93:
                                                                               
  Unable to install theme: 'starshot_demo' due to unmet module dependencies:   
  'default_content'.                                                           
                                                                               

Command Failed (Tugboat Error 1064): Exit code: 1; Command: set -eux

# This is an environment variable we added in the Dockerfile that
# provides the path to Drupal composer root (not the web root).
cd $DRUPAL_COMPOSER_ROOT

# Configure composer to require this module as a symlink.
composer config minimum-stability dev
composer config repositories.tugboat path $TUGBOAT_ROOT
composer require \
  drupal/experience_builder \
  drupal/demo_design_system \
  drupal/components

# Install Drupal on the site.
rm -f $DRUPAL_DOCROOT/sites/default/settings.php
php -d memory_limit=-1 \
  vendor/bin/drush.php \
  --yes \
  --db-url=mysql://tugboat:tugboat@mysql:3306/tugboat \
  --site-name="Live preview for ${TUGBOAT_PREVIEW_NAME}" \
  --account-pass=admin \
  site:install standard

# Require settings.local.php increase CLI memory limit, add trusted
# host patterns, and allow for enabling hidden xb_dev_standard module.
echo "require_once '$TUGBOAT_ROOT/.tugboat/settings.local.php';" >> $DOCROOT/sites/default/settings.php

# Set up the files directory permissions.
mkdir -p $DRUPAL_DOCROOT/sites/default/files
chgrp -R www-data $DRUPAL_DOCROOT/sites/default/files
chmod 2775 $DRUPAL_DOCROOT/sites/default/files
chmod -R g+w $DRUPAL_DOCROOT/sites/default/files

# Enable the module.
vendor/bin/drush --yes pm:install \
  experience_builder \
  xb_dev_standard \
  media_library \
  components

# Enable starshot_demo theme.
vendor/bin/drush --yes theme:enable starshot_demo
vendor/bin/drush --yes config:set system.theme default starshot_demo

# Create node/1
vendor/bin/drush scr $TUGBOAT_ROOT/.tugboat/create-article-node.php
682fa8d4e6348478b3b48ba1 (3525565-personalization-poc) is suspended