Skip to content

Commit

Permalink
Merge remote-tracking branch 'jcms/4.1-dev' into make-get-response-sa…
Browse files Browse the repository at this point in the history
…ving-optional
  • Loading branch information
ditsuke committed Apr 22, 2022
2 parents 43a2e35 + 6f2e9df commit d1024c3
Show file tree
Hide file tree
Showing 510 changed files with 5,532 additions and 1,763 deletions.
87 changes: 27 additions & 60 deletions .appveyor.yml
@@ -1,89 +1,56 @@
image: Visual Studio 2022
build: false
platform:
- x64
clone_folder: C:\projects\joomla-cms

branches:
except:
- /l10n_*/

## Build matrix for lowest and highest possible targets
environment:
PHPBuild: "x64"
VC: "vc15"
WINCACHE: "2.0.0.8"
matrix:
- php_ver_target: 7.2
- php_ver_target: 7.3
- php_ver_target: 7.4
- php_ver_target: 8.0


init:
- SET PATH=C:\Program Files\OpenSSL;C:\tools\php;%PATH%
- SET PATH=C:\Tools\php;%PATH%
- SET COMPOSER_NO_INTERACTION=1
- SET PHP=1 # This var relates to caching the php install
- SET ANSICON=121x90 (121x90)
services:
- mysql
- postgresql94
- iis

## Install PHP and composer, and run the appropriate composer command
install:
- IF EXIST C:\tools\php (SET PHP=0)
# @todo: This is a workaround for https://github.com/chocolatey/choco/issues/1843. Once this is fixed we
# should go back to latest version in appveyor saving ourselves test time
- ps: choco upgrade chocolatey -y --version 0.10.13 --allow-downgrade --no-progress
- ps: >-
If ($env:PHP -eq "1") {
appveyor-retry cinst --no-progress --params '""/InstallDir:C:\tools\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php_ver_target | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','')
}
appveyor-retry choco install --no-progress --params '""/InstallDir:C:\tools\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php_ver_target | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','')
- cd C:\tools\php
- IF %PHP%==1 copy php.ini-production php.ini /Y
- IF %PHP%==1 echo date.timezone="UTC" >> php.ini
- IF %PHP%==1 echo extension_dir=ext >> php.ini
- IF %PHP%==1 echo extension=php_openssl.dll >> php.ini
- IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini
- IF %PHP%==1 echo extension=php_fileinfo.dll >> php.ini
- IF %PHP%==1 echo extension=php_gd2.dll >> php.ini
- IF %PHP%==1 echo extension=php_gmp.dll >> php.ini
- IF %PHP%==1 echo extension=php_pgsql.dll >> php.ini
- IF %PHP%==1 echo extension=php_pdo_pgsql.dll >> php.ini
- IF %PHP%==1 echo extension=php_pdo_mysql.dll >> php.ini
- IF %PHP%==1 echo extension=php_mysqli.dll >> php.ini
- IF %PHP_VER_TARGET%==5.6 IF %PHP%==1 echo extension=php_mysql.dll >> php.ini
- IF %PHP%==1 echo extension=php_curl.dll >> php.ini
# Get the Wincache DLLs
- ps: >-
If ($env:PHP -eq "1" -and $env:WINCACHE) {
cd c:\tools\php\ext
$source = "https://windows.php.net/downloads/pecl/releases/wincache/$($env:WINCACHE)/php_wincache-$($env:WINCACHE)-$($env:php_ver_target)-nts-$($env:VC)-$($env:PHPBuild).zip"
$destination = "c:\tools\php\ext\php_wincache-$($env:WINCACHE)-$($env:php_ver_target)-nts-$($env:VC)-$($env:PHPBuild).zip"
Invoke-WebRequest $source -OutFile $destination
#appveyor-retry appveyor DownloadFile https://windows.php.net/downloads/pecl/releases/wincache/$($env:WINCACHE)/php_wincache-$($env:WINCACHE)-$($env:php_ver_target)-nts-$($env:VC)-$($env:PHPBuild).zip
7z x -y php_wincache-$($env:WINCACHE)-$($env:php_ver_target)-nts-$($env:VC)-$($env:PHPBuild).zip > $null
Remove-Item C:\tools\php\ext* -include .zip
cd c:\tools\php
Add-Content php.ini "`nextension=php_wincache.dll"
Add-Content php.ini "`wincache.enablecli = 1"
Add-Content php.ini "`n"
}
- IF %PHP%==1 echo zend_extension=php_opcache.dll >> php.ini
- IF %PHP%==1 echo opcache.enable_cli=1 >> php.ini
- IF %PHP%==1 echo extension=php_ldap.dll >> php.ini
- IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat
- IF %PHP%==1 appveyor-retry appveyor DownloadFile https://getcomposer.org/download/latest-1.x/composer.phar
- copy php.ini-production php.ini /Y
- echo date.timezone="UTC" >> php.ini
- echo extension_dir=ext >> php.ini
- echo extension=php_openssl.dll >> php.ini
- echo extension=php_mbstring.dll >> php.ini
- echo extension=php_fileinfo.dll >> php.ini
- IF %php_ver_target% LSS 8 echo extension=php_gd2.dll >> php.ini
- IF %php_ver_target% GEQ 8 echo extension=gd >> php.ini
- echo extension=php_gmp.dll >> php.ini
- echo extension=php_pgsql.dll >> php.ini
- echo extension=php_pdo_pgsql.dll >> php.ini
- echo extension=php_pdo_mysql.dll >> php.ini
- echo extension=php_mysqli.dll >> php.ini
- echo extension=php_curl.dll >> php.ini
- echo zend_extension=php_opcache.dll >> php.ini
- echo opcache.enable_cli=1 >> php.ini
- echo extension=php_ldap.dll >> php.ini
- choco install composer
- cd C:\projects\joomla-cms
- appveyor-retry composer install --no-progress --profile
- refreshenv
- composer install --no-progress --profile
before_test:
# Database setup for MySQL via PowerShell tools
- >
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql" -u root -p"Password12!" -e "CREATE DATABASE IF NOT EXISTS joomla_ut;"
# Database setup for PostgreSQL
- SET PGUSER=postgres
- SET PGPASSWORD=Password12!
- PATH=C:\Program Files\PostgreSQL\9.4\bin\;%PATH%
- createdb joomla_ut
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql" -u root -p"Password12!" -e "CREATE DATABASE IF NOT EXISTS test_joomla;"
test_script:
- cd C:\projects\joomla-cms
- libraries/vendor/bin/phpunit --testsuite Unit
- libraries/vendor/bin/phpunit --testsuite Integration --configuration tests/phpunit-appveyor.xml.dist
7 changes: 3 additions & 4 deletions .drone.yml
Expand Up @@ -6,14 +6,13 @@ clone:

steps:
- name: composer
image: joomlaprojects/docker-images:php7.3
image: joomlaprojects/docker-images:php7.4
volumes:
- name: composer-cache
path: /tmp/composer-cache
commands:
- composer validate --no-check-all --strict
- composer install --no-progress --no-suggest
- patch -N -p0 < tests/patch/phpunit8_php8_match.patch || echo "Ignore this error."
- composer install --no-progress

- name: phpcs
image: joomlaprojects/docker-images:php7.2
Expand Down Expand Up @@ -420,6 +419,6 @@ steps:

---
kind: signature
hmac: a6f3f2ed21261b612d052724e5f43a5dd55168f98cbaa48eeaa358816bb255df
hmac: 15e1abb49597a83c250c8785948aa9fa0c6d93ec88b03e45c30d8050b338ea5d

...
19 changes: 7 additions & 12 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -13,22 +13,16 @@ modules/mod_finder/* @hackwar
plugins/content/finder/* @hackwar
plugins/finder/* @hackwar

# CodeMirror
plugins/editors/codemirror/* @okonomiyaki3000

# Statistics Server
plugins/system/stats/* @wilsonge

# Release Tools
build.xml @wilsonge
build/build.php @rdeutz @wilsonge
build/bump.php @rdeutz @wilsonge
build/deleted_file_check.php @rdeutz @wilsonge

# Core/Extension Install/Update Tools
administrator/components/com_joomlaupdate/* @rdeutz @wilsonge @zero-24
libraries/src/Installer/* @rdeutz @wilsonge @zero-24
libraries/src/Updater/* @rdeutz @wilsonge @zero-24
administrator/components/com_joomlaupdate/* @rdeutz @zero-24
libraries/src/Installer/* @rdeutz @zero-24
libraries/src/Updater/* @rdeutz @zero-24

# Automated Testing
tests/* @hackwar
Expand All @@ -37,13 +31,11 @@ tests/javascript/* @rdeutz
tests/Unit/* @rdeutz
.appveyor.yml @rdeutz @hackwar
.drone.yml @rdeutz @hackwar
.hound.yml @wilsonge @hackwar
codeception.yml @rdeutz @hackwar
phpunit.xml.dist @rdeutz @hackwar
phpunit-pgsql.xml.dist @rdeutz @hackwar
RoboFile.php @rdeutz @hackwar

# CSP Tooling
# HttpHeaders Plugin
plugins/system/httpheaders/* @zero-24

# Web Authentication (WebAuthn)
Expand Down Expand Up @@ -77,3 +69,6 @@ plugins/*/tmpl/* @chmst
templates/cassiopeia/* @chmst
layouts/* @chmst
installation/tmpl/* @chmst

# Translation GitHub Actions
.github/workflows/create-translation-pull-request-v4.yml @hleithner
4 changes: 2 additions & 2 deletions .github/CONTRIBUTING.md
Expand Up @@ -20,5 +20,5 @@ There are other branches available which serve specific purposes.
| Branch | Purpose |
| ------ | ------- |
| 3.10-dev | Branch for the Joomla 3.x series. The 3.10 series release will only include compatibility features for 4.x as well as bugfixes and security patches. |
| 4.0-dev | Branch for the Joomla 4.0 series. Commits to 3.10-dev will be applied to this branch as well. |
| 4.1-dev | Branch for the next minor Joomla version. New features go into this branch. Commits to 4.0-dev will be applied to this branch as well. |
| 4.1-dev | Branch for the current minor Joomla version. Commits to 3.10-dev will be applied to this branch as well. |
| 4.2-dev | Branch for the next minor Joomla version. New features go into this branch. Commits to 4.1-dev will be applied to this branch as well. |
4 changes: 2 additions & 2 deletions .github/workflows/create-translation-pull-request-v4.yml
Expand Up @@ -44,11 +44,11 @@ jobs:
# We use a simple copy paste syntax here if needed customization for different directories
run: |
cd ..
SYNC_VERION="v4"
SYNC_VERSION="v4"
SYNC_PATH="installation/language/"
echo ${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete --exclude="*en-GB*" core-translations-main/joomla_${SYNC_VERION}/translations/core/${SYNC_PATH} joomla-cms/${SYNC_PATH}
rsync -i -rptgo --checksum --ignore-times --delete --exclude="*en-GB*" core-translations-main/joomla_${SYNC_VERSION}/translations/core/${SYNC_PATH} joomla-cms/${SYNC_PATH}
- name: Update static error pages
run: |
Expand Down
4 changes: 2 additions & 2 deletions README.md
@@ -1,4 +1,4 @@
Joomla! CMS™
Joomla! CMS™
====================

Build Status
Expand Down Expand Up @@ -39,7 +39,7 @@ You will need:
**Steps to setup the local environment:**
- Clone the repository:
```bash
git clone git@github.com:joomla/joomla-cms.git
git clone https://github.com/joomla/joomla-cms.git
```
- Go to the joomla-cms folder:
```bash
Expand Down
114 changes: 112 additions & 2 deletions administrator/components/com_admin/script.php
Expand Up @@ -105,6 +105,7 @@ public function update($installer)
$this->updateAssets($installer);
$this->clearStatsCache();
$this->convertTablesToUtf8mb4(true);
$this->addUserAuthProviderColumn();
$this->cleanJoomlaCache();
}

Expand Down Expand Up @@ -638,7 +639,7 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
];

$files = array(
// From 3.10 to 4.0
// From 3.10 to 4.1
'/administrator/components/com_actionlogs/actionlogs.php',
'/administrator/components/com_actionlogs/controller.php',
'/administrator/components/com_actionlogs/controllers/actionlogs.php',
Expand Down Expand Up @@ -705,6 +706,8 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/administrator/components/com_admin/sql/updates/mysql/3.1.5.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.10.0-2020-08-10.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.10.0-2021-05-28.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.10.7-2022-02-20.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.10.7-2022-03-18.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.2.0.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.2.1.sql',
'/administrator/components/com_admin/sql/updates/mysql/3.2.2-2013-12-22.sql',
Expand Down Expand Up @@ -827,6 +830,9 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/administrator/components/com_admin/sql/updates/postgresql/3.1.5.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.10.0-2020-08-10.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.10.0-2021-05-28.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.10.7-2022-02-20.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.10.7-2022-02-20.sql.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.10.7-2022-03-18.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.2.0.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.2.1.sql',
'/administrator/components/com_admin/sql/updates/postgresql/3.2.2-2013-12-22.sql',
Expand Down Expand Up @@ -951,6 +957,9 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/administrator/components/com_admin/sql/updates/sqlazure/3.1.5.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.10.0-2021-05-28.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.10.1-2021-08-17.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.10.7-2022-02-20.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.10.7-2022-02-20.sql.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.10.7-2022-03-18.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.2.0.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.2.1.sql',
'/administrator/components/com_admin/sql/updates/sqlazure/3.2.2-2013-12-22.sql',
Expand Down Expand Up @@ -6332,10 +6341,52 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/templates/system/scss/offline_rtl.scss',
// From 4.1.0-beta3 to 4.1.0-rc1
'/api/components/com_media/src/Helper/AdapterTrait.php',
// From 4.1.0 to 4.1.1
'/libraries/vendor/tobscure/json-api/.git/HEAD',
'/libraries/vendor/tobscure/json-api/.git/ORIG_HEAD',
'/libraries/vendor/tobscure/json-api/.git/config',
'/libraries/vendor/tobscure/json-api/.git/description',
'/libraries/vendor/tobscure/json-api/.git/hooks/applypatch-msg.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/commit-msg.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/fsmonitor-watchman.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/post-update.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/pre-applypatch.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/pre-commit.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/pre-merge-commit.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/pre-push.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/pre-rebase.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/pre-receive.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/prepare-commit-msg.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/push-to-checkout.sample',
'/libraries/vendor/tobscure/json-api/.git/hooks/update.sample',
'/libraries/vendor/tobscure/json-api/.git/index',
'/libraries/vendor/tobscure/json-api/.git/info/exclude',
'/libraries/vendor/tobscure/json-api/.git/info/refs',
'/libraries/vendor/tobscure/json-api/.git/logs/HEAD',
'/libraries/vendor/tobscure/json-api/.git/logs/refs/heads/joomla-backports',
'/libraries/vendor/tobscure/json-api/.git/logs/refs/remotes/origin/HEAD',
'/libraries/vendor/tobscure/json-api/.git/objects/info/packs',
'/libraries/vendor/tobscure/json-api/.git/objects/pack/pack-51530cba04703b17f3c11b9e8458a171092cf5e3.idx',
'/libraries/vendor/tobscure/json-api/.git/objects/pack/pack-51530cba04703b17f3c11b9e8458a171092cf5e3.pack',
'/libraries/vendor/tobscure/json-api/.git/packed-refs',
'/libraries/vendor/tobscure/json-api/.git/refs/heads/joomla-backports',
'/libraries/vendor/tobscure/json-api/.git/refs/remotes/origin/HEAD',
'/libraries/vendor/tobscure/json-api/.php_cs',
'/libraries/vendor/tobscure/json-api/tests/AbstractSerializerTest.php',
'/libraries/vendor/tobscure/json-api/tests/AbstractTestCase.php',
'/libraries/vendor/tobscure/json-api/tests/CollectionTest.php',
'/libraries/vendor/tobscure/json-api/tests/DocumentTest.php',
'/libraries/vendor/tobscure/json-api/tests/ErrorHandlerTest.php',
'/libraries/vendor/tobscure/json-api/tests/Exception/Handler/FallbackExceptionHandlerTest.php',
'/libraries/vendor/tobscure/json-api/tests/Exception/Handler/InvalidParameterExceptionHandlerTest.php',
'/libraries/vendor/tobscure/json-api/tests/LinksTraitTest.php',
'/libraries/vendor/tobscure/json-api/tests/ParametersTest.php',
'/libraries/vendor/tobscure/json-api/tests/ResourceTest.php',
'/libraries/vendor/tobscure/json-api/tests/UtilTest.php',
);

$folders = array(
// From 3.10 to 4.0
// From 3.10 to 4.1
'/templates/system/images',
'/templates/system/html',
'/templates/protostar/less',
Expand Down Expand Up @@ -7644,6 +7695,29 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
'/administrator/templates/atum/css',
// From 4.1.0-beta3 to 4.1.0-rc1
'/api/components/com_media/src/Helper',
// From 4.1.0 to 4.1.1
'/libraries/vendor/tobscure/json-api/tests/Exception/Handler',
'/libraries/vendor/tobscure/json-api/tests/Exception',
'/libraries/vendor/tobscure/json-api/tests',
'/libraries/vendor/tobscure/json-api/.git/refs/tags',
'/libraries/vendor/tobscure/json-api/.git/refs/remotes/origin',
'/libraries/vendor/tobscure/json-api/.git/refs/remotes',
'/libraries/vendor/tobscure/json-api/.git/refs/heads',
'/libraries/vendor/tobscure/json-api/.git/refs',
'/libraries/vendor/tobscure/json-api/.git/objects/pack',
'/libraries/vendor/tobscure/json-api/.git/objects/info',
'/libraries/vendor/tobscure/json-api/.git/objects',
'/libraries/vendor/tobscure/json-api/.git/logs/refs/remotes/origin',
'/libraries/vendor/tobscure/json-api/.git/logs/refs/remotes',
'/libraries/vendor/tobscure/json-api/.git/logs/refs/heads',
'/libraries/vendor/tobscure/json-api/.git/logs/refs',
'/libraries/vendor/tobscure/json-api/.git/logs',
'/libraries/vendor/tobscure/json-api/.git/info',
'/libraries/vendor/tobscure/json-api/.git/hooks',
'/libraries/vendor/tobscure/json-api/.git/branches',
'/libraries/vendor/tobscure/json-api/.git',
// From 4.1.1 to 4.1.2
'/administrator/components/com_users/src/Field/PrimaryauthprovidersField.php',
);

$status['files_checked'] = $files;
Expand Down Expand Up @@ -8577,4 +8651,40 @@ function ($template) use ($db)
['atum', 'cassiopeia']
);
}

/**
* Add the user Auth Provider Column as it could be present from 3.10 already
*
* @return void
*
* @since 4.1.1
*/
protected function addUserAuthProviderColumn(): void
{
$db = Factory::getContainer()->get('DatabaseDriver');

// Check if the column already exists
$fields = $db->getTableColumns('#__users');

// Column exists, skip
if (isset($fields['authProvider']))
{
return;
}

$query = 'ALTER TABLE ' . $db->quoteName('#__users')
. ' ADD COLUMN ' . $db->quoteName('authProvider') . ' varchar(100) DEFAULT ' . $db->quote('') . ' NOT NULL';

// Add column
try
{
$db->setQuery($query)->execute();
}
catch (Exception $e)
{
echo Text::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $e->getCode(), $e->getMessage()) . '<br>';

return;
}
}
}
@@ -0,0 +1 @@
DELETE FROM `#__postinstall_messages` WHERE `title_key` = 'COM_ADMIN_POSTINSTALL_MSG_FLOC_BLOCKER_TITLE';

0 comments on commit d1024c3

Please sign in to comment.