Skip to content

Web export SQLite#6931

Merged
Alkarex merged 8 commits intoFreshRSS:edgefrom
Alkarex:export-sqlite
Oct 23, 2024
Merged

Web export SQLite#6931
Alkarex merged 8 commits intoFreshRSS:edgefrom
Alkarex:export-sqlite

Conversation

@Alkarex
Copy link
Member

@Alkarex Alkarex commented Oct 22, 2024

#6930

Simple case of a system using SQLite as database:
image

Case of a system using e.g. PostgreSQL but making regular exports as SQLite:
image

Note that there is not yet a Web interface to initiate a DB export to SQLite (like is possible in CLI)

@Alkarex Alkarex added this to the 1.25.0 milestone Oct 22, 2024
@Frenzie
Copy link
Member

Frenzie commented Oct 22, 2024

Wow, that was fast. I'd barely even read that issue yet. 😄

@Alkarex Alkarex marked this pull request as ready for review October 22, 2024 21:41
@rezad1393
Copy link
Contributor

thank you for the fast pull.
I hope it becomes a great addition to this great app.

@Alkarex
Copy link
Member Author

Alkarex commented Oct 23, 2024

Let's merge this one already, while waiting for another PR to add a mechanism to produce SQLite exports from the Web interface, but this will surely require several configuration options and care regarding disk usage etc.

@Alkarex Alkarex merged commit 7a5ce0f into FreshRSS:edge Oct 23, 2024
@Alkarex Alkarex deleted the export-sqlite branch October 23, 2024 19:55
@rezad1393
Copy link
Contributor

is the backup need to be run as a user having access to the host cli?
because in the new release I dont see this anywhere but in changelog.

@Alkarex
Copy link
Member Author

Alkarex commented Jan 1, 2025

@rezad1393 For setups using SQLite, there is nothing to do and it just works.
For systems using other databases, the SQLite export must be done by CLI (so far).

@rezad1393
Copy link
Contributor

@rezad1393 For setups using SQLite, there is nothing to do and it just works. For systems using other databases, the SQLite export must be done by CLI (so far).

I use the sqlite (and switch to git setup based on your suggestion) but I dont see this GUI mock-up anywhere.

@Alkarex
Copy link
Member Author

Alkarex commented Jan 1, 2025

@rezad1393
Copy link
Contributor

oh.
I was seasrching for it in setting and admin part. my bad.
when I try it I get this error



Secure Connection Failed

An error occurred during a connection to myhost:1081.

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.

I use a self signed https connection to my LAN hosted freshrss instance.

@Alkarex
Copy link
Member Author

Alkarex commented Jan 1, 2025

That error is unrelated to FreshRSS. You of course need to change http://localhost/ to whatever address you are using for your FreshRSS

@rezad1393
Copy link
Contributor

That error is unrelated to FreshRSS. You of course need to change http://localhost/ to whatever address you are using for your FreshRSS

I use a LAN client for hosting freshrss and I know its ip and name. and use a self signed ssl cert for it.
I use that for address and use it daily.

my mistake was not specifying my issue more clearly.
I can reach the import/export page.
the issue is that when I try to use it and click download, I get that https error.

@Alkarex
Copy link
Member Author

Alkarex commented Jan 1, 2025

Could you check what you have in your FreshRSS logs and in your Web server logs?
And check also the exact URL leading to this error in your Web browser networking tools.

@rezad1393
Copy link
Contributor

2025/01/01 18:15:58 [error] 661#661: *16065 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 155099136 bytes) in /mnt/data/freshrss/app/views/importExport/sqlite.phtml on line 9" while reading response header from upstream, client: 192.168.1.101, server: odroid, request: "POST /i/?c=importExport&a=sqlite HTTP/2.0", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "odroid:1081"
2025/01/01 18:15:58 [error] 661#661: *16065 upstream prematurely closed FastCGI request while reading upstream, client: 192.168.1.101, server: odroid, request: "POST /i/?c=importExport&a=sqlite HTTP/2.0", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "odroid:1081"

@rezad1393
Copy link
Contributor

rezad1393 commented Jan 1, 2025

ok I had to increase the memory_limit in php.ini to be bigger than sqlite size.

is this an issue of php that needs a memory limit for a file download?
is this the correct behavior?

if I had 1GB sqlite and wanted to download it php needs a 1GB memory limit?

@rezad1393
Copy link
Contributor

btw can a date be added to exported file so that it is not a generic db.sqlite ?

@Alkarex
Copy link
Member Author

Alkarex commented Jan 1, 2025

is this an issue of php that needs a memory limit for a file download?

This might depend on your setup. It is not needed with Apache and PHP as module as recommended (and used by our Docker image, for instance).

@rezad1393
Copy link
Contributor

is this an issue of php that needs a memory limit for a file download?

This might depend on your setup. It is not needed with Apache and PHP as module as recommended (and used by our Docker image, for instance).

weird.
I use nginx.

@Alkarex
Copy link
Member Author

Alkarex commented Jan 16, 2025

Edit: Wrong

Alkarex added a commit to Alkarex/FreshRSS that referenced this pull request Jan 16, 2025
@Alkarex
Copy link
Member Author

Alkarex commented Jan 16, 2025

Buffering issues should be fixed for more setups with #7230

@rezad1393
Copy link
Contributor

Buffering issues should be fixed for more setups with #7230

so after that merge I can lower back the php memory limit to previous value ?

Alkarex added a commit that referenced this pull request Jan 16, 2025
* Ensure no PHP buffer for SQLite download
fix #6931 (comment)

* No warning if any case
@Alkarex
Copy link
Member Author

Alkarex commented Jan 16, 2025

Buffering issues should be fixed for more setups with #7230

so after that merge I can lower back the php memory limit to previous value ?

Yes. Please try with freshrss/freshrss:edge or freshrss/freshrss:edge-alpine (new version just pushed)

@rezad1393
Copy link
Contributor

Buffering issues should be fixed for more setups with #7230

so after that merge I can lower back the php memory limit to previous value ?

Yes. Please try with freshrss/freshrss:edge or freshrss/freshrss:edge-alpine (new version just pushed)

if it is ok I wait for next release.

@Alkarex
Copy link
Member Author

Alkarex commented Jan 17, 2025

if it is ok I wait for next release.

freshrss/freshrss:edge is our continuous release and is ready. If you refer to the slow release channel freshrss/freshrss, it is too late for feedback or for fixing anything at that time

@rezad1393
Copy link
Contributor

I usually used the zip version that is released (like FreshRSS 1.25.0 Latest)
but now I use git with version release (same version but with git commands)

is the edge stable?
usually software developers don't recommend non-numbered release mechanisms.

"continuous release" sounds too much like rolling release linuxes (archlinux) to be stable.

@Frenzie
Copy link
Member

Frenzie commented Jan 19, 2025

It's stable enough to test if this particular feature works the way you expect. :-)

Of course it's not to be randomly updated every day if you just want things to keep working as they are.

@Alkarex
Copy link
Member Author

Alkarex commented Feb 21, 2025

#7330 (comment)

How stable "edge" is?

edge is our rolling release, stable enough for many production setups. Fast releases, meaning that in case of regressions (rare), they get priority to be rapidly fixed.
To be compared with the slow releases (latest), which are less frequent, a bit more tested, but without fix in case of bug/regression until the next slow release.

Importantly, the best time to provide feedback is during the PR, second best is when it is merged in edge, and too late after a latest release.

@rezad1393
Copy link
Contributor

#7330 (comment)

How stable "edge" is?

edge is our rolling release, stable enough for many production setups. Fast releases, meaning that in case of regressions (rare), they get priority to be rapidly fixed.
To be compared with the slow releases (latest), which are less frequent, a bit more tested, but without fix in case of bug/regression until the next slow release.

Importantly, the best time to provide feedback is during the PR, second best is when it is merged in edge, and too late after a latest release.

I read that edge thing and I see that it is different from my own understanding of edge in other projects.
usually edge meant main or master which was latest git commit.
but when I look at freshrss github page the edge IS the master.
which means edge is not beta it is alpha release at best.
I ask because I am afraid of data loss.

@Alkarex
Copy link
Member Author

Alkarex commented Feb 22, 2025

which means edge is not beta it is alpha release at best.

This is not the definition of alpha. And the development is done in PRs, not in edge.

I ask because I am afraid of data loss.

This is to be addressed with backups anyway.

The key part is that if you - the person who is asking a feature or fix - are not contributing to testing the changes, it is unlikely that there will be any difference between PR → edge → latest.

@rezad1393
Copy link
Contributor

rezad1393 commented Feb 22, 2025

which means edge is not beta it is alpha release at best.

This is not the definition of alpha. And the development is done in PRs, not in edge.

I ask because I am afraid of data loss.

This is to be addressed with backups anyway.

The key part is that if you - the person who is asking a feature or fix - are not contributing to testing the changes, it is unlikely that there will be any difference between PR → edge → latest.

I have tested with edge (git checkout) and even reported a bug here #6931 (comment) .
I just don't use edge for daily usage.

Sh4kE added a commit to Sh4kE/freshrss-helm-chart that referenced this pull request Feb 24, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [freshrss](https://github.com/FreshRSS/FreshRSS) | minor | `1.24.3` -> `1.26.0` |

---

### Release Notes

<details>
<summary>FreshRSS/FreshRSS (freshrss)</summary>

### [`v1.26.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2025-02-23-FreshRSS-1260)

[Compare Source](FreshRSS/FreshRSS@1.25.0...1.26.0)

-   Features
    -   Add order-by options to sort articles by received date (existing, default), publication date, title, link, random [#&#8203;7149](FreshRSS/FreshRSS#7149)
    -   Allow searching in all feeds, also feeds only visible at category level with `&get=A`, and also those archived with `&get=Z` [#&#8203;7144](FreshRSS/FreshRSS#7144)
        -   UI accessible from user-query view
    -   Add search operator `intext:` [#&#8203;7228](FreshRSS/FreshRSS#7228)
    -   New shortcuts for adding user labels to articles [#&#8203;7274](FreshRSS/FreshRSS#7274)
    -   New *About* page with system information [#&#8203;7161](FreshRSS/FreshRSS#7161)
-   Bug fixing
    -   Fix regression denying access to app manifest [#&#8203;7158](FreshRSS/FreshRSS#7158)
    -   Fix unwanted feed description updates [#&#8203;7269](FreshRSS/FreshRSS#7269)
    -   Ensure no PHP buffer for SQLite download (some setups would first put the file in memory) [#&#8203;7230](FreshRSS/FreshRSS#7230)
    -   Fix XML encoding regression in HTML+XPath mode [#&#8203;7345](FreshRSS/FreshRSS#7345)
    -   Improve cURL proxy options and fix some constants [#&#8203;7231](FreshRSS/FreshRSS#7231)
    -   Fix UI of global view unread articles counter [#&#8203;7247](FreshRSS/FreshRSS#7247)
    -   Hide base theme in carrousel [#&#8203;7234](FreshRSS/FreshRSS#7234)
-   Deployment
    -   Reduce superfluous Docker builds [#&#8203;7137](FreshRSS/FreshRSS#7137)
    -   Docker default image (Debian 12 Bookworm) updated to PHP 8.2.26 and Apache 2.4.62
    -   Docker alternative image (Alpine 3.21) updated to PHP 8.3.16
-   UI
    -   Add footer icons to reader view [#&#8203;7133](FreshRSS/FreshRSS#7133)
    -   Remove local reference to font *Open Sans* to avoid bugs with some local versions [#&#8203;7215](FreshRSS/FreshRSS#7215)
    -   Improve stats page layout [#&#8203;7243](FreshRSS/FreshRSS#7243)
    -   Smaller *mark as read* button in mobile view [#&#8203;5220](FreshRSS/FreshRSS#5220)
    -   Add CSS class to various types of notifications to allow custom styling [#&#8203;7287](FreshRSS/FreshRSS#7287)
    -   Various UI and style improvements: [#&#8203;7162](FreshRSS/FreshRSS#7162), [#&#8203;7268](FreshRSS/FreshRSS#7268)
        Security
    -   Better authorization label for OIDC in the UI [#&#8203;7264](FreshRSS/FreshRSS#7264)
    -   Allow comments in `force-https.txt` [#&#8203;7259](FreshRSS/FreshRSS#7259)
-   I18n:
    -   Improve German [#&#8203;7177](FreshRSS/FreshRSS#7177), [#&#8203;7275](FreshRSS/FreshRSS#7275), [#&#8203;7278](FreshRSS/FreshRSS#7278)
    -   Improve Japanese [#&#8203;7187](FreshRSS/FreshRSS#7187), [#&#8203;7195](FreshRSS/FreshRSS#7195), [#&#8203;7332](FreshRSS/FreshRSS#7332)
-   Misc.
    -   Improve PHP code [#&#8203;7191](FreshRSS/FreshRSS#7191), [#&#8203;7204](FreshRSS/FreshRSS#7204)
        -   Upgrade to PHPStan 2 [#&#8203;7131](FreshRSS/FreshRSS#7131), [#&#8203;7164](FreshRSS/FreshRSS#7164), [#&#8203;7224](FreshRSS/FreshRSS#7224),
            [#&#8203;7270](FreshRSS/FreshRSS#7270), [#&#8203;7281](FreshRSS/FreshRSS#7281), [#&#8203;7282](FreshRSS/FreshRSS#7282)
    -   Update to CssXPath 1.3.0 (no change) [#&#8203;7211](FreshRSS/FreshRSS#7211)
    -   Update dev dependencies [#&#8203;7165](FreshRSS/FreshRSS#7165), [#&#8203;7166](FreshRSS/FreshRSS#7166), [#&#8203;7167](FreshRSS/FreshRSS#7167),
        [#&#8203;7279](FreshRSS/FreshRSS#7279), [#&#8203;7280](FreshRSS/FreshRSS#7280), [#&#8203;7283](FreshRSS/FreshRSS#7283),
        [#&#8203;7284](FreshRSS/FreshRSS#7284), [#&#8203;7285](FreshRSS/FreshRSS#7285), [#&#8203;7347](FreshRSS/FreshRSS#7347)
    -   Update GitHub Actions to Ubuntu 24.04 [#&#8203;7207](FreshRSS/FreshRSS#7207)

### [`v1.25.0`](https://github.com/FreshRSS/FreshRSS/blob/HEAD/CHANGELOG.md#2024-12-23-FreshRSS-1250)

[Compare Source](FreshRSS/FreshRSS@1.24.3...1.25.0)

-   Features
    -   Add support for [regex search (regular expressions)](https://freshrss.github.io/FreshRSS/en/users/10\_filter.html#regex) [#&#8203;6706](FreshRSS/FreshRSS#6706), [#&#8203;6926](FreshRSS/FreshRSS#6926)
        -   ⚠️ Advanced regex syntax for searches depends on the database used (SQLite, PostgreSQL, MariaDB, MySQL),
            but FreshRSS filter actions such as auto-mark-as-read and auto-favourite always use [PHP PCRE2 syntax](https://php.net/regexp.introduction).
    -   Allow dynamic search operator in user queries, like `search:UserQueryA date:P1d` [#&#8203;6851](FreshRSS/FreshRSS#6851)
    -   New feed mode *HTML+XPath+JSON dot notation* (JSON in HTML) [#&#8203;6888](FreshRSS/FreshRSS#6888)
    -   Better HTTP compliance with support for HTTP response headers `Cache-Control: max-age` and `Expires` [#&#8203;6812](FreshRSS/FreshRSS#6812), [FreshRSS/simplepie#26](FreshRSS/simplepie#26)
    -   Support custom HTTP request headers per feed (e.g. for `Authorization`) [#&#8203;6820](FreshRSS/FreshRSS#6820)
    -   New unicity policies and heuristic for feeds with bad article IDs [#&#8203;4487](FreshRSS/FreshRSS#4487), [#&#8203;6900](FreshRSS/FreshRSS#6900)
    -   Fallback to GUID if article link is empty [#&#8203;7051](FreshRSS/FreshRSS#7051)
    -   New option to automatically mark new articles as read if an identical title already exists in the same category [#&#8203;6922](FreshRSS/FreshRSS#6922)
    -   New reading view option to display unread articles + favourites [#&#8203;7088](FreshRSS/FreshRSS#7088)
        -   And corresponding new filter state `&state=96` (no UI button yet)
    -   Add ability to remove content from articles with CSS selectors, also when not using full content [#&#8203;6786](FreshRSS/FreshRSS#6786), [#&#8203;6807](FreshRSS/FreshRSS#6807)
    -   Update `phpgt/cssxpath` library with improved CSS selectors [#&#8203;6618](FreshRSS/FreshRSS#6618)
        -   Support for `:last-child`, `:first-of-type`, `:last-of-type`, `^=`, `|=`
    -   New condition option to selectively retrieve full content of articles
        [#&#8203;33fd07f6f26310d4806077cc87bcdf9b8b940e35](FreshRSS/FreshRSS@33fd07f), [#&#8203;7082](FreshRSS/FreshRSS#7082)
    -   Allow parentheses in quoted search [#&#8203;7055](FreshRSS/FreshRSS#7055)
    -   New UI feature to download a user’ SQLite database or a database SQLite export (to be produced by CLI) [#&#8203;6931](FreshRSS/FreshRSS#6931)
    -   New button to delete errored feeds from a category [#&#8203;7030](FreshRSS/FreshRSS#7030)
    -   Better import of Inoreader user labels [#&#8203;6791](FreshRSS/FreshRSS#6791)
    -   Rebuild feed favicon on cache clear [#&#8203;6961](FreshRSS/FreshRSS#6961)
    -   New sharing with Bluesky [#&#8203;7116](FreshRSS/FreshRSS#7116)
    -   New sharing with Telegram [#&#8203;6838](FreshRSS/FreshRSS#6838)
-   Bug fixing
    -   Fix searches with a parenthesis before an operator like `("a b")` or `(!c)` [#&#8203;6818](FreshRSS/FreshRSS#6818)
    -   Fix auto-read tags [#&#8203;6790](FreshRSS/FreshRSS#6790)
    -   Fix CSS selector for removing elements [#&#8203;7037](FreshRSS/FreshRSS#7037), [#&#8203;7073](FreshRSS/FreshRSS#7073),
        [#&#8203;7081](FreshRSS/FreshRSS#7081), [#&#8203;7091](FreshRSS/FreshRSS#7091), [#&#8203;7083](FreshRSS/FreshRSS#7083)
    -   Fix redirection error after creating a new user [#&#8203;6995](FreshRSS/FreshRSS#6995)
    -   Fix favicon error in case of wrong URL [#&#8203;6899](FreshRSS/FreshRSS#6899)
    -   Use cURL to fetch extensions list (allows e.g. IPv6) [#&#8203;6767](FreshRSS/FreshRSS#6767)
    -   Fix XML encoding in cURL options [#&#8203;6821](FreshRSS/FreshRSS#6821)
    -   Fix initial UI scroll for some browsers [#&#8203;7059](FreshRSS/FreshRSS#7059)
    -   Fix menu for article tags in some cases [#&#8203;6990](FreshRSS/FreshRSS#6990)
    -   Fix share menu shortcut [#&#8203;6825](FreshRSS/FreshRSS#6825)
    -   Fix HTML regex pattern during install for compatibility with `v` mode [#&#8203;7009](FreshRSS/FreshRSS#7009)
    -   More robust creation of user data folder [#&#8203;7000](FreshRSS/FreshRSS#7000)
-   API
    -   Fix API for categories and labels containing a `+` [#&#8203;7033](FreshRSS/FreshRSS#7033)
        -   Compatibility with FocusReader
    -   Supported by [Capy Reader](https://github.com/jocmp/capyreader) (Android, open source) [capyreader#492](jocmp/capyreader#492)
    -   Improved UI for API [#&#8203;7048](FreshRSS/FreshRSS#7048)
    -   Allow adding multiple feeds to a category via API [#&#8203;7017](FreshRSS/FreshRSS#7017)
    -   API support edit multiple tags [#&#8203;7060](FreshRSS/FreshRSS#7060)
    -   API return all categories also those without any feed [#&#8203;7020](FreshRSS/FreshRSS#7020)
-   Compatibility
    -   Require PHP 8.1+ (drop PHP 7.4) [#&#8203;6711](FreshRSS/FreshRSS#6711)
    -   Improved support of PHP 8.4+ [#&#8203;6618](FreshRSS/FreshRSS#6618), [phpgt/CssXPath#227](phpgt/CssXPath#227),
        [#&#8203;6781](FreshRSS/FreshRSS#6781), [#&#8203;4374](FreshRSS/FreshRSS#4374)
    -   Require PostgreSQL 10+ (drop PostgreSQL 9.5) [#&#8203;6705](FreshRSS/FreshRSS#6705)
    -   Require MariaDB 10.0.5+ (drop MariaDB 5.5) [#&#8203;6706](FreshRSS/FreshRSS#6706)
    -   Require MySQL 8+ (drop MySQL 5.5.3) [#&#8203;6706](FreshRSS/FreshRSS#6706)
-   Deployment
    -   Docker: dev image `freshrss/freshrss:oldest` updated to Alpine 3.16 with PHP 8.1.22 and Apache 2.4.59 [#&#8203;6711](FreshRSS/FreshRSS#6711)
    -   Docker alternative image updated to Alpine 3.21 with PHP 8.3.14 and Apache 2.4.62 [#&#8203;5383](FreshRSS/FreshRSS#5383)
    -   Update Dockerfiles to newer key-value format [#&#8203;6819](FreshRSS/FreshRSS#6819)
    -   Docker minor improvement of entrypoint [#&#8203;6827](FreshRSS/FreshRSS#6827)
-   SimplePie
    -   Refactor [our embedding](lib/README.md) of SimplePie [#&#8203;4374](FreshRSS/FreshRSS#4374)
        -   Our fork is maintained in its [own repository](https://github.com/FreshRSS/simplepie/tree/freshrss).
    -   Remove HTTP `Referer` [#&#8203;6822](FreshRSS/FreshRSS#6822), [FreshRSS/simplepie#27](FreshRSS/simplepie#27)
        -   If some sites require it, add `Referer: https://example.net/` to the custom HTTP headers of the feed [#&#8203;6820](FreshRSS/FreshRSS#6820)
    -   Upstream fixes [simplepie#878](simplepie/simplepie#878), [simplepie#883](simplepie/simplepie#883)
    -   Sync upstream [#&#8203;6840](FreshRSS/FreshRSS#6840), [#&#8203;7067](FreshRSS/FreshRSS#7067)
-   Security
    -   Apache protect more non-public folders and files [#&#8203;6881](FreshRSS/FreshRSS#6881), [#&#8203;6893](FreshRSS/FreshRSS#6893), [#&#8203;7008](FreshRSS/FreshRSS#7008)
    -   Add privacy settings on extension list retrieval [#&#8203;4603](FreshRSS/FreshRSS#4603), [#&#8203;7132](FreshRSS/FreshRSS#7132)
    -   Fix login in unsafe mode when using a password with special XML characters [#&#8203;6797](FreshRSS/FreshRSS#6797)
    -   Fix login in e.g. Brave browser by avoiding synchronous XHR [#&#8203;7023](FreshRSS/FreshRSS#7023)
    -   Fix invalid login message [#&#8203;7066](FreshRSS/FreshRSS#7066)
    -   Modernise `windows.open noopener` (to avoid flash of white page in dark mode) [#&#8203;7077](FreshRSS/FreshRSS#7077), [#&#8203;7089](FreshRSS/FreshRSS#7089)
-   UI
    -   Searchable *My Labels* field [#&#8203;6753](FreshRSS/FreshRSS#6753)
    -   Add subscription management button to reading view [#&#8203;6946](FreshRSS/FreshRSS#6946)
    -   New option for showing label menu in article row [#&#8203;6984](FreshRSS/FreshRSS#6984)
    -   Move to next unread label on mark as read [#&#8203;6886](FreshRSS/FreshRSS#6886)
    -   Improved article footer for small / mobile screens [#&#8203;7031](FreshRSS/FreshRSS#7031)
    -   Improve Web accessibility: fix `aria-hidden` bug, and use HTML5 `hidden` [#&#8203;6910](FreshRSS/FreshRSS#6910)
    -   Default styles for `<pre>` and `<code>` [#&#8203;6770](FreshRSS/FreshRSS#6770)
    -   Refactor the sharing menu to use a `<template>` instead of duplicated HTML code [#&#8203;6751](FreshRSS/FreshRSS#6751), [#&#8203;7113](FreshRSS/FreshRSS#7113)
    -   Refactor the label menu to use a `<template>` [#&#8203;6864](FreshRSS/FreshRSS#6864)
    -   Rework UI for authors [#&#8203;7054](FreshRSS/FreshRSS#7054)
        -   Avoid Unicode escape of authors in HTML UI [#&#8203;7056](FreshRSS/FreshRSS#7056)
    -   Improved subscription management page [#&#8203;6816](FreshRSS/FreshRSS#6816)
    -   Improve user query management page [#&#8203;7062](FreshRSS/FreshRSS#7062)
    -   Restore JavaScript form validation compatibility with Web browsers using older engines (SeaMonkey) [#&#8203;6777](FreshRSS/FreshRSS#6777)
    -   Reorganise some options [#&#8203;6920](FreshRSS/FreshRSS#6920)
    -   New shortcut `?` to show shortcut page and help [#&#8203;6981](FreshRSS/FreshRSS#6981)
    -   Use of consistent colours in statistics [#&#8203;7090](FreshRSS/FreshRSS#7090)
    -   Various UI and style improvements [#&#8203;6959](FreshRSS/FreshRSS#6959)
-   Extensions
    -   New extension hook `simplepie_after_init` [#&#8203;7007](FreshRSS/FreshRSS#7007)
-   I18n
    -   Add Finnish [#&#8203;6954](FreshRSS/FreshRSS#6954)
    -   Improve English [#&#8203;7049](FreshRSS/FreshRSS#7049), [#&#8203;7053](FreshRSS/FreshRSS#7053)
    -   Improve German [#&#8203;6847](FreshRSS/FreshRSS#6847), [#&#8203;7068](FreshRSS/FreshRSS#7068), [#&#8203;7128](FreshRSS/FreshRSS#7128)
    -   Improve Italian [#&#8203;6872](FreshRSS/FreshRSS#6872), [#&#8203;7069](FreshRSS/FreshRSS#7069), [#&#8203;7086](FreshRSS/FreshRSS#7086)
    -   Improve Spanish [#&#8203;6894](FreshRSS/FreshRSS#6894), [#&#8203;6908](FreshRSS/FreshRSS#6908)
    -   Improve Turkish [#&#8203;6960](FreshRSS/FreshRSS#6960)
-   Misc.
    -   Better cache name for JSON feeds [#&#8203;6768](FreshRSS/FreshRSS#6768)
    -   Fix inversed encoding logic in `Minz_Request::paramArray()` [#&#8203;6800](FreshRSS/FreshRSS#6800)
    -   Pass PHPStan `booleansInConditions` [#&#8203;6793](FreshRSS/FreshRSS#6793)
    -   Rename PHPStan configuration file to `phpstan.dist.neon` to allow custom configuration in `phpstan.neon` [#&#8203;6892](FreshRSS/FreshRSS#6892)
    -   Code improvements [#&#8203;6800](FreshRSS/FreshRSS#6800), [#&#8203;6809](FreshRSS/FreshRSS#6809), [#&#8203;6983](FreshRSS/FreshRSS#6983)
    -   Makefile improvements [#&#8203;6913](FreshRSS/FreshRSS#6913)
    -   Fix PHPCS `ControlSignature` [#&#8203;6896](FreshRSS/FreshRSS#6896)
    -   Update *PHPMailer* [#&#8203;6968](FreshRSS/FreshRSS#6968), [#&#8203;7046](FreshRSS/FreshRSS#7046)
    -   Code updates to PHP 8.1 syntax [#&#8203;6748](FreshRSS/FreshRSS#6748)
    -   Update dev dependencies [#&#8203;6780](FreshRSS/FreshRSS#6780), [#&#8203;6964](FreshRSS/FreshRSS#6964), , [#&#8203;6965](FreshRSS/FreshRSS#6965),
        [#&#8203;6966](FreshRSS/FreshRSS#6966), [#&#8203;6967](FreshRSS/FreshRSS#6967), [#&#8203;6970](FreshRSS/FreshRSS#6970),
        [#&#8203;7042](FreshRSS/FreshRSS#7042), [#&#8203;7043](FreshRSS/FreshRSS#7043), [#&#8203;7044](FreshRSS/FreshRSS#7044),
        [#&#8203;7045](FreshRSS/FreshRSS#7045), [#&#8203;7047](FreshRSS/FreshRSS#7047), [#&#8203;7052](FreshRSS/FreshRSS#7052)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45MC4zIiwidXBkYXRlZEluVmVyIjoiMzkuMTc2LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Reviewed-on: https://gitea.sh4ke.rocks/lickler/freshrss/pulls/29
Co-authored-by: Michael Wittig <[email protected]>
Co-committed-by: Michael Wittig <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants