<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/cli, branch 1.27.1</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.27.1</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.27.1'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2025-09-22T20:02:59+00:00</updated>
<entry>
<title>Upgrade to PHP_CodeSniffer 4 (#7993)</title>
<updated>2025-09-22T20:02:59+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-22T20:02:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=833007f5860deae232bacf321d268124123d6749'/>
<id>urn:sha1:833007f5860deae232bacf321d268124123d6749</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Docker healthcheck (#7945)</title>
<updated>2025-09-11T07:43:28+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-09-11T07:43:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=c8da217e875c2371a8d1d13a678e2a811d906922'/>
<id>urn:sha1:c8da217e875c2371a8d1d13a678e2a811d906922</id>
<content type='text'>
* Docker healthcheck
fix https://github.com/FreshRSS/FreshRSS/issues/7377

* Use echo for non-CLI error

* curl_close is deprecated

* Connection: close

* Update cli/health.php

Co-authored-by: Frans de Jonge &lt;fransdejonge@gmail.com&gt;

---------

Co-authored-by: Frans de Jonge &lt;fransdejonge@gmail.com&gt;</content>
</entry>
<entry>
<title>Add a default language constant (#7933)</title>
<updated>2025-09-09T20:01:04+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2025-09-09T20:01:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=6ad625812a77dc1a63b3c88792b588de11ae8f3c'/>
<id>urn:sha1:6ad625812a77dc1a63b3c88792b588de11ae8f3c</id>
<content type='text'>
This replace the use of `en` through out the code.</content>
</entry>
<entry>
<title>Add new file in i18n (#7917)</title>
<updated>2025-09-05T20:57:34+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2025-09-05T20:57:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=de624dc8ce63ec819c61216d9d44f828841c293e'/>
<id>urn:sha1:de624dc8ce63ec819c61216d9d44f828841c293e</id>
<content type='text'>
When manipulating I18N files, it is now possible to add a new file to all
languages. This action is available both in the manipulation script and
the makefile.</content>
</entry>
<entry>
<title>Change how files are included (#7916)</title>
<updated>2025-09-05T13:56:46+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2025-09-05T13:56:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=23ba48c71f0d41bbe012d668349f6516dad527b4'/>
<id>urn:sha1:23ba48c71f0d41bbe012d668349f6516dad527b4</id>
<content type='text'>
1. `include`, `include_once`, `require` and `require_once` are expressions not functions, parentheses are not necessary.
2. to move up the directory tree, it's better to use the `dirname` function instead of relying on `/..`.</content>
</entry>
<entry>
<title>Remove unneeded execution permissions (#7802)</title>
<updated>2025-08-08T20:39:33+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-08-08T20:39:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=56d1d4f19480761109375e477d2626eb6712cfca'/>
<id>urn:sha1:56d1d4f19480761109375e477d2626eb6712cfca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Optimize how much data needs to be `chown`/`chmod`ed on container startup (#7793)</title>
<updated>2025-08-08T11:36:57+00:00</updated>
<author>
<name>Carey Metcalfe</name>
<email>carey@cmetcalfe.ca</email>
</author>
<published>2025-08-08T11:36:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=bb659ee27ab2fd4c90c801151603defc4da7211a'/>
<id>urn:sha1:bb659ee27ab2fd4c90c801151603defc4da7211a</id>
<content type='text'>
* Optimize how much data needs to be `chown`/`chmod`ed on container startup

This works around an issue where `chmod`/`chown` operations inside a
container can be extremely slow when using the `overlay2` storage
driver, resulting in 10min+ container startup times.

It modifies the owner of the webapp when building the container so that
only the `data` and `extensions` directories (which are commonly mapped
as volumes into the container) have to be modified by the
`access-permissions.sh` script at container startup.

When not running via docker the behaviour of the `access-permissions.sh`
script is unchanged.

* Take DATA_PATH environment variable into account when fixing permissions

* Revert change to using bash for arrays

(the alpine image doesn't include `bash`)

* A few more improvements

* Slightly tweak reapply permissions variable

- lowercase to indicate it's not an env variable
- use 0/1 to address potentially-irrational paranoia about unset variables

* Remove conditional logic to skip reapplying permissions

Also documents why in a comment so it's not missed in the future.

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>PHPStan: finalise strictArrayFilter (#7794)</title>
<updated>2025-08-07T20:19:45+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-08-07T20:19:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=62f32ccadff77594f5b8e3ad24c4c2541ff35885'/>
<id>urn:sha1:62f32ccadff77594f5b8e3ad24c4c2541ff35885</id>
<content type='text'>
As well as reportPossiblyNonexistentConstantArrayOffset.
And disable PHPStan-next from GitHub Action, since the work is completed for now.</content>
</entry>
<entry>
<title>Implement support for HTTP 429 Too Many Requests (#7760)</title>
<updated>2025-07-31T07:17:42+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-07-31T07:17:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7a0c423357818b19eb431775452b1357bc7fd3eb'/>
<id>urn:sha1:7a0c423357818b19eb431775452b1357bc7fd3eb</id>
<content type='text'>
* Implement support for HTTP 429 Too Many Requests
Will obey the corresponding HTTP `Retry-After` header at domain level.

* Implement 503 Service Unavailable

* Sanitize Retry-After

* Reduce default value when Retry-After is absent
And make configuration parameter

* Retry-After also for favicons</content>
</entry>
<entry>
<title>Show translation status in README.md (#7715)</title>
<updated>2025-07-16T14:11:51+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-07-16T14:11:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=f9a42adadec9acd259c205727c95bd6f376dfbc5'/>
<id>urn:sha1:f9a42adadec9acd259c205727c95bd6f376dfbc5</id>
<content type='text'>
* Show translation status in README.md

* Fix colon

* markdownlint: Allow tag `&lt;translations&gt;`

* 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 &lt;alexandre@alapetite.fr&gt;</content>
</entry>
</feed>
