diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 1bb147d76..f257360c6 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -41,7 +41,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.1' + php-version: '8.2' - name: Install Composer dependencies run: composer install --no-dev --no-progress --prefer-dist --optimize-autoloader diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 61d01eedd..88eacf309 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: - name: Setup PHP 🔩 uses: shivammathur/setup-php@v2 with: - php-version: '8.1' + php-version: '8.2' - name: Install Composer dependencies 🪚 run: composer install --no-dev --no-progress --prefer-dist --optimize-autoloader @@ -54,7 +54,7 @@ jobs: - name: 🔩 Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '8.1' + php-version: '8.2' - name: 🖇 Install Composer dependencies run: composer install --no-dev --no-progress --prefer-dist --optimize-autoloader diff --git a/README.md b/README.md index 13cf049a5..b69ba60ab 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ and go from there. The documentation will be translated to English in the near f * Apache / nginx ([example config](install/nginx.conf)) / caddy ([example config](install/Caddyfile)) * MySQL 5.5.3 or above (including MySQL 8.0+) / MariaDB 10.0 or above / Percona -* PHP: 8.1 / 8.2 / 8.3 / 8.4 (8.2+ required for development dependencies) +* PHP: 8.2 / 8.3 / 8.4 * PHP Extensions: mbstring, gd, bcmath, intl, tidy (optional), xml, xmlwriter * Crontab (Recommended) diff --git a/composer.json b/composer.json index e5e49d96a..8380f7b93 100644 --- a/composer.json +++ b/composer.json @@ -46,9 +46,9 @@ "forum": "https://torrentpier.com" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "arokettu/bencode": "^4.1.0", - "arokettu/monsterid": "dev-master", + "arokettu/monsterid": "^4.1.0", "arokettu/random-polyfill": "1.0.2", "arokettu/torrent-file": "^5.2.1", "belomaxorka/captcha": "1.*", @@ -70,11 +70,7 @@ "php-curl-class/php-curl-class": "^12.0.0", "robmorgan/phinx": "^0.16.9", "samdark/sitemap": "2.4.1", - "symfony/event-dispatcher": "^6.4", - "symfony/filesystem": "^6.4", - "symfony/finder": "^6.4", - "symfony/mailer": "^6.4", - "symfony/mime": "^6.4", + "symfony/mailer": "^7.3", "symfony/polyfill": "v1.32.0", "vlucas/phpdotenv": "^5.5", "z4kn4fein/php-semver": "^v3.0.0" @@ -82,7 +78,7 @@ "require-dev": { "mockery/mockery": "^1.6", "pestphp/pest": "^3.8", - "symfony/var-dumper": "^6.4" + "symfony/var-dumper": "^7.3" }, "autoload": { "psr-4": { @@ -102,6 +98,6 @@ "php-http/discovery": true } }, - "minimum-stability": "dev", + "minimum-stability": "stable", "prefer-stable": true } diff --git a/composer.lock b/composer.lock index 44f7ea4c8..b17809347 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": "22ce2e2cd48a2460b740ef920c114be6", + "content-hash": "7a49154cbc59ebda181451dd8fa93a6d", "packages": [ { "name": "arokettu/bencode", @@ -141,7 +141,7 @@ }, { "name": "arokettu/monsterid", - "version": "dev-master", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/arokettu/monsterid.git", @@ -171,7 +171,6 @@ "squizlabs/php_codesniffer": "*", "vimeo/psalm": "^5.4 || ^6.0" }, - "default-branch": true, "type": "library", "extra": { "discovery": { @@ -605,7 +604,7 @@ }, { "name": "cakephp/core", - "version": "5.2.4", + "version": "5.2.5", "source": { "type": "git", "url": "https://github.com/cakephp/core.git", @@ -672,16 +671,16 @@ }, { "name": "cakephp/database", - "version": "5.2.4", + "version": "5.2.5", "source": { "type": "git", "url": "https://github.com/cakephp/database.git", - "reference": "8c4eaecf6612274b445172b680dc47a2dad681a9" + "reference": "a6bf606b1bab532d04ea504fef8a272a1aeba287" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/database/zipball/8c4eaecf6612274b445172b680dc47a2dad681a9", - "reference": "8c4eaecf6612274b445172b680dc47a2dad681a9", + "url": "https://api.github.com/repos/cakephp/database/zipball/a6bf606b1bab532d04ea504fef8a272a1aeba287", + "reference": "a6bf606b1bab532d04ea504fef8a272a1aeba287", "shasum": "" }, "require": { @@ -735,11 +734,11 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/database" }, - "time": "2025-05-09T15:08:51+00:00" + "time": "2025-06-18T02:55:13+00:00" }, { "name": "cakephp/datasource", - "version": "5.2.4", + "version": "5.2.5", "source": { "type": "git", "url": "https://github.com/cakephp/datasource.git", @@ -806,16 +805,16 @@ }, { "name": "cakephp/utility", - "version": "5.2.4", + "version": "5.2.5", "source": { "type": "git", "url": "https://github.com/cakephp/utility.git", - "reference": "76dcd5c20e46aaf5bfdf9ad51e9f5313abffe104" + "reference": "7eaef40766bf671332adfacdc2d6fb9ea8aea5de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/utility/zipball/76dcd5c20e46aaf5bfdf9ad51e9f5313abffe104", - "reference": "76dcd5c20e46aaf5bfdf9ad51e9f5313abffe104", + "url": "https://api.github.com/repos/cakephp/utility/zipball/7eaef40766bf671332adfacdc2d6fb9ea8aea5de", + "reference": "7eaef40766bf671332adfacdc2d6fb9ea8aea5de", "shasum": "" }, "require": { @@ -866,7 +865,7 @@ "issues": "https://github.com/cakephp/cakephp/issues", "source": "https://github.com/cakephp/utility" }, - "time": "2025-04-19T12:34:03+00:00" + "time": "2025-05-21T14:35:19+00:00" }, { "name": "claviska/simpleimage", @@ -3569,22 +3568,22 @@ }, { "name": "symfony/config", - "version": "v7.0.8", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60" + "reference": "ba62ae565f1327c2f6366726312ed828c85853bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60", - "reference": "f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60", + "url": "https://api.github.com/repos/symfony/config/zipball/ba62ae565f1327c2f6366726312ed828c85853bc", + "reference": "ba62ae565f1327c2f6366726312ed828c85853bc", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/filesystem": "^6.4|^7.0", + "symfony/filesystem": "^7.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -3624,7 +3623,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.0.8" + "source": "https://github.com/symfony/config/tree/v7.3.0" }, "funding": [ { @@ -3640,7 +3639,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:55:39+00:00" + "time": "2025-05-15T09:04:05+00:00" }, { "name": "symfony/console", @@ -3805,24 +3804,24 @@ }, { "name": "symfony/event-dispatcher", - "version": "v6.4.13", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" + "reference": "497f73ac996a598c92409b44ac43b6690c4f666d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", + "reference": "497f73ac996a598c92409b44ac43b6690c4f666d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -3831,13 +3830,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3865,7 +3864,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0" }, "funding": [ { @@ -3881,7 +3880,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-04-22T09:11:45+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3961,25 +3960,25 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.13", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4007,7 +4006,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" + "source": "https://github.com/symfony/filesystem/tree/v7.3.0" }, "funding": [ { @@ -4023,27 +4022,27 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2024-10-25T15:15:23+00:00" }, { "name": "symfony/finder", - "version": "v6.4.17", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" + "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", + "url": "https://api.github.com/repos/symfony/finder/zipball/ec2344cf77a48253bbca6939aa3d2477773ea63d", + "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.0|^7.0" + "symfony/filesystem": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4071,7 +4070,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.17" + "source": "https://github.com/symfony/finder/tree/v7.3.0" }, "funding": [ { @@ -4087,43 +4086,43 @@ "type": "tidelift" } ], - "time": "2024-12-29T13:51:37+00:00" + "time": "2024-12-30T19:00:26+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.21", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "ada2809ccd4ec27aba9fc344e3efdaec624c6438" + "reference": "0f375bbbde96ae8c78e4aa3e63aabd486e33364c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/ada2809ccd4ec27aba9fc344e3efdaec624c6438", - "reference": "ada2809ccd4ec27aba9fc344e3efdaec624c6438", + "url": "https://api.github.com/repos/symfony/mailer/zipball/0f375bbbde96ae8c78e4aa3e63aabd486e33364c", + "reference": "0f375bbbde96ae8c78e4aa3e63aabd486e33364c", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3|^4", - "php": ">=8.1", + "php": ">=8.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/mime": "^6.2|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/mime": "^7.2", "symfony/service-contracts": "^2.5|^3" }, "conflict": { "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", - "symfony/messenger": "<6.2", - "symfony/mime": "<6.2", - "symfony/twig-bridge": "<6.2.1" + "symfony/http-kernel": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/twig-bridge": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/messenger": "^6.2|^7.0", - "symfony/twig-bridge": "^6.2|^7.0" + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4151,7 +4150,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.21" + "source": "https://github.com/symfony/mailer/tree/v7.3.0" }, "funding": [ { @@ -4167,25 +4166,24 @@ "type": "tidelift" } ], - "time": "2025-04-26T23:47:35+00:00" + "time": "2025-04-04T09:51:09+00:00" }, { "name": "symfony/mime", - "version": "v6.4.21", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "fec8aa5231f3904754955fad33c2db50594d22d1" + "reference": "0e7b19b2f399c31df0cdbe5d8cbf53f02f6cfcd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/fec8aa5231f3904754955fad33c2db50594d22d1", - "reference": "fec8aa5231f3904754955fad33c2db50594d22d1", + "url": "https://api.github.com/repos/symfony/mime/zipball/0e7b19b2f399c31df0cdbe5d8cbf53f02f6cfcd9", + "reference": "0e7b19b2f399c31df0cdbe5d8cbf53f02f6cfcd9", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -4193,17 +4191,17 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<5.4", + "symfony/mailer": "<6.4", "symfony/serializer": "<6.4.3|>7.0,<7.0.3" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.4|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", "symfony/serializer": "^6.4.3|^7.0.3" }, "type": "library", @@ -4236,7 +4234,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.21" + "source": "https://github.com/symfony/mime/tree/v7.3.0" }, "funding": [ { @@ -4252,7 +4250,7 @@ "type": "tidelift" } ], - "time": "2025-04-27T13:27:38+00:00" + "time": "2025-02-19T08:51:26+00:00" }, { "name": "symfony/polyfill", @@ -7534,34 +7532,33 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.21", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" + "reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", - "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/548f6760c54197b1084e1e5c71f6d9d523f2f78e", + "reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -7599,7 +7596,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" + "source": "https://github.com/symfony/var-dumper/tree/v7.3.0" }, "funding": [ { @@ -7615,7 +7612,7 @@ "type": "tidelift" } ], - "time": "2025-04-09T07:34:50+00:00" + "time": "2025-04-27T18:39:23+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", @@ -7786,15 +7783,14 @@ } ], "aliases": [], - "minimum-stability": "dev", + "minimum-stability": "stable", "stability-flags": { - "arokettu/monsterid": 20, "gemorroj/m3u-parser": 20 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=8.1" + "php": ">=8.2" }, "platform-dev": {}, "plugin-api-version": "2.6.0" diff --git a/install.php b/install.php index 2a3430a35..b04535eda 100644 --- a/install.php +++ b/install.php @@ -25,7 +25,7 @@ require INC_DIR . '/functions_cli.php'; * System requirements */ const CHECK_REQUIREMENTS = [ - 'php_min_version' => '8.1.0', + 'php_min_version' => '8.2.0', 'ext_list' => [ 'json', 'curl', @@ -146,26 +146,7 @@ if (!is_file(BB_ROOT . 'vendor/autoload.php')) { if (is_file(BB_ROOT . 'composer.phar')) { out('- Installing dependencies...', 'info'); - // Ask if user is a developer before installing dependencies - $isDeveloper = false; - echo "\nAre you a developer who needs testing tools and dev dependencies? [y/N]: "; - if (str_starts_with(mb_strtolower(trim(readline())), 'y')) { - $isDeveloper = true; - if (!version_compare(PHP_VERSION, '8.2.0', '>=')) { - out("- Warning: Development dependencies require PHP 8.2+, your version is " . PHP_VERSION, 'warning'); - out("- Some testing tools may not work properly", 'warning'); - } - out("- Installing all dependencies including dev tools...\n", 'info'); - } else { - out("- Installing production dependencies only...\n", 'info'); - } - - $composerFlags = '--no-interaction --no-ansi'; - if (!$isDeveloper) { - $composerFlags .= ' --no-dev'; - } - - runProcess('php ' . BB_ROOT . 'composer.phar install ' . $composerFlags); + runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi'); define('COMPOSER_COMPLETED', true); } else { out('- composer.phar not found. Please, download it (composer.phar) manually', 'error');