39 Commits

Author SHA1 Message Date
Aleksander Machniak
fe7faeddf3 Unlock PHP 8.5 2025-10-03 15:02:57 +02:00
Aleksander Machniak
1e55383302 Use symfony/polyfill-php85 for array_first() and array_last() 2025-10-03 14:27:05 +02:00
Pablo Zmdl
a03221041e Run test with PHP 8.5-rc (#9970)
* Allow to inject composer arguments into testing scripts

* Run unit tests with PHP v8.5, too

* Run browser tests with PHP 8.5, too

* Depend on php-cs-fixer v3.8, which supports PHP v8.4

* Run code style checks in CI on PHP v8.4

* Check for vars being set and not null before using them as array keys

* Use generic tag name in container image build script

The script is meant for locally building images (the CI workflow runs
other code), so we now use localhost/ as namespace.

* Check that variable is usable before using it as array key

This includes proper type declarations for the method arguments and its return value.

* Ensure that the input to chr() is between 0 and 255.

* Require guzzle v7.10.0, which supports PHP 8.5

* Update phpunit a little to decide when to fail on deprecations

PHPUnit 10.5.47 and later know the flag `--do-not-fail-on-deprecation`, which allows us to make it not exit with code 1
in case of deprecations on the second run of the script. That second run uses the lowest valid dependencies, which might
contain deprecations when used with newer versions of PHP, but still are acceptable versions, and should not make our
tests fail.

* Run message rendering tests with PHP v8.4 and v8.5, too

* Check explicitly for null-ness

0 would be a valid value here.

* Replace chr() by mb_chr() and remove the workaround
2025-09-14 11:33:38 +02:00
Pablo Zmdl
5cab1c5b1d Render text/markdown mimeparts as HTML (#9899)
This implements rendering mime-types with content-type 'text/markdown'
and 'text/x-markdown' into HTML in the preview and show views (if not
"dispositioned" as "attachment"), but not in the get view for attached
files (the one opening attachments in an external window.)
2025-06-19 17:01:09 +02:00
Aleksander Machniak
7f273a9a2f Require guzzlehttp/promises v2
Fixes tests on PHP 8.4 with composer --prefer-lowest
2025-06-14 17:58:36 +02:00
Aleksander Machniak
b55d0cb016 composer.json: Don't require specific guzzlehttp/promises version anymore 2025-06-14 16:37:35 +02:00
Aleksander Machniak
d10af6e405 Makefile improvements and cleanup 2025-06-08 09:22:09 +02:00
Aleksander Machniak
b9bc3700c1 Allow symfony/process ^6.4 for PHP 8.1 support 2025-04-05 13:36:36 +02:00
Aleksander Machniak
5fab389625 Add (incomplete) tests for static.php and installer.php 2025-04-05 13:31:04 +02:00
Aleksander Machniak
7b88d2515b Bump minimum version of phpunit 2025-03-25 19:32:17 +01:00
Aleksander Machniak
697357c04d Bump minimum version of pear-core-minimal
to fix tests on PHP 8.4 when using --prefer-minimal dependencies
2025-03-25 19:29:23 +01:00
Aleksander Machniak
cbc6ae8c05 Set phpunit min version to 10.5 2025-03-16 16:48:52 +01:00
Aleksander Machniak
dc9f6943a4 Bump minimum phpunit version to v10 2025-03-16 16:20:47 +01:00
Aleksander Machniak
9afeb0174e Use PHPStan v2 2025-03-16 13:33:15 +01:00
Aleksander Machniak
d4526968a8 Set minimum required PHP version to 8.1 (#9599) 2025-02-16 10:09:23 +01:00
Aleksander Machniak
64df318a73 Add static files server (#9294)
Make use of public_html mandatory
2025-02-09 14:10:50 +01:00
Michael Voříšek
efcdce84ba Keep phpstan strict rules testing (#9424)
* Revert "Get rid of phpstan/phpstan-strict-rules"

This reverts commit ff59ade31a.

* drop phpstan baseline

* fix foreach phpstan issue

* adjust for rebase

* fix method call case

* ignore one phpstan error even after isset
2024-11-20 08:13:16 +01:00
Aleksander Machniak
eaf08e58e8 composer.json: Force guzzlehttp/promises v2.0 (#9599) 2024-08-25 13:29:35 +02:00
Aleksander Machniak
8a6ba22db5 Bump minimum guzzlehttp/guzzle version to 7.9.2 2024-08-21 12:08:31 +02:00
Aleksander Machniak
4703c90ec5 Bump minimum guzzlehttp/guzzle version to 7.8.2
for PHP 8.4 support
2024-08-21 11:57:04 +02:00
Aleksander Machniak
f4cdf78828 Bump some minimum versions on devel dependencies 2024-08-21 11:52:40 +02:00
Aleksander Machniak
74016a594c Enable PHP 8.4 in composer.json 2024-08-21 11:21:55 +02:00
Aleksander Machniak
06722db036 Remove "version" from composer.json 2024-08-08 14:08:44 +02:00
Aleksander Machniak
bb586790e4 Add "version" to the composer.json 2024-08-04 19:36:08 +02:00
Aleksander Machniak
6ace57e8e1 Remove plugins.roundcube.net from composer.json (#9323) 2024-08-04 19:11:53 +02:00
dependabot[bot]
571950308c Update bacon/bacon-qr-code requirement from ^2.0.8 to ^2.0.8 || ^3.0.0 (#9517)
Updates the requirements on [bacon/bacon-qr-code](https://github.com/Bacon/BaconQrCode) to permit the latest version.
- [Release notes](https://github.com/Bacon/BaconQrCode/releases)
- [Changelog](https://github.com/Bacon/BaconQrCode/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Bacon/BaconQrCode/compare/2.0.8...v3.0.0)

---
updated-dependencies:
- dependency-name: bacon/bacon-qr-code
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 09:51:11 +02:00
Michael Voříšek
6377477eb2 Add PHPUnit 10.x and 11.x support (#9480)
* Add PHPUnit 10.x and 11.x support

* fix undefined TestCase::getName() for PHPUnit 10+

* Add PHPUnit attributes but keep annotations
2024-06-13 18:40:29 +02:00
dependabot[bot]
d8b2c3b659 Update masterminds/html5 requirement from ~2.8.0 to ~2.9.0 (#9489)
Updates the requirements on [masterminds/html5](https://github.com/Masterminds/html5-php) to permit the latest version.
- [Release notes](https://github.com/Masterminds/html5-php/releases)
- [Changelog](https://github.com/Masterminds/html5-php/blob/master/RELEASE.md)
- [Commits](https://github.com/Masterminds/html5-php/compare/2.8.0...2.9.0)

---
updated-dependencies:
- dependency-name: masterminds/html5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-13 08:19:34 +02:00
Pablo Zmdl
daa5050cd3 Explicitly pin the supported versions of pear/auth_sasl (#9496)
This way we can be sure to be notified of newer versions from an
update-check.
2024-06-13 08:16:31 +02:00
dependabot[bot]
fa4cf6e116 Update pear/auth_sasl requirement from ~1.1.0 to ~1.2.0 (#9490)
* Update pear/auth_sasl requirement from ~1.1.0 to ~1.2.0

Updates the requirements on [pear/auth_sasl](https://github.com/pear/Auth_SASL) to permit the latest version.
- [Release notes](https://github.com/pear/Auth_SASL/releases)
- [Commits](https://github.com/pear/Auth_SASL/compare/v1.1.0...v1.2.0)

---
updated-dependencies:
- dependency-name: pear/auth_sasl
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Allow v1.2 as well as v1.1 of pear/auth_sasl

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Pablo Zmdl <pablo@nextcloud.com>
2024-06-11 14:06:03 +02:00
Edouard Vanbelle
f71ae0298a oauth: select auth scheme (XOAUTH2 vs OAUTHBEARER) (#9289) 2024-04-21 11:52:05 +02:00
Aleksander Machniak
ff59ade31a Get rid of phpstan/phpstan-strict-rules 2024-04-21 11:33:51 +02:00
Michael Voříšek
1e360999b2 Use composer autoloader for bundled plugins testing (#9412)
* use fixed "roundcube/plugin-installer"

* Use composer autoloader for plugins testing

* cherrypick remaining from 9241 related with testing

* minor legacy autoload improvements
2024-04-11 18:28:46 +02:00
Michael Voříšek
4611b55072 Add phpunit slow detector (#9320) 2024-04-10 12:29:58 +02:00
Michael Voříšek
52d8172b0f Allow composer autoloading (to coexist) (#9407)
* Replace custom loader in favor of composer native

* Load plugins using composer

* finish debug_logger plugin

* finish markasjunk plugin

* finish password plugin

* finish enigma plugin

* finish managesieve plugin

* fix ExtensionInstaller run on first install

* fix phpstan "Implicit array creation" in plugin config files

* simplify composer.json

* keep non-composer autoloading relying on include_path set in plugins

* update minimal "roundcube/plugin-installer" version

* "plugins.roundcube.net" root-only package repo is not needed

* REVERT ALL

* fix phpstan "Implicit array creation" in plugin config files

* update minimal "roundcube/plugin-installer" version

* reland composer.json changes

* fix ExtensionInstaller run on first install

* Roundcube (non plugin) tests are fine to rely on composer autoload

* fix CS of master

* not needed until strict composer autoloading

* improve comment

* revert rcmail_oauth change - fixed in plugin installer

* require fixed plugin installer
2024-04-10 12:27:43 +02:00
Michael Voříšek
b5a3fd646b Fix "Implicit array creation" in plugin config files (#9406)
* fix phpstan "Implicit array creation" in plugin config files
* update minimal "roundcube/plugin-installer" version
2024-04-07 12:00:03 +02:00
Michael Voříšek
bdd5de55b5 Rename composer.json.dist to composer.json (#9279)
* Rename composer.json.dist to composer.json
* fix update
2024-04-03 18:06:01 +02:00
till
600041a83e Make this a -dist so people can customize it. 2012-10-25 19:14:38 +02:00
till
8aa528b6f7 Add a composer.json file.
Add all dependencies.
2012-10-24 18:03:47 +02:00