diff --git a/Dockerfile b/Dockerfile index 6a1f70288..bd040c3fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,8 @@ ENV DEB_RELEASE=bookworm ENV DEBIAN_FRONTEND=noninteractive ENV PHP_VER=8.4 ENV NODE_VERSION=20 -# commit of composer 2.8.6 -ENV COMPOSER_COMMIT=51c25eb405dc44528575cb36aea4aeec31c4bf15 +# commit of composer 2.8.8 +ENV COMPOSER_COMMIT=f3108f64b4e1c1ce6eb462b159956461592b3e3e # Uncomment to skip the chromium download when installing puppeteer. If you do, # you'll need to launch puppeteer with: @@ -98,6 +98,13 @@ RUN apt-get update \ libnss3 \ lsb-release \ xdg-utils \ + # cypress + # all below is needed until running cypress headless/electron-less is fixed: https://github.com/cypress-io/cypress/issues/23636 + libgbm-dev \ + libgtk2.0-0 \ + libnotify-dev \ + procps \ + xvfb \ && apt-get autoremove \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ diff --git a/composer.json b/composer.json index dd3b4d85b..4416a39a1 100644 --- a/composer.json +++ b/composer.json @@ -44,6 +44,6 @@ "phpunit/php-code-coverage": "^11", "phpunit/phpunit": "^11", "rector/rector": "^1.2", - "squizlabs/php_codesniffer": "^3.11" + "squizlabs/php_codesniffer": "^3.12" } } diff --git a/composer.lock b/composer.lock index d483722fd..e73dac16c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8d317a9cdc51f5861dd39e0e29b348b2", + "content-hash": "e7c11d90bb725a79b986f803f04aff15", "packages": [ { "name": "bacon/bacon-qr-code", @@ -167,20 +167,20 @@ }, { "name": "cakephp/core", - "version": "5.1.6", + "version": "5.2.0", "source": { "type": "git", "url": "https://github.com/cakephp/core.git", - "reference": "a444d4e993b40da3bc53fccb669b3937b11911be" + "reference": "3c363b20b52af996e535bf24b85fee77c110a50d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/core/zipball/a444d4e993b40da3bc53fccb669b3937b11911be", - "reference": "a444d4e993b40da3bc53fccb669b3937b11911be", + "url": "https://api.github.com/repos/cakephp/core/zipball/3c363b20b52af996e535bf24b85fee77c110a50d", + "reference": "3c363b20b52af996e535bf24b85fee77c110a50d", "shasum": "" }, "require": { - "cakephp/utility": "^5.1", + "cakephp/utility": "5.2.*@dev", "league/container": "^4.2", "php": ">=8.1", "psr/container": "^1.1 || ^2.0" @@ -194,6 +194,11 @@ "league/container": "To use Container and ServiceProvider classes" }, "type": "library", + "extra": { + "branch-alias": { + "dev-5.next": "5.2.x-dev" + } + }, "autoload": { "files": [ "functions.php" @@ -225,38 +230,43 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/core" }, - "time": "2025-01-30T19:58:11+00:00" + "time": "2025-01-31T16:36:33+00:00" }, { "name": "cakephp/database", - "version": "5.1.6", + "version": "5.2.0", "source": { "type": "git", "url": "https://github.com/cakephp/database.git", - "reference": "004d1050f6017809cc83fe7c7aad833303a48327" + "reference": "b06cfc843898525ae8a1b17a3963d12d9cff8046" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/database/zipball/004d1050f6017809cc83fe7c7aad833303a48327", - "reference": "004d1050f6017809cc83fe7c7aad833303a48327", + "url": "https://api.github.com/repos/cakephp/database/zipball/b06cfc843898525ae8a1b17a3963d12d9cff8046", + "reference": "b06cfc843898525ae8a1b17a3963d12d9cff8046", "shasum": "" }, "require": { "cakephp/chronos": "^3.1", - "cakephp/core": "^5.1", - "cakephp/datasource": "^5.1", + "cakephp/core": "5.2.*@dev", + "cakephp/datasource": "5.2.*@dev", "php": ">=8.1", "psr/log": "^3.0" }, "require-dev": { - "cakephp/i18n": "^5.1", - "cakephp/log": "^5.1" + "cakephp/i18n": "5.2.*@dev", + "cakephp/log": "5.2.*@dev" }, "suggest": { "cakephp/i18n": "If you are using locale-aware datetime formats.", "cakephp/log": "If you want to use query logging without providing a logger yourself." }, "type": "library", + "extra": { + "branch-alias": { + "dev-5.next": "5.2.x-dev" + } + }, "autoload": { "psr-4": { "Cake\\Database\\": "." @@ -287,31 +297,31 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/database" }, - "time": "2025-02-09T07:12:20+00:00" + "time": "2025-03-25T02:26:39+00:00" }, { "name": "cakephp/datasource", - "version": "5.1.6", + "version": "5.2.0", "source": { "type": "git", "url": "https://github.com/cakephp/datasource.git", - "reference": "49c4e6864213b00ea3ce21874c6a5cfbfb3c8556" + "reference": "fcba5eccaa045a55b01d6481ce7d563ebda9e567" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/datasource/zipball/49c4e6864213b00ea3ce21874c6a5cfbfb3c8556", - "reference": "49c4e6864213b00ea3ce21874c6a5cfbfb3c8556", + "url": "https://api.github.com/repos/cakephp/datasource/zipball/fcba5eccaa045a55b01d6481ce7d563ebda9e567", + "reference": "fcba5eccaa045a55b01d6481ce7d563ebda9e567", "shasum": "" }, "require": { - "cakephp/core": "^5.1", + "cakephp/core": "5.2.*@dev", "php": ">=8.1", "psr/simple-cache": "^2.0 || ^3.0" }, "require-dev": { - "cakephp/cache": "^5.1", - "cakephp/collection": "^5.1", - "cakephp/utility": "^5.1" + "cakephp/cache": "5.2.*@dev", + "cakephp/collection": "5.2.*@dev", + "cakephp/utility": "5.2.*@dev" }, "suggest": { "cakephp/cache": "If you decide to use Query caching.", @@ -319,6 +329,11 @@ "cakephp/utility": "If you decide to use EntityTrait." }, "type": "library", + "extra": { + "branch-alias": { + "dev-5.next": "5.2.x-dev" + } + }, "autoload": { "psr-4": { "Cake\\Datasource\\": "." @@ -349,24 +364,24 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/datasource" }, - "time": "2025-02-04T02:45:22+00:00" + "time": "2025-03-21T17:20:29+00:00" }, { "name": "cakephp/utility", - "version": "5.1.6", + "version": "5.2.0", "source": { "type": "git", "url": "https://github.com/cakephp/utility.git", - "reference": "7fd683a85971f7d0b39d446b7265c301050f91c1" + "reference": "23914ff52d70671d696b019c34fe82503231dcf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/utility/zipball/7fd683a85971f7d0b39d446b7265c301050f91c1", - "reference": "7fd683a85971f7d0b39d446b7265c301050f91c1", + "url": "https://api.github.com/repos/cakephp/utility/zipball/23914ff52d70671d696b019c34fe82503231dcf5", + "reference": "23914ff52d70671d696b019c34fe82503231dcf5", "shasum": "" }, "require": { - "cakephp/core": "^5.1", + "cakephp/core": "5.2.*@dev", "php": ">=8.1" }, "suggest": { @@ -374,6 +389,11 @@ "lib-ICU": "To use Text::transliterate() or Text::slug()" }, "type": "library", + "extra": { + "branch-alias": { + "dev-5.next": "5.2.x-dev" + } + }, "autoload": { "files": [ "bootstrap.php" @@ -408,7 +428,7 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/utility" }, - "time": "2025-01-11T17:40:02+00:00" + "time": "2025-03-21T17:20:29+00:00" }, { "name": "composer/semver", @@ -1969,16 +1989,16 @@ }, { "name": "symfony/console", - "version": "v7.2.1", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" + "reference": "e51498ea18570c062e7df29d05a7003585b19b88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", - "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88", + "reference": "e51498ea18570c062e7df29d05a7003585b19b88", "shasum": "" }, "require": { @@ -2042,7 +2062,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.2.1" + "source": "https://github.com/symfony/console/tree/v7.2.5" }, "funding": [ { @@ -2058,7 +2078,7 @@ "type": "tidelift" } ], - "time": "2024-12-11T03:49:26+00:00" + "time": "2025-03-12T08:11:12+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2513,16 +2533,16 @@ }, { "name": "symfony/process", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf" + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf", - "reference": "d8f411ff3c7ddc4ae9166fb388d1190a2df5b5cf", + "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d", + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d", "shasum": "" }, "require": { @@ -2554,7 +2574,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.2.4" + "source": "https://github.com/symfony/process/tree/v7.2.5" }, "funding": [ { @@ -2570,7 +2590,7 @@ "type": "tidelift" } ], - "time": "2025-02-05T08:33:46+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/service-contracts", @@ -2744,16 +2764,16 @@ }, { "name": "symfony/yaml", - "version": "v7.2.3", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec" + "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ac238f173df0c9c1120f862d0f599e17535a87ec", - "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", + "reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", "shasum": "" }, "require": { @@ -2796,7 +2816,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.2.3" + "source": "https://github.com/symfony/yaml/tree/v7.2.5" }, "funding": [ { @@ -2812,7 +2832,7 @@ "type": "tidelift" } ], - "time": "2025-01-07T12:55:42+00:00" + "time": "2025-03-03T07:12:39+00:00" }, { "name": "twig/twig", @@ -3487,16 +3507,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.21", + "version": "1.12.23", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "14276fdef70575106a3392a4ed553c06a984df28" + "reference": "29201e7a743a6ab36f91394eab51889a82631428" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/14276fdef70575106a3392a4ed553c06a984df28", - "reference": "14276fdef70575106a3392a4ed553c06a984df28", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/29201e7a743a6ab36f91394eab51889a82631428", + "reference": "29201e7a743a6ab36f91394eab51889a82631428", "shasum": "" }, "require": { @@ -3541,7 +3561,7 @@ "type": "github" } ], - "time": "2025-03-09T09:24:50+00:00" + "time": "2025-03-23T14:57:32+00:00" }, { "name": "phpunit/php-code-coverage", @@ -3930,16 +3950,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.12", + "version": "11.5.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d42785840519401ed2113292263795eb4c0f95da" + "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d42785840519401ed2113292263795eb4c0f95da", - "reference": "d42785840519401ed2113292263795eb4c0f95da", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", + "reference": "4b6a4ee654e5e0c5e1f17e2f83c0f4c91dee1f9c", "shasum": "" }, "require": { @@ -3959,14 +3979,14 @@ "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.2", + "sebastian/code-unit": "^3.0.3", "sebastian/comparator": "^6.3.1", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.0", "sebastian/exporter": "^6.3.0", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", - "sebastian/type": "^5.1.0", + "sebastian/type": "^5.1.2", "sebastian/version": "^5.0.2", "staabm/side-effects-detector": "^1.0.5" }, @@ -4011,7 +4031,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.12" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.15" }, "funding": [ { @@ -4027,7 +4047,7 @@ "type": "tidelift" } ], - "time": "2025-03-07T07:31:03+00:00" + "time": "2025-03-23T16:02:11+00:00" }, { "name": "rector/rector", @@ -4147,16 +4167,16 @@ }, { "name": "sebastian/code-unit", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca" + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", - "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", "shasum": "" }, "require": { @@ -4192,7 +4212,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" }, "funding": [ { @@ -4200,7 +4220,7 @@ "type": "github" } ], - "time": "2024-12-12T09:59:06+00:00" + "time": "2025-03-19T07:56:08+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -4905,16 +4925,16 @@ }, { "name": "sebastian/type", - "version": "5.1.0", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac" + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/461b9c5da241511a2a0e8f240814fb23ce5c0aac", - "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", "shasum": "" }, "require": { @@ -4950,7 +4970,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/type/tree/5.1.2" }, "funding": [ { @@ -4958,7 +4978,7 @@ "type": "github" } ], - "time": "2024-09-17T13:12:04+00:00" + "time": "2025-03-18T13:35:50+00:00" }, { "name": "sebastian/version", @@ -5016,16 +5036,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.3", + "version": "3.12.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" + "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ea16a1f3719783345febd3aab41beb55c8c84bfd", + "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd", "shasum": "" }, "require": { @@ -5092,11 +5112,11 @@ "type": "open_collective" }, { - "url": "https://thanks.dev/phpcsstandards", + "url": "https://thanks.dev/u/gh/phpcsstandards", "type": "thanks_dev" } ], - "time": "2025-01-23T17:04:15+00:00" + "time": "2025-04-04T12:57:55+00:00" }, { "name": "staabm/side-effects-detector", @@ -5152,16 +5172,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "f0a1614cccb4b8431a97076f9debc08ddca321ca" + "reference": "58ab71379f14a741755717cece2868bf41ed45d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f0a1614cccb4b8431a97076f9debc08ddca321ca", - "reference": "f0a1614cccb4b8431a97076f9debc08ddca321ca", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/58ab71379f14a741755717cece2868bf41ed45d8", + "reference": "58ab71379f14a741755717cece2868bf41ed45d8", "shasum": "" }, "require": { @@ -5169,7 +5189,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^3.5", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^6.4.20|^7.2.5" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -5212,7 +5232,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.2.4" + "source": "https://github.com/symfony/dependency-injection/tree/v7.2.5" }, "funding": [ { @@ -5228,20 +5248,20 @@ "type": "tidelift" } ], - "time": "2025-02-21T09:47:16+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.2.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a" + "reference": "c37b301818bd7288715d40de634f05781b686ace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4ede73aa7a73d81506002d2caadbbdad1ef5b69a", - "reference": "4ede73aa7a73d81506002d2caadbbdad1ef5b69a", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/c37b301818bd7288715d40de634f05781b686ace", + "reference": "c37b301818bd7288715d40de634f05781b686ace", "shasum": "" }, "require": { @@ -5288,7 +5308,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.2.4" + "source": "https://github.com/symfony/var-exporter/tree/v7.2.5" }, "funding": [ { @@ -5304,7 +5324,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T10:27:23+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "theseer/tokenizer", diff --git a/misc/docker/web/bootstrap-npm.sh b/misc/docker/web/bootstrap-npm.sh index 028485b0f..55482f060 100755 --- a/misc/docker/web/bootstrap-npm.sh +++ b/misc/docker/web/bootstrap-npm.sh @@ -7,7 +7,8 @@ export npm_config_cache bin/config-css /tmp/config-css.js -npm install +npm install -g npm@11.2.0 +npm install sass npx update-browserslist-db@latest npx puppeteer browsers install chrome npm run build diff --git a/misc/docker/web/entrypoint.sh b/misc/docker/web/entrypoint.sh index 6b36c05e4..a7bd81c9e 100644 --- a/misc/docker/web/entrypoint.sh +++ b/misc/docker/web/entrypoint.sh @@ -14,7 +14,8 @@ if [ ! -e .docker-init-done ] ; then bin/local-patch echo "Installing node, go grab a coffee" bin/config-css /tmp/config-css.js - npm install + npm install -g npm@11.2.0 + npm install cypress npx update-browserslist-db@latest npx puppeteer browsers install chrome bin/config-css /tmp/config-css.js diff --git a/misc/docker/web/xdebug.ini b/misc/docker/web/xdebug.ini index a4a5c615d..c7402beb7 100644 --- a/misc/docker/web/xdebug.ini +++ b/misc/docker/web/xdebug.ini @@ -4,6 +4,6 @@ xdebug.remote_handler="dbgp" xdebug.mode=develop xdebug.discover_client_host=On xdebug.log=/var/log/xdebug.log -xdebug.force_display_errors=1 -xdebug.show_error_trace=1 -xdebug.show_exception_trace=1 +xdebug.force_display_errors=0 +xdebug.show_error_trace=0 +xdebug.show_exception_trace=0 diff --git a/misc/gitlab.Dockerfile b/misc/gitlab.Dockerfile index 25561a4b2..d3d1dcf1c 100644 --- a/misc/gitlab.Dockerfile +++ b/misc/gitlab.Dockerfile @@ -1,19 +1,19 @@ FROM debian:bookworm-slim -WORKDIR /var/www - ENV DEB_RELEASE=bookworm ENV DEBIAN_FRONTEND=noninteractive ENV PHP_VER=8.4 ENV NODE_VERSION=20 -# commit of composer 2.8.6 -ENV COMPOSER_COMMIT=51c25eb405dc44528575cb36aea4aeec31c4bf15 +# commit of composer 2.8.8 +ENV COMPOSER_COMMIT=f3108f64b4e1c1ce6eb462b159956461592b3e3e # Uncomment to skip the chromium download when installing puppeteer. If you do, # you'll need to launch puppeteer with: # browser.launch({executablePath: 'google-chrome-unstable'}) # ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true +WORKDIR /var/www + RUN apt-get update \ && apt-get install -y --no-install-recommends \ apt-transport-https \ @@ -57,6 +57,7 @@ RUN apt-get update \ unzip \ zlib1g-dev \ # This installs the necessary packages to run the bundled version of chromium for puppeteer + fonts-liberation \ gconf-service \ libasound2 \ libatk1.0-0 \ @@ -72,6 +73,7 @@ RUN apt-get update \ libglib2.0-0 \ libgtk-3-0 \ libnspr4 \ + libnss3 \ libpango-1.0-0 \ libpangocairo-1.0-0 \ libstdc++6 \ @@ -88,8 +90,6 @@ RUN apt-get update \ libxrender1 \ libxss1 \ libxtst6 \ - fonts-liberation \ - libnss3 \ lsb-release \ xdg-utils \ && apt-get autoremove \ @@ -108,20 +108,14 @@ RUN apt-get update \ RUN echo "deb http://deb.debian.org/debian ${DEB_RELEASE}-backports main" > /etc/apt/sources.list.d/backports.list \ && apt-get update \ && apt-get install -y --no-install-recommends \ - postgresql-client \ default-mysql-client \ libmemcached-tools \ + postgresql-client \ sphinxsearch \ # all below is needed until running cypress headless/electron-less is fixed: https://github.com/cypress-io/cypress/issues/23636 libgtk2.0-0 \ - libgtk-3-0 \ libnotify-dev \ - libgconf-2-4 \ libgbm-dev \ - libnss3 \ - libxss1 \ - libasound2 \ - libxtst6 \ procps \ xvfb \ && apt-get autoremove \ diff --git a/misc/phpstan.neon b/misc/phpstan.neon index 4a5803807..40af073a6 100644 --- a/misc/phpstan.neon +++ b/misc/phpstan.neon @@ -22,8 +22,6 @@ parameters: reportStaticMethodSignatures: true reportWrongPhpDocTypeInVarTag: true errorFormat: table - stubFiles: - - ../lib/stub/memcached.stub bootstrapFiles: - ../lib/config.php scanFiles: diff --git a/misc/phpunit.xml b/misc/phpunit.xml index 29e8034f1..51194e7ad 100644 --- a/misc/phpunit.xml +++ b/misc/phpunit.xml @@ -22,9 +22,4 @@ - - - - - diff --git a/misc/pre-commit.example b/misc/pre-commit.example deleted file mode 100755 index a38e6c891..000000000 --- a/misc/pre-commit.example +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -bin/lint-staged diff --git a/package-lock.json b/package-lock.json index 8584ee5a5..2f1f74fa7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "devDependencies": { "@eslint/js": "^9.14", "@stylistic/eslint-plugin-js": "^2.10", - "cypress": "^13.15", + "cypress": "^13.17.0", "cypress-terminal-report": "^7.0.4", "eslint": "^9.14", "globals": "^15.12", @@ -1469,9 +1469,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001701", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz", - "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==", + "version": "1.0.30001712", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz", + "integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==", "dev": true, "funding": [ { @@ -1841,9 +1841,9 @@ } }, "node_modules/cypress": { - "version": "13.15.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.15.2.tgz", - "integrity": "sha512-ARbnUorjcCM3XiPwgHKuqsyr5W9Qn+pIIBPaoilnoBkLdSC2oLQjV1BUpnmc7KR+b7Avah3Ly2RMFnfxr96E/A==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", + "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", "dev": true, "hasInstallScript": true, "license": "MIT", diff --git a/package.json b/package.json index 868a0ded3..f6556e24e 100644 --- a/package.json +++ b/package.json @@ -12,24 +12,24 @@ }, "license": "Unlicense", "devDependencies": { - "@eslint/js": "^9.14", - "@stylistic/eslint-plugin-js": "^2.10", - "cypress": "^13.15", - "cypress-terminal-report": "^7.0.4", - "eslint": "^9.14", + "@eslint/js": "^9.24", + "@stylistic/eslint-plugin-js": "^4.2", + "cypress": "^13.17", + "cypress-terminal-report": "^7.1.0", + "eslint": "^9.24", "globals": "^15.12", - "stylelint": "^16.9", + "stylelint": "^16.18", "stylelint-checkstyle-formatter": "^0.1.2", "stylelint-config-recommended": "^14.0.1", "stylelint-config-standard": "^36.0.1", - "stylelint-scss": "^6.9", - "update-browserslist-db": "1.1.1" + "stylelint-scss": "^6.11.1", + "update-browserslist-db": "1.1" }, "dependencies": { "cross-env": "^7.0", - "puppeteer": "^23.8", - "sass": "^1.80.7", - "sharp": "^0.33.5" + "puppeteer": "^24.6", + "sass": "^1.86", + "sharp": "^0.34" }, "browserslist": [ "last 3 versions", diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js index 7eb145b35..19863c556 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.js @@ -24,6 +24,8 @@ // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +/* global Cypress, cy */ + const date = new Date(); const footer = `Site and design © ${date.getFullYear()} Gazelle`; @@ -38,6 +40,9 @@ Cypress.Commands.add('login', (username, password) => { }) }) +// When running Cypress tests locally, change the following login calls +// to users that exist in your environment. + Cypress.Commands.add('loginAdmin', () => { cy.login('admin', 'password'); })