Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • project/varbase
  • issue/varbase-3087001
  • issue/varbase-3215888
  • issue/varbase-3245763
  • issue/varbase-3253354
  • issue/varbase-3256661
  • issue/varbase-3258740
  • issue/varbase-3259665
  • issue/varbase-3260809
  • issue/varbase-3263378
  • issue/varbase-3266504
  • issue/varbase-3269421
  • issue/varbase-3269809
  • issue/varbase-3270457
  • issue/varbase-3276911
  • issue/varbase-3277590
  • issue/varbase-3285082
  • issue/varbase-3292847
  • issue/varbase-3293400
  • issue/varbase-3293696
  • issue/varbase-3298632
  • issue/varbase-3301451
  • issue/varbase-3318323
  • issue/varbase-3318847
  • issue/varbase-3346247
  • issue/varbase-3391550
  • issue/varbase-3443948
  • issue/varbase-3471788
  • issue/varbase-3479338
  • issue/varbase-3484640
30 results
Show changes
Commits on Source (317)
version: 2.1
defaults: &defaults
docker:
- image: cimg/base:stable-20.04
- image: cimg/base:2022.09
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
- image: circleci/mysql:8.0.23
password: $DOCKERHUB_PASSWORD
- image: cimg/mysql:8.0
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
password: $DOCKERHUB_PASSWORD
entrypoint:
[
"docker-entrypoint.sh",
"--default-authentication-plugin=mysql_native_password",
]
environment:
MYSQL_ROOT_PASSWORD: rootpw
MYSQL_ROOT_HOST: "%"
MYSQL_DATABASE: test_varbase
MYSQL_USER: user
MYSQL_PASSWORD: passw0rd
resource_class: large
commands:
varbase-build:
steps:
- checkout
## Usefull must have utils.
- checkout
- run:
name: Usefull must have utils
command: |
sudo apt -qq update
sudo apt -qqy install docker-buildx-plugin
sudo apt -qqy upgrade
sudo apt -yqq install vim links lynx git diffutils htop curl wget p7zip-full unzip zip sed gcc g++ make libfreetype6-dev libaio1 libaio-dev libonig-dev libpng-dev xvfb mysql-client default-mysql-client
## Setup Apache2 and PHP7.4
sudo apt -yqq install vim links lynx git diffutils htop curl wget p7zip-full unzip zip sed gcc g++
sudo apt -yqq install make libfreetype6-dev libaio1 libaio-dev libonig-dev libpng-dev mysql-client default-mysql-client xvfb
sudo apt -yqq install gtk2-engines-pixbuf xserver-xorg-core xfonts-cyrillic xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable
sudo apt -yqq install libxpm4 libgtk2.0-0 imagemagick dbus-x11 x11-apps libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3
sudo apt -yqq install libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0
sudo apt -yqq install libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6
sudo apt -yqq install libxrandr2 libxrender1 libxss1 libxtst6 libnss3 libu2f-udev libgbm1 libvulkan1 fonts-liberation libappindicator3-1
sudo apt -yqq install libatk-bridge2.0-0 xdg-utils gnupg2 apt-transport-https ca-certificates
- run:
name: Setup Apache2 and PHP7.4
name: Setup Apache2 and PHP8.3
command: |
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt upgrade
sudo apt install -yqq apache2 php7.4 libapache2-mod-php7.4 php7.4-mbstring php7.4-mysql php7.4-xml php7.4-cgi php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-imap php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-opcache php7.4-json php7.4-bz2 php7.4-readline php7.4-xmlrpc php7.4-enchant php7.4-xsl php7.4-zip php7.4-bcmath php-pear
sudo a2enmod php7.4
sudo apt -yqq install apache2 php8.3 libapache2-mod-php8.3 php8.3-mbstring php8.3-mysql php8.3-xml php8.3-cgi php8.3-cli php8.3-common php8.3-curl php8.3-gd php8.3-imap php8.3-intl php8.3-pspell php8.3-sqlite3 php8.3-tidy php8.3-opcache php8.3-yaml php8.3-bz2 php8.3-readline php8.3-xmlrpc php8.3-enchant php8.3-xsl php8.3-zip php8.3-bcmath php-pear
sudo a2enmod php8.3
sudo a2enmod headers rewrite env mime expires ssl
sudo update-alternatives --set php /usr/bin/php7.4
echo -e "memory_limit = -1" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "max_execution_time = 1200" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "error_reporting = E_ALL" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "max_input_time = 180" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "max_input_vars = 10000" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "post_max_size = 64M" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "upload_max_filesize = 32M" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
echo -e "max_file_uploads = 40" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null
sudo update-alternatives --set php /usr/bin/php8.3
echo -e "memory_limit = -1" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "max_execution_time = 1200" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "error_reporting = E_ALL" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "max_input_time = 180" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "max_input_vars = 10000" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "post_max_size = 64M" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "upload_max_filesize = 32M" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
echo -e "max_file_uploads = 40" | sudo tee /etc/php/8.3/apache2/php.ini > /dev/null
sudo service apache2 restart
## Waiting for MySQL to be ready.
- run:
name: Waiting for MySQL to be ready
command: |
......@@ -60,61 +68,60 @@ commands:
sleep 1
done
echo Failed waiting for MySQL && exit 1
## Install composer ~2.1
- run:
name: Install composer ~2.1
name: Start D-Bus
command: sudo service dbus start
- run:
name: Configure and run the virtual display.
command: |
sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/ --filename=composer --2;
composer config -g github-oauth.github.com $GITHUB_TOKEN
## Install node js, npm, yarn, and gulp
export DISPLAY=:99
Xvfb -ac :99 -screen 0 1600x1200x24 > /dev/null 2>&1
background: true
- run:
name: Install node js
name: Install/Update Google Chrome browser
command: |
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y nodejs
sudo npm install -g yarn
sudo npm install gulp-cli -g ;
sudo npm install gulp -D ;
## Install Java.
sudo apt install libu2f-udev
sudo apt-get install libgbm1 libvulkan1 libnss3 libgconf-2-4 libxss1 fonts-liberation libappindicator3-1 libatk-bridge2.0-0 xdg-utils libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get install -f
rm google-chrome-stable_current_amd64.deb
sudo chmod +x /usr/bin/google-chrome
/usr/bin/google-chrome --version
google-chrome --version
- run:
name: Install/Update Chrome Driver
command: |
CHROME_VERSION=$(google-chrome --product-version);
echo $CHROME_VERSION;
wget https://storage.googleapis.com/chrome-for-testing-public/$CHROME_VERSION/linux64/chromedriver-linux64.zip
unzip chromedriver-linux64.zip
sudo chmod +x chromedriver-linux64/chromedriver
sudo mv -f chromedriver-linux64/chromedriver /usr/bin/
rm -rf chromedriver-linux64.zip chromedriver-linux64
chromedriver --version
- run:
name: Install Java
command: |
sudo apt update
sudo apt install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless
## Install/Update Google Chrome browser.
- run:
name: Install/Update Google Chrome browser
name: Run Selenium Standalone server
command: |
sudo apt-get install libappindicator1 fonts-liberation libgbm1 libgtk-3-0 xdg-utils
export CHROME_BIN=/usr/bin/google-chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
rm google-chrome-stable_current_amd64.deb
## Install/Update Chrome Driver.
export DISPLAY=:99
if [[ ! -f /home/circleci/selenium-server-4.4.0.jar ]]; then wget -O /home/circleci/selenium-server-4.4.0.jar https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.4.0/selenium-server-4.4.0.jar; fi
cd /home/circleci/
java -jar selenium-server-4.4.0.jar standalone --port 4445
background: true
- run:
name: Install/Update Chrome Driver
name: Install composer ~2
command: |
CHROME_DRIVER_VERSION=$(wget -qO- chromedriver.storage.googleapis.com/LATEST_RELEASE);
echo $CHROME_DRIVER_VERSION;
wget http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo chmod +x chromedriver
sudo mv -f chromedriver /usr/bin/
rm chromedriver_linux64.zip
## List tools versions.
sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/ --filename=composer --2;
composer config -g github-oauth.github.com $GITHUB_TOKEN
- run:
name: List tools versions
command: |
php --version
node --version
yarn --version
gulp --version
java -version
google-chrome --version
chromedriver --version
......@@ -123,8 +130,6 @@ commands:
php -m
php -i | grep "Loaded Configuration File"
php --ini
## Build Varbase with the composer.
- run:
name: Build Varbase with the composer
command: |
......@@ -138,10 +143,16 @@ commands:
cd /var/www/html/test/
sudo chmod 775 .
sudo chown www-data:circleci .
composer create-project vardot/varbase:9.0.x varbase --stability dev --no-interaction -vvv
cp -r /home/circleci/project /var/www/html/test/varbase/docroot/profiles/varbase
git clone --branch '10.0.x' https://github.com/vardot/varbase-project.git /var/www/html/test/varbase
cd /var/www/html/test/varbase
sudo rm -rf config configbit css images libraries scripts src tests traslations varbase.info.yml varbase.install varbase.libraries.yml varbase.profile varbase.services.yml yarn.lock
composer require --dev drupal/core-dev:~10 --no-update
composer require --dev drush/drush:~13 --no-update
composer require --dev drupal/drupal-extension:5.0.0alpha1 --no-update
composer require --dev webship/behat-html-formatter:~1.0 --no-update
composer require --dev drevops/behat-screenshot:~1.0 --no-update
sudo chmod 775 -R .
sudo chown www-data:circleci -R .
composer install --no-interaction -vvv
sudo chmod 775 -R .
sudo chown www-data:circleci -R .
cp /var/www/html/test/varbase/docroot/sites/default/default.settings.php /var/www/html/test/varbase/docroot/sites/default/settings.php
......@@ -161,8 +172,6 @@ commands:
cd /var/www/html/test/varbase
sudo chmod 775 -R .
sudo chown www-data:circleci -R .
## Point varbase.test at /var/www/html/test/varbase/docroot
- run:
name: Point varbase.test at /var/www/html/test/varbase/docroot
command: |
......@@ -171,99 +180,98 @@ commands:
sudo a2ensite varbase.test
echo 127.0.0.1 varbase.test | sudo tee -a /etc/hosts
sudo service apache2 restart
## Install Varbase with drush.
- run:
name: Install Varbase with drush
command: |
mysql -h 127.0.0.1 -uroot -prootpw --execute="DROP DATABASE IF EXISTS test_varbase;" -vvv
mysql -h 127.0.0.1 -uroot -prootpw --execute="CREATE DATABASE test_varbase;" -vvv
cd /var/www/html/test/varbase/docroot
../bin/drush site-install varbase --yes --account-name="webmaster" --account-pass="dD.123123ddd" --account-mail="webmaster@vardot.com" --db-url="mysql://root:rootpw@127.0.0.1/test_varbase" --locale="en" varbase_multilingual_configuration.enable_multilingual=true varbase_extra_components.vmi=true varbase_extra_components.varbase_heroslider_media=true varbase_extra_components.varbase_carousels=true varbase_extra_components.varbase_search=true varbase_extra_components.varbase_blog=true varbase_extra_components.varbase_auth=true install_configure_form.enable_update_status_emails=NULL -vvv
../bin/drush pm-enable varbase_development --yes
../bin/drush pm-enable varbase_styleguide --yes
../bin/drush pm-enable varbase_landing --yes
../bin/drush pm-enable varbase_api --yes
../bin/drush pm-enable varbase_content_planner --yes
../bin/drush pm-enable varbase_media_instagram --yes
../bin/drush pm-enable varbase_media_twitter --yes
../bin/drush pm-enable social_auth_google --yes
../bin/drush pm-enable social_auth_facebook --yes
../bin/drush pm-enable social_auth_twitter --yes
../bin/drush pm-enable social_auth_linkedin --yes
../bin/drush config-set system.performance css.preprocess 0 --yes
../bin/drush config-set system.performance js.preprocess 0 --yes
../bin/drush config-set system.logging error_level all --yes
../bin/drush cr
## Configure and run the virtual display.
../bin/drush site-install varbase --yes --account-name="webmaster" --account-pass="dD.123123ddd" --account-mail="webmaster@vardot.com" --db-url="mysql://root:rootpw@127.0.0.1/test_varbase" --locale="en" varbase_multilingual_configuration.enable_multilingual=true varbase_extra_components.varbase_demo=true varbase_extra_components.editoria11y=true varbase_extra_components.vmi=true varbase_extra_components.varbase_heroslider=true varbase_extra_components.varbase_carousels=true varbase_extra_components.varbase_search=true varbase_extra_components.varbase_blog=true varbase_extra_components.varbase_auth=true varbase_extra_components.varbase_ai=true varbase_extra_components.varbase_api=true install_configure_form.enable_update_status_emails=NULL -vvv
../bin/drush pm:enable varbase_development --yes
../bin/drush pm:enable varbase_landing --yes
../bin/drush pm:enable varbase_content_planner --yes
../bin/drush pm:enable varbase_media_instagram --yes
../bin/drush pm:enable varbase_media_twitter --yes
../bin/drush pm:enable social_auth_facebook --yes
../bin/drush pm:enable social_auth_twitter --yes
../bin/drush pm:enable social_auth_linkedin --yes
../bin/drush pm:enable varbase_update_helper --yes
../bin/drush cache:rebuild
- run:
name: Configure and run the virtual display.
command: Xvfb -ac :99 -screen 0 1024x768x24 > /dev/null 2>&1
background: true
## Run selenium standalone server.
name: Add testing users.
command: |
cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase/scripts
bash add-testing-users.sh
- run:
name: Run selenium standalone server
name: Import and Update local RTL language
shell: /bin/bash
command: |
if [[ ! -f /home/circleci/selenium-server-standalone-2.53.1.jar ]]; then wget -O /home/circleci/selenium-server-standalone-2.53.1.jar http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar; fi
cd /home/circleci/
java -jar selenium-server-standalone-2.53.1.jar -port 4445
background: true
## Automated Functional Acceptance Testing - Step 1 init tests.
cd /var/www/html/test/varbase/docroot
../bin/drush locale-import ar --autocreate-language profiles/contrib/varbase/translations/ar.po
../bin/drush locale-update --langcodes=ar
../bin/drush cr
- run:
name: Automated Functional Acceptance Testing - Step 1 init tests
no_output_timeout: 30m
name: Uninstall Antibot module to let the selenium bot work
shell: /bin/bash
command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step1-init-tests/
cd /var/www/html/test/varbase/docroot
../bin/drush pm:uninstall antibot --yes
../bin/drush config:set system.performance css.preprocess 0 --yes
../bin/drush config:set system.performance js.preprocess 0 --yes
../bin/drush config:set system.logging error_level all --yes
../bin/drush cache:rebuild
jobs:
varbase-testing-01-website-base-requirements:
<<: *defaults
steps:
- varbase-build
## Automated Functional Acceptance Testing group - 01 website base requirements
- run:
name: Automated Functional Acceptance Testing group - 01 website base requirements
no_output_timeout: 30m
command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/01-website-base-requirements/
varbase-testing-02-user-management-03-admin-management:
cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../../bin/behat tests/features/varbase/01-website-base-requirements/
varbase-testing-02-user-management:
<<: *defaults
steps:
- varbase-build
- run:
name: Automated Functional Acceptance Testing group - 02 user management
no_output_timeout: 30m
command: |
cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../../bin/behat tests/features/varbase/02-user-management/
varbase-testing-03-admin-management:
<<: *defaults
steps:
- varbase-build
## Automated Functional Acceptance Testing group - 02 user management - 03 admin management
- run:
name: Automated Functional Acceptance Testing group - 02 user management - 03 admin management
name: Automated Functional Acceptance Testing group - 03 admin management
no_output_timeout: 30m
command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/02-user-management/
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/03-admin-management/
cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../../bin/behat tests/features/varbase/03-admin-management/
varbase-testing-04-content-structure:
<<: *defaults
steps:
- varbase-build
## Automated Functional Acceptance Testing group - 04 content structure
- run:
name: Automated Functional Acceptance Testing group - 04 content structure
no_output_timeout: 30m
command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/04-content-structure/
cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../../bin/behat tests/features/varbase/04-content-structure/
varbase-testing-05-content-management:
<<: *defaults
steps:
- varbase-build
## Automated Functional Acceptance Testing group - 05 content-management
- run:
name: Automated Functional Acceptance Testing group - 05 content-management
no_output_timeout: 30m
command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/05-content-management/
cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../../bin/behat tests/features/varbase/05-content-management/
workflows:
version: 2
......@@ -272,24 +280,30 @@ workflows:
- varbase-testing-01-website-base-requirements:
filters:
tags:
only: /^9.*/
only: /^10.0.*/
branches:
only: /^10.0.x/
- varbase-testing-02-user-management:
filters:
tags:
only: /^10.0.*/
branches:
only: /^9.0.x/
- varbase-testing-02-user-management-03-admin-management:
only: /^10.0.x/
- varbase-testing-03-admin-management:
filters:
tags:
only: /^9.*/
only: /^10.0.*/
branches:
only: /^9.0.x/
only: /^10.0.x/
- varbase-testing-04-content-structure:
filters:
tags:
only: /^9.*/
only: /^10.0.*/
branches:
only: /^9.0.x/
only: /^10.0.x/
- varbase-testing-05-content-management:
filters:
tags:
only: /^9.*/
only: /^10.0.*/
branches:
only: /^9.0.x/
only: /^10.0.x/
{
"exclude": [
"core/**",
"modules/**",
"profiles/**",
"sites/**",
"themes/**",
"tests/**",
"config/**",
"includes/**",
"tmp/**",
"vendor/**",
"node_modules/**",
"bower_components/**",
"lib/**",
"src/**",
"img/**",
"images/**",
"icons/**",
"js/**",
"javascript/**",
"scripts/**",
"jquery/**",
".git/**",
"css/mixins/**"
],
"always-semicolon": true,
"block-indent": 2,
"color-case": "lower",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"lines-between-rulesets": false,
"quotes": "double",
"remove-empty-rulesets": true,
"sort-order-fallback": "abc",
"space-after-colon": " ",
"space-after-combinator": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": "\n",
"space-before-colon": "",
"space-before-combinator": " ",
"space-before-opening-brace": " ",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"space-between-declarations": "\n",
"strip-spaces": true,
"tab-size": 2,
"unitless-zero": true,
"verbose": true,
"sort-order": [
[
"$charset",
"$import",
"$namespace",
"$extend",
"$variable",
"$include",
"position",
"z-index",
"auto",
"top",
"right",
"bottom",
"left",
"display",
"visibility",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"-ms-overflow-x",
"-ms-overflow-y",
"-webkit-overflow-scrolling",
"clip",
"zoom",
"-webkit-box-flex",
"-webkit-flex",
"-ms-flex",
"flex",
"-webkit-flex-direction",
"-ms-flex-direction",
"flex-direction",
"-webkit-flex-basis",
"flex-basis",
"-webkit-flex-flow",
"-webkit-box-direction",
"-webkit-box-orient",
"-moz-flex-flow",
"-ms-flex-flow",
"flex-flow",
"-webkit-flex-grow",
"flex-grow",
"-webkit-flex-shrink",
"-ms-flex-negative",
"flex-shrink",
"-webkit-flex-wrap",
"-moz-flex-wrap",
"-ms-flex-wrap",
"flex-wrap",
"-ms-flex-order",
"flex-order",
"-webkit-order",
"-webkit-box-ordinal-group",
"order",
"-ms-flex-pack",
"flex-order",
"flex-pack",
"align",
"-webkit-align-self",
"-moz-align-self",
"-ms-align-self",
"-ms-flex-item-align",
"align-self",
"justify-content",
"-webkit-align-items",
"-webkit-box-align",
"-ms-flex-align",
"align-items",
"-webkit-align-content",
"align-content",
"flex-align",
"-webkit-justify-content",
"-webkit-box-pack",
"justify-content",
"justify-items",
"justify-self",
"-webkit-box-sizing",
"-moz-box-sizing",
"box-sizing",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"table-layout",
"-webkit-columns",
"-moz-columns",
"columns",
"-webkit-column-span",
"-moz-column-span",
"column-span",
"-webkit-column-width",
"-moz-column-width",
"column-width",
"-webkit-column-count",
"-moz-column-count",
"column-count",
"-webkit-column-fill",
"-moz-column-fill",
"column-fill",
"-webkit-column-gap",
"-moz-column-gap",
"column-gap",
"-webkit-column-rule",
"-moz-column-rule",
"column-rule",
"-webkit-column-rule-width",
"-moz-column-rule-width",
"column-rule-width",
"-webkit-column-rule-style",
"-moz-column-rule-style",
"column-rule-style",
"-webkit-column-rule-color",
"-moz-column-rule-color",
"column-rule-color",
"grid-column-start",
"grid-column-end",
"empty-cells",
"caption-side",
"border-spacing",
"border-collapse",
"$counter-style",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"-webkit-appearance",
"-moz-appearance",
"appearance",
"content",
"quotes",
"counter-reset",
"counter-increment",
"resize",
"cursor",
"-webkit-user-select",
"-moz-user-select",
"-ms-user-select",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition",
"transition",
"-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay",
"transition-delay",
"-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function",
"transition-timing-function",
"will-change",
"-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration",
"transition-duration",
"-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property",
"transition-property",
"-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform",
"transform",
"-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin",
"transform-origin",
"$keyframes",
"-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation",
"animation",
"-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name",
"animation-name",
"-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration",
"animation-duration",
"-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state",
"animation-play-state",
"-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function",
"animation-timing-function",
"-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay",
"animation-delay",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction",
"animation-direction",
"text-align",
"-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last",
"vertical-align",
"white-space",
"-webkit-text-decoration",
"text-decoration",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"-ms-text-justify",
"text-justify",
"text-transform",
"letter-spacing",
"word-spacing",
"-ms-writing-mode",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"-ms-text-overflow",
"-o-text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"-ms-word-wrap",
"word-wrap",
"word-break",
"-ms-word-break",
"-moz-tab-size",
"-o-tab-size",
"tab-size",
"-webkit-hyphens",
"-moz-hyphens",
"hyphens",
"page-break",
"page-break-before",
"page-break-inside",
"page-break-after",
"pointer-events",
"direction",
"unicode-bidi",
"orphans",
"widows",
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
"-webkit-filter",
"-ms-filter",
"filter",
"-ms-interpolation-mode",
"color",
"border",
"border-collapse",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"-webkit-border-radius",
"-moz-border-radius",
"border-radius",
"-webkit-border-top-left-radius",
"-moz-border-radius-topleft",
"border-top-left-radius",
"-webkit-border-top-right-radius",
"-moz-border-radius-topright",
"border-top-right-radius",
"-webkit-border-bottom-right-radius",
"-moz-border-radius-bottomright",
"border-bottom-right-radius",
"-webkit-border-bottom-left-radius",
"-moz-border-radius-bottomleft",
"border-bottom-left-radius",
"-webkit-border-image",
"-moz-border-image",
"-o-border-image",
"border-image",
"-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source",
"border-image-source",
"-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice",
"border-image-slice",
"-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width",
"border-image-width",
"-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset",
"border-image-outset",
"-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat",
"border-image-repeat",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"background",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"-o-object-fit",
"object-fit",
"background-color",
"background-image",
"background-repeat",
"background-attachment",
"background-position",
"background-position-x",
"-ms-background-position-x",
"background-position-y",
"-ms-background-position-y",
"-webkit-background-clip",
"-moz-background-clip",
"background-clip",
"background-origin",
"-webkit-background-size",
"-moz-background-size",
"-o-background-size",
"background-size",
"box-decoration-break",
"-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow",
"filter:progid:DXImageTransform.Microsoft.gradient",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
"text-shadow",
"$font-face",
"font",
"font-family",
"src",
"$font-feature-values",
"$swash",
"$annotation",
"$ornaments",
"$stylistic",
"$styleset",
"$character-variant",
"font-variant-alternates",
"font-size",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"font-display",
"line-height",
"line-break",
"-webkit-tap-highlight-color",
"-webkit-text-size-adjust",
"-webkit-text-decoration-skip-ink",
"text-decoration-skip-ink",
"-ms-overflow-style",
"-ms-flex-positive",
"-ms-flex-preferred-size",
"-webkit-print-color-adjust",
"-webkit-backface-visibility",
"backface-visibility",
"color-adjust",
"-ms-flex-line-pack",
"-webkit-margin-after",
"-webkit-margin-before",
"margin-block-end",
"margin-block-start",
"-webkit-margin-end",
"-moz-margin-end",
"margin-inline-end",
"margin-inline-start",
"-webkit-margin-start",
"-moz-margin-start",
"padding-inline-start",
"-webkit-padding-start",
"-moz-padding-start",
"$media",
"$supports",
"$document",
"$page",
"$viewport"
]
]
}
\ No newline at end of file
**/*.min.js
**/gulpfile.js
**/node_modules
behat.yml
behat.varbase.yml
node_modules/**/*
# Ignore deliberately malformed YAML files.
drupalci.yml
**/drupalci.yml
**/librarie
{
"extends": [
"airbnb",
"plugin:react/recommended",
"airbnb-base",
"plugin:prettier/recommended",
"plugin:yml/recommended"
],
"root": true,
"env": {
"browser": true
"browser": true,
"es6": true,
"node": true
},
"globals": {
"Drupal": true,
"drupalSettings": true,
"drupalTranslations": true,
"domready": true,
"jQuery": true,
"_": true,
"matchMedia": true,
"Cookies": true,
"Backbone": true,
"Modernizr": true,
"Popper": true,
"loadjs": true,
"Shepherd": true,
"Sortable": true,
"once": true,
"CKEDITOR": true,
"CKEditor5": true,
"tabbable": true
},
"settings": {
"react": {
"version": "latest"
}
},
"rules": {
"prettier/prettier": ["error", {
"trailingComma": "none"
}],
"prettier/prettier": "error",
"consistent-return": ["off"],
"no-underscore-dangle": ["off"],
"max-nested-callbacks": ["warn", 3],
......@@ -52,12 +45,7 @@
"requireReturn": false
}],
"no-unused-vars": ["warn"],
"object-shorthand": 0,
"prefer-arrow-callback": 0,
"func-names": 0,
"no-use-before-define": 0,
"one-var": 0,
"operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }],
"prefer-template": 0
"yml/indent": ["error", 2]
}
}
\ No newline at end of file
}
### Problem/Motivation
#### Steps to reproduce
```
Given
When
Then
```
### Proposed resolution
### Remaining tasks
- [x] File an issue about this project
- [ ] Addition/Change/Update/Fix to this project
- [ ] Testing to ensure no regression
- [ ] Automated unit/functional testing coverage
- [ ] Developer Documentation support on feature change/addition
- [ ] User Guide Documentation support on feature change/addition
- [ ] Accessibility and Readability
- [ ] Code review from 1 Varbase core team member
- [ ] Full testing and approval
- [ ] Credit contributors
- [ ] Review with the product owner
- [ ] Update Release Notes and Update Helper on new feature change/addition
- [ ] Release
### [Varbase update type](https://docs.varbase.vardot.com/developers/updating-varbase/handling-configuration-updates#change-or-update-types)
- [x] No Update
- [ ] Optional Update
- [ ] Forced Update
- [ ] Forced Update if Unchanged
### API changes
* N/A
### Data model changes
* N/A
### Release notes snippet
* N/A
### Remaining tasks
- [x] File an issue about this project
- [x] Addition/Change/Update/Fix to this project
- [ ] Testing to ensure no regression
- [ ] Automated unit/functional testing coverage
- [ ] Developer Documentation support on feature change/addition
- [ ] User Guide Documentation support on feature change/addition
- [ ] Accessibility and Readability
- [ ] Code review from 1 Varbase core team member
- [ ] Full testing and approval
- [ ] Credit contributors
- [ ] Review with the product owner
- [ ] Update Release Notes and Update Helper on new feature change/addition
- [ ] Release
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="custom_code">
<description>Default PHP CodeSniffer configuration for custom code.</description>
<arg name="extensions" value="inc,install,module,php,profile,test,theme,yml,css"/>
<arg name="extensions" value="inc,install,module,php,profile,test,theme,yml"/>
<description>Default PHP CodeSniffer configuration for Drupal core.</description>
<!--Exclude folders used by common frontend tools. These folders match the file_scan_ignore_directories setting in default.settings.php-->
<exclude-pattern>*/node_modules/*</exclude-pattern>
<exclude-pattern>varbase.info.yml</exclude-pattern>
<exclude-pattern>*/bower_components/*</exclude-pattern>
<exclude-pattern>*/tests/features/bootstrap/*</exclude-pattern>
<exclude-pattern>*/node_modules/*</exclude-pattern>
<exclude-pattern>tests/features/bootstrap/*</exclude-pattern>
<!--Exclude minimized css.-->
<exclude-pattern>*/*.min.css</exclude-pattern>
<exclude-pattern>css/variables.css</exclude-pattern>
<file>.</file>
<!-- Only include specific sniffs that pass. This ensures that, if new sniffs are added, HEAD does not fail.-->
<!-- Drupal sniffs -->
<rule ref="Drupal.Arrays.Array">
<!-- Sniff for these errors: CommaLastItem -->
<exclude name="Drupal.Arrays.Array.ArrayClosingIndentation"/>
<exclude name="Drupal.Arrays.Array.ArrayIndentation"/>
<!-- Sniff for these errors: ArrayClosingIndentation, ArrayIndentation, CommaLastItem -->
<exclude name="Drupal.Arrays.Array.LongLineDeclaration"/>
</rule>
<rule ref="Drupal.CSS.ClassDefinitionNameSpacing"/>
<rule ref="Drupal.CSS.ColourDefinition"/>
<rule ref="Drupal.Classes.ClassCreateInstance"/>
<rule ref="Drupal.Classes.ClassDeclaration"/>
<rule ref="Drupal.Classes.ClassFileName"/>
......@@ -29,8 +29,6 @@
<rule ref="Drupal.Classes.UnusedUseStatement"/>
<rule ref="Drupal.Classes.UseGlobalClass"/>
<rule ref="Drupal.Classes.UseLeadingBackslash"/>
<rule ref="Drupal.CSS.ClassDefinitionNameSpacing"/>
<rule ref="Drupal.CSS.ColourDefinition"/>
<rule ref="Drupal.Commenting.ClassComment">
<exclude name="Drupal.Commenting.ClassComment.Missing"/>
</rule>
......@@ -43,12 +41,11 @@
TagsNotGrouped, ParamGroup -->
<!-- ParamNotFirst still not decided for PHPUnit-based tests.
@see https://www.drupal.org/node/2253915 -->
<exclude name="Drupal.Commenting.DocComment.ParamNotFirst"/>
<exclude name="Drupal.Commenting.DocComment.SpacingBeforeTags"/>
<exclude name="Drupal.Commenting.DocComment.LongFullStop"/>
<exclude name="Drupal.Commenting.DocComment.ShortNotCapital"/>
<exclude name="Drupal.Commenting.DocComment.ShortSingleLine"/>
<exclude name="Drupal.Commenting.DocComment.MissingShort"/>
<exclude name="Drupal.Commenting.DocComment.ParamNotFirst"/>
<exclude name="Drupal.Commenting.DocComment.ShortNotCapital"/>
<exclude name="Drupal.Commenting.DocComment.SpacingBeforeTags"/>
</rule>
<rule ref="Drupal.Commenting.DocCommentAlignment"/>
<rule ref="Drupal.Commenting.DocCommentStar"/>
......@@ -56,23 +53,13 @@
<rule ref="Drupal.Commenting.FunctionComment">
<exclude name="Drupal.Commenting.FunctionComment.InvalidNoReturn"/>
<exclude name="Drupal.Commenting.FunctionComment.Missing"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingParamComment"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingParamType"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnComment"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnType"/>
<exclude name="Drupal.Commenting.FunctionComment.ParamCommentFullStop"/>
<exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/>
</rule>
<rule ref="Drupal.Commenting.HookComment"/>
<rule ref="Drupal.Commenting.GenderNeutralComment"/>
<rule ref="Drupal.Commenting.InlineVariableComment"/>
<rule ref="Drupal.Commenting.VariableComment">
<!-- Sniff for: DuplicateVar, EmptyVar, InlineVariableName, WrongStyle -->
<exclude name="Drupal.Commenting.VariableComment.IncorrectVarType"/>
<exclude name="Drupal.Commenting.VariableComment.Missing"/>
<exclude name="Drupal.Commenting.VariableComment.MissingVar"/>
<exclude name="Drupal.Commenting.VariableComment.VarOrder"/>
</rule>
<rule ref="Drupal.Commenting.HookComment"/>
<rule ref="Drupal.Commenting.InlineComment">
<!-- Sniff for: NoSpaceBefore, SpacingBefore, WrongStyle -->
<exclude name="Drupal.Commenting.InlineComment.DocBlock"/>
......@@ -80,9 +67,17 @@
<exclude name="Drupal.Commenting.InlineComment.NotCapital"/>
<exclude name="Drupal.Commenting.InlineComment.SpacingAfter"/>
</rule>
<rule ref="Drupal.Commenting.InlineVariableComment"/>
<rule ref="Drupal.Commenting.PostStatementComment"/>
<rule ref="Drupal.ControlStructures.ElseIf"/>
<rule ref="Drupal.Commenting.VariableComment">
<!-- Sniff for: DuplicateVar, EmptyVar, InlineVariableName, WrongStyle -->
<exclude name="Drupal.Commenting.VariableComment.IncorrectVarType"/>
<exclude name="Drupal.Commenting.VariableComment.Missing"/>
<exclude name="Drupal.Commenting.VariableComment.MissingVar"/>
<exclude name="Drupal.Commenting.VariableComment.VarOrder"/>
</rule>
<rule ref="Drupal.ControlStructures.ControlSignature"/>
<rule ref="Drupal.ControlStructures.ElseIf"/>
<rule ref="Drupal.ControlStructures.InlineControlStructure"/>
<rule ref="Drupal.Files.EndFileNewline"/>
<rule ref="Drupal.Files.FileEncoding"/>
......@@ -102,9 +97,12 @@
Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps. -->
<exclude name="Drupal.Methods.MethodDeclaration.Underscore"/>
</rule>
<rule ref="Drupal.NamingConventions.ValidVariableName">
<!-- Sniff for: LowerStart -->
<exclude name="Drupal.NamingConventions.ValidVariableName.LowerCamelName"/>
<rule ref="Drupal.NamingConventions.ValidClassName"/>
<rule ref="Drupal.NamingConventions.ValidGlobal"/>
<rule ref="Drupal.NamingConventions.ValidVariableName"/>
<rule ref="Drupal.NamingConventions.ValidVariableName.LowerCamelName">
<!-- Views plugins do not conform to this sniff. -->
<include-pattern>**/tests/*</include-pattern>
</rule>
<rule ref="Drupal.Scope.MethodScope"/>
<rule ref="Drupal.Semantics.EmptyInstall"/>
......@@ -132,9 +130,27 @@
<rule ref="Drupal.WhiteSpace.ScopeIndent"/>
<!-- Drupal Practice sniffs -->
<rule ref="DrupalPractice.CodeAnalysis.VariableAnalysis">
<!-- @todo exclude tests -->
<exclude-pattern>*/tests/*</exclude-pattern>
<properties>
<property name="allowUnusedFunctionParameters" value="true"/>
</properties>
</rule>
<rule ref="DrupalPractice.CodeAnalysis.VariableAnalysis.UndefinedUnsetVariable">
<severity>0</severity>
</rule>
<rule ref="DrupalPractice.CodeAnalysis.VariableAnalysis.UndefinedVariable">
<!-- Setting severity to 0 to completely disable an error message in this sniff, without excluding the whole sniff -->
<!-- See https://github.com/squizlabs/PHP_CodeSniffer/wiki/Configuration-Options#changing-the-default-severity-levels -->
<severity>0</severity>
</rule>
<rule ref="DrupalPractice.Commenting.ExpectedException"/>
<rule ref="DrupalPractice.General.ExceptionT"/>
<rule ref="DrupalPractice.InfoFiles.NamespacedDependency"/>
<rule ref="DrupalPractice.Objects.GlobalFunction">
<include-pattern>*/Plugin/*</include-pattern>
</rule>
<!-- Generic sniffs -->
<rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
......@@ -149,8 +165,6 @@
<property name="checkClosures" value="true"/>
</properties>
</rule>
<rule ref="Drupal.NamingConventions.ValidClassName"/>
<rule ref="Drupal.NamingConventions.ValidGlobal"/>
<rule ref="Generic.NamingConventions.ConstructorName"/>
<rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
<rule ref="Generic.PHP.DeprecatedFunctions"/>
......@@ -171,30 +185,29 @@
<!-- PEAR sniffs -->
<rule ref="PEAR.Files.IncludingFile"/>
<!-- Disable some error messages that we do not want. -->
<rule ref="PEAR.Files.IncludingFile.UseIncludeOnce">
<severity>0</severity>
</rule>
<rule ref="PEAR.Files.IncludingFile.UseInclude">
<severity>0</severity>
</rule>
<rule ref="PEAR.Files.IncludingFile.UseRequireOnce">
<rule ref="PEAR.Files.IncludingFile.UseIncludeOnce">
<severity>0</severity>
</rule>
<rule ref="PEAR.Files.IncludingFile.UseRequire">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.ValidDefaultValue"/>
<!-- PEAR sniffs -->
<rule ref="PEAR.Files.IncludingFile.UseRequireOnce">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature"/>
<!-- The sniffs inside PEAR.Functions.FunctionCallSignature silenced below are
also silenced in Drupal CS' ruleset.xml. The code below is a 1-on-1 copy
from that file. -->
<!-- Disable some error messages that we already cover. -->
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket">
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket">
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.EmptyLine">
<severity>0</severity>
</rule>
<!-- Disable some error messages that we do not want. -->
......@@ -204,15 +217,14 @@
<rule ref="PEAR.Functions.FunctionCallSignature.OpeningIndent">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
<!-- Disable some error messages that we already cover. -->
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.EmptyLine">
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket">
<severity>0</severity>
</rule>
<rule ref="PEAR.Functions.ValidDefaultValue"/>
<!-- PSR-2 sniffs -->
<rule ref="PSR2.Classes.PropertyDeclaration">
......@@ -223,11 +235,28 @@
<rule ref="PSR2.Namespaces.NamespaceDeclaration"/>
<rule ref="PSR2.Namespaces.UseDeclaration"/>
<!-- SlevomatCodingStandard sniffs -->
<rule ref="SlevomatCodingStandard.Commenting.ForbiddenAnnotations">
<properties>
<property name="forbiddenAnnotations" type="array">
<element value="@inheritDoc"/>
<element value="@inheritdoc"/>
</property>
</properties>
</rule>
<rule ref="SlevomatCodingStandard.Commenting.ForbiddenComments">
<properties>
<property name="forbiddenCommentPatterns" type="array">
<element value="/@inheritDoc/"/>
</property>
</properties>
</rule>
<!-- Squiz sniffs -->
<rule ref="Squiz.Arrays.ArrayBracketSpacing"/>
<rule ref="Squiz.Arrays.ArrayDeclaration">
<exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified"/>
<exclude name="Squiz.Arrays.ArrayDeclaration.KeySpecified"/>
<exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified"/>
</rule>
<!-- Disable some error messages that we do not want. -->
<rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned">
......@@ -257,10 +286,10 @@
<rule ref="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed">
<severity>0</severity>
</rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNotAligned">
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNoNewline">
<severity>0</severity>
</rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNoNewline">
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNotAligned">
<severity>0</severity>
</rule>
<rule ref="Squiz.ControlStructures.ForEachLoopDeclaration"/>
......@@ -317,10 +346,21 @@
<rule ref="Squiz.ControlStructures.SwitchDeclaration.SpacingBeforeBreak">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
<properties>
<property name="equalsSpacing" value="1"/>
</properties>
</rule>
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing.NoSpaceBeforeArg">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration"/>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.ContentAfterBrace">
<severity>0</severity>
</rule>
......@@ -331,17 +371,6 @@
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.Indent">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
<properties>
<property name="equalsSpacing" value="1"/>
</properties>
</rule>
<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing.NoSpaceBeforeArg">
<severity>0</severity>
</rule>
<rule ref="Squiz.PHP.LowercasePHPFunctions"/>
<rule ref="Squiz.PHP.NonExecutableCode"/>
<rule ref="Squiz.Strings.ConcatenationSpacing">
......@@ -368,4 +397,4 @@
<!-- Zend sniffs -->
<rule ref="Zend.Files.ClosingTag"/>
</ruleset>
\ No newline at end of file
</ruleset>
<?xml version="1.0"?>
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PMD Ruleset for Drupal" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
A PMD Ruleset for Drupal coding standards.
</description>
<!--
Include each rule explicitly so we know what we have.
@see https://github.com/phpmd/phpmd/blob/master/src/main/resources/rulesets/
-->
<!-- Clean Code -->
<!--
These don't align with Drupal standards, so they are excluded.
@todo Static calls are hard to test and extend, is there a way to whitelist the ones that are OK?
<rule ref="rulesets/cleancode.xml/BooleanArgumentFlag"/>
<rule ref="rulesets/cleancode.xml/ElseExpression"/>
<rule ref="rulesets/cleancode.xml/StaticAccess"/>
-->
<!-- Code Size -->
<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>
<rule ref="rulesets/codesize.xml/NPathComplexity"/>
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>
<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>
<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>
<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>
<rule ref="rulesets/codesize.xml/TooManyFields"/>
<!-- Controversial -->
<rule ref="rulesets/controversial.xml/Superglobals"/>
<!--
These checks do not need to be included since PHPCS will check for style.
<rule ref="rulesets/controversial.xml/CamelCaseClassName"/>
<rule ref="rulesets/controversial.xml/CamelCasePropertyName"/>
<rule ref="rulesets/controversial.xml/CamelCaseMethodName"/>
<rule ref="rulesets/controversial.xml/CamelCaseParameterName"/>
<rule ref="rulesets/controversial.xml/CamelCaseVariableName"/>
-->
<!-- Design -->
<rule ref="rulesets/design.xml/ExitExpression"/>
<rule ref="rulesets/design.xml/EvalExpression"/>
<rule ref="rulesets/design.xml/GotoStatement"/>
<rule ref="rulesets/design.xml/NumberOfChildren"/>
<rule ref="rulesets/design.xml/DepthOfInheritance"/>
<rule ref="rulesets/design.xml/CouplingBetweenObjects"/>
<rule ref="rulesets/design.xml/DevelopmentCodeFragment"/>
<!-- Naming -->
<rule ref="rulesets/naming.xml/ShortVariable">
<properties>
<!-- Allow $id and $op as a variable name. -->
<property name="exceptions" description="Comma-separated list of exceptions" value="id,op"/>
</properties>
</rule>
<rule ref="rulesets/naming.xml/LongVariable">
<properties>
<!-- Bump variable length to a more reasonable number. -->
<property name="maximum" description="The variable length reporting threshold" value="35"/>
</properties>
</rule>
<rule ref="rulesets/naming.xml/ShortMethodName"/>
<rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass"/>
<rule ref="rulesets/naming.xml/ConstantNamingConventions"/>
<rule ref="rulesets/naming.xml/BooleanGetMethodName"/>
<!-- Unused Code -->
<rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
<!-- <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/> -->
<rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
<!--
Hooks often have unused parameters, so ignore this warning.
@todo is there a way to allow unused parameters in hooks but not elsewhere?
<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>
-->
</ruleset>
\ No newline at end of file
# ==============================================================================
# Default common config for Phpqa.
#
# For more options see:
# https://github.com/EdgedesignCZ/phpqa/blob/master/.phpqa.yml
# ==============================================================================
phpqa:
analyzedDirs: ./
buildDir: ./tests/code-quality
ignoredDirs: ".gitlab-ci,.git,.idea,bin,docroot,node_modules,private,.tests/assets,vendor,web"
ignoredFiles: ""
report: true
# verbose: true
# execution: no-parallel
tools:
- phpmetrics
- phploc
- phpcs
- phpmd
- pdepend
- phpcpd
- phpstan
- security-checker
extensions:
- php
- inc
- module
- install
- test
- profile
- theme
- info
- txt
- md
phpcs:
standard: Drupal
ignoreWarnings: true
# https://github.com/squizlabs/PHP_CodeSniffer/wiki/Reporting
reports:
cli:
- full
file:
checkstyle: checkstyle.xml
pdepend:
# coverageReport: build/coverage-clover.xml
phpmd:
standard: ./.phpmd.xml
phpstan:
level: 3
# https://github.com/phpstan/phpstan#configuration
standard: phpstan.neon
phpcpd:
minLines: 5
minTokens: 70
phpmetrics:
config: null
git: false
node_modules
*.yml
{
"printWidth": 80,
"semi": true,
"singleQuote": true,
"trailingComma": "all"
}
node_modules/**/*.css
vendor/**/*.css
**/*.min.css"
/css/variables.css
/css/mixins/
scss/*
images/*
fonts/*
js/*
src/*
tests/*
scripts/*
config/**/*.yml
*.yml
.*
*.png
*.svg
*.ico
*.json
*.make
package
{
"extends": "stylelint-config-standard",
"plugins": [
"stylelint-no-browser-hacks/lib",
"stylelint-order"
],
"rules": {
"alpha-value-notation": "number",
"at-rule-empty-line-before": null,
"color-function-notation": "legacy",
"comment-empty-line-before": null,
"function-linear-gradient-no-nonstandard-direction": null,
"custom-property-pattern": "^[a-z][-_a-z0-9IE]*$",
"declaration-block-no-redundant-longhand-properties": null,
"function-url-quotes": null,
"function-whitespace-after": null,
"hue-degree-notation": "number",
"import-notation": "string",
"no-descending-specificity": null,
"no-duplicate-selectors": null,
"no-unknown-animations": true,
"max-line-length": null,
"media-feature-name-no-unknown": [true, {
"ignoreMediaFeatureNames": [
"prefers-reduced-motion",
"min--moz-device-pixel-ratio"
"prefers-reduced-motion"
]
}],
"number-leading-zero": "always",
"media-feature-name-no-vendor-prefix": null,
"media-feature-range-notation": "prefix",
"number-max-precision": 5,
"order/order": [
"custom-properties",
"dollar-variables",
......@@ -47,8 +55,6 @@
"overflow",
"overflow-x",
"overflow-y",
"-ms-overflow-x",
"-ms-overflow-y",
"-webkit-overflow-scrolling",
"clip",
"zoom",
......@@ -63,21 +69,16 @@
"flex-order",
"flex-pack",
"-ms-grid",
"grid",
"grid-area",
"grid-template",
"grid-template-areas",
"-ms-grid-rows",
"grid-template-rows",
"-ms-grid-columns",
"grid-template-columns",
"grid-row",
"-ms-grid-row",
"grid-row-start",
"grid-row-end",
"grid-column",
"-ms-grid-column",
"grid-column-start",
"grid-column-end",
"grid-auto-rows",
......@@ -86,8 +87,6 @@
"grid-gap",
"grid-row-gap",
"grid-column-gap",
"-ms-grid-row-align",
"-ms-grid-column-align",
"place-content",
"place-items",
......@@ -114,42 +113,40 @@
"margin-right",
"margin-bottom",
"margin-left",
"margin-block-start",
"margin-block-end",
"margin-inline-start",
"margin-inline-end",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"padding-block-start",
"padding-block-end",
"padding-inline-start",
"padding-inline-end",
"table-layout",
"-webkit-columns",
"-moz-columns",
"columns",
"-webkit-column-span",
"-moz-column-span",
"column-span",
"-webkit-column-width",
"-moz-column-width",
"column-width",
"-webkit-column-count",
"-moz-column-count",
"column-count",
"-webkit-column-fill",
"-moz-column-fill",
"column-fill",
"-webkit-column-gap",
"-moz-column-gap",
"column-gap",
"-webkit-column-rule",
"-moz-column-rule",
"column-rule",
"-webkit-column-rule-width",
"-moz-column-rule-width",
"column-rule-width",
"-webkit-column-rule-style",
"-moz-column-rule-style",
"column-rule-style",
"-webkit-column-rule-color",
"-moz-column-rule-color",
"column-rule-color",
"empty-cells",
"caption-side",
......@@ -168,8 +165,6 @@
"resize",
"cursor",
"-webkit-user-select",
"-moz-user-select",
"-ms-user-select",
"user-select",
"nav-index",
"nav-up",
......@@ -177,85 +172,53 @@
"nav-down",
"nav-left",
"-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition",
"transition",
"-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay",
"transition-delay",
"-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function",
"transition-timing-function",
"-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration",
"transition-duration",
"-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property",
"transition-property",
"-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform",
"transform",
"-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin",
"transform-origin",
"$keyframes",
"-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation",
"animation",
"-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name",
"animation-name",
"-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration",
"animation-duration",
"-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state",
"animation-play-state",
"-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function",
"animation-timing-function",
"-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay",
"animation-delay",
"-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count",
"animation-iteration-count",
"-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction",
"animation-direction",
"text-align",
"-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last",
"vertical-align",
"white-space",
......@@ -265,28 +228,21 @@
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"-ms-text-justify",
"text-justify",
"text-transform",
"letter-spacing",
"word-spacing",
"-ms-writing-mode",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"-ms-text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"-ms-word-wrap",
"word-wrap",
"word-break",
"-ms-word-break",
"-moz-tab-size",
"-o-tab-size",
"tab-size",
"-webkit-hyphens",
"-moz-hyphens",
"hyphens",
"pointer-events",
"direction",
......@@ -297,12 +253,8 @@
"object-position",
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
"-webkit-filter",
"-ms-filter",
"filter",
"-ms-interpolation-mode",
"color",
"border",
"border-collapse",
......@@ -325,43 +277,48 @@
"border-left-width",
"border-left-style",
"border-left-color",
"border-block-start",
"border-block-start-width",
"border-block-start-style",
"border-block-start-color",
"border-inline-end",
"border-inline-end-width",
"border-inline-end-style",
"border-inline-end-color",
"border-block-end",
"border-block-end-width",
"border-block-end-style",
"border-block-end-color",
"border-inline-start",
"border-inline-start-width",
"border-inline-start-style",
"border-inline-start-color",
"-webkit-border-radius",
"-moz-border-radius",
"border-radius",
"-webkit-border-top-left-radius",
"-moz-border-radius-topleft",
"border-top-left-radius",
"-webkit-border-top-right-radius",
"-moz-border-radius-topright",
"border-top-right-radius",
"-webkit-border-bottom-right-radius",
"-moz-border-radius-bottomright",
"border-bottom-right-radius",
"-webkit-border-bottom-left-radius",
"-moz-border-radius-bottomleft",
"border-bottom-left-radius",
"-webkit-border-image",
"-moz-border-image",
"-o-border-image",
"border-image",
"-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source",
"border-image-source",
"-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice",
"border-image-slice",
"-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width",
"border-image-width",
"-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset",
"border-image-outset",
"-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat",
"border-image-repeat",
"outline",
......@@ -377,23 +334,16 @@
"background-attachment",
"background-position",
"background-position-x",
"-ms-background-position-x",
"background-position-y",
"-ms-background-position-y",
"-webkit-background-clip",
"-moz-background-clip",
"background-clip",
"background-origin",
"-webkit-background-size",
"-moz-background-size",
"-o-background-size",
"background-size",
"box-decoration-break",
"-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow",
"filter:progid:DXImageTransform.Microsoft.gradient",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
"text-shadow",
"$font-face",
......@@ -421,27 +371,22 @@
"font-smooth",
"line-height"
],
"plugin/no-browser-hacks": [true, {
"browsers": [
"ie >= 9",
"edge >= 13",
"firefox >= 5",
"opera >= 12",
"safari >= 5",
"chrome >= 56"
]
}],
"property-no-unknown": null,
"property-no-vendor-prefix": null,
"rule-empty-line-before": null,
"selector-pseudo-element-colon-notation": null,
"selector-attribute-quotes": null,
"selector-class-pattern": null,
"selector-id-pattern": "^[a-z][-_a-z0-9]*$",
"selector-no-vendor-prefix": null,
"shorthand-property-no-redundant-values": null,
"string-quotes": "double",
"unit-allowed-list": ["deg", "em", "ex", "ms", "rem", "%", "s", "px", "vw", "vh"],
"font-family-no-missing-generic-family-keyword": [true, {
"ignoreFontFamilies": [
"Font Awesome 5 Brands",
"Font Awesome 5 Free"
"unit-allowed-list": ["ch", "deg", "dpcm", "em", "ex", "fr", "ms", "rem", "%", "s", "px", "vw", "vh"],
"value-keyword-case": ["lower", {
"camelCaseSvgKeywords": true,
"ignoreProperties": [
"--font-family",
"font-family"
]
}]
}],
"value-no-vendor-prefix": null
}
}
This diff is collapsed.
[![Vardot](https://circleci.com/gh/Vardot/varbase/tree/9.0.x.svg?style=shield)](https://app.circleci.com/pipelines/github/Vardot/varbase/403/workflows/867137b5-171a-4fd7-a204-94e7ac3e50a6) Varbase 9.0.3
[![Vardot](https://circleci.com/gh/Vardot/varbase/tree/10.0.x.svg?style=shield)](https://app.circleci.com/pipelines/github/Vardot/varbase/1036/workflows/b1a9527e-8ab6-4a7d-877b-ed940b80244b) [![Ceasefire Now](https://badge.techforpalestine.org/ceasefire-now)](https://techforpalestine.org/learn-more) Varbase 10.0.4
[![](https://www.drupal.org/files/styles/grid-3/public/project-images/Medium-Logo%20Color%20with%20padding.png)](https://www.drupal.org/project/varbase)
[![](https://www.drupal.org/files/project-images/varbase-medium-logo-color-with-padding.png)](https://www.drupal.org/project/varbase)
## Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready)
......@@ -17,52 +17,59 @@ in every project.
* Speeds up development.
* Offers standardized configuration and best-practices.
* Comes with a lot of needed functionalities/modules for every-day Drupal site.
* [Tested, tested, and tested.](https://travis-ci.org/Vardot/varbase/builds)
* [Tested, tested, and tested.](https://app.circleci.com/pipelines/github/Vardot/varbase)
Starting a new project? Consider Varbase for Drupal 9.
Installing Varbase 9.0.x comes with several extra automated installation
steps, to take full advantage of Varbase, other than the Drupal 9 installation
Starting a new project? Consider **Varbase** for **Drupal 10**.
Installing **Varbase `10.0.x`** comes with several extra automated installation
steps, to take full advantage of Varbase, other than the **Drupal 10** installation
instructions.
# Install with Composer
To install the most recent stable release of Varbase 9.0.x run this command:
To install the most recent stable release of **Varbase `10.0.x`** run this command:
```
composer create-project Vardot/varbase-project:~9 PROJECT_DIR_NAME --no-dev --no-interaction
composer create-project Vardot/varbase-project:~10 PROJECT_DIR_NAME --no-dev --no-interaction
```
To install the dev version of Varbase 9.0.x run this command:
To install the dev version of **Varbase `10.0.x`** run this command:
```
composer create-project vardot/varbase-project:9.0.x-dev PROJECT_DIR_NAME --stability dev --no-interaction
composer create-project vardot/varbase-project:10.0.x-dev PROJECT_DIR_NAME --stability dev --no-interaction
```
## [Create a new Vartheme sub theme for a project](https://github.com/Vardot/varbase/tree/9.0.x/scripts/README.md)
## [Automated Functional Testing](https://github.com/Vardot/varbase/blob/9.0.x/tests/README.md)
## [Create a new Vartheme sub theme for a project](https://github.com/Vardot/varbase/tree/10.0.x/scripts/README.md)
## [Varbase 9.0.x Developer Guide](https://docs.varbase.vardot.com)
## [Automated Functional Testing](https://github.com/Vardot/varbase/blob/10.0.x/tests/README.md)
## [CHANGELOG for Varbase](https://github.com/Vardot/varbase/blob/9.0.x/CHANGELOG.md)
## [Varbase 10.0.x Developer Guide](https://docs.varbase.vardot.com/v/10.0.x)
## [Varbase Gherkin features](https://github.com/Vardot/varbase/blob/9.0.x/tests/features/varbase/README.md)
## [CHANGELOG for Varbase](https://github.com/Vardot/varbase/blob/10.0.x/CHANGELOG.md)
## [Varbase Developer Guide](https://docs.varbase.vardot.com)
## [Varbase Gherkin features](https://github.com/Vardot/varbase/blob/10.0.x/tests/features/varbase/README.md)
## [CHANGELOG for Varbase](https://github.com/Vardot/varbase/blob/9.0.x/CHANGELOG.md)
## [Varbase Developer Guide](https://docs.varbase.vardot.com/v/10.0.x/developers)
## [General instructions on how to update Varbase](https://github.com/Vardot/varbase/blob/9.0.x/UPDATE.md)
## [General instructions on how to update Varbase](https://github.com/Vardot/varbase/blob/10.0.x/UPDATE.md)
## Local development with Lando
## [Local development with Lando](https://docs.varbase.vardot.com/v/10.0.x/developers/installing-varbase/installing-varbase-with-lando)
1. Install Lando locally, steps for installing can be found [here](https://docs.lando.dev/basics/installation.html).
2. Run Lando start.
2. Run `lando start`.
## Debugging using Lando
- xDebug is enabled on Lando by default for PHP debugging.
- The debugger is set to listen for the port 9003 but can be changed in .lando/.php.ini
- The debugger is set to listen for the port 9003 but can be changed in `.lando/.php.ini`
## [Local development with DDEV](https://docs.varbase.vardot.com/v/10.0.x/developers/installing-varbase/installing-varbase-with-ddev)
1. Install DDEV locally, steps for installing can be found [here](https://ddev.readthedocs.io/en/stable/).
2. Run `ddev start`.
## Remote Development Environment (IDE)
> - [Gitpod](https://gitpod.io/#https://github.com/vardot/varbase-project)
> - [Tugboat.qa](https://www.tugboatqa.com)
Join Our Slack Team for Feedback and Support
http://slack.varbase.vardot.com/
......
......@@ -58,13 +58,13 @@ At the end of the update process, two log files are useful to troubleshoot
2. Edit your _composer.json_ file to be ready for updates. You have two choices.
Edit your _composer.json_ to include
all the new updates made in
[varbase-project](https://github.com/Vardot/varbase-project/blob/9.0.x/composer.json).
[varbase-project](https://github.com/Vardot/varbase-project/blob/10.0.x/composer.json).
This includes the new components required and its versions
_"require"_, _"repositories"_, _"extra"_, and any other important config.
You can use a diff tool such as [Meld](http://meldmerge.org/) or
[DiffMerge](https://sourcegear.com/diffmerge/) to help you diff between
your old _composer.json_ and the new one from
[varbase-project](https://github.com/Vardot/varbase-project/blob/9.0.x/composer.json).
[varbase-project](https://github.com/Vardot/varbase-project/blob/10.0.x/composer.json).
3. Back up your code and database
4. Execute Composer update to download updates to modules and libraries.
`composer update`
......
default:
autoload:
'': "%paths.base%/tests/features/bootstrap"
suites:
default:
paths:
- "%paths.base%/tests/features"
contexts:
- VarbaseContext:
parameters:
varbase_users:
webmaster: { email: 'webmaster@vardot.com', password: 'dD.123123ddd' }
test_authenticated: { email: 'authenticated.test@vardot.com', password: 'dD.123123ddd' }
test_editor: { email: 'editor.test@vardot.com', password: 'dD.123123ddd' }
test_content_admin: { email: 'content.admin.test@vardot.com', password: 'dD.123123ddd' }
test_seo_admin: { email: 'seo.admin.test@vardot.com', password: 'dD.123123ddd' }
test_site_admin: { email: 'site.admin.test@vardot.com', password: 'dD.123123ddd' }
test_super_admin: { email: 'super.admin.test@vardot.com', password: 'dD.123123ddd' }
- VarbaseSelectorsContext:
parameters:
selectors:
## Add all css selectors which you will use in most features.
css:
breadcrumb: ".breadcrumb"
breadcrumb first link: ".breadcrumb li:nth-child(1) a"
image button in rich text editor body field: "#cke_edit-body-und-0-value .cke_button__image"
## Add all XPath selectors which you will use in most features.
xpath:
page title: '//h1[contains(@class, "page-header")'
textarea for body field: '//*[@id="edit-body-und-0-value"]'
rich text editor for body field: '//iframe[@title="Rich Text Editor, edit-body-und-0-value"]'
HTML editor for body field: '//*[@id="edit-body-und-0-value-aced"]'
## You can add list of selectorrs which you will use in most features.
# But by loading them from files.
files_path: "%paths.base%/tests/selectors/"
files:
- "varbase/front-end-selectors.yml"
- "varbase/back-end-selectors.yml"
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\DrushContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MarkupContext
formatters:
pretty:
html:
output_path: "%paths.base%/tests/reports/"
extensions:
Drupal\MinkExtension:
ajax_timeout: 60
files_path: "%paths.base%/tests/assets/"
goutte: ~
selenium2:
wd_host: 127.0.0.1:4445/wd/hub
capabilities:
# browser: 'firefox'
browser: 'chrome'
# browser: 'phantomjs'
nativeEvents: true
marionette: true
browserName: chrome
version: "*"
extra_capabilities:
chromeOptions:
args:
- "--disable-gpu"
- "--window-size=1920,1080"
w3c: false
chrome:
switches:
- "--headless"
- "no-sandbox"
- "--no-sandbox"
- "--disable-web-security"
- "--DNS-prefetch-disable"
- "--whitelisted-ips"
- "--start-maximized"
- "--disable-translate"
- "--ignore-certificate-errors"
- "--test-type"
- "--disable-dev-shm-usage"
- "--disable-extensions"
- "incognito"
- "enable-precise-memory-info"
- "ignore-certificate-errors"
- "disable-infobars"
- "js-flags=--expose-gc"
- "--profile-directory=Default"
- "--user-data-dir=~/.config/google-chrome"
base_url: 'http://varbase.test'
# browser_name: 'firefox'
browser_name: 'chrome'
# browser_name: 'phantomjs'
javascript_session: selenium2
Drupal\DrupalExtension:
blackbox: ~
api_driver: 'drupal'
region_map:
content: ".main-container"
footer: "#footer"
left header: "#header-left"
right header: "#header-right"
right sidebar: "#aside-region"
field body: "#edit-body-wrapper"
selectors:
message_selector: '.messages'
error_message_selector: '.messages.error'
success_message_selector: '.messages.status'
warning_message_selector: '.messages.warning'
emuse\BehatHTMLFormatter\BehatHTMLFormatterExtension:
name: html
renderer: Twig,Behat2
file_name: index
print_args: false
print_outp: false
loop_break: false
imports:
- behat.varbase.yml
default:
autoload:
'': "%paths.base%/tests/features/bootstrap"
suites:
default:
paths:
- "%paths.base%/tests/features"
contexts:
- VarbaseContext:
parameters:
varbase_users:
webmaster: { email: 'webmaster@vardot.com', password: 'dD.123123ddd' }
Normal user: { email: 'test.authenticated@vardot.com', password: 'dD.123123ddd' }
Editor: { email: 'test.editor@vardot.com', password: 'dD.123123ddd' }
Content admin: { email: 'test.content_admin@vardot.com', password: 'dD.123123ddd' }
SEO admin: { email: 'test.seo_admin@vardot.com', password: 'dD.123123ddd' }
Site admin: { email: 'test.site_admin@vardot.com', password: 'dD.123123ddd' }
Super admin: { email: 'test.super_admin@vardot.com', password: 'dD.123123ddd' }
- Drupal\DrupalExtension\Context\ConfigContext
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\DrushContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MarkupContext
- Drupal\DrupalExtension\Context\RandomContext
formatters:
pretty:
verbose: true
paths: false
snippets: false
html:
verbose: true
paths: false
snippets: false
output_path: "%paths.base%/tests/reports/"
extensions:
Drupal\MinkExtension:
base_url: http://varbase.test
browser_name: chrome
default_session: selenium2
javascript_session: selenium2
ajax_timeout: 120
files_path: "%paths.base%/tests/assets/"
selenium2:
browser: chrome
wd_host: 'http://127.0.0.1:4445/wd/hub'
capabilities:
browser: chrome
browserName: chrome
extra_capabilities:
chromeOptions:
w3c: true
args:
- "--headless"
- "--start-maximized"
- "--disable-gpu"
- "--window-size=1600,1200"
- "--no-sandbox"
- "--disable-dev-shm-usage"
- "--disable-setuid-sandbox"
- "--disable-web-security"
- "--DNS-prefetch-disable"
- "--disable-translate"
- "--ignore-certificate-errors"
- "--test-type"
- "--disable-extensions"
- "--incognito"
- "--disable-infobars"
- "--remote-debugging-port=9222"
- "--allowed-ips=*"
- "--whitelisted-ips=*"
- "--allow-insecure-localhost"
Drupal\DrupalExtension:
blackbox: ~
api_driver: 'drupal'
drush:
alias: 'local'
drupal:
drupal_root: '/var/www/html/test/varbase/docroot'
region_map:
content: ".main-container"
footer: "#footer"
left header: "#header-left"
right header: "#header-right"
right sidebar: "#aside-region"
field body: "#edit-body-wrapper"
selectors:
message_selector: '.messages'
error_message_selector: '.messages.error'
success_message_selector: '.messages.status'
warning_message_selector: '.messages.warning'
webship\BehatHTMLFormatter\BehatHTMLFormatterExtension:
name: html
renderer: Twig,Behat2
file_name: index
print_args: false
print_outp: false
loop_break: false
......@@ -13,7 +13,7 @@
<property name="db.database" value="test_varbase9000xxc" />
<property name="db.url" value="${db.type}://${db.user}:${db.password}@${db.host}/${db.database}" />
<property name="docroot" value="docroot" />
<property name="profile" value="${docroot}/profiles/varbase" />
<property name="profile" value="${docroot}/profiles/contrib/varbase" />
<property name="site" value="${docroot}/sites/default" />
<property name="version" value="HEAD" />
......@@ -51,7 +51,7 @@
<exec command="${npm} run install-libraries" passthru="true" />
<!-- rsync the profile, excluding developer flotsam. -->
<filesync destinationDir="${profile}" rsyncPath="${rsync}" sourceDir="." verbose="false" exclude=".idea,bin,build.xml,.git,.gitignore,${docroot},karma.conf.js,*.make,node_modules,.travis.yml,vendor" />
<filesync destinationDir="${profile}" rsyncPath="${rsync}" sourceDir="." verbose="false" exclude=".idea,bin,build.xml,.git,.gitignore,${docroot},karma.conf.js,*.make,node_modules,vendor" />
<!-- JS libraries and contrib modules were copied over by the file sync. -->
<delete dir="libraries" failonerror="true" quiet="true" />
......@@ -100,12 +100,10 @@
<!-- Install with drush site install -->
<target name="install-with-drush-site-install" depends="env">
<!-- Use passthru() when executing drush site-install so that we'll know if errors occur. -->
<exec command="${drush} site-install varbase --yes --site-name='Test Varbase9000xxc' --account-name=webmaster --account-pass=dD.123123ddd --account-mail=webmaster@vardot.com --db-url=${db.url} varbase_multilingual_configuration.enable_multilingual=true varbase_extra_components.vmi=true varbase_extra_components.varbase_heroslider_media=true varbase_extra_components.varbase_carousels=true varbase_extra_components.varbase_search=true varbase_extra_components.varbase_blog=true varbase_extra_components.varbase_auth=true varbase_development_tools.varbase_development=true" dir="${docroot}" passthru="true" />
<exec command="${drush} en varbase_styleguide --yes" dir="${docroot}" />
<exec command="${drush} site-install varbase --yes --site-name='Test Varbase9000xxc' --account-name=webmaster --account-pass=dD.123123ddd --account-mail=webmaster@vardot.com --db-url=${db.url} varbase_multilingual_configuration.enable_multilingual=true varbase_extra_components.vmi=true varbase_extra_components.varbase_heroslider=true varbase_extra_components.varbase_carousels=true varbase_extra_components.varbase_search=true varbase_extra_components.varbase_blog=true varbase_extra_components.varbase_auth=true varbase_development_tools.varbase_development=true" dir="${docroot}" passthru="true" />
<exec command="${drush} en vbp_text_and_image --yes" dir="${docroot}" />
<exec command="${drush} en varbase_media_instagram --yes" dir="${docroot}" />
<exec command="${drush} en varbase_media_twitter --yes" dir="${docroot}" />
<exec command="${drush} en social_auth_google --yes" dir="${docroot}" />
<exec command="${drush} en social_auth_facebook --yes" dir="${docroot}" />
<exec command="${drush} en social_auth_twitter --yes" dir="${docroot}" />
<exec command="${drush} en social_auth_linkedin --yes" dir="${docroot}" />
......
{
"name": "vardot/varbase",
"description": "Varbase: The Ultimate Drupal 9 CMS Starter Kit (Bootstrap Ready) | by Vardot",
"description": "Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready) | by Vardot",
"type": "drupal-profile",
"license": "GPL-2.0-or-later",
"minimum-stability": "dev",
......@@ -26,56 +26,84 @@
"url": "https://asset-packagist.org"
}
},
"replace": {
"drupal/statistics": "*",
"jquery/fancytree": "*",
"fancytree/fancytree": "*",
"npm-asset/ckeditor5": "*",
"npm-asset/ckeditor5-dll-inline": "*",
"npm-asset/ckeditor5-core": "*",
"npm-asset/ckeditor5-engine":"*",
"npm-asset/ckeditor5-ui": "*",
"npm-asset/ckeditor5-utils": "*",
"npm-asset/ckeditor5-widget": "*",
"npm-asset/ckeditor--ckeditor5": "*",
"npm-asset/ckeditor--ckeditor5-dll-inline": "*",
"npm-asset/ckeditor--ckeditor5-core": "*",
"npm-asset/ckeditor--ckeditor5-engine":"*",
"npm-asset/ckeditor--ckeditor5-ui": "*",
"npm-asset/ckeditor--ckeditor5-utils": "*",
"npm-asset/ckeditor--ckeditor5-widget": "*",
"npm-asset/lodash-es": "*",
"npm-asset/lodash.debounce": "*",
"npm-asset/lodash.throttle": "*",
"npm-asset/nouislider": "*",
"npm-asset/rtseo.js": "*",
"bower-asset/jquery": "*",
"bower-asset/jquery-ui": "*"
},
"require": {
"composer/installers": "~1.0 || ~2.0",
"oomphinc/composer-installers-extender": "~1.0 || ~2.0",
"cweagans/composer-patches": "~1.0",
"drupal/core-composer-scaffold": "^9",
"drupal/core": "~9.0",
"drupal/varbase_core": "9.0.x-dev",
"drupal/varbase_api": "9.0.x-dev",
"drupal/varbase_media": "9.0.x-dev",
"drupal/varbase_editor": "9.0.x-dev",
"drupal/varbase_landing": "9.0.x-dev",
"drupal/varbase_layout_builder": "10.0.x-dev",
"drupal/varbase_bootstrap_paragraphs": "9.0.x-dev",
"drupal/varbase_heroslider_media": "9.0.x-dev",
"drupal/varbase_carousels": "9.0.x-dev",
"drupal/varbase_blog": "9.0.x-dev",
"drupal/varbase_search": "9.0.x-dev",
"drupal/varbase_seo": "9.0.x-dev",
"drupal/varbase_auth": "9.0.x-dev",
"drupal/varbase_total_control": "9.0.x-dev",
"drupal/varbase_styleguide": "9.0.x-dev",
"drupal/varbase_email": "9.0.x-dev",
"drupal/varbase_workflow": "2.0.x-dev",
"drupal/vartheme_bs4": "9.0.x-dev",
"drupal/vartheme_claro": "3.0.x-dev",
"vardot/entity-definition-update-manager": "~1.0",
"bower-asset/objectfitpolyfill": "~2.0",
"bower-asset/chartjs": "2.7.*",
"bower-asset/c3": "0.7.*",
"bower-asset/d3": "~5.0",
"drupal/varbase_core": "10.0.x-dev",
"drupal/varbase_components": "2.0.x-dev",
"drupal/varbase_api": "10.0.x-dev",
"drupal/varbase_ai": "1.0.x-dev",
"drupal/varbase_media": "10.0.x-dev",
"drupal/varbase_editor": "10.0.x-dev",
"drupal/varbase_landing": "10.0.x-dev",
"drupal/varbase_layout_builder": "10.1.x-dev",
"drupal/varbase_bootstrap_paragraphs": "10.0.x-dev",
"drupal/varbase_heroslider": "1.0.x-dev",
"drupal/varbase_heroslider_media": "10.0.x-dev",
"drupal/varbase_carousels": "10.0.x-dev",
"drupal/varbase_blog": "10.0.x-dev",
"drupal/varbase_search": "10.0.x-dev",
"drupal/varbase_seo": "10.0.x-dev",
"drupal/varbase_auth": "10.0.x-dev",
"drupal/varbase_dashboards": "1.0.x-dev",
"drupal/varbase_email": "10.0.x-dev",
"drupal/varbase_workflow": "3.0.x-dev",
"drupal/varbase_demo": "1.0.x-dev",
"drupal/vartheme_bs5": "3.0.x-dev",
"drupal/vartheme_claro": "4.0.x-dev",
"bower-asset/jqueryui-touch-punch": "dev-master",
"npm-asset/masonry-layout": "~4.0",
"npm-asset/imagesloaded": "~4.0",
"npm-asset/dropzone": "~5.0",
"npm-asset/blazy": "~1.0",
"npm-asset/slick-carousel": "~1.0",
"npm-asset/ace-builds": "~1.0",
"npm-asset/swagger-ui-dist": "~3.0"
"npm-asset/dropzone": "~5",
"npm-asset/blazy": "~1",
"npm-asset/slick-carousel": "~1",
"npm-asset/ace-builds": "~1",
"npm-asset/swagger-ui-dist": "~3",
"npm-asset/northernco--ckeditor5-anchor-drupal": "^0.5.0",
"npm-asset/ckeditor--ckeditor5-media-embed": "*",
"npm-asset/jquery.fancytree": "~2"
},
"require-dev": {
"drupal/core-dev": "~9.0",
"drush/drush": "~10.0",
"drupal/drupal-extension": "~4.0",
"emuse/behat-html-formatter": "^0.2.0"
"drupal/core-dev": "~10 || ~11",
"drush/drush": "~12 || ~13"
},
"config": {
"bin-dir": "bin/",
"secure-http": false,
"preferred-install": {
"drupal/core": "dist"
},
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
"oomphinc/composer-installers-extender": true,
"drupal/core-composer-scaffold": true,
"drupal/core-project-message": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"phpstan/extension-installer": true,
"php-http/discovery": true
}
},
"autoload": {
......@@ -94,32 +122,31 @@
"Varbase\\composer\\ScriptHandler::createRequiredFiles",
"Varbase\\composer\\ScriptHandler::removeGitDirectories"
],
"post-drupal-scaffold-cmd": ["Varbase\\composer\\ScriptHandler::postDrupalScaffoldProcedure"],
"create-new-vartheme": "scripts/create-new-vartheme.sh"
"post-drupal-scaffold-cmd": ["Varbase\\composer\\ScriptHandler::postDrupalScaffoldProcedure"]
},
"extra": {
"drupal-scaffold": {
"allowed-packages": [
"drupal/core",
"vardot/varbase"
],
"gitignore": true,
"locations": {
"web-root": "docroot/"
"web-root": "./docroot"
}
},
"branch-alias": {
"dev-9.0.x": "9.0.x-dev",
"dev-10.0.x": "10.0.x-dev"
},
"installer-types": [
"bower-asset",
"npm-asset"
],
"installer-paths": {
"docroot/core": ["type:drupal-core"],
"docroot/profiles/{$name}": ["type:drupal-profile"],
"docroot/profiles/contrib/{$name}": ["type:drupal-profile"],
"docroot/modules/contrib/{$name}": ["type:drupal-module"],
"docroot/themes/contrib/{$name}": ["type:drupal-theme"],
"docroot/libraries/slick": ["npm-asset/slick-carousel"],
"docroot/libraries/ace": ["npm-asset/ace-builds"],
"docroot/libraries/jquery-ui-touch-punch": ["bower-asset/jqueryui-touch-punch"],
"docroot/libraries/swagger-ui/dist": ["npm-asset/swagger-ui-dist"],
"docroot/libraries/ckeditor5-anchor-drupal": ["npm-asset/northernco--ckeditor5-anchor-drupal"],
"docroot/libraries/ckeditor5/plugins/media-embed": ["npm-asset/ckeditor--ckeditor5-media-embed"],
"docroot/libraries/fancytree": ["npm-asset/jquery.fancytree"],
"docroot/libraries/{$name}": [
"type:drupal-library",
"type:bower-asset",
......@@ -129,20 +156,22 @@
"docroot/themes/custom/{$name}": ["type:drupal-custom-theme"],
"drush/contrib/{$name}": ["type:drupal-drush"]
},
"installer-types": [
"bower-asset",
"npm-asset"
],
"drupal-libraries": {
"library-directory": "docroot/libraries",
"libraries": [
{"name": "objectfitpolyfill", "package": "bower-asset/objectfitpolyfill"},
{"name": "chartjs", "package": "bower-asset/chartjs"},
{"name": "c3","package": "bower-asset/c3"},
{"name": "d3", "package": "bower-asset/d3"},
{"name": "dropzone","package": "npm-asset/dropzone"},
{"name": "blazy", "package": "npm-asset/blazy"},
{"name": "slick", "package": "npm-asset/slick-carousel"},
{"name": "ace", "package": "npm-asset/ace-builds"},
{"name": "jquery-ui-touch-punch", "package": "bower-asset/jqueryui-touch-punch"},
{"name": "imagesloaded", "package": "npm-asset/imagesloaded"},
{"name": "swagger-ui", "package": "npm-asset/swagger-ui-dist"}
{"name": "swagger-ui", "package": "npm-asset/swagger-ui-dist"},
{"name": "ckeditor5-anchor-drupal", "package": "npm-asset/northernco--ckeditor5-anchor-drupal"},
{"name": "ckeditor5-media-embed", "package": "npm-asset/ckeditor--ckeditor5-media-embed"},
{"name": "fancytree", "package": "npm-asset/jquery.fancytree"}
]
},
"enable-patching": true,
......