a:6:{s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"feed";a:1:{i:0;a:6:{s:4:"data";s:46:"
";s:7:"attribs";a:1:{s:36:"http://www.w3.org/XML/1998/namespace";a:1:{s:4:"lang";s:5:"en-US";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:5:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:65:"tag:github.com,2008:https://github.com/FreshRSS/FreshRSS/releases";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:2:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:4:"type";s:9:"text/html";s:3:"rel";s:9:"alternate";s:4:"href";s:45:"https://github.com/FreshRSS/FreshRSS/releases";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}i:1;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:4:"type";s:20:"application/atom+xml";s:3:"rel";s:4:"self";s:4:"href";s:50:"https://github.com/FreshRSS/FreshRSS/releases.atom";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:27:"Release notes from FreshRSS";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2023-10-30T18:48:26Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"entry";a:10:{i:0;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.22.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2023-10-30T18:54:34Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.22.1";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.22.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:6407:"
This release contains mostly some bug fixes for the recent 1.22.0.
This version 1.22.x is also the last to support PHP 7.2 before requiring PHP 7.4+.
A few highlights ✨:
- Fix regression in extensions translations (i18n)
- Better identification of proxied client IP
- Better support of environment variables in K8s setups
- And more!
This release has been made by several contributors: @Alkarex, @Frenzie, @MHketbi, @XtremeOwnageDotCom, @math-GH, @mossroy
Full changelog:
- Bug fixing
- Fix regression in i18n English fallback for extensions #5752
- Fix identification of thumbnails #5750
- OpenID Connect compatibility with colon
: in OIDC_SCOPES #5753, #5764
- Avoid a warning on non-numeric
TRUSTED_PROXY environment variable #5733
- Better identification of proxied client IP with
RemoteIPInternalProxy in Apache #5740
- Deployment
- Export all environment variables to cron (to allow custom environment variables such as for Kubernetes) #5772
- Docker: Upgraded Alpine dev image
freshrss/freshrss:newest to PHP 8.3 #5764
- Compatibility
- Test compatibility with PHP 8.3 #5764
- UI
- i18n
- Better i18n string for feed submenu for mark as read #5762
- Improve Dutch #5759
- Misc.
- Move to GitHub Actions for our GitHub Pages #5681
- Update dev dependencies and use
stylelint-stylistic #5766
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:1;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.22.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2023-10-27T21:32:51Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.22.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.22.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:47565:"
In this release, besides adding some initial support for OpenID Connect, the focus has been on increasing the quality rather than adding new features (which will have more focus again in the next release).
This version 1.22.x is also the last to support PHP 7.2 before requiring PHP 7.4+.
A few highlights ✨:
- Add support for OpenID Connect (only in our Debian-based Docker image for
x86_64, not Alpine, and not ARM) through libapache2-mod-auth-openidc. See our documentation
- Rework trusted proxies
- Improve scaling with many feeds and long processes, reduce database locks
- Fix many bugs and regressions
- Improve themes Origine (also with automatic dark mode), Nord, etc.
- Several UI / UX improvements
- New languages Hungarian, Latvian, Persian
- Docker default image updated to Debian 12 Bookworm with PHP 8.2
- Increase our code base from PHPStan level 5 to level 7
- And more!
This release has been made by several contributors: @Alkarex, @Alwaysin, @ColonelMoutarde, @Exerra, @FromTheMoon85, @LleanaRuv, @Marjani, @NaeiKinDus, @Rufubi, @V-E-O, @aaronschif, @acbgbca, @aledeg, @andris155, @becdetat, @belidzs, @kemayo, @kgraefe, @marienfressinaud, @math-GH, @msdlr, @obrenckle, @otaconix, @robertdahlem, @sad270, @samc1213, @squaregoldfish, @vrachnis, @witchcraze, @yubiuser, @zhaofengli
Full changelog:
- Features
- Add support for OpenID Connect (only in our default Debian-based Docker image for
x86_64, not Alpine) through libapache2-mod-auth-openidc
#5351, #5463, #5481,
#5523, #5646
- Allow sharing in anonymous mode #5261
- Support Unix socket for MySQL / MariaDB #5166
- Use proxy settings also for fetching favicons #5421
- Add mutual exclusion semaphore for better scaling of actualize script #5235
- Better reporting of XPath failures #5317
- Add sharing with Buffer.com #5286
- Add sharing with Omnivore #5477
- Improve sharing with Linkding #5433
- Do not automatically update feeds after import, to better support multiple imports #5629
- Compatibility for servers disabling
set_time_limit() #5675
- New configuration constant
CLEANCACHE_HOURS #5144
- Bug fixing
- Fix cache refresh #5562
- Fix and improvement of hash of articles using load full content #5576
- Fix case of falsy GUIDs #5412
- Fix and improve JSON export/import #5332, #5626
- Fix enclosures in RSS output #5540
- Fix parenthesis escaping bug in searches #5633
- Fix regression in Fever API enclosures #5214
- Fix regression in Fever API mark-all-as-read #5185
- Fix regression in OPML export of single feeds #5238
- Fix warning during OPML export with empty attributes #5559
- Fix extensions in actualize script #5243
- Fix link to configuration (system or user) for extensions #5394
- Fix mark as read upon gone option in some conditions #5315,
#5382, #5404
- Fix mark selection as unread #5367
- Fix warning in articles repartition statistics #5228
- Fix count entries with some databases #5368
- Fix MariaDB database size calculation #5655
- Fix feed position attribute #5203
- Fix warning when tagging entries #5221
- Fix labels in anonymous mode #5650
- Fix bug not allowing strings for tags in XPath #5653
- Fix get and order when saving user query #5515
- Fix search using user queries #5669
- Fix regression of access to logs even when auto-update is disabled #5577
- Fix access to Apache logs from Dev Container #5660
- Fix malformed HTTP header in case of internal fatal error #5699
- Fix rare exception for HTML notifications #5690
- UI
- New option to display website name and/or favicon of articles #4969
- Support
<meta name="theme-color" .../> #5105
- Config user settings in slider #5094
- Improve theme selector #5281, #5688
- Improve share to clipboard with animation and icon #5295
- Allow share to clipboard even for localhost and without HTTPS #5606
- Feedback when tag with same name as category already exists #5181
- Show base URL in configuration #5656, #5657
- Show Terms of Service in config menu #5215
- Show Terms of Service in footer #5222
- Improve about page #5192
- Improve update page #5420, #5636,
#5647
- Improve Step 1 of install process #5350
- Improve Global view on mobile #5297
- Reduce network overhead for Global view #5496
- Fix Global view: Stick the article to the top when opened #5153
- Fix configuration views that are using a slider #5469
- Fix highlight next/prev article while using shortcuts #5211
- Fix regression in statistics column name % of total #5232
- Fix macOS feed title meta-click behaviour #5492
- Improve themes
- Delete previously deprecated themes: BlueLagoon, Screwdriver #5374,
#5694
- Various UI and style improvements #5147, #5216,
#5303, #5304, #5397,
#5398, #5400, #5603,
#5695
- Security
- Rework trusted proxies (especially with Docker) #5549
- Automatic trusted sources during install #5358
- Show remote IP address in case of HTTP Basic Auth error #5314
- Deployment
- Docker listen on all interfaces by default, including IPv6 #5180
- Docker default image updated to Debian 12 Bookworm with PHP 8.2.7 and Apache 2.4.57 #5461
- Docker alternative image updated to Alpine 3.18 with PHP 8.1.23 and Apache 2.4.58 #5383
- Docker quiet Apache
a2enmod #5464
- Docker: Add
DATA_PATH to cron env #5531
- i18n
- Extensions
- Fix fallback to English for extensions #5426
- Allow deep-link to extension configuration #5449
- New extension hook
entry_auto_read #5505, #5561
- Simplify extension method #5234
- Remove obsolete core extensions Google Group and Tumblr #5457
- SimplePie
- Fix
error_reporting for PHP 8.1+ #5199
- Misc.
- Reduce database locks #5576, #5625,
#5648, #5649
- Improve MySQL / MariaDB performance for updating cached SQL values #5648
- Increase time limit import OPML #5231
- Save SQL attributes as native Unicode #5371
- Remove old SQL auto-updates #5625, #5649
- Improve Dev Container (update to Alpine 3.18, use
DATA_PATH environment variable) #5423
- Update
lib_opml #5188
- Update
lib/http-conditional #5277
- Update PHPMailer #5389
- Use typed access to request parameters #5267
- Typed view model classes #5380
- Remove
ConfigurationSetter #5251, #5580
- Ignore
./data.back/ in .gitignore #5359
- Composer dev command compatibility with macOS #5379
- Code improvements #5089,
#5212, #5213, #5362,
#5470, #5501, #5504,
#5667
- Increase PHPStan from Level 5 to level 7 #4112,
#5064, #5087, #5090,
#5106, #5108, #5230,
#5239, #5258, #5263,
#5264, #5269, #5272,
#5275, #5279, #5282,
#5283, #5289, #5290,
#5291, #5292, #5299,
#5305, #5307, #5309,
#5313, #5318, #5319,
#5327, #5328, #5352,
#5353, #5354, #5361,
#5366, #5370, #5373,
#5376, #5384, #5388,
#5393, #5400, #5406,
#5429, #5431, #5434,
#5578
- Update dev dependencies #5336, #5339,
#5478, #5513, #5541,
#5691, #5693
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:2;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.21.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2023-03-08T14:31:02Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.21.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.21.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:26007:"
A few highlights ✨:
- Require PHP 7.2+ (drop support for PHP 7.0 and 7.1) #4848
- New XML+XPath mode for fetching XML documents when there is no RSS/ATOM feed #5076
- Better support of feed enclosures (image / audio / video attachments) #4944
- User-defined time-zone #4906
- New CLI script
cli/sensitive-log.sh to help e.g. Apache clear logs for sensitive information such as credentials #5001
- Mark some themes as tentatively deprecated: BlueLagoon, Flat, Screwdriver #4807
- 🙋 Reach out if you disagree, especially if you are interested in helping maintaining one of them
- Many UI improvements
This release has been made by several new contributors @axeleroy, @hippothomas, @mincerafter42, @sad270, @zhzy0077, in addition to our regular contributors @Alkarex, @ColonelMoutarde, @Frenzie, @Myuki, @aledeg, @marienfressinaud, @math-GH, @miicat, @nicofrand, @yzqzss ... Thank you!
Detailed tracked changes.
Full changelog:
- Features
- New XML+XPath mode for fetching XML documents when there is no RSS/ATOM feed #5076
- Better support of feed enclosures (image / audio / video attachments) #4944
- User-defined time-zone #4906
- Improve HTML+XPath mode by allowing HTML content #4878
- Search only on full tag names and not on parts of tag names #4882
- Allows searching for parentheses with
\( or \) #4989
- Firefox-compatible sharing service for
mailto: links for webmail services #4680
- Add sharing to archive.org #5096
- Increase max HTTP timeout to 15 minutes #5074
- Compatibility
- Require PHP 7.2+ (drop support for PHP 7.0 and 7.1) #4848
- Workaround disabled
openlog() or syslog() #5054
- Deployment
- Docker default image (Debian 11 Bullseye) updated to PHP 7.4.33
- Docker: alternative image updated to Alpine 3.17 with PHP 8.1.16 and Apache 2.4.55 #4886
- More uniform time-zone behaviour #4903, #4905
- New CLI script
cli/sensitive-log.sh to help e.g. Apache clear logs for sensitive information such as credentials #5001
- New CLI script
cli/access-permissions.sh to help apply file permissions correctly #5062
- Improve file permissions on
./extensions/ #4956
- Update Apache mime type
font/woff #4894
- Re-added a git
latest branch (instead of a tag) to track the latest FreshRSS stable releases #5148
- Bug fixing
- Fix allow disabling curl proxy for specific feed, when proxy is defined globally #5082
- NFS-friendly
is_writable() checks #4780
- Fix error handling when updating feed URL #5039
- Fix feed favicon after editing feed URL #4975
- Fix allow Ctrl+Click to open Manage feeds in new tab #4980
- Fix empty window opened when pressing space after page load #5146
- Fix keep current view when searching #4981
- Fix mobile view: scroll main area again after closing slider #5092
- Fix change confirmation when leaving sharing service config #5098
- Fix sharing to Lemmy #5020
- Security
- API avoid logging passwords CVE-2023-22481
- Remove execution rights on some files not needing it #5065
- More robust application of file access permissions #5062
- UI
- Improve search box #4994
- Improve navigation menu structure #4937
- More consistent sorting of feeds alphabetically #4841
- Improve reader view on mobile screen #4868
- Various UI and style improvements #4681, #4794
#4800, #4850, #4865,
#4872, #4874, #4889,
#4890, #4891, #4897,
#4899, #4910, #4923,
#4927, #4960, #4985,
#4998, #5034, #5040,
#5055, #5058, #5097,
#5100
- Themes
- Dark mode for Origine and Origine compact themes #4843
- Improve Ansum and Mapco #4938, #4959, #4967,
#4983, #4995
- Improve Dark pink #4881
- Improve Nord theme #4892, #4979
- Improve Origine #4893
- Improve Origine compact #4873
- Improve Pafat #4909
- Improve Swage #4875, #4922, #4936,
#5029
- Mark some themes as tentatively deprecated: BlueLagoon, Flat, Screwdriver #4807
- i18n
- SimplePie
- No URL Decode for enclosure links #768
- Fix case of multiple RSS2.0 enclosures #769
- Sanitize thumbnail URL #770
- Use single constant for default HTTP Accept header #784
- Misc.
- Increase max feed URL length and drop unicity in database #5038
- New support of Development Containers / GitHub Codespaces to ease development #4859
- Update library
lib_opml #4403
- Code improvements #4232, #4651,
#5024, #5025, #5028,
#5032, #5158, #5045,
#5049, #5063, #5084
- Update dev dependencies #4993, #5006, #5109
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:3;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.20.2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2022-12-09T22:05:59Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.20.2";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.20.2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:1677:"
This is a security release for a regression since FreshRSS 1.18.0.
A few highlights ✨:
Detailed tracked changes.
Full changelog:
- Fix security vulnerability in
ext.php #4928 fixed by @Alkarex
- Apache
TraceEnable Off #4863
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:4;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.20.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2022-11-14T13:26:10Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.20.1";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.20.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:17743:"
A few highlights ✨:
- Focusing mostly on bug-fixes of 1.20.0
- Several UI / themes improvements
- Improved and new translations (Greek, Indonesian)
Detailed tracked changes.
Full changelog:
- Features
- Add support for custom XPath date/time format #4703
- Add default redirect when authenticating #4778
- Force default user before rendering login page #4620
- API
- Minor Google Reader API improvements #4763
- Bug fixing
- Fix SQL transaction rollbacks during auto-update #4622
- Fix
opcache bug during Web update #4629, update.freshrss.org#4
- Fix export bug #4822
- Fix OPML import of special feed attributes #4708
- Fix JavaScript bug with remembering opened categories #4827
- Fix
curlopt options for HTML+XPath #4759
- Fix charset bug for HTML+XPath #4623
- Fix HTML-encoding of CSS selectors #4707, #4823
- Fix some broken author links #4743
- Fix show settings page after adding new feed #4631
- Fix login page when user does not exist #4621
- Fix feed manage link on stats page #4768
- Fix minor layout bugs #4830
- Fix minor UI bugs with Safari #4643
- UI
- Change some default settings related to marking articles as read #4736
- Improve scrollbar when slider is open #4692
- Improve Subscription Management: Show the category position number #4679
- Improve Reader view: Mark article as read while scrolling #4652
- Improve sharing / integration page #4774
- Improve article summary text cut #4666
- Improve HTML semantics for some boxes #4665
- Change dynamic OPML icon #4673, #4810
- Improve box layout for global view #4791
- Improve logs layout #4594
- Improve Feed configuration: number of articles #4625
- Improve drop-down menus #4597
- Show tile with explanation when hovering empty feeds #4617
- Added bottom nav padding for iOS #4741
- Themes
- Implement CSS variables for easy colour customisation #4641, #4693, #4789
- Improve CSS line height #4671, #4782
- Improved reader view with framed articles #4663
- Improve themes
Alternative Dark #4635, #4797;
Blue Lagon #4786;
Dark #4806;
Mapco #4648, #4709, #4711;
Origine #4842;
Origine Compact #4636, #4735, #4787;
Pafat #4783, #4792, #4793,
#4796, #4811;
Swage #4799, #4828, #4829
- Rename
template.css to frss.css #4644
- Misc. #4596, #4619, #4696
- i18n
- Compatibility
- Compatibility PHP 8.1+
strip_tags() #4688
- Fix
GLOB_BRACE is not available on all platforms #4628
- Deployment
- Docker default image (Debian 11 Bullseye) updated to PHP 7.4.33
- Docker: alternative image (Alpine 3.16) updated to PHP 8.0.25
- Misc.
- Added Linkding as a sharing method #4721
- Exclude
.git/ from tests #4824
- Exclude
extensions/ from eslint and stylelint tests #4606
- Update GitHub Actions version #4717
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:5;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.20.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2022-09-10T15:02:25Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.20.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.20.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:34090:"
A few highlights ✨:
- New Web scraping feature HTML+XPath for Web pages without any RSS/ATOM feed #4220
- Add support for Dynamic OPML #4407
- New search engine supporting (nested) parentheses, also with negation #4378
- Allow many (50k+) feeds #4347 and other performance improvements
- New option to exclude some DOM elements with a CSS Selector when retrieving an article full content #4501
- New option to automatically mark as read gone articles #4426
- 2 new themes and plenty of UI improvements
- Supported by Fluent Reader Lite client on Android and iOS #4595
- Several bug fixes
- 1.20.x will be the last release(s) to support PHP 7.0 before requiring PHP 7.2+
Detailed tracked changes.
Full changelog:
- Features
- New Web scraping feature HTML+XPath for Web pages without any RSS/ATOM feed #4220
- Add support for Dynamic OPML #4407
- Subscriber: Ability for a category to be dynamically populated with a list of feeds provided by a remote OPML
- Publisher: Ability to dynamically export a FreshRSS view (all, feed, category) into a dynamic OPML
- New search engine supporting (nested) parentheses #4378, #4503
(author:Alice OR intitle:hello) (author:Bob OR intitle:world)
- also with negation:
!((author:Alice intitle:hello) OR (author:Bob intitle:world))
- and supporting calling user queries from the search field by name:
search:"My query" or search:QueryA, or by ID: S:3
- Allow many (50k+) feeds #4347
- Note: only for new users or after an export/import or a manual database update
- See also #4357, #4353,
#4417, #4502
- New option to exclude some DOM elements with a CSS Selector when retrieving an article full content #4501
- New option to automatically mark as read gone articles #4426
- New OPML export/import of some proprietary FreshRSS attributes #4342
- Tolerate the import of some invalid OPML files #4591
- New feed settings to allow cookies and HTTP redirects #4470
- Performance: Easier text search indexes for fast searches with PostgreSQL #4505
- The indexes must be manually added for now. Using GIN
pg_trgm
- Easier definition of default user queries for new users in
data/config-user.custom.php #4360
- New sharing through standard Web Share API #4271
- New sharing with Xing, Reddit, Pinterest, WhatsApp #4270
- New sharing with
archive.today #4530
- SimplePie
- Bug fixing
- Fix last update & archive logic (especially for very long feeds, for which some old items were marked as unread) #4422
- Fix regression with Fever API on 32-bit platforms #4201
- Fix read-when-same-title bug #4206
- Fix some search expressions such as
"ab cd" and ab-cd #4277
- Fix auto-load of more articles when using shortcuts #4532
- Fix space shortcut #4581
- WebSub: Use hash instead of base64 to handle long URLs #4282
- Fix handling of authors with ampersand
& #4287
- Fix lazy loading images containing a quote
' in the address #4330
- Fix database size calculation for PostgreSQL #4249
- Fix HTTP root redirection in some cases (trailing slash with a proxy) #4167
- Fix
htmlspecialchars() warnings with PHP 8.1+ #4411
- Fix OPML category encoding #4427
- Fix one category of favicon update problem #4358
- Fix rare mark-as-read bug #4456
- Add missing extension hook
freshrss_user_maintenance in CLI #4495
- Rename conflicting function
errorMessage() which exists on some platforms #4289
- Fix remain of bookmarklet #4240
- UI
- Performance: Automatic simplification of layout for 1000+ feeds #4357
- Performance: New option icons-as-emojis #4353
- Manage feed configuration using a dynamic slider view #4226, #4297, #4394
- New option for custom HTML logo/title in the main Web UI view #4369
- Show errored, empty, muted feeds in statistics #4276
- Improve configuration of registration form #3932
- Improve subscription list drag & drop #3953
- Improve extension manager #4181
- Improve idle feeds list #4192
- Improve feed link in normal view #4006
- Improve browser notification for unread message #4193
- Improve notification banner #4023
- Improve new article banner #4037
- Improve pagination + load more button #4125
- Improve log view #4204
- Improve unread articles counter in normal view #4166
- Automatically set the category when adding a feed from an existing category #4333
- Better PWA colours for mobile #4254
- Improve article footer #4306
- Various UI and style improvements #4205, #4212, #4218,
#4238, #4455, #4298,
#4383, #4452, #4455,
#4466, #4471, #4472,
#4474, #4498, #4502,
#4504, #4558, #4546,
#4541
- Themes
- Extensions
- Allow extensions using
entry_before_insert to change entry->isRead() #4331
- i18n
- API
- Deployment
- Docker: Performance: entrypoint fix buffering, problematic when importing large OPMLs during install #4417
- Docker default image (Debian 11 Bullseye) updated to PHP 7.4.30 and Apache 2.4.54
- Docker: alternative image updated to Alpine 3.16 with PHP 8.0.22 and Apache 2.4.54 #4391
- Add PHP extensions
php-openssl (used by PHPMailer) and php-xml (used by SimplePie) #4420
- Docker: Upgraded dev image
freshrss/freshrss:newest to PHP 8.2 #4420
- Include PHP extensions in Composer for easier automated deployment #4497
- Improved trimming of
base_url to avoid some common configuration bugs, especially via Docker / CLI #4423
- CLI
- Allow empty DB prefix #4488
- Compatibility
- Security
- Improved error page, properly returning HTTP 500 and CSP #4465
- Misc.
- Replace
lib_phpQuery by PhpGt/CssXPath library for full content retrieval #4261
- Add support for star CSS Selectors such as
a[href*="example"] CssXPath#181
- Performance: Do not render irrelevant HTML for Ajax calls #4310, #4366
- Performance: New limit option when reloading a feed #4370
- Optional possibility to use Composer to update some libraries #4329, #4368
- Update to PHPMailer 6.6.0 #4329
- Use
.gitattributes export-ignore #4415
- Remove HTTP Referer for HTML download #4372
- Add database field
attributes (JSON) for entries #4444
- Improve dev automated checks #4209
- Update dev dependencies #4173, #4203, #4241,
#4419, #4424
- Fix extension list warning when offline#4571
- Code improvements #4130, #4194, #4201,
#4202, #4258, #4263,
#4356, #4436, #4489,
#4490, #4496
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:6;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.19.2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2022-02-04T14:27:57Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.19.2";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.19.2";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:6834:"
A few highlights:
- Improve dropdown menus on mobile view #4141, #4128
- Fix regression regarding keeping read state after seeing favourites / labels #4178
- Lots of code improvements, including improved support of PHP 8.1
- And more!
Detailed tracked changes.
Full changelog:
- Bug fixing
- Fix regression regarding keeping read state after seeing favourites / labels #4178
- Fix migration system on Synology and systems adding custom files to folders #4163
- Fix wrong dropdown triangle UI for labels #4174
- Fix minor UI bugs #4169, #4189, #4188
- Fix minor SCSS details for the themes Ansum and Mapco #4146
- UI
- Improve dropdown menus on mobile view #4141, #4128
- Improve menu icons #4004
- Features
- Support JSON import with date in milliseconds (e.g., Feedly) #4186
- Deployment
- Docker: development image
:newest updated to PHP 8.1.1 and Apache 2.4.52 #3666
- i18n
- Improve i18n CLI #4131
- Use typographic quotes #4133
- Improve message regarding forced feeds #4145
- Improve Czech #4151
- Improve English #4161
- Misc.
- Increase PHPStan to level 5 for code quality, also fixing several PHP 8.1 warnings #4110, #4123, #4119, #4182
- Clean temporary files generated by automated tests #4177
- Add automated spell checking of the code using typos #4138, #4134
- Enforce code style opening brace on same line in PHPCS #4122
- Remove broken GitHub Action automatically adding the
latest tag to git #4135
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:7;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.19.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2022-01-02T18:24:15Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.19.1";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.19.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:3202:"
Detailed tracked changes.
Full changelog:
- Bug fixing
- Fix some filters for automatic article actions (e.g.,
!pubdate:P3d) #4092
- Features
- New search operator on article IDs (useful to show a single article, extensions) #4058
- Entry (article) ID:
e:1639310674957894 or multiple entry IDs (or): e:1639310674957894,1639310674957893
- UI
- Fix left navigation with long category names #4055
- Show My labels menu also when empty #4065
- Improve category titles on global view #4059
- Disable dynamic favicon for browser / extensions blocking canvas #4098
- Minor UI and style improvements #4061, #4067, #4085
- SimplePie
- Manual update to SimplePie 1.5.8 #4113
- Code improvements
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:8;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.19.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2022-01-02T15:27:16Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.19.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.19.0";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:27522:"
A few highlights:
- Drop support for PHP 5.x (require PHP 7.0+) and initial support for PHP 8.1+
- Drop support for Microsoft Internet Explorer (IE11)
- New thumbnail and/or summary options for the normal view #3805

- New setting to automatically mark as read a new article if there is already one with the same title in the same feed
- New setting to keep only a maximum number of unread articles in a given feed
- Mobile view can access the configuration menus
Detailed tracked changes.
Full changelog:
- Features
- New thumbnail and/or summary options for the normal view #3805
- New setting to automatically mark as read a new article if there is already one with the same title in the same feed #3303
- New setting to keep only a maximum number of unread articles in a given feed #3303
- New search operator based on custom labels, or not #3709
- Search articles with label IDs:
L:12,13,14 or label names: label:something or labels:"my label,my other label,🧪"
- Search articles with any label:
L:* or no label: !L:*
- Add support for installable progressive web app (PWA) #3890
- Bug fixing
- Fix marking as read a label with SQLite and PostgreSQL #3711
- Better fallback for feeds without title #3787
- Fix auto-load articles in anonymous mode and global view #4082
- Fix several typos found by PHPStan, including one affecting the cache of keep max unread articles #4019
- Fix warning in Fever API #4056
- Show no articles alert-box also in global view #4042, #3099
- Fix theme selection when a theme has been deleted #3874
- Fix keyboard shortcuts in anonymous mode #3945
- Fix show password in settings #3966
- Fix JavaScript warnings for non-validated users #3980
- Fix drag & drop layout for subscriptions #3949
- Security
- Better error handling when a user does not exist (especially for API) #3751, #4084
- Do not show Add new feed for anonymous users #4040
- Do not show Mark as read / unread / favourite for anonymous users #3871, #3876
- Do not show back link on error pages if the user does not have access #3765
- Only show Back to RSS feeds when logged-in #3790
- Fix for special characters in keyboard shortcuts #3922
- Remove old workarounds with white space to prevent password autocompletion #3814
- Compatibility
- Require PHP 7.0+ (drop support for PHP 5.x) #3666
- Drop support for Microsoft Internet Explorer (IE11) #3666
- Fix some warnings with PHP 8.1+ #4012, #4018
- Fix back-compatibility with Git 2.21- for automatic updates #3669
- Fix JavaScript caching and compression for some Apache platforms #4075
- Deployment
- Docker: development image
:oldest is now based on alpine:3.5 with PHP 7.0.33 and Apache 2.4.35 #3666
- Docker: default image updated to Debian 11 Bullseye with PHP 7.4.25 and Apache 2.4.51 #3782
- Docker: alternative image updated to Alpine 3.15 with PHP 8.0.14 and Apache 2.4.52 #3996
- Docker: fix inclusion of
.htaccess for ./p/themes/ folder #4074
- Docker: only add the crontab when
CRON_MIN is set #3927
- Docker: move logic to disable FreshRSS updates #3973
- Docker: allow mounting a volume for the cron file #3927
- Images on Docker Hub are automatically scanned for software vulnerabilities
- UI
- Remember article filters when changing views (category / feed) #3986
- Mobile view can access the configuration menu #3879, #3881
- Improve layout of settings on small screen #3818, #3819
- New shortcut to jump to next unread article #3891
- New shortcut to actualise feeds #3900
- Implement Escape shortcut to close panels #3901
- Improve layout of subscription management page #3893
- Use HTML5 tags with better semantics and structure #3651, #3676, #3713, #3747, #3830, #3851
- Allow JavaScript in themes #3739
- Improve layout of statistics #3797, #3799, #3803
- Replace flotr2 with chart.js library #3858
- Remove jQuery fully #3847
- Improve label management #3959
- Update layout of user queries #3827
- Improve style of install procedure #3721
- Add retry button when checking requirements during install #3771
- Improve notification icon #3678
- Add CSS class to back links #3761
- Better support for
400 and 405 HTTP error codes #3981
- Many minor UI and style improvements #3792, #3795, #3801, #3802, #3817, #3821, #3824, #3831, #3832, #3877, #3880, #3969, #3989, #3990, #4005, #4015
- Themes
- Show search box for all themes in mobile view #4025
- Fix alternative-dark theme to avoid bright elements #3774, #3806
- Improve the contrast of message boxes for the Origine theme #3725
- Uniformize the size of
inputand select elements for the Origine theme #3727
- Fix style of banner text for the Origine theme #3731
- i18n
- Fix language of e-mail notifications #4076
- Lint i18n #3841
- Fix bug in French and German translations of new/old tags #3703, #3668
- Fix name of keyboard shortcut to open in new tab #3899
- Add Japanese #3828, #3834
- Improve Chineese #3926, #3947, #3963, #4084
- Improve Dutch #3844, #3928
- Improve German #3720, #3846, #3913, #4008
- Improve Italian #3939
- Improve Korean #3914
- Improve Occitan #3935
- Improve Polish #4027
- Improve Portuguese #3908, #3925
- Improve Russian #3907
- Improve Slovak #4036
- Improve Spanish #3916
- Extensions
- Add system configuration for extension #3626
- SimplePie
- Merge from upstream, help with PHP 8.1+ #4011
- Fallback to file extensions for enclosures not providing a media type #3861
- Misc.
- Implement GitHub Actions for continuous integration / automated testing 3920
- Use ESLint instead of JSHint #3906
- Improve
.editorconfig and .stylelintrc #3895, #3912
- Simplify Minz code with PHP 7
?? operator #4020
- Upgrade PHPMailer to 6.5.1 #3977
- Added Raindrop.io as sharing option #3717
- Delete outdated information regarding Firefox feed reader list #3822
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}i:9;a:6:{s:4:"data";s:38:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:2:{s:27:"http://www.w3.org/2005/Atom";a:6:{s:2:"id";a:1:{i:0;a:5:{s:4:"data";s:45:"tag:github.com,2008:Repository/6322699/1.18.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"updated";a:1:{i:0;a:5:{s:4:"data";s:20:"2021-06-06T21:01:54Z";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:3:"rel";s:9:"alternate";s:4:"type";s:9:"text/html";s:4:"href";s:56:"https://github.com/FreshRSS/FreshRSS/releases/tag/1.18.1";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:15:"FreshRSS 1.18.1";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:9699:"
Note: Last release before dropping support for PHP 5 and Internet Explorer 11.
Changelog:
- Features
- Support standard
HTTP 410 Gone by disabling (muting) gone feeds #3561
- Make advanced feed options such as SSL available to non-admins #3612
- API
- UI
- Allow Unicode for shortcuts #3548
- Bug fixing
- Fix database lock during refresh with MariaDB #3559
- Fix database creation from CLI #3544
- Fix:
pdo_sqlite is optional except for export/import SQLite #3545
- Fix import of JSON and TT-RSS files, especially with PHP 8 #3553
- Allow import of more than 999 favourites/labelled articles even with SQLite
- Fix additional SQL limits, especially for SQLite #3586
- Fix search param encoding in user query #3541
- Fix undefined variable & dead code when adding feed #3546
- Fix missing translation in feed configuration #3554
- Fix double escaping in feed filters #3563
- Fix bugs in migration system #3589
- Fix regression preventing showing startup errors #3590
- Fix form redirection after erroneous user creation #3656
- Fix JavaScript error during navigation when no article is selected #3655
- Fix link to add feeds from the empty homepage #3650
- Fix git update error message #3645
- SimplePie
- Fix regression about media attachments #3565
- Fix regression about forcing HTTPS for enclosures #3568
- Catch ValueError for loadHTML with PHP 8 simplepie#673
- Provide access to latest HTTP status code simplepie#674
- Fix wrong SimplePie type hint simplepie#678
- Merge details from upstream PRs #3588, #3614
- API
- Compatibility with Web servers providing
ORIG_PATH_INFO #3560
- i18n
- Code improvements:
- Friendly constant syntax for Intellisense #3577
- Fix several comments syntaxes #3615
- Minor uniform stricter HTML #3616
- Removed unused variable #3587
- Provide action name in Minz controller exception #3624
- New convenience method to extract multiline GET parameters from e.g.
<textarea> #3629
- Deployment
- Automatically apply
latest tag in git for the latest FreshRSS release #3524
- Misc.
- Remove legacy
data/do-install.txt for triggering install process #3555
- If using built-in git updates, automatically change to git
edge branch if using old master or dev branch names #3589
";s:7:"attribs";a:1:{s:0:"";a:1:{s:4:"type";s:4:"html";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}s:6:"author";a:1:{i:0;a:6:{s:4:"data";s:12:"
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";s:5:"child";a:1:{s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"name";a:1:{i:0;a:5:{s:4:"data";s:7:"Alkarex";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:9:"thumbnail";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:6:"height";s:2:"30";s:5:"width";s:2:"30";s:3:"url";s:56:"https://avatars.githubusercontent.com/u/1008324?s=60&v=4";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:5:"en-US";}}}}}}}}}}}}s:4:"type";i:512;s:7:"headers";a:16:{s:6:"server";s:10:"GitHub.com";s:4:"date";s:29:"Wed, 01 Nov 2023 07:40:12 GMT";s:4:"vary";s:93:"X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With";s:4:"etag";s:36:"W/"a692e599775f7ebff9fe8a43bbaf97a2"";s:13:"cache-control";s:35:"max-age=0, private, must-revalidate";s:25:"strict-transport-security";s:44:"max-age=31536000; includeSubdomains; preload";s:15:"x-frame-options";s:4:"deny";s:22:"x-content-type-options";s:7:"nosniff";s:16:"x-xss-protection";s:1:"0";s:15:"referrer-policy";s:26:"no-referrer-when-downgrade";s:23:"content-security-policy";s:2391:"default-src 'none'; base-uri 'self'; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.githubcopilot.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com cdn.optimizely.com logx.optimizely.com/v1/events objects-origin.githubusercontent.com *.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ wss://*.actions.githubusercontent.com github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com support.github.com; img-src 'self' data: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/";s:12:"content-type";s:35:"application/atom+xml; charset=utf-8";s:10:"set-cookie";s:641:"_gh_sess=NcekFj%2Bd6EDyVc%2BqQr3CsRQze4wR2fOwmb8Lz1JbALZ6zcYMe7s%2BDqfWOwSNtXQ5Q9tN%2BSdazfHwPTvUfmSzFE%2B8%2FiVGfPJ7qsXfdTk9ebIrRpdJ2dL%2Frsl9PPlSetgcMwYCGqjFxb5%2BSMTj0PkE3KdH0NufpqA8atYAT27I5oSgYC8YnYZBuAu2aK%2BfCQ8zh%2B30qCShjeFRE%2B%2BhUGV3EFteLWyW9f%2B3Sd1jz9CT3mOAQYbK8esWSLjTNy3zWiU6mt8DtBO5cPJDP52Pkq3Qtw%3D%3D--dGqFZLA9oTY0Hosm--drEyHjgXqCDugCIqHeYdlA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax, _octo=GH1.1.580776881.1698824414; Path=/; Domain=github.com; Expires=Fri, 01 Nov 2024 07:40:14 GMT; Secure; SameSite=Lax, logged_in=no; Path=/; Domain=github.com; Expires=Fri, 01 Nov 2024 07:40:14 GMT; HttpOnly; Secure; SameSite=Lax";s:13:"accept-ranges";s:5:"bytes";s:14:"content-length";s:6:"236456";s:19:"x-github-request-id";s:35:"E494:120FC:31630A7:32426BF:654200DE";}s:5:"build";s:14:"20230304122624";s:5:"mtime";i:1698824414;s:3:"md5";s:32:"5a493604ebf887e0a3eb669d0ba76d57";}