Commit Graph

41 Commits

Author SHA1 Message Date
Alexandre Alapetite
00cd5df294 Use native PHP #[Deprecated] (#8325)
https://php.watch/versions/8.4/Deprecated
And enfore it with PHPUnit + PHPStan.
Especially useful for extensions.
2025-12-17 10:11:18 +01:00
Alexandre Alapetite
bccda77cd4 phpstan analyse --memory-limit 512M (#8288) 2025-12-05 22:37:54 +01:00
Alexandre Alapetite
2e54352051 Docker: Alpine 3.23 (#8285)
https://alpinelinux.org/posts/Alpine-3.23.0-released.html
PHP 8.4.15, Apache/2.4.65
Dev Container updated from PHP 8.3.x to PHP 8.4.x.
2025-12-05 22:20:57 +01:00
Alexandre Alapetite
1c92d55917 Use native CSS instead of SCSS (#8241)
I was tired of having to handle the SCSS themes differently.
fix https://github.com/FreshRSS/FreshRSS/issues/7611
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8200
Convert Ansum and Mapco themes from SCSS to native CSS.
The changes are actually quite limited (mostly changing the syntax of the variables and a few other things)
Require support for:
* https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Nesting
* https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/Nesting_selector
* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix

SCSS and SAAS tools and references are also removed.

Tests welcome.
The styles are left as individual CSS files as designed originally in SCSS. I expect proper HTTP caching and HTTP/2 to be sufficient instead of aggregating back to a single CSS, but might be done in another PR if needed.

At the same time, fixed the fact that we had various whitespace styles in our JSON files, in particular in those themes, sometimes with 2 spaces, or 4 spaces, or tabs. Use tabs everywhere as defined in editorconfig.

I would like to merge this one first to complete https://github.com/FreshRSS/FreshRSS/pull/8230

* RTLCSS stringMap
https://github.com/FreshRSS/FreshRSS/pull/8241#discussion_r2553175514
https://github.com/MohammadYounes/rtlcss/issues/108#issuecomment-347033134
2025-11-23 13:15:10 +01:00
Alexandre Alapetite
833007f586 Upgrade to PHP_CodeSniffer 4 (#7993)
https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki/Version-4.0-User-Upgrade-Guide
A couple of rules have changed name. Exclusion paths have slightly changed behaviour.
Main change is that it was unhappy with our i18n header comments, so minor edit there, since that rule kind of makes sense the rest of the time
2025-09-22 22:02:59 +02:00
Alexis Degrugillier
8a59dc3402 add target to generate the translation progress (#7905)
* add target to generate the translation progress

* replace short options by long options

This adds a little bit of explanation for someone looking at the code without knowing
how the underlying script is working.

* sort test targets

* sort i18n targets
2025-09-03 06:50:24 +02:00
Alexandre Alapetite
62f32ccadf PHPStan: finalise strictArrayFilter (#7794)
As well as reportPossiblyNonexistentConstantArrayOffset.
And disable PHPStan-next from GitHub Action, since the work is completed for now.
2025-08-07 22:19:45 +02:00
Inverle
f9a42adade Show translation status in README.md (#7715)
* Show translation status in README.md

* Fix colon

* markdownlint: Allow tag `<translations>`

* Use mostly Unicode flags instead

* Only `oc.svg` remains in an image format
* `check.translation.php` still supports `.png` even though there aren't any PNGs as of right now

* Fix CodeSniffer

* Attempt approach with generating local SVGs

* Fixes for local SVG approach

* Cleanup old code

* PHPStan fix

* Remove decimal precision from percentages

* Suggestions + better error messages

* codesniffer fix v2

* Revert `ghSearchUrl` change

* Generate readme

* Fix syntax highlight, maybe

* Regenerate

* Update help message

* Use existing translation files instead of .txt

* Add test against wrong Unicode flag

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-07-16 16:11:51 +02:00
Alexandre Alapetite
78dfb44060 Pass phpstan-strict-rules 2.0.4 (#7488)
New check for Boolean in while conditions
Replace https://github.com/FreshRSS/FreshRSS/pull/7481
2025-04-02 00:46:28 +02:00
Alexandre Alapetite
f477a261d6 Update dev tools (#7347)
In particular those not covered by Dependabot
2025-02-21 13:57:56 +01:00
Alexandre Alapetite
b1d24fbdb7 PHPStan 2.0 (#7131)
* PHPStan 2.0
fix https://github.com/FreshRSS/FreshRSS/issues/6989
https://github.com/phpstan/phpstan/releases/tag/2.0.0
https://github.com/phpstan/phpstan/blob/2.0.x/UPGRADING.md

* More

* More

* Done

* fix i18n CLI

* Restore a PHPStan Next test
For work towards PHPStan Level 10

* 4 more on Level 10

* fix getTagsForEntry

* API at Level 10

* More Level 10

* Finish Minz at Level 10

* Finish CLI at Level 10

* Finish Controllers at Level 10

* More Level 10

* More

* Pass bleedingEdge

* Clean PHPStan options and add TODOs

* Level 10 for main config

* More

* Consitency array vs. list

* Sanitize themes get_infos

* Simplify TagDAO->getTagsForEntries()

* Finish reportAnyTypeWideningInVarTag

* Prepare checkBenevolentUnionTypes and checkImplicitMixed

* Fixes

* Refix

* Another fix

* Casing of __METHOD__ constant
2024-12-27 12:12:49 +01:00
Alexandre Alapetite
01f2325850 Update dev dependencies (#7052)
I was expecting some of them (e.g. PHPStan) as part of the last Dependabot round, so here is a global update
2024-12-03 18:55:27 +01:00
Alexandre Alapetite
dfac9f5813 PHPStan booleansInConditions (#6793)
* PHPStan booleansInConditions

* Uniformisation
2024-09-11 17:14:53 +02:00
Alexandre Alapetite
aefac3efb9 CI fix warnings (#6780) 2024-09-06 10:18:51 +02:00
Alexandre Alapetite
a81656c3ed Upgrade to PHP 8.1 (#6711)
* Upgrade to PHP 8.1
As discussed in https://github.com/FreshRSS/FreshRSS/discussions/5474

https://www.php.net/releases/8.0/en.php
https://www.php.net/releases/8.1/en.php

Upgrade to available native type declarations
https://php.net/language.types.declarations

Upgrade to https://phpunit.de/announcements/phpunit-10.html which requires PHP 8.1+ (good timing, as version 9 was not maintained anymore)

Upgrade `:oldest` Docker dev image to oldest Alpine version supporting PHP 8.1: Alpine 3.16, which includes PHP 8.1.22.

* Include 6736
https://github.com/FreshRSS/FreshRSS/pull/6736
2024-09-06 09:06:46 +02:00
Alexandre Alapetite
2d17c020b6 PHPStan 1.11 + minor update dev dependencies (#6459)
* PHPStan 1.11 + minor update dev dependencies
https://github.com/phpstan/phpstan/releases/tag/1.11.0

* Comment style
2024-05-15 08:57:58 +02:00
Alexandre Alapetite
350edf398c PHP 8.3 #[\Override] (#6273)
* PHP 8.3 #[\Override]
https://php.watch/versions/8.3/override-attr

With PHPStan `checkMissingOverrideMethodAttribute` https://phpstan.org/config-reference#checkmissingoverridemethodattribute

And modified the call to phpstan-next on the model of https://github.com/FreshRSS/Extensions/pull/228 (more robust than the find method, which gave some strange errors)

* Update extension example accordingly
2024-04-10 15:33:43 +02:00
Alexandre Alapetite
1c684a91d2 Minor update dev libraries (#6265) 2024-04-06 11:40:55 +02:00
Alexandre Alapetite
52f6c8399b Explicit PHP version for Composer (#6039)
* Explicit PHP version for Composer
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/6038
Ensure that we do not depend on incompatible libraries like in
https://github.com/FreshRSS/FreshRSS/pull/6030

* Explicit version for PHPStan
Due to changes in types, we only support PHPStan in PHP 8 mode
2024-01-15 10:32:30 +01:00
Alexandre Alapetite
74ed1e6c57 Fix PHP 7.4 compatibility (#6038)
Some recent PRs have broken PHP 7.4 compatibility due to `mixed` typing.
2024-01-13 17:02:39 +01:00
Alexandre Alapetite
c89073d60e Update dev dependencies (#6023) 2024-01-05 08:45:21 +01:00
Alexandre Alapetite
a80a5f48a1 Pass PHPStan level 8 (#5946)
* Pass PHPStan level 8
And prepare for PHPStan level 9 https://phpstan.org/user-guide/rule-levels

* Revert wrong replace in comment

* Fix PHPStan level 8

* Update PHPStan and other dev dependencies

* Remove obsolete comment

* noVariableVariables and towards bleedingEdge
https://github.com/phpstan/phpstan-strict-rules
https://phpstan.org/blog/what-is-bleeding-edge

* More bleedingEdge

* A bit more PHPStan level 9

* More PHPStan level 9

* Prepare for booleansInConditions
Ignore int and null

* Revert wrong line

* More fixes

* Fix keep_max_n_unread

* Stricter attribute functions

* Stricter callHooks and more PHPStan level 9

* More typing

* A tiny more
2023-12-18 17:59:16 +01:00
Alexandre Alapetite
06d0099504 Require PHP 7.4+ (#5720)
* Require PHP 7.4+
https://github.com/FreshRSS/FreshRSS/discussions/5474

* Update Docker oldest
Alpine 3.13 with PHP 7.4.26

* Add missing packets to Docker oldest

* Update to typed properties
https://php.net/migration74.new-features#migration74.new-features.core.typed-properties

* More types
2023-10-30 20:47:27 +01:00
Alexandre Alapetite
0182d84142 Minor update dev dependencies (#5541)
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5538
2023-07-23 14:31:55 +02:00
Alexandre Alapetite
8bf362838e Update dev dependencies (#5478) 2023-06-18 23:05:28 +02:00
Alexandre Alapetite
445cc23abd PHPStan Level 7 complete (#5406)
* PHPStan Level 7 complete

* Start PHPStan Level 8

* Forgot exclude .phtml
2023-05-22 20:55:59 +02:00
Alexandre Alapetite
6e2f2f1c1e A few additional PHPStan rules (#5388)
A subset of
https://github.com/phpstan/phpstan-strict-rules
2023-05-11 13:02:04 +02:00
Alexandre Alapetite
26bc0e0ee9 Minor development config fixes (#5379)
* Add compatibility with MacOS for `paste` command
* Addition to .editorconfig
2023-05-09 13:08:57 +02:00
Alexandre Alapetite
26e2a70312 Update dev dependencies (#5339)
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/5336
https://stylelint.io/migration-guide/to-15
2023-04-26 08:23:21 +02:00
Alexandre Alapetite
f3760f138d Complete PHPStan Level 6 (#5305)
* Complete PHPStan Level 6
Fix https://github.com/FreshRSS/FreshRSS/issues/4112
And initiate PHPStan Level 7

* PHPStan Level 6 for tests
* Use phpstan/phpstan-phpunit
* Update to PHPStan version 1.10

* Fix mixed bug

* Fix mixed return bug

* Fix paginator bug

* Fix FreshRSS_UserConfiguration

* A couple more Minz_Configuration bug fixes

* A few trivial PHPStan Level 7 fixes

* A few more simple PHPStan Level 7

* More files passing PHPStan Level 7
Add interface to replace removed class from https://github.com/FreshRSS/FreshRSS/pull/5251

* A few more PHPStan Level 7 preparations

* A few last details
2023-04-17 08:30:21 +02:00
Luc SANCHEZ
ac3dd96f48 Cleaning code and typehinting (#5064)
* Cleaning code and typehinting

* Fix remarque alphabetic order

* Cleaning

* rollback self::

* Update Context.php

* Fix remarques

* Fix remarques

* Fix remarques

* Remarque's from Alkarex

* Remarque's from Alkarex

* Cast higher up

* Fix Level 5

* Claiming Level 6
Cf. https://github.com/FreshRSS/FreshRSS/pull/5230

* Address my comments

* indexController as Level 6 as well

* Fixed some wrong types

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-27 01:12:45 +02:00
Alexandre Alapetite
f3af3f0f3d Automated test towards PHPStan level 6 (#5230)
* Automated test towards PHPStan level 6
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112
With this automated tests, files that are passing Level 6 are tested to avoid regressions towards Level 5 (which is the current baseline for the whole code-base)

It is included when calling `make test-all` or can be called specifically by `composer run-script phpstan-next`

* Test and example with 3 new passing files
2023-03-26 23:19:41 +02:00
Luc SANCHEZ
212ab5c9b3 Update of PhpStan lib to last fix version (#5109)
Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
2023-02-22 21:50:09 +01:00
Alexandre Alapetite
1d9d4e3e3c Update dev dependencies (#4993)
Related to https://github.com/FreshRSS/FreshRSS/pull/4991
Required a few changes in code to pass the tests
2023-01-09 12:59:30 +01:00
Alexandre Alapetite
570503b7f1 Require PHP 7.2+ (#4848)
Drop PHP 7.0- as planned https://github.com/FreshRSS/FreshRSS/discussions/3321#discussioncomment-835704
2022-11-14 15:02:44 +01:00
Alexandre Alapetite
e86c10e2f5 Composer require php extensions (#4497)
#fix https://github.com/FreshRSS/FreshRSS/discussions/4494
2022-08-10 09:36:54 +02:00
Alexandre Alapetite
f365a9aeb4 Update all test dependencies (#4419)
* Update all test dependencies

* Remove old false-positive

* Minor update lock files

* Increase PHPStan memory for Fedora
https://github.com/FreshRSS/FreshRSS/pull/4400#issuecomment-1159514197

* Require PHP8+ for tests
Due to small changes of signature in `ob_implicit_flush` and `simplexml_load_string`, cf. https://github.com/FreshRSS/FreshRSS/pull/4123

* Missing lint in CSS files
2022-06-19 20:08:42 +02:00
Alexandre Alapetite
354f22b4fa PHPStan update to 1.4.6 (#4203)
https://github.com/phpstan/phpstan/releases
And compose udpdate
2022-02-07 00:56:59 +01:00
Alexandre Alapetite
77e9877316 Add PHPStan (#4021)
* Add PHPStan
#fix https://github.com/FreshRSS/FreshRSS/issues/4016
https://phpstan.org/

```sh
composer run-script phpstan
```

* More fixes

* Fix global variables

* Add .phtml

* Fix merge
https://github.com/FreshRSS/FreshRSS/pull/4090

* Fix more warnings

* Fix view errors and enable in CI

* ReturnTypeWillChange

* Dynamic view type

* Fix Minz static/self bug
2021-12-31 17:00:51 +01:00
Alexandre Alapetite
9416f45dd9 GitHub Actions CI optimisation (#3929)
Efforts to reduce the resources used by CI:
* Only one git checkout
* Exclusion of irrelevant directories for several commands
* Fix some rtlcss warnings
* Move some commands from tests.yml to composer.json to make them reusasble
* Initial efforts to take avantage of all that from `make` (help welcome)
2021-10-24 17:25:41 +02:00
Alexandre Alapetite
9ca49408e0 GitHub Action automatic tests (#3920)
* PHP lint + phpunit + Manipulate translations + phpcs
* eslint + markdownlint + rtlcss + stylelint
* shellcheck + shfmt + hadolint
2021-10-24 00:14:12 +02:00