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 version: 2.1
defaults: &defaults defaults: &defaults
docker: docker:
- image: cimg/base:stable-20.04 - image: cimg/base:2022.09
auth: auth:
username: mydockerhub-user username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference password: $DOCKERHUB_PASSWORD
- image: circleci/mysql:8.0.23 - image: cimg/mysql:8.0
auth: auth:
username: mydockerhub-user username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference password: $DOCKERHUB_PASSWORD
entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password'] entrypoint:
[
"docker-entrypoint.sh",
"--default-authentication-plugin=mysql_native_password",
]
environment: environment:
MYSQL_ROOT_PASSWORD: rootpw MYSQL_ROOT_PASSWORD: rootpw
MYSQL_ROOT_HOST: "%" MYSQL_ROOT_HOST: "%"
MYSQL_DATABASE: test_varbase MYSQL_DATABASE: test_varbase
MYSQL_USER: user MYSQL_USER: user
MYSQL_PASSWORD: passw0rd MYSQL_PASSWORD: passw0rd
resource_class: large
commands: commands:
varbase-build: varbase-build:
steps: steps:
- checkout - checkout
## Usefull must have utils.
- run: - run:
name: Usefull must have utils name: Usefull must have utils
command: | command: |
sudo apt -qq update sudo apt -qq update
sudo apt -qqy install docker-buildx-plugin
sudo apt -qqy upgrade 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 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
## Setup Apache2 and PHP7.4 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: - run:
name: Setup Apache2 and PHP7.4 name: Setup Apache2 and PHP8.3
command: | command: |
sudo add-apt-repository ppa:ondrej/php -y sudo add-apt-repository ppa:ondrej/php -y
sudo apt update sudo apt update
sudo apt upgrade 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 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 php7.4 sudo a2enmod php8.3
sudo a2enmod headers rewrite env mime expires ssl sudo a2enmod headers rewrite env mime expires ssl
sudo update-alternatives --set php /usr/bin/php7.4 sudo update-alternatives --set php /usr/bin/php8.3
echo -e "memory_limit = -1" | sudo tee /etc/php/7.4/apache2/php.ini > /dev/null 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/7.4/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/7.4/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/7.4/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/7.4/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/7.4/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/7.4/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/7.4/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 sudo service apache2 restart
## Waiting for MySQL to be ready.
- run: - run:
name: Waiting for MySQL to be ready name: Waiting for MySQL to be ready
command: | command: |
...@@ -60,61 +68,60 @@ commands: ...@@ -60,61 +68,60 @@ commands:
sleep 1 sleep 1
done done
echo Failed waiting for MySQL && exit 1 echo Failed waiting for MySQL && exit 1
## Install composer ~2.1
- run: - run:
name: Install composer ~2.1 name: Start D-Bus
command: sudo service dbus start
- run:
name: Configure and run the virtual display.
command: | command: |
sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/ --filename=composer --2; export DISPLAY=:99
composer config -g github-oauth.github.com $GITHUB_TOKEN Xvfb -ac :99 -screen 0 1600x1200x24 > /dev/null 2>&1
background: true
## Install node js, npm, yarn, and gulp
- run: - run:
name: Install node js name: Install/Update Google Chrome browser
command: | command: |
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash - sudo apt install libu2f-udev
sudo apt install -y nodejs 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
sudo npm install -g yarn wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo npm install gulp-cli -g ; sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo npm install gulp -D ; sudo apt-get install -f
rm google-chrome-stable_current_amd64.deb
## Install Java. 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: - run:
name: Install Java name: Install Java
command: | command: |
sudo apt update sudo apt update
sudo apt install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless sudo apt install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless
## Install/Update Google Chrome browser.
- run: - run:
name: Install/Update Google Chrome browser name: Run Selenium Standalone server
command: | command: |
sudo apt-get install libappindicator1 fonts-liberation libgbm1 libgtk-3-0 xdg-utils export DISPLAY=:99
export CHROME_BIN=/usr/bin/google-chrome 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
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb cd /home/circleci/
sudo dpkg -i google-chrome-stable_current_amd64.deb java -jar selenium-server-4.4.0.jar standalone --port 4445
rm google-chrome-stable_current_amd64.deb background: true
## Install/Update Chrome Driver.
- run: - run:
name: Install/Update Chrome Driver name: Install composer ~2
command: | command: |
CHROME_DRIVER_VERSION=$(wget -qO- chromedriver.storage.googleapis.com/LATEST_RELEASE); sudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/ --filename=composer --2;
echo $CHROME_DRIVER_VERSION; composer config -g github-oauth.github.com $GITHUB_TOKEN
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.
- run: - run:
name: List tools versions name: List tools versions
command: | command: |
php --version php --version
node --version
yarn --version
gulp --version
java -version java -version
google-chrome --version google-chrome --version
chromedriver --version chromedriver --version
...@@ -123,8 +130,6 @@ commands: ...@@ -123,8 +130,6 @@ commands:
php -m php -m
php -i | grep "Loaded Configuration File" php -i | grep "Loaded Configuration File"
php --ini php --ini
## Build Varbase with the composer.
- run: - run:
name: Build Varbase with the composer name: Build Varbase with the composer
command: | command: |
...@@ -138,10 +143,16 @@ commands: ...@@ -138,10 +143,16 @@ commands:
cd /var/www/html/test/ cd /var/www/html/test/
sudo chmod 775 . sudo chmod 775 .
sudo chown www-data:circleci . sudo chown www-data:circleci .
composer create-project vardot/varbase:9.0.x varbase --stability dev --no-interaction -vvv git clone --branch '10.0.x' https://github.com/vardot/varbase-project.git /var/www/html/test/varbase
cp -r /home/circleci/project /var/www/html/test/varbase/docroot/profiles/varbase
cd /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 chmod 775 -R .
sudo chown www-data:circleci -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 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: ...@@ -161,8 +172,6 @@ commands:
cd /var/www/html/test/varbase cd /var/www/html/test/varbase
sudo chmod 775 -R . sudo chmod 775 -R .
sudo chown www-data:circleci -R . sudo chown www-data:circleci -R .
## Point varbase.test at /var/www/html/test/varbase/docroot
- run: - run:
name: Point varbase.test at /var/www/html/test/varbase/docroot name: Point varbase.test at /var/www/html/test/varbase/docroot
command: | command: |
...@@ -171,99 +180,98 @@ commands: ...@@ -171,99 +180,98 @@ commands:
sudo a2ensite varbase.test sudo a2ensite varbase.test
echo 127.0.0.1 varbase.test | sudo tee -a /etc/hosts echo 127.0.0.1 varbase.test | sudo tee -a /etc/hosts
sudo service apache2 restart sudo service apache2 restart
## Install Varbase with drush.
- run: - run:
name: Install Varbase with drush name: Install Varbase with drush
command: | 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="DROP DATABASE IF EXISTS test_varbase;" -vvv
mysql -h 127.0.0.1 -uroot -prootpw --execute="CREATE DATABASE test_varbase;" -vvv mysql -h 127.0.0.1 -uroot -prootpw --execute="CREATE DATABASE test_varbase;" -vvv
cd /var/www/html/test/varbase/docroot 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 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_development --yes
../bin/drush pm-enable varbase_styleguide --yes ../bin/drush pm:enable varbase_landing --yes
../bin/drush pm-enable varbase_landing --yes ../bin/drush pm:enable varbase_content_planner --yes
../bin/drush pm-enable varbase_api --yes ../bin/drush pm:enable varbase_media_instagram --yes
../bin/drush pm-enable varbase_content_planner --yes ../bin/drush pm:enable varbase_media_twitter --yes
../bin/drush pm-enable varbase_media_instagram --yes ../bin/drush pm:enable social_auth_facebook --yes
../bin/drush pm-enable varbase_media_twitter --yes ../bin/drush pm:enable social_auth_twitter --yes
../bin/drush pm-enable social_auth_google --yes ../bin/drush pm:enable social_auth_linkedin --yes
../bin/drush pm-enable social_auth_facebook --yes ../bin/drush pm:enable varbase_update_helper --yes
../bin/drush pm-enable social_auth_twitter --yes ../bin/drush cache:rebuild
../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.
- run: - run:
name: Configure and run the virtual display. name: Add testing users.
command: Xvfb -ac :99 -screen 0 1024x768x24 > /dev/null 2>&1 command: |
background: true cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase/scripts
bash add-testing-users.sh
## Run selenium standalone server.
- run: - run:
name: Run selenium standalone server name: Import and Update local RTL language
shell: /bin/bash
command: | 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 /var/www/html/test/varbase/docroot
cd /home/circleci/ ../bin/drush locale-import ar --autocreate-language profiles/contrib/varbase/translations/ar.po
java -jar selenium-server-standalone-2.53.1.jar -port 4445 ../bin/drush locale-update --langcodes=ar
background: true ../bin/drush cr
## Automated Functional Acceptance Testing - Step 1 init tests.
- run: - run:
name: Automated Functional Acceptance Testing - Step 1 init tests name: Uninstall Antibot module to let the selenium bot work
no_output_timeout: 30m shell: /bin/bash
command: | command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase cd /var/www/html/test/varbase/docroot
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step1-init-tests/ ../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: jobs:
varbase-testing-01-website-base-requirements: varbase-testing-01-website-base-requirements:
<<: *defaults <<: *defaults
steps: steps:
- varbase-build - varbase-build
## Automated Functional Acceptance Testing group - 01 website base requirements
- run: - run:
name: Automated Functional Acceptance Testing group - 01 website base requirements name: Automated Functional Acceptance Testing group - 01 website base requirements
no_output_timeout: 30m no_output_timeout: 30m
command: | command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/01-website-base-requirements/ ../../../../bin/behat tests/features/varbase/01-website-base-requirements/
varbase-testing-02-user-management-03-admin-management: 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 <<: *defaults
steps: steps:
- varbase-build - varbase-build
## Automated Functional Acceptance Testing group - 02 user management - 03 admin management
- run: - 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 no_output_timeout: 30m
command: | command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/02-user-management/ ../../../../bin/behat tests/features/varbase/03-admin-management/
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/03-admin-management/
varbase-testing-04-content-structure: varbase-testing-04-content-structure:
<<: *defaults <<: *defaults
steps: steps:
- varbase-build - varbase-build
## Automated Functional Acceptance Testing group - 04 content structure
- run: - run:
name: Automated Functional Acceptance Testing group - 04 content structure name: Automated Functional Acceptance Testing group - 04 content structure
no_output_timeout: 30m no_output_timeout: 30m
command: | command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/04-content-structure/ ../../../../bin/behat tests/features/varbase/04-content-structure/
varbase-testing-05-content-management: varbase-testing-05-content-management:
<<: *defaults <<: *defaults
steps: steps:
- varbase-build - varbase-build
## Automated Functional Acceptance Testing group - 05 content-management
- run: - run:
name: Automated Functional Acceptance Testing group - 05 content-management name: Automated Functional Acceptance Testing group - 05 content-management
no_output_timeout: 30m no_output_timeout: 30m
command: | command: |
cd /var/www/html/test/varbase/docroot/profiles/varbase cd /var/www/html/test/varbase/docroot/profiles/contrib/varbase
../../../bin/behat --strict --no-snippets -f pretty -o std tests/features/varbase/step2-apply-tests/05-content-management/ ../../../../bin/behat tests/features/varbase/05-content-management/
workflows: workflows:
version: 2 version: 2
...@@ -272,24 +280,30 @@ workflows: ...@@ -272,24 +280,30 @@ workflows:
- varbase-testing-01-website-base-requirements: - varbase-testing-01-website-base-requirements:
filters: filters:
tags: tags:
only: /^9.*/ only: /^10.0.*/
branches:
only: /^10.0.x/
- varbase-testing-02-user-management:
filters:
tags:
only: /^10.0.*/
branches: branches:
only: /^9.0.x/ only: /^10.0.x/
- varbase-testing-02-user-management-03-admin-management: - varbase-testing-03-admin-management:
filters: filters:
tags: tags:
only: /^9.*/ only: /^10.0.*/
branches: branches:
only: /^9.0.x/ only: /^10.0.x/
- varbase-testing-04-content-structure: - varbase-testing-04-content-structure:
filters: filters:
tags: tags:
only: /^9.*/ only: /^10.0.*/
branches: branches:
only: /^9.0.x/ only: /^10.0.x/
- varbase-testing-05-content-management: - varbase-testing-05-content-management:
filters: filters:
tags: tags:
only: /^9.*/ only: /^10.0.*/
branches: 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 node_modules/**/*
**/gulpfile.js # Ignore deliberately malformed YAML files.
**/node_modules
behat.yml
behat.varbase.yml
drupalci.yml drupalci.yml
**/drupalci.yml
**/librarie
{ {
"extends": [ "extends": [
"airbnb", "airbnb-base",
"plugin:react/recommended",
"plugin:prettier/recommended", "plugin:prettier/recommended",
"plugin:yml/recommended" "plugin:yml/recommended"
], ],
"root": true, "root": true,
"env": { "env": {
"browser": true "browser": true,
"es6": true,
"node": true
}, },
"globals": { "globals": {
"Drupal": true, "Drupal": true,
"drupalSettings": true, "drupalSettings": true,
"drupalTranslations": true, "drupalTranslations": true,
"domready": true,
"jQuery": true, "jQuery": true,
"_": true, "_": true,
"matchMedia": true, "Cookies": true,
"Backbone": true, "Backbone": true,
"Modernizr": true, "Modernizr": true,
"Popper": true, "loadjs": true,
"Shepherd": true, "Shepherd": true,
"Sortable": true, "Sortable": true,
"once": true, "once": true,
"CKEDITOR": true, "CKEditor5": true,
"tabbable": true "tabbable": true
}, },
"settings": {
"react": {
"version": "latest"
}
},
"rules": { "rules": {
"prettier/prettier": ["error", { "prettier/prettier": "error",
"trailingComma": "none"
}],
"consistent-return": ["off"], "consistent-return": ["off"],
"no-underscore-dangle": ["off"], "no-underscore-dangle": ["off"],
"max-nested-callbacks": ["warn", 3], "max-nested-callbacks": ["warn", 3],
...@@ -52,12 +45,7 @@ ...@@ -52,12 +45,7 @@
"requireReturn": false "requireReturn": false
}], }],
"no-unused-vars": ["warn"], "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" } }], "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"?> <?xml version="1.0" encoding="UTF-8"?>
<ruleset name="custom_code"> <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"/>
<arg name="extensions" value="inc,install,module,php,profile,test,theme,yml,css"/> <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 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>*/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.--> <file>.</file>
<exclude-pattern>*/*.min.css</exclude-pattern>
<exclude-pattern>css/variables.css</exclude-pattern>
<!-- Only include specific sniffs that pass. This ensures that, if new sniffs are added, HEAD does not fail.--> <!-- Only include specific sniffs that pass. This ensures that, if new sniffs are added, HEAD does not fail.-->
<!-- Drupal sniffs --> <!-- Drupal sniffs -->
<rule ref="Drupal.Arrays.Array"> <rule ref="Drupal.Arrays.Array">
<!-- Sniff for these errors: CommaLastItem --> <!-- Sniff for these errors: ArrayClosingIndentation, ArrayIndentation, CommaLastItem -->
<exclude name="Drupal.Arrays.Array.ArrayClosingIndentation"/>
<exclude name="Drupal.Arrays.Array.ArrayIndentation"/>
<exclude name="Drupal.Arrays.Array.LongLineDeclaration"/> <exclude name="Drupal.Arrays.Array.LongLineDeclaration"/>
</rule> </rule>
<rule ref="Drupal.CSS.ClassDefinitionNameSpacing"/>
<rule ref="Drupal.CSS.ColourDefinition"/>
<rule ref="Drupal.Classes.ClassCreateInstance"/> <rule ref="Drupal.Classes.ClassCreateInstance"/>
<rule ref="Drupal.Classes.ClassDeclaration"/> <rule ref="Drupal.Classes.ClassDeclaration"/>
<rule ref="Drupal.Classes.ClassFileName"/> <rule ref="Drupal.Classes.ClassFileName"/>
...@@ -29,8 +29,6 @@ ...@@ -29,8 +29,6 @@
<rule ref="Drupal.Classes.UnusedUseStatement"/> <rule ref="Drupal.Classes.UnusedUseStatement"/>
<rule ref="Drupal.Classes.UseGlobalClass"/> <rule ref="Drupal.Classes.UseGlobalClass"/>
<rule ref="Drupal.Classes.UseLeadingBackslash"/> <rule ref="Drupal.Classes.UseLeadingBackslash"/>
<rule ref="Drupal.CSS.ClassDefinitionNameSpacing"/>
<rule ref="Drupal.CSS.ColourDefinition"/>
<rule ref="Drupal.Commenting.ClassComment"> <rule ref="Drupal.Commenting.ClassComment">
<exclude name="Drupal.Commenting.ClassComment.Missing"/> <exclude name="Drupal.Commenting.ClassComment.Missing"/>
</rule> </rule>
...@@ -43,12 +41,11 @@ ...@@ -43,12 +41,11 @@
TagsNotGrouped, ParamGroup --> TagsNotGrouped, ParamGroup -->
<!-- ParamNotFirst still not decided for PHPUnit-based tests. <!-- ParamNotFirst still not decided for PHPUnit-based tests.
@see https://www.drupal.org/node/2253915 --> @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.LongFullStop"/>
<exclude name="Drupal.Commenting.DocComment.ShortNotCapital"/>
<exclude name="Drupal.Commenting.DocComment.ShortSingleLine"/>
<exclude name="Drupal.Commenting.DocComment.MissingShort"/> <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>
<rule ref="Drupal.Commenting.DocCommentAlignment"/> <rule ref="Drupal.Commenting.DocCommentAlignment"/>
<rule ref="Drupal.Commenting.DocCommentStar"/> <rule ref="Drupal.Commenting.DocCommentStar"/>
...@@ -56,23 +53,13 @@ ...@@ -56,23 +53,13 @@
<rule ref="Drupal.Commenting.FunctionComment"> <rule ref="Drupal.Commenting.FunctionComment">
<exclude name="Drupal.Commenting.FunctionComment.InvalidNoReturn"/> <exclude name="Drupal.Commenting.FunctionComment.InvalidNoReturn"/>
<exclude name="Drupal.Commenting.FunctionComment.Missing"/> <exclude name="Drupal.Commenting.FunctionComment.Missing"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingParamComment"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingParamType"/> <exclude name="Drupal.Commenting.FunctionComment.MissingParamType"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnComment"/> <exclude name="Drupal.Commenting.FunctionComment.MissingReturnComment"/>
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnType"/>
<exclude name="Drupal.Commenting.FunctionComment.ParamCommentFullStop"/> <exclude name="Drupal.Commenting.FunctionComment.ParamCommentFullStop"/>
<exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/> <exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/>
</rule> </rule>
<rule ref="Drupal.Commenting.HookComment"/>
<rule ref="Drupal.Commenting.GenderNeutralComment"/> <rule ref="Drupal.Commenting.GenderNeutralComment"/>
<rule ref="Drupal.Commenting.InlineVariableComment"/> <rule ref="Drupal.Commenting.HookComment"/>
<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.InlineComment"> <rule ref="Drupal.Commenting.InlineComment">
<!-- Sniff for: NoSpaceBefore, SpacingBefore, WrongStyle --> <!-- Sniff for: NoSpaceBefore, SpacingBefore, WrongStyle -->
<exclude name="Drupal.Commenting.InlineComment.DocBlock"/> <exclude name="Drupal.Commenting.InlineComment.DocBlock"/>
...@@ -80,9 +67,17 @@ ...@@ -80,9 +67,17 @@
<exclude name="Drupal.Commenting.InlineComment.NotCapital"/> <exclude name="Drupal.Commenting.InlineComment.NotCapital"/>
<exclude name="Drupal.Commenting.InlineComment.SpacingAfter"/> <exclude name="Drupal.Commenting.InlineComment.SpacingAfter"/>
</rule> </rule>
<rule ref="Drupal.Commenting.InlineVariableComment"/>
<rule ref="Drupal.Commenting.PostStatementComment"/> <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.ControlSignature"/>
<rule ref="Drupal.ControlStructures.ElseIf"/>
<rule ref="Drupal.ControlStructures.InlineControlStructure"/> <rule ref="Drupal.ControlStructures.InlineControlStructure"/>
<rule ref="Drupal.Files.EndFileNewline"/> <rule ref="Drupal.Files.EndFileNewline"/>
<rule ref="Drupal.Files.FileEncoding"/> <rule ref="Drupal.Files.FileEncoding"/>
...@@ -102,9 +97,12 @@ ...@@ -102,9 +97,12 @@
Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps. --> Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps. -->
<exclude name="Drupal.Methods.MethodDeclaration.Underscore"/> <exclude name="Drupal.Methods.MethodDeclaration.Underscore"/>
</rule> </rule>
<rule ref="Drupal.NamingConventions.ValidVariableName"> <rule ref="Drupal.NamingConventions.ValidClassName"/>
<!-- Sniff for: LowerStart --> <rule ref="Drupal.NamingConventions.ValidGlobal"/>
<exclude name="Drupal.NamingConventions.ValidVariableName.LowerCamelName"/> <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>
<rule ref="Drupal.Scope.MethodScope"/> <rule ref="Drupal.Scope.MethodScope"/>
<rule ref="Drupal.Semantics.EmptyInstall"/> <rule ref="Drupal.Semantics.EmptyInstall"/>
...@@ -132,9 +130,27 @@ ...@@ -132,9 +130,27 @@
<rule ref="Drupal.WhiteSpace.ScopeIndent"/> <rule ref="Drupal.WhiteSpace.ScopeIndent"/>
<!-- Drupal Practice sniffs --> <!-- 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.Commenting.ExpectedException"/>
<rule ref="DrupalPractice.General.ExceptionT"/> <rule ref="DrupalPractice.General.ExceptionT"/>
<rule ref="DrupalPractice.InfoFiles.NamespacedDependency"/> <rule ref="DrupalPractice.InfoFiles.NamespacedDependency"/>
<rule ref="DrupalPractice.Objects.GlobalFunction">
<include-pattern>*/Plugin/*</include-pattern>
</rule>
<!-- Generic sniffs --> <!-- Generic sniffs -->
<rule ref="Generic.Arrays.DisallowLongArraySyntax"/> <rule ref="Generic.Arrays.DisallowLongArraySyntax"/>
...@@ -149,8 +165,6 @@ ...@@ -149,8 +165,6 @@
<property name="checkClosures" value="true"/> <property name="checkClosures" value="true"/>
</properties> </properties>
</rule> </rule>
<rule ref="Drupal.NamingConventions.ValidClassName"/>
<rule ref="Drupal.NamingConventions.ValidGlobal"/>
<rule ref="Generic.NamingConventions.ConstructorName"/> <rule ref="Generic.NamingConventions.ConstructorName"/>
<rule ref="Generic.NamingConventions.UpperCaseConstantName"/> <rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
<rule ref="Generic.PHP.DeprecatedFunctions"/> <rule ref="Generic.PHP.DeprecatedFunctions"/>
...@@ -171,30 +185,29 @@ ...@@ -171,30 +185,29 @@
<!-- PEAR sniffs --> <!-- PEAR sniffs -->
<rule ref="PEAR.Files.IncludingFile"/> <rule ref="PEAR.Files.IncludingFile"/>
<!-- Disable some error messages that we do not want. --> <!-- 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"> <rule ref="PEAR.Files.IncludingFile.UseInclude">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="PEAR.Files.IncludingFile.UseRequireOnce"> <rule ref="PEAR.Files.IncludingFile.UseIncludeOnce">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="PEAR.Files.IncludingFile.UseRequire"> <rule ref="PEAR.Files.IncludingFile.UseRequire">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="PEAR.Functions.ValidDefaultValue"/> <rule ref="PEAR.Files.IncludingFile.UseRequireOnce">
<severity>0</severity>
<!-- PEAR sniffs --> </rule>
<rule ref="PEAR.Functions.FunctionCallSignature"/> <rule ref="PEAR.Functions.FunctionCallSignature"/>
<!-- The sniffs inside PEAR.Functions.FunctionCallSignature silenced below are <!-- 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 also silenced in Drupal CS' ruleset.xml. The code below is a 1-on-1 copy
from that file. --> from that file. -->
<!-- Disable some error messages that we already cover. --> <rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
<rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket">
<severity>0</severity> <severity>0</severity>
</rule> </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> <severity>0</severity>
</rule> </rule>
<!-- Disable some error messages that we do not want. --> <!-- Disable some error messages that we do not want. -->
...@@ -204,15 +217,14 @@ ...@@ -204,15 +217,14 @@
<rule ref="PEAR.Functions.FunctionCallSignature.OpeningIndent"> <rule ref="PEAR.Functions.FunctionCallSignature.OpeningIndent">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket"> <!-- Disable some error messages that we already cover. -->
<severity>0</severity> <rule ref="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket">
</rule>
<rule ref="PEAR.Functions.FunctionCallSignature.CloseBracketLine">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="PEAR.Functions.FunctionCallSignature.EmptyLine"> <rule ref="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="PEAR.Functions.ValidDefaultValue"/>
<!-- PSR-2 sniffs --> <!-- PSR-2 sniffs -->
<rule ref="PSR2.Classes.PropertyDeclaration"> <rule ref="PSR2.Classes.PropertyDeclaration">
...@@ -223,11 +235,28 @@ ...@@ -223,11 +235,28 @@
<rule ref="PSR2.Namespaces.NamespaceDeclaration"/> <rule ref="PSR2.Namespaces.NamespaceDeclaration"/>
<rule ref="PSR2.Namespaces.UseDeclaration"/> <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 --> <!-- Squiz sniffs -->
<rule ref="Squiz.Arrays.ArrayBracketSpacing"/> <rule ref="Squiz.Arrays.ArrayBracketSpacing"/>
<rule ref="Squiz.Arrays.ArrayDeclaration"> <rule ref="Squiz.Arrays.ArrayDeclaration">
<exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified"/>
<exclude name="Squiz.Arrays.ArrayDeclaration.KeySpecified"/> <exclude name="Squiz.Arrays.ArrayDeclaration.KeySpecified"/>
<exclude name="Squiz.Arrays.ArrayDeclaration.NoKeySpecified"/>
</rule> </rule>
<!-- Disable some error messages that we do not want. --> <!-- Disable some error messages that we do not want. -->
<rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned"> <rule ref="Squiz.Arrays.ArrayDeclaration.CloseBraceNotAligned">
...@@ -257,10 +286,10 @@ ...@@ -257,10 +286,10 @@
<rule ref="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed"> <rule ref="Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNotAligned"> <rule ref="Squiz.Arrays.ArrayDeclaration.ValueNoNewline">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="Squiz.Arrays.ArrayDeclaration.ValueNoNewline"> <rule ref="Squiz.Arrays.ArrayDeclaration.ValueNotAligned">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="Squiz.ControlStructures.ForEachLoopDeclaration"/> <rule ref="Squiz.ControlStructures.ForEachLoopDeclaration"/>
...@@ -317,10 +346,21 @@ ...@@ -317,10 +346,21 @@
<rule ref="Squiz.ControlStructures.SwitchDeclaration.SpacingBeforeBreak"> <rule ref="Squiz.ControlStructures.SwitchDeclaration.SpacingBeforeBreak">
<severity>0</severity> <severity>0</severity>
</rule> </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"/>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine"> <rule ref="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine">
<severity>0</severity>
</rule>
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.ContentAfterBrace"> <rule ref="Squiz.Functions.MultiLineFunctionDeclaration.ContentAfterBrace">
<severity>0</severity> <severity>0</severity>
</rule> </rule>
...@@ -331,17 +371,6 @@ ...@@ -331,17 +371,6 @@
<rule ref="Squiz.Functions.MultiLineFunctionDeclaration.Indent"> <rule ref="Squiz.Functions.MultiLineFunctionDeclaration.Indent">
<severity>0</severity> <severity>0</severity>
</rule> </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.LowercasePHPFunctions"/>
<rule ref="Squiz.PHP.NonExecutableCode"/> <rule ref="Squiz.PHP.NonExecutableCode"/>
<rule ref="Squiz.Strings.ConcatenationSpacing"> <rule ref="Squiz.Strings.ConcatenationSpacing">
...@@ -368,4 +397,4 @@ ...@@ -368,4 +397,4 @@
<!-- Zend sniffs --> <!-- Zend sniffs -->
<rule ref="Zend.Files.ClosingTag"/> <rule ref="Zend.Files.ClosingTag"/>
</ruleset> </ruleset>
\ No newline at end of file
<?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", "extends": "stylelint-config-standard",
"plugins": [ "plugins": [
"stylelint-no-browser-hacks/lib",
"stylelint-order" "stylelint-order"
], ],
"rules": { "rules": {
"alpha-value-notation": "number",
"at-rule-empty-line-before": null,
"color-function-notation": "legacy",
"comment-empty-line-before": null, "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, "function-whitespace-after": null,
"hue-degree-notation": "number",
"import-notation": "string",
"no-descending-specificity": null, "no-descending-specificity": null,
"no-duplicate-selectors": null, "no-duplicate-selectors": null,
"no-unknown-animations": true, "no-unknown-animations": true,
"max-line-length": null,
"media-feature-name-no-unknown": [true, { "media-feature-name-no-unknown": [true, {
"ignoreMediaFeatureNames": [ "ignoreMediaFeatureNames": [
"prefers-reduced-motion", "prefers-reduced-motion"
"min--moz-device-pixel-ratio"
] ]
}], }],
"number-leading-zero": "always", "media-feature-name-no-vendor-prefix": null,
"media-feature-range-notation": "prefix",
"number-max-precision": 5,
"order/order": [ "order/order": [
"custom-properties", "custom-properties",
"dollar-variables", "dollar-variables",
...@@ -47,8 +55,6 @@ ...@@ -47,8 +55,6 @@
"overflow", "overflow",
"overflow-x", "overflow-x",
"overflow-y", "overflow-y",
"-ms-overflow-x",
"-ms-overflow-y",
"-webkit-overflow-scrolling", "-webkit-overflow-scrolling",
"clip", "clip",
"zoom", "zoom",
...@@ -63,21 +69,16 @@ ...@@ -63,21 +69,16 @@
"flex-order", "flex-order",
"flex-pack", "flex-pack",
"-ms-grid",
"grid", "grid",
"grid-area", "grid-area",
"grid-template", "grid-template",
"grid-template-areas", "grid-template-areas",
"-ms-grid-rows",
"grid-template-rows", "grid-template-rows",
"-ms-grid-columns",
"grid-template-columns", "grid-template-columns",
"grid-row", "grid-row",
"-ms-grid-row",
"grid-row-start", "grid-row-start",
"grid-row-end", "grid-row-end",
"grid-column", "grid-column",
"-ms-grid-column",
"grid-column-start", "grid-column-start",
"grid-column-end", "grid-column-end",
"grid-auto-rows", "grid-auto-rows",
...@@ -86,8 +87,6 @@ ...@@ -86,8 +87,6 @@
"grid-gap", "grid-gap",
"grid-row-gap", "grid-row-gap",
"grid-column-gap", "grid-column-gap",
"-ms-grid-row-align",
"-ms-grid-column-align",
"place-content", "place-content",
"place-items", "place-items",
...@@ -114,42 +113,40 @@ ...@@ -114,42 +113,40 @@
"margin-right", "margin-right",
"margin-bottom", "margin-bottom",
"margin-left", "margin-left",
"margin-block-start",
"margin-block-end",
"margin-inline-start",
"margin-inline-end",
"padding", "padding",
"padding-top", "padding-top",
"padding-right", "padding-right",
"padding-bottom", "padding-bottom",
"padding-left", "padding-left",
"padding-block-start",
"padding-block-end",
"padding-inline-start",
"padding-inline-end",
"table-layout", "table-layout",
"-webkit-columns", "-webkit-columns",
"-moz-columns",
"columns", "columns",
"-webkit-column-span", "-webkit-column-span",
"-moz-column-span",
"column-span", "column-span",
"-webkit-column-width", "-webkit-column-width",
"-moz-column-width",
"column-width", "column-width",
"-webkit-column-count", "-webkit-column-count",
"-moz-column-count",
"column-count", "column-count",
"-webkit-column-fill", "-webkit-column-fill",
"-moz-column-fill",
"column-fill", "column-fill",
"-webkit-column-gap", "-webkit-column-gap",
"-moz-column-gap",
"column-gap", "column-gap",
"-webkit-column-rule", "-webkit-column-rule",
"-moz-column-rule",
"column-rule", "column-rule",
"-webkit-column-rule-width", "-webkit-column-rule-width",
"-moz-column-rule-width",
"column-rule-width", "column-rule-width",
"-webkit-column-rule-style", "-webkit-column-rule-style",
"-moz-column-rule-style",
"column-rule-style", "column-rule-style",
"-webkit-column-rule-color", "-webkit-column-rule-color",
"-moz-column-rule-color",
"column-rule-color", "column-rule-color",
"empty-cells", "empty-cells",
"caption-side", "caption-side",
...@@ -168,8 +165,6 @@ ...@@ -168,8 +165,6 @@
"resize", "resize",
"cursor", "cursor",
"-webkit-user-select", "-webkit-user-select",
"-moz-user-select",
"-ms-user-select",
"user-select", "user-select",
"nav-index", "nav-index",
"nav-up", "nav-up",
...@@ -177,85 +172,53 @@ ...@@ -177,85 +172,53 @@
"nav-down", "nav-down",
"nav-left", "nav-left",
"-webkit-transition", "-webkit-transition",
"-moz-transition",
"-ms-transition",
"-o-transition", "-o-transition",
"transition", "transition",
"-webkit-transition-delay", "-webkit-transition-delay",
"-moz-transition-delay",
"-ms-transition-delay",
"-o-transition-delay", "-o-transition-delay",
"transition-delay", "transition-delay",
"-webkit-transition-timing-function", "-webkit-transition-timing-function",
"-moz-transition-timing-function",
"-ms-transition-timing-function",
"-o-transition-timing-function", "-o-transition-timing-function",
"transition-timing-function", "transition-timing-function",
"-webkit-transition-duration", "-webkit-transition-duration",
"-moz-transition-duration",
"-ms-transition-duration",
"-o-transition-duration", "-o-transition-duration",
"transition-duration", "transition-duration",
"-webkit-transition-property", "-webkit-transition-property",
"-moz-transition-property",
"-ms-transition-property",
"-o-transition-property", "-o-transition-property",
"transition-property", "transition-property",
"-webkit-transform", "-webkit-transform",
"-moz-transform",
"-ms-transform",
"-o-transform", "-o-transform",
"transform", "transform",
"-webkit-transform-origin", "-webkit-transform-origin",
"-moz-transform-origin",
"-ms-transform-origin",
"-o-transform-origin", "-o-transform-origin",
"transform-origin", "transform-origin",
"$keyframes", "$keyframes",
"-webkit-animation", "-webkit-animation",
"-moz-animation",
"-ms-animation",
"-o-animation", "-o-animation",
"animation", "animation",
"-webkit-animation-name", "-webkit-animation-name",
"-moz-animation-name",
"-ms-animation-name",
"-o-animation-name", "-o-animation-name",
"animation-name", "animation-name",
"-webkit-animation-duration", "-webkit-animation-duration",
"-moz-animation-duration",
"-ms-animation-duration",
"-o-animation-duration", "-o-animation-duration",
"animation-duration", "animation-duration",
"-webkit-animation-play-state", "-webkit-animation-play-state",
"-moz-animation-play-state",
"-ms-animation-play-state",
"-o-animation-play-state", "-o-animation-play-state",
"animation-play-state", "animation-play-state",
"-webkit-animation-timing-function", "-webkit-animation-timing-function",
"-moz-animation-timing-function",
"-ms-animation-timing-function",
"-o-animation-timing-function", "-o-animation-timing-function",
"animation-timing-function", "animation-timing-function",
"-webkit-animation-delay", "-webkit-animation-delay",
"-moz-animation-delay",
"-ms-animation-delay",
"-o-animation-delay", "-o-animation-delay",
"animation-delay", "animation-delay",
"-webkit-animation-iteration-count", "-webkit-animation-iteration-count",
"-moz-animation-iteration-count",
"-ms-animation-iteration-count",
"-o-animation-iteration-count", "-o-animation-iteration-count",
"animation-iteration-count", "animation-iteration-count",
"-webkit-animation-direction", "-webkit-animation-direction",
"-moz-animation-direction",
"-ms-animation-direction",
"-o-animation-direction", "-o-animation-direction",
"animation-direction", "animation-direction",
"text-align", "text-align",
"-webkit-text-align-last", "-webkit-text-align-last",
"-moz-text-align-last",
"-ms-text-align-last",
"text-align-last", "text-align-last",
"vertical-align", "vertical-align",
"white-space", "white-space",
...@@ -265,28 +228,21 @@ ...@@ -265,28 +228,21 @@
"text-emphasis-style", "text-emphasis-style",
"text-emphasis-position", "text-emphasis-position",
"text-indent", "text-indent",
"-ms-text-justify",
"text-justify", "text-justify",
"text-transform", "text-transform",
"letter-spacing", "letter-spacing",
"word-spacing", "word-spacing",
"-ms-writing-mode",
"text-outline", "text-outline",
"text-transform", "text-transform",
"text-wrap", "text-wrap",
"text-overflow", "text-overflow",
"-ms-text-overflow",
"text-overflow-ellipsis", "text-overflow-ellipsis",
"text-overflow-mode", "text-overflow-mode",
"-ms-word-wrap",
"word-wrap", "word-wrap",
"word-break", "word-break",
"-ms-word-break",
"-moz-tab-size",
"-o-tab-size", "-o-tab-size",
"tab-size", "tab-size",
"-webkit-hyphens", "-webkit-hyphens",
"-moz-hyphens",
"hyphens", "hyphens",
"pointer-events", "pointer-events",
"direction", "direction",
...@@ -297,12 +253,8 @@ ...@@ -297,12 +253,8 @@
"object-position", "object-position",
"opacity", "opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
"-webkit-filter", "-webkit-filter",
"-ms-filter",
"filter", "filter",
"-ms-interpolation-mode",
"color", "color",
"border", "border",
"border-collapse", "border-collapse",
...@@ -325,43 +277,48 @@ ...@@ -325,43 +277,48 @@
"border-left-width", "border-left-width",
"border-left-style", "border-left-style",
"border-left-color", "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", "-webkit-border-radius",
"-moz-border-radius",
"border-radius", "border-radius",
"-webkit-border-top-left-radius", "-webkit-border-top-left-radius",
"-moz-border-radius-topleft",
"border-top-left-radius", "border-top-left-radius",
"-webkit-border-top-right-radius", "-webkit-border-top-right-radius",
"-moz-border-radius-topright",
"border-top-right-radius", "border-top-right-radius",
"-webkit-border-bottom-right-radius", "-webkit-border-bottom-right-radius",
"-moz-border-radius-bottomright",
"border-bottom-right-radius", "border-bottom-right-radius",
"-webkit-border-bottom-left-radius", "-webkit-border-bottom-left-radius",
"-moz-border-radius-bottomleft",
"border-bottom-left-radius", "border-bottom-left-radius",
"-webkit-border-image", "-webkit-border-image",
"-moz-border-image",
"-o-border-image", "-o-border-image",
"border-image", "border-image",
"-webkit-border-image-source", "-webkit-border-image-source",
"-moz-border-image-source",
"-o-border-image-source", "-o-border-image-source",
"border-image-source", "border-image-source",
"-webkit-border-image-slice", "-webkit-border-image-slice",
"-moz-border-image-slice",
"-o-border-image-slice", "-o-border-image-slice",
"border-image-slice", "border-image-slice",
"-webkit-border-image-width", "-webkit-border-image-width",
"-moz-border-image-width",
"-o-border-image-width", "-o-border-image-width",
"border-image-width", "border-image-width",
"-webkit-border-image-outset", "-webkit-border-image-outset",
"-moz-border-image-outset",
"-o-border-image-outset", "-o-border-image-outset",
"border-image-outset", "border-image-outset",
"-webkit-border-image-repeat", "-webkit-border-image-repeat",
"-moz-border-image-repeat",
"-o-border-image-repeat", "-o-border-image-repeat",
"border-image-repeat", "border-image-repeat",
"outline", "outline",
...@@ -377,23 +334,16 @@ ...@@ -377,23 +334,16 @@
"background-attachment", "background-attachment",
"background-position", "background-position",
"background-position-x", "background-position-x",
"-ms-background-position-x",
"background-position-y", "background-position-y",
"-ms-background-position-y",
"-webkit-background-clip", "-webkit-background-clip",
"-moz-background-clip",
"background-clip", "background-clip",
"background-origin", "background-origin",
"-webkit-background-size", "-webkit-background-size",
"-moz-background-size",
"-o-background-size", "-o-background-size",
"background-size", "background-size",
"box-decoration-break", "box-decoration-break",
"-webkit-box-shadow", "-webkit-box-shadow",
"-moz-box-shadow",
"box-shadow", "box-shadow",
"filter:progid:DXImageTransform.Microsoft.gradient",
"-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
"text-shadow", "text-shadow",
"$font-face", "$font-face",
...@@ -421,27 +371,22 @@ ...@@ -421,27 +371,22 @@
"font-smooth", "font-smooth",
"line-height" "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-unknown": null,
"property-no-vendor-prefix": null,
"rule-empty-line-before": 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, "shorthand-property-no-redundant-values": null,
"string-quotes": "double", "unit-allowed-list": ["ch", "deg", "dpcm", "em", "ex", "fr", "ms", "rem", "%", "s", "px", "vw", "vh"],
"unit-allowed-list": ["deg", "em", "ex", "ms", "rem", "%", "s", "px", "vw", "vh"], "value-keyword-case": ["lower", {
"font-family-no-missing-generic-family-keyword": [true, { "camelCaseSvgKeywords": true,
"ignoreFontFamilies": [ "ignoreProperties": [
"Font Awesome 5 Brands", "--font-family",
"Font Awesome 5 Free" "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) ## Varbase: The Ultimate Drupal CMS Starter Kit (Bootstrap Ready)
...@@ -17,52 +17,59 @@ in every project. ...@@ -17,52 +17,59 @@ in every project.
* Speeds up development. * Speeds up development.
* Offers standardized configuration and best-practices. * Offers standardized configuration and best-practices.
* Comes with a lot of needed functionalities/modules for every-day Drupal site. * 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. Starting a new project? Consider **Varbase** for **Drupal 10**.
Installing Varbase 9.0.x comes with several extra automated installation Installing **Varbase `10.0.x`** comes with several extra automated installation
steps, to take full advantage of Varbase, other than the Drupal 9 installation steps, to take full advantage of Varbase, other than the **Drupal 10** installation
instructions. instructions.
# Install with Composer # 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) ## [Create a new Vartheme sub theme for a project](https://github.com/Vardot/varbase/tree/10.0.x/scripts/README.md)
## [Automated Functional Testing](https://github.com/Vardot/varbase/blob/9.0.x/tests/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). 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 ## Debugging using Lando
- xDebug is enabled on Lando by default for PHP debugging. - 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 Join Our Slack Team for Feedback and Support
http://slack.varbase.vardot.com/ http://slack.varbase.vardot.com/
......
...@@ -58,13 +58,13 @@ At the end of the update process, two log files are useful to troubleshoot ...@@ -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. 2. Edit your _composer.json_ file to be ready for updates. You have two choices.
Edit your _composer.json_ to include Edit your _composer.json_ to include
all the new updates made in 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 This includes the new components required and its versions
_"require"_, _"repositories"_, _"extra"_, and any other important config. _"require"_, _"repositories"_, _"extra"_, and any other important config.
You can use a diff tool such as [Meld](http://meldmerge.org/) or You can use a diff tool such as [Meld](http://meldmerge.org/) or
[DiffMerge](https://sourcegear.com/diffmerge/) to help you diff between [DiffMerge](https://sourcegear.com/diffmerge/) to help you diff between
your old _composer.json_ and the new one from 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 3. Back up your code and database
4. Execute Composer update to download updates to modules and libraries. 4. Execute Composer update to download updates to modules and libraries.
`composer update` `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: default:
- behat.varbase.yml 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 @@ ...@@ -13,7 +13,7 @@
<property name="db.database" value="test_varbase9000xxc" /> <property name="db.database" value="test_varbase9000xxc" />
<property name="db.url" value="${db.type}://${db.user}:${db.password}@${db.host}/${db.database}" /> <property name="db.url" value="${db.type}://${db.user}:${db.password}@${db.host}/${db.database}" />
<property name="docroot" value="docroot" /> <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="site" value="${docroot}/sites/default" />
<property name="version" value="HEAD" /> <property name="version" value="HEAD" />
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<exec command="${npm} run install-libraries" passthru="true" /> <exec command="${npm} run install-libraries" passthru="true" />
<!-- rsync the profile, excluding developer flotsam. --> <!-- 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. --> <!-- JS libraries and contrib modules were copied over by the file sync. -->
<delete dir="libraries" failonerror="true" quiet="true" /> <delete dir="libraries" failonerror="true" quiet="true" />
...@@ -100,12 +100,10 @@ ...@@ -100,12 +100,10 @@
<!-- Install with drush site install --> <!-- Install with drush site install -->
<target name="install-with-drush-site-install" depends="env"> <target name="install-with-drush-site-install" depends="env">
<!-- Use passthru() when executing drush site-install so that we'll know if errors occur. --> <!-- 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} 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 varbase_styleguide --yes" dir="${docroot}" />
<exec command="${drush} en vbp_text_and_image --yes" dir="${docroot}" /> <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_instagram --yes" dir="${docroot}" />
<exec command="${drush} en varbase_media_twitter --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_facebook --yes" dir="${docroot}" />
<exec command="${drush} en social_auth_twitter --yes" dir="${docroot}" /> <exec command="${drush} en social_auth_twitter --yes" dir="${docroot}" />
<exec command="${drush} en social_auth_linkedin --yes" dir="${docroot}" /> <exec command="${drush} en social_auth_linkedin --yes" dir="${docroot}" />
......
{ {
"name": "vardot/varbase", "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", "type": "drupal-profile",
"license": "GPL-2.0-or-later", "license": "GPL-2.0-or-later",
"minimum-stability": "dev", "minimum-stability": "dev",
...@@ -26,56 +26,84 @@ ...@@ -26,56 +26,84 @@
"url": "https://asset-packagist.org" "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": { "require": {
"composer/installers": "~1.0 || ~2.0", "drupal/varbase_core": "10.0.x-dev",
"oomphinc/composer-installers-extender": "~1.0 || ~2.0", "drupal/varbase_components": "2.0.x-dev",
"cweagans/composer-patches": "~1.0", "drupal/varbase_api": "10.0.x-dev",
"drupal/core-composer-scaffold": "^9", "drupal/varbase_ai": "1.0.x-dev",
"drupal/core": "~9.0", "drupal/varbase_media": "10.0.x-dev",
"drupal/varbase_core": "9.0.x-dev", "drupal/varbase_editor": "10.0.x-dev",
"drupal/varbase_api": "9.0.x-dev", "drupal/varbase_landing": "10.0.x-dev",
"drupal/varbase_media": "9.0.x-dev", "drupal/varbase_layout_builder": "10.1.x-dev",
"drupal/varbase_editor": "9.0.x-dev", "drupal/varbase_bootstrap_paragraphs": "10.0.x-dev",
"drupal/varbase_landing": "9.0.x-dev", "drupal/varbase_heroslider": "1.0.x-dev",
"drupal/varbase_layout_builder": "10.0.x-dev", "drupal/varbase_heroslider_media": "10.0.x-dev",
"drupal/varbase_bootstrap_paragraphs": "9.0.x-dev", "drupal/varbase_carousels": "10.0.x-dev",
"drupal/varbase_heroslider_media": "9.0.x-dev", "drupal/varbase_blog": "10.0.x-dev",
"drupal/varbase_carousels": "9.0.x-dev", "drupal/varbase_search": "10.0.x-dev",
"drupal/varbase_blog": "9.0.x-dev", "drupal/varbase_seo": "10.0.x-dev",
"drupal/varbase_search": "9.0.x-dev", "drupal/varbase_auth": "10.0.x-dev",
"drupal/varbase_seo": "9.0.x-dev", "drupal/varbase_dashboards": "1.0.x-dev",
"drupal/varbase_auth": "9.0.x-dev", "drupal/varbase_email": "10.0.x-dev",
"drupal/varbase_total_control": "9.0.x-dev", "drupal/varbase_workflow": "3.0.x-dev",
"drupal/varbase_styleguide": "9.0.x-dev", "drupal/varbase_demo": "1.0.x-dev",
"drupal/varbase_email": "9.0.x-dev", "drupal/vartheme_bs5": "3.0.x-dev",
"drupal/varbase_workflow": "2.0.x-dev", "drupal/vartheme_claro": "4.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",
"bower-asset/jqueryui-touch-punch": "dev-master", "bower-asset/jqueryui-touch-punch": "dev-master",
"npm-asset/masonry-layout": "~4.0", "npm-asset/dropzone": "~5",
"npm-asset/imagesloaded": "~4.0", "npm-asset/blazy": "~1",
"npm-asset/dropzone": "~5.0", "npm-asset/slick-carousel": "~1",
"npm-asset/blazy": "~1.0", "npm-asset/ace-builds": "~1",
"npm-asset/slick-carousel": "~1.0", "npm-asset/swagger-ui-dist": "~3",
"npm-asset/ace-builds": "~1.0", "npm-asset/northernco--ckeditor5-anchor-drupal": "^0.5.0",
"npm-asset/swagger-ui-dist": "~3.0" "npm-asset/ckeditor--ckeditor5-media-embed": "*",
"npm-asset/jquery.fancytree": "~2"
}, },
"require-dev": { "require-dev": {
"drupal/core-dev": "~9.0", "drupal/core-dev": "~10 || ~11",
"drush/drush": "~10.0", "drush/drush": "~12 || ~13"
"drupal/drupal-extension": "~4.0",
"emuse/behat-html-formatter": "^0.2.0"
}, },
"config": { "config": {
"bin-dir": "bin/", "bin-dir": "bin/",
"secure-http": false, "secure-http": false,
"preferred-install": { "preferred-install": {
"drupal/core": "dist" "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": { "autoload": {
...@@ -94,32 +122,31 @@ ...@@ -94,32 +122,31 @@
"Varbase\\composer\\ScriptHandler::createRequiredFiles", "Varbase\\composer\\ScriptHandler::createRequiredFiles",
"Varbase\\composer\\ScriptHandler::removeGitDirectories" "Varbase\\composer\\ScriptHandler::removeGitDirectories"
], ],
"post-drupal-scaffold-cmd": ["Varbase\\composer\\ScriptHandler::postDrupalScaffoldProcedure"], "post-drupal-scaffold-cmd": ["Varbase\\composer\\ScriptHandler::postDrupalScaffoldProcedure"]
"create-new-vartheme": "scripts/create-new-vartheme.sh"
}, },
"extra": { "extra": {
"drupal-scaffold": { "drupal-scaffold": {
"allowed-packages": [
"drupal/core",
"vardot/varbase"
],
"gitignore": true,
"locations": { "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": { "installer-paths": {
"docroot/core": ["type:drupal-core"], "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/modules/contrib/{$name}": ["type:drupal-module"],
"docroot/themes/contrib/{$name}": ["type:drupal-theme"], "docroot/themes/contrib/{$name}": ["type:drupal-theme"],
"docroot/libraries/slick": ["npm-asset/slick-carousel"], "docroot/libraries/slick": ["npm-asset/slick-carousel"],
"docroot/libraries/ace": ["npm-asset/ace-builds"], "docroot/libraries/ace": ["npm-asset/ace-builds"],
"docroot/libraries/jquery-ui-touch-punch": ["bower-asset/jqueryui-touch-punch"], "docroot/libraries/jquery-ui-touch-punch": ["bower-asset/jqueryui-touch-punch"],
"docroot/libraries/swagger-ui/dist": ["npm-asset/swagger-ui-dist"], "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}": [ "docroot/libraries/{$name}": [
"type:drupal-library", "type:drupal-library",
"type:bower-asset", "type:bower-asset",
...@@ -129,20 +156,22 @@ ...@@ -129,20 +156,22 @@
"docroot/themes/custom/{$name}": ["type:drupal-custom-theme"], "docroot/themes/custom/{$name}": ["type:drupal-custom-theme"],
"drush/contrib/{$name}": ["type:drupal-drush"] "drush/contrib/{$name}": ["type:drupal-drush"]
}, },
"installer-types": [
"bower-asset",
"npm-asset"
],
"drupal-libraries": { "drupal-libraries": {
"library-directory": "docroot/libraries", "library-directory": "docroot/libraries",
"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": "dropzone","package": "npm-asset/dropzone"},
{"name": "blazy", "package": "npm-asset/blazy"}, {"name": "blazy", "package": "npm-asset/blazy"},
{"name": "slick", "package": "npm-asset/slick-carousel"}, {"name": "slick", "package": "npm-asset/slick-carousel"},
{"name": "ace", "package": "npm-asset/ace-builds"}, {"name": "ace", "package": "npm-asset/ace-builds"},
{"name": "jquery-ui-touch-punch", "package": "bower-asset/jqueryui-touch-punch"}, {"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, "enable-patching": true,
......