diff options
| author | 2025-06-04 11:39:59 +0200 | |
|---|---|---|
| committer | 2025-06-04 11:39:59 +0200 | |
| commit | 2b94cffeab0dfd66fcef15b6295efba24319b555 (patch) | |
| tree | bda04dcf7455add4a64cf4a986304096cf8fc5ff | |
| parent | cc35094bb261cb3185def89d745317fa756560ee (diff) | |
Archive some change logs (#7650)
* Move old changelog
* Archive some logs
| -rw-r--r-- | .typos.toml | 2 | ||||
| -rw-r--r-- | CHANGELOG.md | 2164 | ||||
| -rw-r--r-- | docs/CHANGELOG-old.md (renamed from CHANGELOG-old.md) | 2 | ||||
| -rw-r--r-- | docs/CHANGELOG-old2.md | 2169 | ||||
| -rw-r--r-- | docs/_config.yml | 3 |
5 files changed, 2174 insertions, 2166 deletions
diff --git a/.typos.toml b/.typos.toml index db6fb422f..b650ed722 100644 --- a/.typos.toml +++ b/.typos.toml @@ -40,9 +40,9 @@ extend-exclude = [ "app/i18n/zh-cn/", "app/i18n/zh-tw/", "bin/", - "CHANGELOG-old.md", "composer.lock", "data/", + "docs/CHANGELOG-old.md", "docs/fr/", "lib/marienfressinaud/", "lib/phpgt/", diff --git a/CHANGELOG.md b/CHANGELOG.md index a7ef631ee..31ee15aca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -492,2168 +492,6 @@ Security * Update dev dependencies [#6023](https://github.com/FreshRSS/FreshRSS/pull/6023), [#6265](https://github.com/FreshRSS/FreshRSS/pull/6265) -## 2023-12-30 FreshRSS 1.23.1 - -* Bug fixing - * Fix crash regression with the option *Max number of tags shown* [#5978](https://github.com/FreshRSS/FreshRSS/pull/5978) - * Fix crash regression when enabling extensions defined by old FreshRSS installations [#5979](https://github.com/FreshRSS/FreshRSS/pull/5979) - * Fix crash regression during export when using MySQL [#5988](https://github.com/FreshRSS/FreshRSS/pull/5988) - * More robust assignment of categories to feeds [#5986](https://github.com/FreshRSS/FreshRSS/pull/5986) - * Fix `base_url` being cleared when saving settings [#5992](https://github.com/FreshRSS/FreshRSS/pull/5992) - * Fix unwanted button in UI of update page [#5999](https://github.com/FreshRSS/FreshRSS/pull/5999) -* Deployment - * Exclude more folders with `.dockerignore` [#5996](https://github.com/FreshRSS/FreshRSS/pull/5996) -* i18n - * Improve Simplified Chinese [#5977](https://github.com/FreshRSS/FreshRSS/pull/5977) - * Improve Hungarian [#6000](https://github.com/FreshRSS/FreshRSS/pull/6000) - - -## 2023-12-24 FreshRSS 1.23.0 - -* Features - * New *Important feeds* group in the main view, with corresponding new priority level for feeds [#5782](https://github.com/FreshRSS/FreshRSS/pull/5782) - * Entries from important feeds are not marked as read during *scroll*, during *focus*, nor during *Mark all as read* - * Add filter actions (auto mark as read) at category level and at global levels [#5942](https://github.com/FreshRSS/FreshRSS/pull/5942) - * Improve reliability of *Max number of articles to keep unread* [#5905](https://github.com/FreshRSS/FreshRSS/pull/5905) - * New option to mark entries as read when focused from keyboard shortcut [5812](https://github.com/FreshRSS/FreshRSS/pull/5812) - * New display option to hide *My labels* in article footers [#5884](https://github.com/FreshRSS/FreshRSS/pull/5884) - * Add support for more thumbnail types in feeds enclosures [#5806](https://github.com/FreshRSS/FreshRSS/pull/5806) - * Support for favicons with non-absolute paths [#5839](https://github.com/FreshRSS/FreshRSS/pull/5839) - * Increase SQL (`VARCHAR`) text fields length to maximum possible [#5788](https://github.com/FreshRSS/FreshRSS/pull/5788) - * Increase SQL date fields to 64-bit to be ready for year 2038+ [#5570](https://github.com/FreshRSS/FreshRSS/pull/5570) -* Compatibility - * Require PHP 7.4+, and implement *typed properties* [#5720](https://github.com/FreshRSS/FreshRSS/pull/5720) - * Soft require Apache 2.4+ (but repair minimal compatibility with Apache 2.2) [#5791](https://github.com/FreshRSS/FreshRSS/pull/5791), [#5804](https://github.com/FreshRSS/FreshRSS/pull/5804) -* Bug fixing - * Fix regression in Docker `CRON_MIN` if any environment variable contains a single quote [#5795](https://github.com/FreshRSS/FreshRSS/pull/5795) - * Improve filtering of cron environment variables [#5898](https://github.com/FreshRSS/FreshRSS/pull/5898) - * Fix the `TRUSTED_PROXY` environment variable used in combination with *trusted sources* [#5853](https://github.com/FreshRSS/FreshRSS/pull/5853) - * Fix regression in marking as read if an identical title already exists [#5937](https://github.com/FreshRSS/FreshRSS/pull/5937) - * Fix JavaScript regression in label dropdown [#5785](https://github.com/FreshRSS/FreshRSS/pull/5785) - * Fix regression when renaming a label [#5842](https://github.com/FreshRSS/FreshRSS/pull/5842) - * Fix API for adding feed with a title [#5868](https://github.com/FreshRSS/FreshRSS/pull/5868) - * Fix regression in UI of update page [#5802](https://github.com/FreshRSS/FreshRSS/pull/5802) - * Fix XPath encoding [#5912](https://github.com/FreshRSS/FreshRSS/pull/5912) - * Fix notifications, in particular during login [#5959](https://github.com/FreshRSS/FreshRSS/pull/5959) -* Deployment - * Use GitHub Actions to build Docker images, offering architectures `amd64`, `arm32v7`, `arm64v8` with automatic detection [#5808](https://github.com/FreshRSS/FreshRSS/pull/5808) - * Docker alternative image updated to Alpine 3.19 with PHP 8.2.13 and Apache 2.4.58 [#5383](https://github.com/FreshRSS/FreshRSS/pull/5383) -* Extensions - * Upgrade extensions code to PHP 7.4+ [#5901](https://github.com/FreshRSS/FreshRSS/pull/5901), [#5957](https://github.com/FreshRSS/FreshRSS/pull/5957) - * Breaking change: upgraded extensions require FreshRSS 1.23.0+ [Extensions#181](https://github.com/FreshRSS/Extensions/pull/181) - * Pass FreshRSS version to JavaScript client side for extensions [#5902](https://github.com/FreshRSS/FreshRSS/pull/5902) - * Add GitHub Actions and PHPStan for automatic testing of the Extensions repository [Extensions#185](https://github.com/FreshRSS/Extensions/pull/185) -* API - * Improve handling of new lines in enclosure descriptions (e.g., YouTube video descriptions) [#5859](https://github.com/FreshRSS/FreshRSS/pull/5859) -* Security - * Avoid printing exceptions in favicons [#5867](https://github.com/FreshRSS/FreshRSS/pull/5867) - * Remove unneeded execution permissions on some files [#5831](https://github.com/FreshRSS/FreshRSS/pull/5831) -* UI - * Ensure that enough articles are loaded on window resize [#5815](https://github.com/FreshRSS/FreshRSS/pull/5815) - * Improve *Nord* theme [#5885](https://github.com/FreshRSS/FreshRSS/pull/5885) - * Do not show message *Add some feeds* [#5827](https://github.com/FreshRSS/FreshRSS/pull/5827) - * Various UI and style improvements [#5886](https://github.com/FreshRSS/FreshRSS/pull/5886) -* i18n - * Fix font priority for languages using Han characters [#5930](https://github.com/FreshRSS/FreshRSS/pull/5930) - * Improve Dutch [#5796](https://github.com/FreshRSS/FreshRSS/pull/5796) - * Improve Hungarian [#5918](https://github.com/FreshRSS/FreshRSS/pull/5918) -* Misc. - * Increase PHPStan from Level 7 to [Level 8](https://phpstan.org/user-guide/rule-levels) [#5946](https://github.com/FreshRSS/FreshRSS/pull/5946) - * Compatibility PHP 8.2+ for running automated tests [#5826](https://github.com/FreshRSS/FreshRSS/pull/5826) - * Use PHP [`declare(strict_types=1);`](https://php.net/language.types.declarations#language.types.declarations.strict) [#5830](https://github.com/FreshRSS/FreshRSS/pull/5830) - * Better stack trace for SQL errors [#5916](https://github.com/FreshRSS/FreshRSS/pull/5916) - * Code improvements [#5511](https://github.com/FreshRSS/FreshRSS/pull/5511), [#5945](https://github.com/FreshRSS/FreshRSS/pull/5945) - * Update dev dependencies [#5787](https://github.com/FreshRSS/FreshRSS/pull/5787) - - -## 2023-10-30 FreshRSS 1.22.1 - -* Bug fixing - * Fix regression in i18n English fallback for extensions [#5752](https://github.com/FreshRSS/FreshRSS/pull/5752) - * Fix identification of thumbnails [#5750](https://github.com/FreshRSS/FreshRSS/pull/5750) - * OpenID Connect compatibility with colon `:` in `OIDC_SCOPES` [#5753](https://github.com/FreshRSS/FreshRSS/pull/5753), [#5764](https://github.com/FreshRSS/FreshRSS/pull/5764) - * Avoid a warning on non-numeric `TRUSTED_PROXY` environment variable [#5733](https://github.com/FreshRSS/FreshRSS/pull/5733) - * Better identification of proxied client IP with `RemoteIPInternalProxy` in Apache [#5740](https://github.com/FreshRSS/FreshRSS/pull/5740) -* Deployment - * Export all environment variables to cron (to allow custom environment variables such as for Kubernetes) [#5772](https://github.com/FreshRSS/FreshRSS/pull/5772) - * Docker: Upgraded Alpine dev image `freshrss/freshrss:newest` to PHP 8.3 and Apache 2.4.58 [#5764](https://github.com/FreshRSS/FreshRSS/pull/5764) -* Compatibility - * Test compatibility with PHP 8.3 [#5764](https://github.com/FreshRSS/FreshRSS/pull/5764) -* UI - * Improve *Origine* theme (dark mode) [#5745](https://github.com/FreshRSS/FreshRSS/pull/5745) - * Improve *Nord* theme [#5754](https://github.com/FreshRSS/FreshRSS/pull/5754) - * Various UI and style improvements [#5737](https://github.com/FreshRSS/FreshRSS/pull/5737), [#5765](https://github.com/FreshRSS/FreshRSS/pull/5765), - [#5773](https://github.com/FreshRSS/FreshRSS/pull/5773), [#5774](https://github.com/FreshRSS/FreshRSS/pull/5774) -* i18n - * Better i18n string for feed submenu for mark as read [#5762](https://github.com/FreshRSS/FreshRSS/pull/5762) - * Improve Dutch [#5759](https://github.com/FreshRSS/FreshRSS/pull/5759) -* Misc. - * Move to GitHub Actions for our GitHub Pages [#5681](https://github.com/FreshRSS/FreshRSS/pull/5681) - * Update dev dependencies and use `stylelint-stylistic` [#5766](https://github.com/FreshRSS/FreshRSS/pull/5766) - - -## 2023-10-23 FreshRSS 1.22.0 - -* Features - * Add support for OpenID Connect (only in our default Debian-based Docker image for `x86_64`, not Alpine) through [`libapache2-mod-auth-openidc`](https://github.com/OpenIDC/mod_auth_openidc) - [#5351](https://github.com/FreshRSS/FreshRSS/pull/5351), [#5463](https://github.com/FreshRSS/FreshRSS/pull/5463), [#5481](https://github.com/FreshRSS/FreshRSS/pull/5481), - [#5523](https://github.com/FreshRSS/FreshRSS/pull/5523), [#5646](https://github.com/FreshRSS/FreshRSS/pull/5646) - * Allow sharing in anonymous mode [#5261](https://github.com/FreshRSS/FreshRSS/pull/5261) - * Support Unix socket for MySQL / MariaDB [#5166](https://github.com/FreshRSS/FreshRSS/pull/5166) - * Use proxy settings also for fetching favicons [#5421](https://github.com/FreshRSS/FreshRSS/pull/5421) - * Add mutual exclusion semaphore for better scaling of actualize script [#5235](https://github.com/FreshRSS/FreshRSS/pull/5235) - * Better reporting of XPath failures [#5317](https://github.com/FreshRSS/FreshRSS/pull/5317) - * Add sharing with Buffer.com [#5286](https://github.com/FreshRSS/FreshRSS/pull/5286) - * Add sharing with Omnivore [#5477](https://github.com/FreshRSS/FreshRSS/pull/5477) - * Improve sharing with Linkding [#5433](https://github.com/FreshRSS/FreshRSS/pull/5433) - * Do not automatically update feeds after import, to better support multiple imports [#5629](https://github.com/FreshRSS/FreshRSS/pull/5629) - * Compatibility for servers disabling `set_time_limit()` [#5675](https://github.com/FreshRSS/FreshRSS/pull/5675) - * New configuration constant `CLEANCACHE_HOURS` [#5144](https://github.com/FreshRSS/FreshRSS/pull/5144) -* Bug fixing - * Fix cache refresh [#5562](https://github.com/FreshRSS/FreshRSS/pull/5562) - * Fix and improvement of hash of articles using *load full content* [#5576](https://github.com/FreshRSS/FreshRSS/pull/5576) - * Fix case of falsy GUIDs [#5412](https://github.com/FreshRSS/FreshRSS/pull/5412) - * Fix and improve JSON export/import [#5332](https://github.com/FreshRSS/FreshRSS/pull/5332), [#5626](https://github.com/FreshRSS/FreshRSS/pull/5626) - * Fix enclosures in RSS output [#5540](https://github.com/FreshRSS/FreshRSS/pull/5540) - * Fix parenthesis escaping bug in searches [#5633](https://github.com/FreshRSS/FreshRSS/pull/5633) - * Fix regression in Fever API enclosures [#5214](https://github.com/FreshRSS/FreshRSS/pull/5214) - * Fix regression in Fever API mark-all-as-read [#5185](https://github.com/FreshRSS/FreshRSS/pull/5185) - * Fix regression in OPML export of single feeds [#5238](https://github.com/FreshRSS/FreshRSS/pull/5238) - * Fix warning during OPML export with empty attributes [#5559](https://github.com/FreshRSS/FreshRSS/pull/5559) - * Fix extensions in *actualize script* [#5243](https://github.com/FreshRSS/FreshRSS/pull/5243) - * Fix link to configuration (system or user) for extensions [#5394](https://github.com/FreshRSS/FreshRSS/pull/5394) - * Fix *mark as read upon gone* option in some conditions [#5315](https://github.com/FreshRSS/FreshRSS/pull/5315), - [#5382](https://github.com/FreshRSS/FreshRSS/pull/5382), [#5404](https://github.com/FreshRSS/FreshRSS/pull/5404) - * Fix *mark selection as unread* [#5367](https://github.com/FreshRSS/FreshRSS/pull/5367) - * Fix warning in articles repartition statistics [#5228](https://github.com/FreshRSS/FreshRSS/pull/5228) - * Fix count entries with some databases [#5368](https://github.com/FreshRSS/FreshRSS/pull/5368) - * Fix MariaDB database size calculation [#5655](https://github.com/FreshRSS/FreshRSS/pull/5655) - * Fix feed position attribute [#5203](https://github.com/FreshRSS/FreshRSS/pull/5203) - * Fix warning when tagging entries [#5221](https://github.com/FreshRSS/FreshRSS/pull/5221) - * Fix labels in anonymous mode [#5650](https://github.com/FreshRSS/FreshRSS/pull/5650) - * Fix bug not allowing strings for tags in XPath [#5653](https://github.com/FreshRSS/FreshRSS/pull/5653) - * Fix get and order when saving user query [#5515](https://github.com/FreshRSS/FreshRSS/pull/5515) - * Fix search using user queries [#5669](https://github.com/FreshRSS/FreshRSS/pull/5669) - * Fix regression of access to logs even when auto-update is disabled [#5577](https://github.com/FreshRSS/FreshRSS/pull/5577) - * Fix access to Apache logs from Dev Container [#5660](https://github.com/FreshRSS/FreshRSS/pull/5660) - * Fix malformed HTTP header in case of internal fatal error [#5699](https://github.com/FreshRSS/FreshRSS/pull/5699) - * Fix rare exception for HTML notifications [#5690](https://github.com/FreshRSS/FreshRSS/pull/5690) -* UI - * New option to display website name and/or favicon of articles [#4969](https://github.com/FreshRSS/FreshRSS/pull/4969) - * Support `<meta name="theme-color" .../>` [#5105](https://github.com/FreshRSS/FreshRSS/pull/5105) - * Config user settings in slider [#5094](https://github.com/FreshRSS/FreshRSS/pull/5094) - * Improve theme selector [#5281](https://github.com/FreshRSS/FreshRSS/pull/5281), [#5688](https://github.com/FreshRSS/FreshRSS/pull/5688) - * Improve *share to clipboard* with animation and icon [#5295](https://github.com/FreshRSS/FreshRSS/pull/5295) - * Allow *share to clipboard* even for localhost and without HTTPS [#5606](https://github.com/FreshRSS/FreshRSS/pull/5606) - * Feedback when tag with same name as category already exists [#5181](https://github.com/FreshRSS/FreshRSS/pull/5181) - * Show *base URL* in configuration [#5656](https://github.com/FreshRSS/FreshRSS/pull/5656), [#5657](https://github.com/FreshRSS/FreshRSS/pull/5657) - * Show *Terms of Service* in config menu [#5215](https://github.com/FreshRSS/FreshRSS/pull/5215) - * Show *Terms of Service* in footer [#5222](https://github.com/FreshRSS/FreshRSS/pull/5222) - * Improve *about* page [#5192](https://github.com/FreshRSS/FreshRSS/pull/5192) - * Improve *update* page [#5420](https://github.com/FreshRSS/FreshRSS/pull/5420), [#5636](https://github.com/FreshRSS/FreshRSS/pull/5636), - [#5647](https://github.com/FreshRSS/FreshRSS/pull/5647) - * Improve Step 1 of install process [#5350](https://github.com/FreshRSS/FreshRSS/pull/5350) - * Improve *Global view* on mobile [#5297](https://github.com/FreshRSS/FreshRSS/pull/5297) - * Reduce network overhead for Global view [#5496](https://github.com/FreshRSS/FreshRSS/pull/5496) - * Fix *Global view*: Stick the article to the top when opened [#5153](https://github.com/FreshRSS/FreshRSS/pull/5153) - * Fix configuration views that are using a slider [#5469](https://github.com/FreshRSS/FreshRSS/pull/5469) - * Fix highlight next/prev article while using shortcuts [#5211](https://github.com/FreshRSS/FreshRSS/pull/5211) - * Fix regression in statistics column name *% of total* [#5232](https://github.com/FreshRSS/FreshRSS/pull/5232) - * Fix macOS feed title meta-click behaviour [#5492](https://github.com/FreshRSS/FreshRSS/pull/5492) - * Improve themes - * *Origine* (dark mode) [#5229](https://github.com/FreshRSS/FreshRSS/pull/5229), - [#5288](https://github.com/FreshRSS/FreshRSS/pull/5288), [#5437](https://github.com/FreshRSS/FreshRSS/pull/5437) - * *Alternative Dark* [#5206](https://github.com/FreshRSS/FreshRSS/pull/5206) - * *Ansum* / *Mapco* [#5453](https://github.com/FreshRSS/FreshRSS/pull/5453) - * *Dark* [#5280](https://github.com/FreshRSS/FreshRSS/pull/5280), [#5439](https://github.com/FreshRSS/FreshRSS/pull/5439) - * *Flat* (un-deprecated) [#5316](https://github.com/FreshRSS/FreshRSS/pull/5316) - * *Nord* [#5689](https://github.com/FreshRSS/FreshRSS/pull/5689), [#5719](https://github.com/FreshRSS/FreshRSS/pull/5719) - * Delete previously deprecated themes: *BlueLagoon*, *Screwdriver* [#5374](https://github.com/FreshRSS/FreshRSS/pull/5374), - [#5694](https://github.com/FreshRSS/FreshRSS/pull/5694) - * Various UI and style improvements [#5147](https://github.com/FreshRSS/FreshRSS/pull/5147), [#5216](https://github.com/FreshRSS/FreshRSS/pull/5216), - [#5303](https://github.com/FreshRSS/FreshRSS/pull/5303), [#5304](https://github.com/FreshRSS/FreshRSS/pull/5304), [#5397](https://github.com/FreshRSS/FreshRSS/pull/5397), - [#5398](https://github.com/FreshRSS/FreshRSS/pull/5398), [#5400](https://github.com/FreshRSS/FreshRSS/pull/5400), [#5603](https://github.com/FreshRSS/FreshRSS/pull/5603), - [#5695](https://github.com/FreshRSS/FreshRSS/pull/5695) -* Security - * Rework trusted proxies (especially with Docker) [#5549](https://github.com/FreshRSS/FreshRSS/pull/5549) - * Automatic trusted sources during install [#5358](https://github.com/FreshRSS/FreshRSS/pull/5358) - * Show remote IP address in case of HTTP Basic Auth error [#5314](https://github.com/FreshRSS/FreshRSS/pull/5314) -* Deployment - * Docker listen on all interfaces by default, including IPv6 [#5180](https://github.com/FreshRSS/FreshRSS/pull/5180) - * Docker default image updated to Debian 12 Bookworm with PHP 8.2.7 and Apache 2.4.57 [#5461](https://github.com/FreshRSS/FreshRSS/pull/5461) - * Docker alternative image updated to Alpine 3.18 with PHP 8.1.23 and Apache 2.4.58 [#5383](https://github.com/FreshRSS/FreshRSS/pull/5383) - * Docker quiet Apache `a2enmod` [#5464](https://github.com/FreshRSS/FreshRSS/pull/5464) - * Docker: Add `DATA_PATH` to cron env [#5531](https://github.com/FreshRSS/FreshRSS/pull/5531) -* i18n - * Fix i18n for automatic dark mode configuration [#5168](https://github.com/FreshRSS/FreshRSS/pull/5168) - * Clarify that maximum number to keep is per feed [#5458](https://github.com/FreshRSS/FreshRSS/pull/5458) - * Add Hungarian [#5589](https://github.com/FreshRSS/FreshRSS/pull/5589), [#5593](https://github.com/FreshRSS/FreshRSS/pull/5593) - * Add Latvian [#5254](https://github.com/FreshRSS/FreshRSS/pull/5254) - * Add Persian [#5571](https://github.com/FreshRSS/FreshRSS/pull/5571) - * Remove unneeded quotes in feed warning [#5480](https://github.com/FreshRSS/FreshRSS/pull/5480) - * Improve German [#5171](https://github.com/FreshRSS/FreshRSS/pull/5171), [#5468](https://github.com/FreshRSS/FreshRSS/pull/5468), - [#5640](https://github.com/FreshRSS/FreshRSS/pull/5640) - * Improve Spanish [#5408](https://github.com/FreshRSS/FreshRSS/pull/5408), [#5436](https://github.com/FreshRSS/FreshRSS/pull/5436), - [#5609](https://github.com/FreshRSS/FreshRSS/pull/5609) -* Extensions - * Fix fallback to English for extensions [#5426](https://github.com/FreshRSS/FreshRSS/pull/5426) - * Allow deep-link to extension configuration [#5449](https://github.com/FreshRSS/FreshRSS/pull/5449) - * New extension hook `entry_auto_read` [#5505](https://github.com/FreshRSS/FreshRSS/pull/5505), [#5561](https://github.com/FreshRSS/FreshRSS/pull/5561) - * Simplify extension method [#5234](https://github.com/FreshRSS/FreshRSS/pull/5234) - * Remove obsolete core extensions *Google Group* and *Tumblr* [#5457](https://github.com/FreshRSS/FreshRSS/pull/5457) -* SimplePie - * Fix `error_reporting` for PHP 8.1+ [#5199](https://github.com/FreshRSS/FreshRSS/pull/5199) -* Misc. - * Reduce database locks [#5576](https://github.com/FreshRSS/FreshRSS/pull/5576), [#5625](https://github.com/FreshRSS/FreshRSS/pull/5625), - [#5648](https://github.com/FreshRSS/FreshRSS/pull/5648), [#5649](https://github.com/FreshRSS/FreshRSS/pull/5649) - * Improve MySQL / MariaDB performance for updating cached SQL values [#5648](https://github.com/FreshRSS/FreshRSS/pull/5648) - * Increase time limit import OPML [#5231](https://github.com/FreshRSS/FreshRSS/pull/5231) - * Save SQL attributes as native Unicode [#5371](https://github.com/FreshRSS/FreshRSS/pull/5371) - * Remove old SQL auto-updates [#5625](https://github.com/FreshRSS/FreshRSS/pull/5625), [#5649](https://github.com/FreshRSS/FreshRSS/pull/5649) - * Improve Dev Container (update to Alpine 3.18, use `DATA_PATH` environment variable) [#5423](https://github.com/FreshRSS/FreshRSS/pull/5423) - * Update `lib_opml` [#5188](https://github.com/FreshRSS/FreshRSS/pull/5188) - * Update `lib/http-conditional` [#5277](https://github.com/FreshRSS/FreshRSS/pull/5277) - * Update *PHPMailer* [#5389](https://github.com/FreshRSS/FreshRSS/pull/5389) - * Use typed access to request parameters [#5267](https://github.com/FreshRSS/FreshRSS/pull/5267) - * Typed view model classes [#5380](https://github.com/FreshRSS/FreshRSS/pull/5380) - * Remove `ConfigurationSetter` [#5251](https://github.com/FreshRSS/FreshRSS/pull/5251), [#5580](https://github.com/FreshRSS/FreshRSS/pull/5580) - * Ignore `./data.back/` in `.gitignore` [#5359](https://github.com/FreshRSS/FreshRSS/pull/5359) - * Composer dev command compatibility with macOS [#5379](https://github.com/FreshRSS/FreshRSS/pull/5379) - * Code improvements [#5089](https://github.com/FreshRSS/FreshRSS/pull/5089), - [#5212](https://github.com/FreshRSS/FreshRSS/pull/5212), [#5213](https://github.com/FreshRSS/FreshRSS/pull/5213), [#5362](https://github.com/FreshRSS/FreshRSS/pull/5362), - [#5470](https://github.com/FreshRSS/FreshRSS/pull/5470), [#5501](https://github.com/FreshRSS/FreshRSS/pull/5501), [#5504](https://github.com/FreshRSS/FreshRSS/pull/5504), - [#5667](https://github.com/FreshRSS/FreshRSS/pull/5667) - * Increase PHPStan from Level 5 to [level 7](https://phpstan.org/user-guide/rule-levels) [#4112](https://github.com/FreshRSS/FreshRSS/issues/4112), - [#5064](https://github.com/FreshRSS/FreshRSS/pull/5064), [#5087](https://github.com/FreshRSS/FreshRSS/pull/5087), [#5090](https://github.com/FreshRSS/FreshRSS/pull/5090), - [#5106](https://github.com/FreshRSS/FreshRSS/pull/5106), [#5108](https://github.com/FreshRSS/FreshRSS/pull/5108), [#5230](https://github.com/FreshRSS/FreshRSS/pull/5230), - [#5239](https://github.com/FreshRSS/FreshRSS/pull/5239), [#5258](https://github.com/FreshRSS/FreshRSS/pull/5258), [#5263](https://github.com/FreshRSS/FreshRSS/pull/5263), - [#5264](https://github.com/FreshRSS/FreshRSS/pull/5264), [#5269](https://github.com/FreshRSS/FreshRSS/pull/5269), [#5272](https://github.com/FreshRSS/FreshRSS/pull/5272), - [#5275](https://github.com/FreshRSS/FreshRSS/pull/5275), [#5279](https://github.com/FreshRSS/FreshRSS/pull/5279), [#5282](https://github.com/FreshRSS/FreshRSS/pull/5282), - [#5283](https://github.com/FreshRSS/FreshRSS/pull/5283), [#5289](https://github.com/FreshRSS/FreshRSS/pull/5289), [#5290](https://github.com/FreshRSS/FreshRSS/pull/5290), - [#5291](https://github.com/FreshRSS/FreshRSS/pull/5291), [#5292](https://github.com/FreshRSS/FreshRSS/pull/5292), [#5299](https://github.com/FreshRSS/FreshRSS/pull/5299), - [#5305](https://github.com/FreshRSS/FreshRSS/pull/5305), [#5307](https://github.com/FreshRSS/FreshRSS/pull/5307), [#5309](https://github.com/FreshRSS/FreshRSS/pull/5309), - [#5313](https://github.com/FreshRSS/FreshRSS/pull/5313), [#5318](https://github.com/FreshRSS/FreshRSS/pull/5318), [#5319](https://github.com/FreshRSS/FreshRSS/pull/5319), - [#5327](https://github.com/FreshRSS/FreshRSS/pull/5327), [#5328](https://github.com/FreshRSS/FreshRSS/pull/5328), [#5352](https://github.com/FreshRSS/FreshRSS/pull/5352), - [#5353](https://github.com/FreshRSS/FreshRSS/pull/5353), [#5354](https://github.com/FreshRSS/FreshRSS/pull/5354), [#5361](https://github.com/FreshRSS/FreshRSS/pull/5361), - [#5366](https://github.com/FreshRSS/FreshRSS/pull/5366), [#5370](https://github.com/FreshRSS/FreshRSS/pull/5370), [#5373](https://github.com/FreshRSS/FreshRSS/pull/5373), - [#5376](https://github.com/FreshRSS/FreshRSS/pull/5376), [#5384](https://github.com/FreshRSS/FreshRSS/pull/5384), [#5388](https://github.com/FreshRSS/FreshRSS/pull/5388), - [#5393](https://github.com/FreshRSS/FreshRSS/pull/5393), [#5400](https://github.com/FreshRSS/FreshRSS/pull/5400), [#5406](https://github.com/FreshRSS/FreshRSS/pull/5406), - [#5429](https://github.com/FreshRSS/FreshRSS/pull/5429), [#5431](https://github.com/FreshRSS/FreshRSS/pull/5431), [#5434](https://github.com/FreshRSS/FreshRSS/pull/5434), - [#5578](https://github.com/FreshRSS/FreshRSS/pull/5578) - * Update dev dependencies [#5336](https://github.com/FreshRSS/FreshRSS/pull/5336), [#5339](https://github.com/FreshRSS/FreshRSS/pull/5339), - [#5478](https://github.com/FreshRSS/FreshRSS/pull/5478), [#5513](https://github.com/FreshRSS/FreshRSS/pull/5513), [#5541](https://github.com/FreshRSS/FreshRSS/pull/5541), - [#5691](https://github.com/FreshRSS/FreshRSS/pull/5691), [#5693](https://github.com/FreshRSS/FreshRSS/pull/5693) - - -## 2023-03-04 FreshRSS 1.21.0 - -* Features - * New *XML+XPath* mode for fetching XML documents when there is no RSS/ATOM feed [#5076](https://github.com/FreshRSS/FreshRSS/pull/5076) - * Better support of feed enclosures (image / audio / video attachments) [#4944](https://github.com/FreshRSS/FreshRSS/pull/4944) - * User-defined time-zone [#4906](https://github.com/FreshRSS/FreshRSS/pull/4906) - * Improve HTML+XPath mode by allowing HTML content [#4878](https://github.com/FreshRSS/FreshRSS/pull/4878) - * Search only on full tag names and not on parts of tag names [#4882](https://github.com/FreshRSS/FreshRSS/pull/4882) - * Allows searching for parentheses with `\(` or `\)` [#4989](https://github.com/FreshRSS/FreshRSS/pull/4989) - * Firefox-compatible sharing service for `mailto:` links for webmail services [#4680](https://github.com/FreshRSS/FreshRSS/pull/4680) - * Add sharing to [archive.org](https://archive.org/) [#5096](https://github.com/FreshRSS/FreshRSS/pull/5096) - * Increase max HTTP timeout to 15 minutes [#5074](https://github.com/FreshRSS/FreshRSS/pull/5074) -* Compatibility - * Require PHP 7.2+ (drop support for PHP 7.0 and 7.1) [#4848](https://github.com/FreshRSS/FreshRSS/pull/4848) - * Workaround disabled `openlog()` or `syslog()` [#5054](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4886) - * More uniform time-zone behaviour [#4903](https://github.com/FreshRSS/FreshRSS/pull/4903), [#4905](https://github.com/FreshRSS/FreshRSS/pull/4905) - * New CLI script `cli/sensitive-log.sh` to help e.g. Apache clear logs for sensitive information such as credentials [#5001](https://github.com/FreshRSS/FreshRSS/pull/5001) - * New CLI script `cli/access-permissions.sh` to help apply file permissions correctly [#5062](https://github.com/FreshRSS/FreshRSS/pull/5062) - * Improve file permissions on `./extensions/` [#4956](https://github.com/FreshRSS/FreshRSS/pull/4956) - * Update Apache mime type `font/woff` [#4894](https://github.com/FreshRSS/FreshRSS/pull/4894) - * Re-added a git `latest` branch (instead of a tag) to track the latest FreshRSS stable releases [#5148](https://github.com/FreshRSS/FreshRSS/pull/5148) -* Bug fixing - * Fix allow disabling curl proxy for specific feed, when proxy is defined globally [#5082](https://github.com/FreshRSS/FreshRSS/pull/5082) - * NFS-friendly `is_writable()` checks [#4780](https://github.com/FreshRSS/FreshRSS/pull/4780) - * Fix error handling when updating feed URL [#5039](https://github.com/FreshRSS/FreshRSS/pull/5039) - * Fix feed favicon after editing feed URL [#4975](https://github.com/FreshRSS/FreshRSS/pull/4975) - * Fix allow <kbd>Ctrl</kbd>+<kbd>Click</kbd> to open *Manage feeds* in new tab [#4980](https://github.com/FreshRSS/FreshRSS/pull/4980) - * Fix empty window opened when pressing space after page load [#5146](https://github.com/FreshRSS/FreshRSS/pull/5146) - * Fix keep current view when searching [#4981](https://github.com/FreshRSS/FreshRSS/pull/4981) - * Fix mobile view: scroll main area again after closing slider [#5092](https://github.com/FreshRSS/FreshRSS/pull/5092) - * Fix change confirmation when leaving sharing service config [#5098](https://github.com/FreshRSS/FreshRSS/pull/5098) - * Fix sharing to Lemmy [#5020](https://github.com/FreshRSS/FreshRSS/pull/5020) -* Security - * API avoid logging passwords [CVE-2023-22481](https://github.com/FreshRSS/FreshRSS/security/advisories/GHSA-8vvv-jxg6-8578) - * Remove execution rights on some files not needing it [#5065](https://github.com/FreshRSS/FreshRSS/pull/5065) - * More robust application of file access permissions [#5062](https://github.com/FreshRSS/FreshRSS/pull/5062) -* UI - * Improve search box [#4994](https://github.com/FreshRSS/FreshRSS/pull/4994) - * Improve navigation menu structure [#4937](https://github.com/FreshRSS/FreshRSS/pull/4937) - * More consistent sorting of feeds alphabetically [#4841](https://github.com/FreshRSS/FreshRSS/pull/4841) - * Improve reader view on mobile screen [#4868](https://github.com/FreshRSS/FreshRSS/pull/4868) - * Various UI and style improvements [#4681](https://github.com/FreshRSS/FreshRSS/pull/4681), [#4794](https://github.com/FreshRSS/FreshRSS/pull/4794) - [#4800](https://github.com/FreshRSS/FreshRSS/pull/4800), [#4850](https://github.com/FreshRSS/FreshRSS/pull/4850), [#4865](https://github.com/FreshRSS/FreshRSS/pull/4865), - [#4872](https://github.com/FreshRSS/FreshRSS/pull/4872), [#4874](https://github.com/FreshRSS/FreshRSS/pull/4874), [#4889](https://github.com/FreshRSS/FreshRSS/pull/4889), - [#4890](https://github.com/FreshRSS/FreshRSS/pull/4890), [#4891](https://github.com/FreshRSS/FreshRSS/pull/4891), [#4897](https://github.com/FreshRSS/FreshRSS/pull/4897), - [#4899](https://github.com/FreshRSS/FreshRSS/pull/4899), [#4910](https://github.com/FreshRSS/FreshRSS/pull/4910), [#4923](https://github.com/FreshRSS/FreshRSS/pull/4923), - [#4927](https://github.com/FreshRSS/FreshRSS/pull/4927), [#4960](https://github.com/FreshRSS/FreshRSS/pull/4960), [#4985](https://github.com/FreshRSS/FreshRSS/pull/4985), - [#4998](https://github.com/FreshRSS/FreshRSS/pull/4998), [#5034](https://github.com/FreshRSS/FreshRSS/pull/5034), [#5040](https://github.com/FreshRSS/FreshRSS/pull/5040), - [#5055](https://github.com/FreshRSS/FreshRSS/pull/5055), [#5058](https://github.com/FreshRSS/FreshRSS/pull/5058), [#5097](https://github.com/FreshRSS/FreshRSS/pull/5097), - [#5100](https://github.com/FreshRSS/FreshRSS/pull/5100) -* Themes - * Dark mode for *Origine* and *Origine compact* themes [#4843](https://github.com/FreshRSS/FreshRSS/pull/4843) - * Improve *Ansum* and *Mapco* [#4938](https://github.com/FreshRSS/FreshRSS/pull/4938), [#4959](https://github.com/FreshRSS/FreshRSS/pull/4959), [#4967](https://github.com/FreshRSS/FreshRSS/pull/4967), - [#4983](https://github.com/FreshRSS/FreshRSS/pull/4983), [#4995](https://github.com/FreshRSS/FreshRSS/pull/4995) - * Improve *Dark pink* [#4881](https://github.com/FreshRSS/FreshRSS/pull/4881) - * Improve *Nord theme* [#4892](https://github.com/FreshRSS/FreshRSS/pull/4892), [#4979](https://github.com/FreshRSS/FreshRSS/pull/4979) - * Improve *Origine* [#4893](https://github.com/FreshRSS/FreshRSS/pull/4893) - * Improve *Origine compact* [#4873](https://github.com/FreshRSS/FreshRSS/pull/4873) - * Improve *Pafat* [#4909](https://github.com/FreshRSS/FreshRSS/pull/4909) - * Improve *Swage* [#4875](https://github.com/FreshRSS/FreshRSS/pull/4875), [#4922](https://github.com/FreshRSS/FreshRSS/pull/4922), [#4936](https://github.com/FreshRSS/FreshRSS/pull/4936), - [#5029](https://github.com/FreshRSS/FreshRSS/pull/5029) - * Mark some themes as tentatively deprecated: *BlueLagoon*, *Flat*, *Screwdriver* [#4807](https://github.com/FreshRSS/FreshRSS/pull/4807) -* i18n - * Improve Chinese [#4853](https://github.com/FreshRSS/FreshRSS/pull/4853), [#4856](https://github.com/FreshRSS/FreshRSS/pull/4856) -* SimplePie - * No URL Decode for enclosure links [simplepie#768](https://github.com/simplepie/simplepie/pull/768) - * Fix case of multiple RSS2.0 enclosures [simplepie#769](https://github.com/simplepie/simplepie/pull/769) - * Sanitize thumbnail URL [simplepie#770](https://github.com/simplepie/simplepie/pull/770) - * Use single constant for default HTTP Accept header [simplepie#784](https://github.com/simplepie/simplepie/pull/784) -* Misc. - * Increase max feed URL length and drop unicity in database [#5038](https://github.com/FreshRSS/FreshRSS/pull/5038) - * New support of [Development Containers](https://containers.dev) / [GitHub Codespaces](https://github.com/features/codespaces) to ease development [#4859](https://github.com/FreshRSS/FreshRSS/pull/4859) - * Update library `lib_opml` [#4403](https://github.com/FreshRSS/FreshRSS/pull/4403) - * Code improvements [#4232](https://github.com/FreshRSS/FreshRSS/pull/4232), [#4651](https://github.com/FreshRSS/FreshRSS/pull/4651), - [#5024](https://github.com/FreshRSS/FreshRSS/pull/5024), [#5025](https://github.com/FreshRSS/FreshRSS/pull/5025), [#5028](https://github.com/FreshRSS/FreshRSS/pull/5028), - [#5032](https://github.com/FreshRSS/FreshRSS/pull/5032), [#5158](https://github.com/FreshRSS/FreshRSS/pull/5158), [#5045](https://github.com/FreshRSS/FreshRSS/pull/5045), - [#5049](https://github.com/FreshRSS/FreshRSS/pull/5049), [#5063](https://github.com/FreshRSS/FreshRSS/pull/5063), [#5084](https://github.com/FreshRSS/FreshRSS/pull/5084) - * Update dev dependencies [#4993](https://github.com/FreshRSS/FreshRSS/pull/4993), [#5006](https://github.com/FreshRSS/FreshRSS/pull/5006), [#5109](https://github.com/FreshRSS/FreshRSS/pull/5109) - - -## 2022-12-08 FreshRSS 1.20.2 - -* Security fixes - * [CVE-2022-23497](https://github.com/FreshRSS/FreshRSS/security/advisories/GHSA-hvrj-5fwj-p7v6) Fix security vulnerability in `ext.php` [#4928](https://github.com/FreshRSS/FreshRSS/pull/4928) - * Apache `TraceEnable Off` [#4863](https://github.com/FreshRSS/FreshRSS/pull/4863) - - -## 2022-11-14 FreshRSS 1.20.1 - -* Features - * Add support for custom XPath date/time format [#4703](https://github.com/FreshRSS/FreshRSS/pull/4703) - * Add default redirect when authenticating [#4778](https://github.com/FreshRSS/FreshRSS/pull/4778) - * Force default user before rendering login page [#4620](https://github.com/FreshRSS/FreshRSS/pull/4620) -* API - * Minor Google Reader API improvements [#4763](https://github.com/FreshRSS/FreshRSS/pull/4763) -* Bug fixing - * Fix SQL transaction rollbacks during auto-update [#4622](https://github.com/FreshRSS/FreshRSS/pull/4622) - * Fix `opcache` bug during Web update [#4629](https://github.com/FreshRSS/FreshRSS/pull/4629), [update.freshrss.org#4](https://github.com/FreshRSS/update.freshrss.org/pull/4) - * Fix export bug [#4822](https://github.com/FreshRSS/FreshRSS/pull/4822) - * Fix OPML import of special feed attributes [#4708](https://github.com/FreshRSS/FreshRSS/pull/4708) - * Fix JavaScript bug with remembering opened categories [#4827](https://github.com/FreshRSS/FreshRSS/pull/4827) - * Fix `curlopt` options for HTML+XPath [#4759](https://github.com/FreshRSS/FreshRSS/pull/4759) - * Fix charset bug for HTML+XPath [#4623](https://github.com/FreshRSS/FreshRSS/pull/4623) - * Fix HTML-encoding of CSS selectors [#4707](https://github.com/FreshRSS/FreshRSS/pull/4707), [#4823](https://github.com/FreshRSS/FreshRSS/pull/4823) - * Fix some broken author links [#4743](https://github.com/FreshRSS/FreshRSS/pull/4743) - * Fix show settings page after adding new feed [#4631](https://github.com/FreshRSS/FreshRSS/pull/4631) - * Fix login page when user does not exist [#4621](https://github.com/FreshRSS/FreshRSS/pull/4621) - * Fix feed manage link on stats page [#4768](https://github.com/FreshRSS/FreshRSS/pull/4768) - * Fix minor layout bugs [#4830](https://github.com/FreshRSS/FreshRSS/pull/4830) - * Fix minor UI bugs with Safari [#4643](https://github.com/FreshRSS/FreshRSS/pull/4643) -* UI - * Change some default settings related to marking articles as read [#4736](https://github.com/FreshRSS/FreshRSS/pull/4736) - * Improve scrollbar when slider is open [#4692](https://github.com/FreshRSS/FreshRSS/pull/4692) - * Improve Subscription Management: Show the category position number [#4679](https://github.com/FreshRSS/FreshRSS/pull/4679) - * Improve Reader view: Mark article as read while scrolling [#4652](https://github.com/FreshRSS/FreshRSS/pull/4652) - * Improve sharing / integration page [#4774](https://github.com/FreshRSS/FreshRSS/pull/4774) - * Improve article summary text cut [#4666](https://github.com/FreshRSS/FreshRSS/pull/4666) - * Improve HTML semantics for some boxes [#4665](https://github.com/FreshRSS/FreshRSS/pull/4665) - * Change dynamic OPML icon [#4673](https://github.com/FreshRSS/FreshRSS/pull/4673), [#4810](https://github.com/FreshRSS/FreshRSS/pull/4810) - * Improve box layout for global view [#4791](https://github.com/FreshRSS/FreshRSS/pull/4791) - * Improve logs layout [#4594](https://github.com/FreshRSS/FreshRSS/pull/4594) - * Improve Feed configuration: number of articles [#4625](https://github.com/FreshRSS/FreshRSS/pull/4625) - * Improve drop-down menus [#4597](https://github.com/FreshRSS/FreshRSS/pull/4597) - * Show tile with explanation when hovering empty feeds [#4617](https://github.com/FreshRSS/FreshRSS/pull/4617) - * Added bottom nav padding for iOS [#4741](https://github.com/FreshRSS/FreshRSS/pull/4741) -* Themes - * Implement CSS variables for easy colour customisation [#4641](https://github.com/FreshRSS/FreshRSS/pull/4641), [#4693](https://github.com/FreshRSS/FreshRSS/pull/4693), [#4789](https://github.com/FreshRSS/FreshRSS/pull/4789) - * Improve CSS line height [#4671](https://github.com/FreshRSS/FreshRSS/pull/4671), [#4782](https://github.com/FreshRSS/FreshRSS/pull/4782) - * Improved reader view with framed articles [#4663](https://github.com/FreshRSS/FreshRSS/pull/4663) - * Improve themes - Alternative Dark [#4635](https://github.com/FreshRSS/FreshRSS/pull/4635), [#4797](https://github.com/FreshRSS/FreshRSS/pull/4797); - Blue Lagon [#4786](https://github.com/FreshRSS/FreshRSS/pull/4786); - Dark [#4806](https://github.com/FreshRSS/FreshRSS/pull/4806); - Mapco [#4648](https://github.com/FreshRSS/FreshRSS/pull/4648), [#4709](https://github.com/FreshRSS/FreshRSS/pull/4709), [#4711](https://github.com/FreshRSS/FreshRSS/pull/4711); - Origine [#4842](https://github.com/FreshRSS/FreshRSS/pull/4842); - Origine Compact [#4636](https://github.com/FreshRSS/FreshRSS/pull/4636), [#4735](https://github.com/FreshRSS/FreshRSS/pull/4735), [#4787](https://github.com/FreshRSS/FreshRSS/pull/4787); - Pafat [#4783](https://github.com/FreshRSS/FreshRSS/pull/4783), [#4792](https://github.com/FreshRSS/FreshRSS/pull/4792), [#4793](https://github.com/FreshRSS/FreshRSS/pull/4793), - [#4796](https://github.com/FreshRSS/FreshRSS/pull/4796), [#4811](https://github.com/FreshRSS/FreshRSS/pull/4811); - Swage [#4799](https://github.com/FreshRSS/FreshRSS/pull/4799), [#4828](https://github.com/FreshRSS/FreshRSS/pull/4828), [#4829](https://github.com/FreshRSS/FreshRSS/pull/4829) - * Rename `template.css` to `frss.css` [#4644](https://github.com/FreshRSS/FreshRSS/pull/4644) - * Misc. [#4596](https://github.com/FreshRSS/FreshRSS/pull/4596), [#4619](https://github.com/FreshRSS/FreshRSS/pull/4619), [#4696](https://github.com/FreshRSS/FreshRSS/pull/4696) -* i18n - * Rename *tag* to *label* in some languages [#4770](https://github.com/FreshRSS/FreshRSS/pull/4770) - * Improve typographic quotes [#4714](https://github.com/FreshRSS/FreshRSS/pull/4714) - * Remove invalid i18n string [#4844](https://github.com/FreshRSS/FreshRSS/pull/4844) - * Add Greek [#4718](https://github.com/FreshRSS/FreshRSS/pull/4718), [#4754](https://github.com/FreshRSS/FreshRSS/pull/4754) - * Add Indonesian [#4706](https://github.com/FreshRSS/FreshRSS/pull/4706) - * Improve Brazilian Portuguese [#4669](https://github.com/FreshRSS/FreshRSS/pull/4669) - * Improve Czech [#4670](https://github.com/FreshRSS/FreshRSS/pull/4670) - * Improve Italian [#4803](https://github.com/FreshRSS/FreshRSS/pull/4803) - * Improve Japanese [#4668](https://github.com/FreshRSS/FreshRSS/pull/4668) - * Improve Russian [#4719](https://github.com/FreshRSS/FreshRSS/pull/4719) - * Improve Spanish [#4676](https://github.com/FreshRSS/FreshRSS/pull/4676), [#4725](https://github.com/FreshRSS/FreshRSS/pull/4725) - * Improve Turkish [#4715](https://github.com/FreshRSS/FreshRSS/pull/4715) - * Improve i18n tools [#4742](https://github.com/FreshRSS/FreshRSS/pull/4742), [#4756](https://github.com/FreshRSS/FreshRSS/pull/4756) -* Compatibility - * Compatibility PHP 8.1+ `strip_tags()` [#4688](https://github.com/FreshRSS/FreshRSS/pull/4688) - * Fix `GLOB_BRACE` is not available on all platforms [#4628](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4721) - * Exclude `.git/` from tests [#4824](https://github.com/FreshRSS/FreshRSS/pull/4824) - * Exclude `extensions/` from eslint and stylelint tests [#4606](https://github.com/FreshRSS/FreshRSS/pull/4606) - * Update GitHub Actions version [#4717](https://github.com/FreshRSS/FreshRSS/pull/4717) - - -## 2022-09-10 FreshRSS 1.20.0 - -* Features - * New Web scraping feature *HTML+XPath* for Web pages without any RSS/ATOM feed [#4220](https://github.com/FreshRSS/FreshRSS/pull/4220) - * Add support for *Dynamic OPML* [#4407](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4378), [#4503](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4347) - * Note: only for new users or after an export/import or a manual database update - * See also [#4357](https://github.com/FreshRSS/FreshRSS/pull/4357), [#4353](https://github.com/FreshRSS/FreshRSS/pull/4353), - [#4417](https://github.com/FreshRSS/FreshRSS/pull/4417), [#4502](https://github.com/FreshRSS/FreshRSS/pull/4502) - * New option to exclude some DOM elements with a CSS Selector when retrieving an article full content [#4501](https://github.com/FreshRSS/FreshRSS/pull/4501) - * New option to automatically mark as read gone articles [#4426](https://github.com/FreshRSS/FreshRSS/pull/4426) - * New OPML export/import of some proprietary FreshRSS attributes [#4342](https://github.com/FreshRSS/FreshRSS/pull/4342) - * Tolerate the import of some invalid OPML files [#4591](https://github.com/FreshRSS/FreshRSS/pull/4591) - * New feed settings to allow cookies and HTTP redirects [#4470](https://github.com/FreshRSS/FreshRSS/pull/4470) - * Performance: Easier [text search indexes](https://freshrss.github.io/FreshRSS/en/admins/DatabaseConfig.html) for fast searches with PostgreSQL [#4505](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4360) - * New sharing through standard [Web Share API](https://www.w3.org/TR/web-share/) [#4271](https://github.com/FreshRSS/FreshRSS/pull/4271) - * New sharing with Xing, Reddit, Pinterest, WhatsApp [#4270](https://github.com/FreshRSS/FreshRSS/pull/4270) - * New sharing with [`archive.today`](https://archive.ph/) [#4530](https://github.com/FreshRSS/FreshRSS/pull/4530) -* SimplePie - * New method `rename_attribute()` instead of removing attributes to better be able to style/hide content of articles [#4175](https://github.com/FreshRSS/FreshRSS/pull/4175), - [simplepie#717](https://github.com/simplepie/simplepie/pull/717) - * Fix parsing of HTTP Links [simplepie#729](https://github.com/simplepie/simplepie/pull/729) - * Fix `status_code` type for PHP 8.1+ [simplepie#728](https://github.com/simplepie/simplepie/pull/728) - * Fix relative URLs [simplepie#744](https://github.com/simplepie/simplepie/pull/744) -* Bug fixing - * Fix last update & archive logic (especially for very long feeds, for which some old items were marked as unread) [#4422](https://github.com/FreshRSS/FreshRSS/pull/4422) - * Fix regression with Fever API on 32-bit platforms [#4201](https://github.com/FreshRSS/FreshRSS/pull/4201) - * Fix read-when-same-title bug [#4206](https://github.com/FreshRSS/FreshRSS/pull/4206) - * Fix some search expressions such as `"ab cd"` and `ab-cd` [#4277](https://github.com/FreshRSS/FreshRSS/pull/4277) - * Fix auto-load of more articles when using shortcuts [#4532](https://github.com/FreshRSS/FreshRSS/pull/4532) - * Fix <kbd>space</kbd> shortcut [#4581](https://github.com/FreshRSS/FreshRSS/pull/4581) - * WebSub: Use hash instead of base64 to handle long URLs [#4282](https://github.com/FreshRSS/FreshRSS/pull/4282) - * Fix handling of authors with ampersand `&` [#4287](https://github.com/FreshRSS/FreshRSS/pull/4287) - * Fix lazy loading images containing a quote `'` in the address [#4330](https://github.com/FreshRSS/FreshRSS/pull/4330) - * Fix database size calculation for PostgreSQL [#4249](https://github.com/FreshRSS/FreshRSS/pull/4249) - * Fix HTTP root redirection in some cases (trailing slash with a proxy) [#4167](https://github.com/FreshRSS/FreshRSS/pull/4167) - * Fix `htmlspecialchars()` warnings with PHP 8.1+ [#4411](https://github.com/FreshRSS/FreshRSS/pull/4411) - * Fix OPML category encoding [#4427](https://github.com/FreshRSS/FreshRSS/pull/4427) - * Fix one category of favicon update problem [#4358](https://github.com/FreshRSS/FreshRSS/pull/4358) - * Fix rare mark-as-read bug [#4456](https://github.com/FreshRSS/FreshRSS/pull/4456) - * Add missing extension hook `freshrss_user_maintenance` in CLI [#4495](https://github.com/FreshRSS/FreshRSS/pull/4495) - * Rename conflicting function `errorMessage()` which exists on some platforms [#4289](https://github.com/FreshRSS/FreshRSS/pull/4289) - * Fix remain of bookmarklet [#4240](https://github.com/FreshRSS/FreshRSS/pull/4240) -* UI - * Performance: Automatic simplification of layout for 1000+ feeds [#4357](https://github.com/FreshRSS/FreshRSS/pull/4357) - * Performance: New option *icons-as-emojis* [#4353](https://github.com/FreshRSS/FreshRSS/pull/4353) - * Manage feed configuration using a dynamic slider view [#4226](https://github.com/FreshRSS/FreshRSS/pull/4226), [#4297](https://github.com/FreshRSS/FreshRSS/pull/4297), [#4394](https://github.com/FreshRSS/FreshRSS/pull/4394) - * New option for custom HTML logo/title in the main Web UI view [#4369](https://github.com/FreshRSS/FreshRSS/pull/4369) - * Show errored, empty, muted feeds in statistics [#4276](https://github.com/FreshRSS/FreshRSS/pull/4276) - * Improve configuration of registration form [#3932](https://github.com/FreshRSS/FreshRSS/pull/3932) - * Improve subscription list drag & drop [#3953](https://github.com/FreshRSS/FreshRSS/pull/3953) - * Improve extension manager [#4181](https://github.com/FreshRSS/FreshRSS/pull/4181) - * Improve idle feeds list [#4192](https://github.com/FreshRSS/FreshRSS/pull/4192) - * Improve feed link in normal view [#4006](https://github.com/FreshRSS/FreshRSS/pull/4006) - * Improve browser notification for unread message [#4193](https://github.com/FreshRSS/FreshRSS/pull/4193) - * Improve notification banner [#4023](https://github.com/FreshRSS/FreshRSS/pull/4023) - * Improve new article banner [#4037](https://github.com/FreshRSS/FreshRSS/pull/4037) - * Improve pagination + *load more* button [#4125](https://github.com/FreshRSS/FreshRSS/pull/4125) - * Improve log view [#4204](https://github.com/FreshRSS/FreshRSS/pull/4204) - * Improve unread articles counter in normal view [#4166](https://github.com/FreshRSS/FreshRSS/pull/4166) - * Automatically set the category when adding a feed from an existing category [#4333](https://github.com/FreshRSS/FreshRSS/pull/4333) - * Better PWA colours for mobile [#4254](https://github.com/FreshRSS/FreshRSS/pull/4254) - * Improve article footer [#4306](https://github.com/FreshRSS/FreshRSS/pull/4306) - * Various UI and style improvements [#4205](https://github.com/FreshRSS/FreshRSS/pull/4205), [#4212](https://github.com/FreshRSS/FreshRSS/pull/4212), [#4218](https://github.com/FreshRSS/FreshRSS/pull/4218), - [#4238](https://github.com/FreshRSS/FreshRSS/pull/4238), [#4455](https://github.com/FreshRSS/FreshRSS/pull/4455), [#4298](https://github.com/FreshRSS/FreshRSS/pull/4298), - [#4383](https://github.com/FreshRSS/FreshRSS/pull/4383), [#4452](https://github.com/FreshRSS/FreshRSS/pull/4452), [#4455](https://github.com/FreshRSS/FreshRSS/pull/4455), - [#4466](https://github.com/FreshRSS/FreshRSS/pull/4466), [#4471](https://github.com/FreshRSS/FreshRSS/pull/4471), [#4472](https://github.com/FreshRSS/FreshRSS/pull/4472), - [#4474](https://github.com/FreshRSS/FreshRSS/pull/4474), [#4498](https://github.com/FreshRSS/FreshRSS/pull/4498), [#4502](https://github.com/FreshRSS/FreshRSS/pull/4502), - [#4504](https://github.com/FreshRSS/FreshRSS/pull/4504), [#4558](https://github.com/FreshRSS/FreshRSS/pull/4558), [#4546](https://github.com/FreshRSS/FreshRSS/pull/4546), - [#4541](https://github.com/FreshRSS/FreshRSS/pull/4541) -* Themes - * New theme *Dark pink* [#4311](https://github.com/FreshRSS/FreshRSS/pull/4311) - * New theme *Nord* [#4400](https://github.com/FreshRSS/FreshRSS/pull/4400) - * Improve themes *Alternative Dark* [#4587](https://github.com/FreshRSS/FreshRSS/pull/4587); - *Ansum* [#4538](https://github.com/FreshRSS/FreshRSS/pull/4538), [#4549](https://github.com/FreshRSS/FreshRSS/pull/4549); - *Flat* [#4575](https://github.com/FreshRSS/FreshRSS/pull/4575); - *Mapco* [#4491](https://github.com/FreshRSS/FreshRSS/pull/4491), [#4491](https://github.com/FreshRSS/FreshRSS/pull/4491); - *Swage* [#4493](https://github.com/FreshRSS/FreshRSS/pull/4493), [#4512](https://github.com/FreshRSS/FreshRSS/pull/4512), [#4566](https://github.com/FreshRSS/FreshRSS/pull/4566) -* Extensions - * Allow extensions using `entry_before_insert` to change `entry->isRead()` [#4331](https://github.com/FreshRSS/FreshRSS/pull/4331) -* i18n - * Improve i18n CLI [#4197](https://github.com/FreshRSS/FreshRSS/pull/4197), [#4199](https://github.com/FreshRSS/FreshRSS/pull/4199) - * Add Chinese (Traditional) [#4578](https://github.com/FreshRSS/FreshRSS/pull/4578) - * Improve Chinese (Simplified) [#4332](https://github.com/FreshRSS/FreshRSS/pull/4332), [#4337](https://github.com/FreshRSS/FreshRSS/pull/4337), [#4379](https://github.com/FreshRSS/FreshRSS/pull/4379), - [#4509](https://github.com/FreshRSS/FreshRSS/pull/4509), [#4577](https://github.com/FreshRSS/FreshRSS/pull/4577) - * Improve English [#4450](https://github.com/FreshRSS/FreshRSS/pull/4450) - * Improve German [#4525](https://github.com/FreshRSS/FreshRSS/pull/4525) - * Improve Korean [#4572](https://github.com/FreshRSS/FreshRSS/pull/4572) - * Improve Occitan [#4548](https://github.com/FreshRSS/FreshRSS/pull/4548) - * Improve Polish [#4363](https://github.com/FreshRSS/FreshRSS/pull/4363) - * Improve Russian [#4385](https://github.com/FreshRSS/FreshRSS/pull/4385) - * Improve Slovak [#4524](https://github.com/FreshRSS/FreshRSS/pull/4524) -* API - * Restrict maximum length of item content length for clients compatibility [#4583](https://github.com/FreshRSS/FreshRSS/pull/4583) - * Supported by [Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/) [#4595](https://github.com/FreshRSS/FreshRSS/pull/4595) -* Deployment - * Docker: Performance: entrypoint fix buffering, problematic when importing large OPMLs during install [#4417](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4391) - * Add PHP extensions `php-openssl` (used by PHPMailer) and `php-xml` (used by SimplePie) [#4420](https://github.com/FreshRSS/FreshRSS/pull/4420) - * Docker: Upgraded dev image `freshrss/freshrss:newest` to PHP 8.2 [#4420](https://github.com/FreshRSS/FreshRSS/pull/4420) - * Include PHP extensions in Composer for easier automated deployment [#4497](https://github.com/FreshRSS/FreshRSS/pull/4497) - * Improved trimming of `base_url` to avoid some common configuration bugs, especially via Docker / CLI [#4423](https://github.com/FreshRSS/FreshRSS/pull/4423) -* CLI - * Allow empty DB prefix [#4488](https://github.com/FreshRSS/FreshRSS/pull/4488) -* Compatibility - * Initial support for PHP 8.2+ [#4420](https://github.com/FreshRSS/FreshRSS/pull/4420), [#4421](https://github.com/FreshRSS/FreshRSS/pull/4421) -* Security - * Improved error page, properly returning HTTP 500 and CSP [#4465](https://github.com/FreshRSS/FreshRSS/pull/4465) -* Misc. - * Replace `lib_phpQuery` by [`PhpGt/CssXPath`](https://github.com/PhpGt/CssXPath) library for full content retrieval [#4261](https://github.com/FreshRSS/FreshRSS/pull/4261) - * Add support for star CSS Selectors such as `a[href*="example"]` [CssXPath#181](https://github.com/PhpGt/CssXPath/pull/181) - * Performance: Do not render irrelevant HTML for Ajax calls [#4310](https://github.com/FreshRSS/FreshRSS/pull/4310), [#4366](https://github.com/FreshRSS/FreshRSS/pull/4366) - * Performance: New limit option when reloading a feed [#4370](https://github.com/FreshRSS/FreshRSS/pull/4370) - * Optional possibility to use Composer to update some libraries [#4329](https://github.com/FreshRSS/FreshRSS/pull/4329), [#4368](https://github.com/FreshRSS/FreshRSS/pull/4368) - * Update to PHPMailer 6.6.0 [#4329](https://github.com/FreshRSS/FreshRSS/pull/4329) - * Use `.gitattributes` `export-ignore` [#4415](https://github.com/FreshRSS/FreshRSS/pull/4415) - * Remove HTTP Referer for HTML download [#4372](https://github.com/FreshRSS/FreshRSS/pull/4372) - * Add database field `attributes` (JSON) for entries [#4444](https://github.com/FreshRSS/FreshRSS/pull/4444) - * Improve dev automated checks [#4209](https://github.com/FreshRSS/FreshRSS/pull/4209) - * Update dev dependencies [#4173](https://github.com/FreshRSS/FreshRSS/pull/4173), [#4203](https://github.com/FreshRSS/FreshRSS/pull/4203), [#4241](https://github.com/FreshRSS/FreshRSS/pull/4241), - [#4419](https://github.com/FreshRSS/FreshRSS/pull/4419), [#4424](https://github.com/FreshRSS/FreshRSS/pull/4424) - * Fix extension list warning when offline[#4571](https://github.com/FreshRSS/FreshRSS/pull/4571) - * Code improvements [#4130](https://github.com/FreshRSS/FreshRSS/pull/4130), [#4194](https://github.com/FreshRSS/FreshRSS/pull/4194), [#4201](https://github.com/FreshRSS/FreshRSS/pull/4201), - [#4202](https://github.com/FreshRSS/FreshRSS/pull/4202), [#4258](https://github.com/FreshRSS/FreshRSS/pull/4258), [#4263](https://github.com/FreshRSS/FreshRSS/pull/4263), - [#4356](https://github.com/FreshRSS/FreshRSS/pull/4356), [#4436](https://github.com/FreshRSS/FreshRSS/pull/4436), [#4489](https://github.com/FreshRSS/FreshRSS/pull/4489), - [#4490](https://github.com/FreshRSS/FreshRSS/pull/4490), [#4496](https://github.com/FreshRSS/FreshRSS/pull/4496) - - -## 2022-02-04 FreshRSS 1.19.2 - -* Bug fixing - * Fix regression regarding keeping read state after seeing favourites / labels [#4178](https://github.com/FreshRSS/FreshRSS/pull/4178) - * Fix migration system on Synology and systems adding custom files to folders [#4163](https://github.com/FreshRSS/FreshRSS/pull/4163) - * Fix wrong dropdown triangle UI for labels [#4174](https://github.com/FreshRSS/FreshRSS/pull/4174) - * Fix minor UI bugs [#4169](https://github.com/FreshRSS/FreshRSS/pull/4169), [#4189](https://github.com/FreshRSS/FreshRSS/pull/4189), [#4188](https://github.com/FreshRSS/FreshRSS/pull/4188) - * Fix minor SCSS details for the themes Ansum and Mapco [#4146](https://github.com/FreshRSS/FreshRSS/pull/4146) -* UI - * Improve dropdown menus on mobile view [#4141](https://github.com/FreshRSS/FreshRSS/pull/4141), [#4128](https://github.com/FreshRSS/FreshRSS/pull/4128) - * Improve menu icons [#4004](https://github.com/FreshRSS/FreshRSS/pull/4004) -* Features - * Support JSON import with date in milliseconds (e.g., Feedly) [#4186](https://github.com/FreshRSS/FreshRSS/pull/4186) -* Deployment - * Docker: development image `:newest` updated to PHP 8.1.1 and Apache 2.4.52 [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) -* i18n - * Improve i18n CLI [#4131](https://github.com/FreshRSS/FreshRSS/pull/4131) - * Use typographic quotes [#4133](https://github.com/FreshRSS/FreshRSS/pull/4133) - * Improve message regarding forced feeds [#4145](https://github.com/FreshRSS/FreshRSS/pull/4145) - * Improve Czech [#4151](https://github.com/FreshRSS/FreshRSS/pull/4151) - * Improve English [#4161](https://github.com/FreshRSS/FreshRSS/pull/4161) -* Misc. - * Increase PHPStan to [level 5](https://phpstan.org/user-guide/rule-levels) for code quality, also fixing several PHP 8.1 warnings [#4110](https://github.com/FreshRSS/FreshRSS/pull/4110), [#4123](https://github.com/FreshRSS/FreshRSS/pull/4123), [#4119](https://github.com/FreshRSS/FreshRSS/pull/4119), [#4182](https://github.com/FreshRSS/FreshRSS/pull/4182) - * Clean temporary files generated by automated tests [#4177](https://github.com/FreshRSS/FreshRSS/pull/4177) - * Add automated spell checking of the code using [typos](https://github.com/crate-ci/typos) [#4138](https://github.com/FreshRSS/FreshRSS/pull/4138), [#4134](https://github.com/FreshRSS/FreshRSS/pull/4134) - * Enforce code style *opening brace on same line* in PHPCS [#4122](https://github.com/FreshRSS/FreshRSS/pull/4122) - * Remove broken GitHub Action automatically adding the `latest` tag to git [#4135](https://github.com/FreshRSS/FreshRSS/pull/4135) - - -## 2022-01-02 FreshRSS 1.19.1 - -* Bug fixing - * Fix some filters for automatic article actions (e.g., `!pubdate:P3d`) [#4092](https://github.com/FreshRSS/FreshRSS/pull/4092) -* Features - * New search operator on article IDs (useful to show a single article, extensions) [#4058](https://github.com/FreshRSS/FreshRSS/pull/4058) - * Entry (article) ID: `e:1639310674957894` or multiple entry IDs (*or*): `e:1639310674957894,1639310674957893` -* UI - * Fix left navigation with long category names [#4055](https://github.com/FreshRSS/FreshRSS/pull/4055) - * Show *My labels* menu also when empty [#4065](https://github.com/FreshRSS/FreshRSS/pull/4065) - * Improve category titles on global view [#4059](https://github.com/FreshRSS/FreshRSS/pull/4059) - * Disable dynamic favicon for browser / extensions blocking canvas [#4098](https://github.com/FreshRSS/FreshRSS/pull/4098) - * Minor UI and style improvements [#4061](https://github.com/FreshRSS/FreshRSS/pull/4061), [#4067](https://github.com/FreshRSS/FreshRSS/pull/4067), [#4085](https://github.com/FreshRSS/FreshRSS/pull/4085) -* SimplePie - * Manual update to SimplePie 1.5.8 [#4113](https://github.com/FreshRSS/FreshRSS/pull/4113) -* Code improvements - * Add PHPStan [level 1](https://phpstan.org/user-guide/rule-levels) for code quality [#4021](https://github.com/FreshRSS/FreshRSS/pull/4021) - - -## 2021-12-31 FreshRSS 1.19.0 - -* Features - * New thumbnail and/or summary options for the normal view [#3805](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/3303) - * New setting to keep only a maximum number of unread articles in a given feed [#3303](https://github.com/FreshRSS/FreshRSS/pull/3303) - * New search operator based on custom labels, or not [#3709](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/3890) -* Bug fixing - * Fix marking as read a label with SQLite and PostgreSQL [#3711](https://github.com/FreshRSS/FreshRSS/pull/3711) - * Better fallback for feeds without title [#3787](https://github.com/FreshRSS/FreshRSS/pull/3787) - * Fix auto-load articles in anonymous mode and global view [#4082](https://github.com/FreshRSS/FreshRSS/pull/4082) - * Fix several typos found by PHPStan, including one affecting the cache of *keep max unread articles* [#4019](https://github.com/FreshRSS/FreshRSS/pull/4019) - * Fix warning in Fever API [#4056](https://github.com/FreshRSS/FreshRSS/pull/4056) - * Show *no articles* alert-box also in global view [#4042](https://github.com/FreshRSS/FreshRSS/pull/4042), [#3099](https://github.com/FreshRSS/FreshRSS/pull/3999) - * Fix theme selection when a theme has been deleted [#3874](https://github.com/FreshRSS/FreshRSS/pull/3874) - * Fix keyboard shortcuts in anonymous mode [#3945](https://github.com/FreshRSS/FreshRSS/pull/3945) - * Fix show password in settings [#3966](https://github.com/FreshRSS/FreshRSS/pull/3966) - * Fix JavaScript warnings for non-validated users [#3980](https://github.com/FreshRSS/FreshRSS/pull/3980) - * Fix drag & drop layout for subscriptions [#3949](https://github.com/FreshRSS/FreshRSS/pull/3949) -* Security - * Better error handling when a user does not exist (especially for API) [#3751](https://github.com/FreshRSS/FreshRSS/pull/3751), [#4084](https://github.com/FreshRSS/FreshRSS/pull/4084) - * Do not show *Add new feed* for anonymous users [#4040](https://github.com/FreshRSS/FreshRSS/pull/4040) - * Do not show *Mark as read / unread / favourite* for anonymous users [#3871](https://github.com/FreshRSS/FreshRSS/pull/3871), [#3876](https://github.com/FreshRSS/FreshRSS/pull/3876) - * Do not show back link on error pages if the user does not have access [#3765](https://github.com/FreshRSS/FreshRSS/pull/3765) - * Only show *Back to RSS feeds* when logged-in [#3790](https://github.com/FreshRSS/FreshRSS/pull/3790) - * Fix for special characters in keyboard shortcuts [#3922](https://github.com/FreshRSS/FreshRSS/issues/3922) - * Remove old workarounds with white space to prevent password autocompletion [#3814](https://github.com/FreshRSS/FreshRSS/pull/3814) -* Compatibility - * Require PHP 7.0+ (drop support for PHP 5.x) [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) - * Drop support for Microsoft Internet Explorer (IE11) [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) - * Fix some warnings with PHP 8.1+ [#4012](https://github.com/FreshRSS/FreshRSS/pull/4012), [#4018](https://github.com/FreshRSS/FreshRSS/pull/4018) - * Fix back-compatibility with Git 2.21- for automatic updates [#3669](https://github.com/FreshRSS/FreshRSS/pull/3669) - * Fix JavaScript caching and compression for some Apache platforms [#4075](https://github.com/FreshRSS/FreshRSS/pull/4075) -* Deployment - * Docker: development image `:oldest` is now based on `alpine:3.5` with PHP 7.0.33 and Apache 2.4.35 [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) - * Docker: default image updated to Debian 11 Bullseye with PHP 7.4.25 and Apache 2.4.51 [#3782](https://github.com/FreshRSS/FreshRSS/pull/3782) - * Docker: alternative image updated to Alpine 3.15 with PHP 8.0.14 and Apache 2.4.52 [#3996](https://github.com/FreshRSS/FreshRSS/pull/3996) - * Docker: fix inclusion of `.htaccess` for `./p/themes/` folder [#4074](https://github.com/FreshRSS/FreshRSS/pull/4074) - * Docker: only add the crontab when `CRON_MIN` is set [#3927](https://github.com/FreshRSS/FreshRSS/pull/3927) - * Docker: move logic to disable FreshRSS updates [#3973](https://github.com/FreshRSS/FreshRSS/pull/3973) - * Docker: allow mounting a volume for the cron file [#3927](https://github.com/FreshRSS/FreshRSS/pull/3927) - * Images on Docker Hub are automatically scanned for software vulnerabilities -* UI - * Remember article filters when changing views (category / feed) [#3986](https://github.com/FreshRSS/FreshRSS/pull/3986) - * Mobile view can access the configuration menu [#3879](https://github.com/FreshRSS/FreshRSS/pull/3879), [#3881](https://github.com/FreshRSS/FreshRSS/pull/3881) - * Improve layout of settings on small screen [#3818](https://github.com/FreshRSS/FreshRSS/pull/3818), [#3819](https://github.com/FreshRSS/FreshRSS/pull/3819) - * New shortcut to jump to next unread article [#3891](https://github.com/FreshRSS/FreshRSS/pull/3891) - * New shortcut to actualise feeds [#3900](https://github.com/FreshRSS/FreshRSS/pull/3900) - * Implement Escape shortcut to close panels [#3901](https://github.com/FreshRSS/FreshRSS/pull/3901) - * Improve layout of subscription management page [#3893](https://github.com/FreshRSS/FreshRSS/pull/3893) - * Use HTML5 tags with better semantics and structure [#3651](https://github.com/FreshRSS/FreshRSS/pull/3651), [#3676](https://github.com/FreshRSS/FreshRSS/pull/3676), [#3713](https://github.com/FreshRSS/FreshRSS/pull/3713), [#3747](https://github.com/FreshRSS/FreshRSS/pull/3747), [#3830](https://github.com/FreshRSS/FreshRSS/pull/3830), [#3851](https://github.com/FreshRSS/FreshRSS/pull/3851) - * Allow JavaScript in themes [#3739](https://github.com/FreshRSS/FreshRSS/pull/3739) - * Improve layout of statistics [#3797](https://github.com/FreshRSS/FreshRSS/pull/3797), [#3799](https://github.com/FreshRSS/FreshRSS/pull/3799), [#3803](https://github.com/FreshRSS/FreshRSS/pull/3803) - * Replace flotr2 with chart.js library [#3858](https://github.com/FreshRSS/FreshRSS/pull/3858) - * Remove jQuery fully [#3847](https://github.com/FreshRSS/FreshRSS/pull/3847) - * Improve label management [#3959](https://github.com/FreshRSS/FreshRSS/pull/3959) - * Update layout of user queries [#3827](https://github.com/FreshRSS/FreshRSS/pull/3827) - * Improve style of install procedure [#3721](https://github.com/FreshRSS/FreshRSS/pull/3721) - * Add retry button when checking requirements during install [#3771](https://github.com/FreshRSS/FreshRSS/pull/3771) - * Improve notification icon [#3678](https://github.com/FreshRSS/FreshRSS/pull/3678) - * Add CSS class to back links [#3761](https://github.com/FreshRSS/FreshRSS/pull/3761) - * Better support for `400` and `405` HTTP error codes [#3981](https://github.com/FreshRSS/FreshRSS/pull/3981) - * Many minor UI and style improvements [#3792](https://github.com/FreshRSS/FreshRSS/pull/3792), [#3795](https://github.com/FreshRSS/FreshRSS/pull/3795), [#3801](https://github.com/FreshRSS/FreshRSS/pull/3801), [#3802](https://github.com/FreshRSS/FreshRSS/pull/3802), [#3817](https://github.com/FreshRSS/FreshRSS/pull/3817), [#3821](https://github.com/FreshRSS/FreshRSS/pull/3821), [#3824](https://github.com/FreshRSS/FreshRSS/pull/3824), [#3831](https://github.com/FreshRSS/FreshRSS/pull/3831), [#3832](https://github.com/FreshRSS/FreshRSS/pull/3832), [#3877](https://github.com/FreshRSS/FreshRSS/pull/3877), [#3880](https://github.com/FreshRSS/FreshRSS/pull/3880), [#3969](https://github.com/FreshRSS/FreshRSS/pull/3969), [#3989](https://github.com/FreshRSS/FreshRSS/pull/3989), [#3990](https://github.com/FreshRSS/FreshRSS/pull/3990), [#4005](https://github.com/FreshRSS/FreshRSS/pull/4005), [#4015](https://github.com/FreshRSS/FreshRSS/pull/4015) -* Themes - * Show search box for all themes in mobile view [#4025](https://github.com/FreshRSS/FreshRSS/pull/4025) - * Fix *alternative-dark* theme to avoid bright elements [#3774](https://github.com/FreshRSS/FreshRSS/pull/3774), [#3806](https://github.com/FreshRSS/FreshRSS/pull/3806) - * Improve the contrast of message boxes for the *Origine* theme [#3725](https://github.com/FreshRSS/FreshRSS/pull/3725) - * Uniformize the size of `input`and `select` elements for the *Origine* theme [#3727](https://github.com/FreshRSS/FreshRSS/pull/3727) - * Fix style of banner text for the *Origine* theme [#3731](https://github.com/FreshRSS/FreshRSS/pull/3731) -* i18n - * Fix language of e-mail notifications [#4076](https://github.com/FreshRSS/FreshRSS/pull/4076) - * Lint i18n [#3841](https://github.com/FreshRSS/FreshRSS/pull/3841) - * Fix bug in French and German translations of new/old tags [#3703](https://github.com/FreshRSS/FreshRSS/pull/3703), [#3668](https://github.com/FreshRSS/FreshRSS/pull/3668) - * Fix name of keyboard shortcut to open in new tab [#3899](https://github.com/FreshRSS/FreshRSS/pull/3899) - * Add Japanese [#3828](https://github.com/FreshRSS/FreshRSS/pull/3828), [#3834](https://github.com/FreshRSS/FreshRSS/pull/3834) - * Improve Chinese [#3926](https://github.com/FreshRSS/FreshRSS/pull/3926), [#3947](https://github.com/FreshRSS/FreshRSS/pull/3947), [#3963](https://github.com/FreshRSS/FreshRSS/pull/3963), [#4084](https://github.com/FreshRSS/FreshRSS/pull/4084) - * Improve Dutch [#3844](https://github.com/FreshRSS/FreshRSS/pull/3844), [#3928](https://github.com/FreshRSS/FreshRSS/pull/3928) - * Improve German [#3720](https://github.com/FreshRSS/FreshRSS/pull/3720), [#3846](https://github.com/FreshRSS/FreshRSS/pull/3846), [#3913](https://github.com/FreshRSS/FreshRSS/pull/3913), [#4008](https://github.com/FreshRSS/FreshRSS/pull/4008) - * Improve Italian [#3939](https://github.com/FreshRSS/FreshRSS/pull/3939) - * Improve Korean [#3914](https://github.com/FreshRSS/FreshRSS/pull/3914) - * Improve Occitan [#3935](https://github.com/FreshRSS/FreshRSS/pull/3935) - * Improve Polish [#4027](https://github.com/FreshRSS/FreshRSS/pull/4027) - * Improve Portuguese [#3908](https://github.com/FreshRSS/FreshRSS/pull/3908), [#3925](https://github.com/FreshRSS/FreshRSS/pull/3925) - * Improve Russian [#3907](https://github.com/FreshRSS/FreshRSS/pull/3907) - * Improve Slovak [#4036](https://github.com/FreshRSS/FreshRSS/pull/4036) - * Improve Spanish [#3916](https://github.com/FreshRSS/FreshRSS/pull/3916) -* Extensions - * Add system configuration for extension [#3626](https://github.com/FreshRSS/FreshRSS/pull/3626) -* SimplePie - * Merge from upstream, help with PHP 8.1+ [#4011](https://github.com/FreshRSS/FreshRSS/pull/4011) - * Fallback to file extensions for enclosures not providing a media type [#3861](https://github.com/FreshRSS/FreshRSS/pull/3861) -* Misc. - * Implement GitHub Actions for continuous integration / automated testing [3920](https://github.com/FreshRSS/FreshRSS/pull/3920) - * Use ESLint instead of JSHint [#3906](https://github.com/FreshRSS/FreshRSS/pull/3906) - * Improve `.editorconfig` and `.stylelintrc` [#3895](https://github.com/FreshRSS/FreshRSS/pull/3895), [#3912](https://github.com/FreshRSS/FreshRSS/pull/3912) - * Simplify Minz code with PHP 7 `??` operator [#4020](https://github.com/FreshRSS/FreshRSS/pull/4020) - * Upgrade PHPMailer to 6.5.1 [#3977](https://github.com/FreshRSS/FreshRSS/pull/3977) - * Added Raindrop.io as sharing option [#3717](https://github.com/FreshRSS/FreshRSS/pull/3717) - * Delete outdated information regarding Firefox feed reader list [#3822](https://github.com/FreshRSS/FreshRSS/pull/3822) - - -## 2021-06-06 FreshRSS 1.18.1 - -* Features - * Support standard `HTTP 410 Gone` by disabling (muting) gone feeds [#3561](https://github.com/FreshRSS/FreshRSS/pull/3561) - * Make advanced feed options such as SSL available to non-admins [#3612](https://github.com/FreshRSS/FreshRSS/pull/3612) -* API - * Supported by [Newsboat 2.24+](https://newsboat.org/) [#3574](https://github.com/FreshRSS/FreshRSS/pull/3574) - * Supported by [RSS Guard](https://github.com/martinrotter/rssguard) [#3627](https://github.com/FreshRSS/FreshRSS/pull/3627) -* UI - * Allow Unicode for shortcuts [#3548](https://github.com/FreshRSS/FreshRSS/pull/3548) -* Bug fixing - * Fix database lock during refresh with MariaDB [#3559](https://github.com/FreshRSS/FreshRSS/pull/3559) - * Fix database creation from CLI [#3544](https://github.com/FreshRSS/FreshRSS/pull/3544) - * Fix: `pdo_sqlite` is optional except for export/import SQLite [#3545](https://github.com/FreshRSS/FreshRSS/pull/3545) - * Fix import of JSON and TT-RSS files, especially with PHP 8 [#3553](https://github.com/FreshRSS/FreshRSS/pull/3553) - * Allow import of more than 999 favourites/labelled articles even with SQLite - * Fix additional SQL limits, especially for SQLite [#3586](https://github.com/FreshRSS/FreshRSS/pull/3586) - * Fix search param encoding in user query [#3541](https://github.com/FreshRSS/FreshRSS/pull/3541) - * Fix undefined variable & dead code when adding feed [#3546](https://github.com/FreshRSS/FreshRSS/pull/3546) - * Fix missing translation in feed configuration [#3554](https://github.com/FreshRSS/FreshRSS/pull/3554) - * Fix double escaping in feed filters [#3563](https://github.com/FreshRSS/FreshRSS/pull/3563) - * Fix bugs in migration system [#3589](https://github.com/FreshRSS/FreshRSS/pull/3589) - * Fix regression preventing showing startup errors [#3590](https://github.com/FreshRSS/FreshRSS/pull/3590) - * Fix form redirection after erroneous user creation [#3656](https://github.com/FreshRSS/FreshRSS/pull/3656) - * Fix JavaScript error during navigation when no article is selected [#3655](https://github.com/FreshRSS/FreshRSS/pull/3655) - * Fix link to add feeds from the empty homepage [#3650](https://github.com/FreshRSS/FreshRSS/pull/3650) - * Fix git update error message [#3645](https://github.com/FreshRSS/FreshRSS/pull/3645) -* SimplePie - * Fix regression about media attachments [#3565](https://github.com/FreshRSS/FreshRSS/pull/3565) - * Fix regression about forcing HTTPS for enclosures [#3568](https://github.com/FreshRSS/FreshRSS/pull/3568) - * Catch ValueError for loadHTML with PHP 8 [simplepie#673](https://github.com/simplepie/simplepie/pull/673) - * Provide access to latest HTTP status code [simplepie#674](https://github.com/simplepie/simplepie/pull/674) - * Fix wrong SimplePie type hint [simplepie#678](https://github.com/simplepie/simplepie/pull/678) - * Merge details from upstream PRs [#3588](https://github.com/FreshRSS/FreshRSS/pull/3588), [#3614](https://github.com/FreshRSS/FreshRSS/pull/3614) -* API - * Compatibility with Web servers providing `ORIG_PATH_INFO` [#3560](https://github.com/FreshRSS/FreshRSS/pull/3560) -* i18n - * Improved Russian [#3579](https://github.com/FreshRSS/FreshRSS/pull/3579) - * Improved Turkish [#3604](https://github.com/FreshRSS/FreshRSS/pull/3604) - * Improved Chinese [#3600](https://github.com/FreshRSS/FreshRSS/pull/3600) -* Code improvements: - * Friendly constant syntax for Intellisense [#3577](https://github.com/FreshRSS/FreshRSS/pull/3577) - * Fix several comments syntaxes [#3615](https://github.com/FreshRSS/FreshRSS/pull/3615) - * Minor uniform stricter HTML [#3616](https://github.com/FreshRSS/FreshRSS/pull/3616) - * Removed unused variable [#3587](https://github.com/FreshRSS/FreshRSS/pull/3587) - * Provide action name in Minz controller exception [#3624](https://github.com/FreshRSS/FreshRSS/pull/3624) - * New convenience method to extract multiline GET parameters from e.g. `<textarea>` [#3629](https://github.com/FreshRSS/FreshRSS/pull/3629) -* Deployment - * Automatically apply `latest` tag in git for the latest FreshRSS release [#3524](https://github.com/FreshRSS/FreshRSS/pull/3524) -* Misc. - * Remove legacy `data/do-install.txt` for triggering install process [#3555](https://github.com/FreshRSS/FreshRSS/pull/3555) - * If using built-in git updates, automatically change to git `edge` branch if using old `master` or `dev` branch names [#3589](https://github.com/FreshRSS/FreshRSS/pull/3589) - - -## 2021-03-14 FreshRSS 1.18.0 - -* Features - * Allow parallel requests [#3096](https://github.com/FreshRSS/FreshRSS/pull/3096) - * Much faster manual feeds refresh - * Reload full article content when an article has changed [#3506](https://github.com/FreshRSS/FreshRSS/pull/3506) - * New share article link to clipboard [#3330](https://github.com/FreshRSS/FreshRSS/pull/3330) - * Improved OPML import of feeds with multiple categories [#3286](https://github.com/FreshRSS/FreshRSS/pull/3286) - * Add a content action parameter to work with CSS selector [#3453](https://github.com/FreshRSS/FreshRSS/pull/3453) - * New cURL options per feed: proxy, cookie, user-agent [#3367](https://github.com/FreshRSS/FreshRSS/pull/3367), [#3494](https://github.com/FreshRSS/FreshRSS/pull/3494), [#3516](https://github.com/FreshRSS/FreshRSS/pull/3516) - * Do not import feeds causing database errors (e.g. due to conflicting HTTP redirections) [#3347](https://github.com/FreshRSS/FreshRSS/pull/3347) -* UI - * New option to remember open categories [#3185](https://github.com/FreshRSS/FreshRSS/pull/3185) - * Remember the scroll position of the sidebar [#3231](https://github.com/FreshRSS/FreshRSS/pull/3231) - * Feedback messages are now properly attached to a request, in case multiple tabs are open [#3208](https://github.com/FreshRSS/FreshRSS/pull/3208) - * New user query configuration page [#3366](https://github.com/FreshRSS/FreshRSS/pull/3366) - * Allow sorting and drag & drop in the list of user queries [#3346](https://github.com/FreshRSS/FreshRSS/pull/3346), [#3355](https://github.com/FreshRSS/FreshRSS/pull/3355) - * Change layout to add a subscription [#3289](https://github.com/FreshRSS/FreshRSS/pull/3289) - * Change integration configuration page [#3372](https://github.com/FreshRSS/FreshRSS/pull/3372) - * Improve author search when clicking on an author [#3315](https://github.com/FreshRSS/FreshRSS/pull/3315) - * Allow typing a label name instead of selecting it [#3213](https://github.com/FreshRSS/FreshRSS/pull/3213) - * Use same behaviour for labels than the option *Show all articles in favourites* [#3472](https://github.com/FreshRSS/FreshRSS/pull/3472) - * Change naming from *Tag management* to *Label management* [#3446](https://github.com/FreshRSS/FreshRSS/pull/3446) - * Sort options alphabetically in share menu [#3331](https://github.com/FreshRSS/FreshRSS/pull/3331) - * Case-insensitive sort order of feeds in category settings [#3466](https://github.com/FreshRSS/FreshRSS/pull/3466) - * Better compression of the images [#3184](https://github.com/FreshRSS/FreshRSS/pull/3184) - * Fix minor jaggy motion of the sidebar [#3266](https://github.com/FreshRSS/FreshRSS/pull/3266) - * Remove useless reset action in sharing configuration page [#3365](https://github.com/FreshRSS/FreshRSS/pull/3365) - * Add autofocus on subscription page [#3334](https://github.com/FreshRSS/FreshRSS/pull/3334) - * Fix contrast issue by enforcing black text in base theme [#3196](https://github.com/FreshRSS/FreshRSS/pull/3196) - * Adjust brightness & contrast of images and videos in dark themes [#3356](https://github.com/FreshRSS/FreshRSS/pull/3356) - * Improve menu bar of several themes for mobile view [#3480](https://github.com/FreshRSS/FreshRSS/pull/3480), [#3491](https://github.com/FreshRSS/FreshRSS/pull/3491) - * Fix dropdown menu for user queries with BlueLagoon and Screwdriver themes [#3485](https://github.com/FreshRSS/FreshRSS/pull/3485) - * Upgrade to jQuery 3.6.0 for statistics [#3501](https://github.com/FreshRSS/FreshRSS/pull/3501) -* Bug fixing - * Fix the reloading of full article content with SQLite [#3461](https://github.com/FreshRSS/FreshRSS/pull/3461) - * Fix the caching of an SQL prepared statement affecting the read state of updated articles [#3500](https://github.com/FreshRSS/FreshRSS/pull/3500) - * Better handle expected article conflicts in database [#3409](https://github.com/FreshRSS/FreshRSS/pull/3409) - * Fix SQL syntax error/warning when deleting temporary articles [#3357](https://github.com/FreshRSS/FreshRSS/pull/3357) - * Fix login and refresh bugs in anonymous mode [#3305](https://github.com/FreshRSS/FreshRSS/pull/3305) - * Fix i18n init [#3249](https://github.com/FreshRSS/FreshRSS/pull/3249) - * Fix tag management [#3292](https://github.com/FreshRSS/FreshRSS/pull/3292) - * Fix user queries with labels [#3285](https://github.com/FreshRSS/FreshRSS/pull/3285) - * Fix loading of default actions for shortcuts [#3394](https://github.com/FreshRSS/FreshRSS/pull/3394) - * Fix extensions when using CLI [#3443](https://github.com/FreshRSS/FreshRSS/pull/3443) - * Fix translation CLI [#3364](https://github.com/FreshRSS/FreshRSS/pull/3364) - * Allow searching for `+` sign [#3489](https://github.com/FreshRSS/FreshRSS/pull/3489) - * Fix cURL version detection in install script [#3519](https://github.com/FreshRSS/FreshRSS/pull/3519) -* Compatibility - * Support PHP 8+ [#3186](https://github.com/FreshRSS/FreshRSS/pull/3186), [#3207](https://github.com/FreshRSS/FreshRSS/pull/3207), [#3459](https://github.com/FreshRSS/FreshRSS/pull/3459), [#3487](https://github.com/FreshRSS/FreshRSS/pull/3487) - * Note: needed for MySQL 8+ with default authentication settings - * Change ZIP-handling method [#3470](https://github.com/FreshRSS/FreshRSS/pull/3470) -* API - * Supported by [FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader) (Android) [#3478](https://github.com/FreshRSS/FreshRSS/issues/3478) - * Implement OPML import/export [#3424](https://github.com/FreshRSS/FreshRSS/pull/3424) - * Add `canonical` field for fluent-reader, better compatibility InoReader [#3391](https://github.com/FreshRSS/FreshRSS/pull/3391) - * Better compatibility with BazQux API [#3320](https://github.com/FreshRSS/FreshRSS/pull/3320) - * Fix continuation token by ensuring it is a string (for Reeder) [#3247](https://github.com/FreshRSS/FreshRSS/issues/3247) -* CLI - * Add requirements check in relevant CLI [#3410](https://github.com/FreshRSS/FreshRSS/pull/3410) -* Deployment - * Possibility to auto-install via e.g. `docker-compose` [#3353](https://github.com/FreshRSS/FreshRSS/pull/3353) - * New tolerance when the database is not available / up (yet) by trying a few times to connect - * Docker: use Apache `remoteip` to log the client remote IP instead of the local proxy IP [#3226](https://github.com/FreshRSS/FreshRSS/pull/3226) - * Docker: new environment variable `LISTEN` to change the internal Apache port when running in host network mode [#3343](https://github.com/FreshRSS/FreshRSS/pull/3343) - * Docker: Alpine image updated to 3.13 with PHP 8.0.3 and Apache 2.4.46 [#3375](https://github.com/FreshRSS/FreshRSS/pull/3375) - * Note: needed for MySQL 8+ with default authentication settings [#3191](https://github.com/FreshRSS/FreshRSS/issues/3191) - * Docker default image (Debian 10 Buster) updated to PHP 7.3.27 - * New Docker development image based on `alpine:edge` to test the latest PHP 8+ version [#3294](https://github.com/FreshRSS/FreshRSS/pull/3294) - * New Docker development image based on `alpine:3.4` to test oldest supported PHP 5.6.36 version with Apache 2.4.43 [#3274](https://github.com/FreshRSS/FreshRSS/pull/3274) - * Disable built-in update mechanism for new installations using Docker [#3496](https://github.com/FreshRSS/FreshRSS/pull/3496) - * Check that PHP session is working during install [#3430](https://github.com/FreshRSS/FreshRSS/pull/3430) -* Security - * Auto-renew login cookie [#3287](https://github.com/FreshRSS/FreshRSS/pull/3287) - * Remove referer check, already replaced by CSRF token [#3432](https://github.com/FreshRSS/FreshRSS/pull/3432) - * Increase login cookie duration to 3 months by default [#3170](https://github.com/FreshRSS/FreshRSS/pull/3170) - * Prevent click on login button until JavaScript is fully loaded [#3275](https://github.com/FreshRSS/FreshRSS/pull/3275) - * Add toggle password visibility button on login form UI [#3205](https://github.com/FreshRSS/FreshRSS/pull/3205) - * Better sanitize feed description [#3222](https://github.com/FreshRSS/FreshRSS/pull/3222) - * Allow `@`-sign in database username (for Azure) [#3241](https://github.com/FreshRSS/FreshRSS/pull/3241) - * Add username hint for permissions during install [#3373](https://github.com/FreshRSS/FreshRSS/pull/3373) -* SimplePie - * SimplePie prevent cache pollution [#3502](https://github.com/FreshRSS/FreshRSS/pull/3502) - * Update to SimplePie 1.5.6 with PHP8 support [#3469](https://github.com/FreshRSS/FreshRSS/pull/3469), [#3206](https://github.com/FreshRSS/FreshRSS/pull/3206) - * Reduce memory consumption to handle very big feeds [simplepie#672](https://github.com/simplepie/simplepie/pull/672) - * Replace `ceil()` by `intval()` for edge cases with PHP8 [simplepie#670](https://github.com/simplepie/simplepie/pull/670) - * Strip HTML comments in feeds [#3288](https://github.com/FreshRSS/FreshRSS/pull/3288) - * Minor fix of return type for broken feeds [#3423](https://github.com/FreshRSS/FreshRSS/pull/3423) - * Fix images in enclosures without MIME type [#3361](https://github.com/FreshRSS/FreshRSS/pull/3361) -* Extensions - * New user maintenance hooks [#3440](https://github.com/FreshRSS/FreshRSS/pull/3440) - * New hooks `js_vars` and `nav_menu` [#3342](https://github.com/FreshRSS/FreshRSS/pull/3342) - * Add class autoload for extensions [#3350](https://github.com/FreshRSS/FreshRSS/pull/3350) - * Add support for extension user files [#3433](https://github.com/FreshRSS/FreshRSS/pull/3433) - * Add user configuration in extensions [#3397](https://github.com/FreshRSS/FreshRSS/pull/3397) - * Add a method to retrieve a configuration value [#3422](https://github.com/FreshRSS/FreshRSS/pull/3422) - * Search files for both core and third-party extensions [#3413](https://github.com/FreshRSS/FreshRSS/pull/3413) - * Updated base extension class [#3333](https://github.com/FreshRSS/FreshRSS/pull/3333), [#3335](https://github.com/FreshRSS/FreshRSS/pull/3335) - * Refactor extension file script [#3399](https://github.com/FreshRSS/FreshRSS/pull/3399) -* i18n - * Fix some translation inconsistencies [#3316](https://github.com/FreshRSS/FreshRSS/pull/3316), [#3240](https://github.com/FreshRSS/FreshRSS/pull/3240) - * Add Polish [#3190](https://github.com/FreshRSS/FreshRSS/pull/3190) - * Improve Chinese [#3473](https://github.com/FreshRSS/FreshRSS/pull/3473) - * Improve Dutch [#3468](https://github.com/FreshRSS/FreshRSS/pull/3468) - * Improve English [#3248](https://github.com/FreshRSS/FreshRSS/pull/3248) - * Improve British English date format [#3326](https://github.com/FreshRSS/FreshRSS/pull/3326) - * Improve German [#3237](https://github.com/FreshRSS/FreshRSS/pull/3237), [#3317](https://github.com/FreshRSS/FreshRSS/pull/3317), [#3318](https://github.com/FreshRSS/FreshRSS/pull/3318), [#3325](https://github.com/FreshRSS/FreshRSS/pull/3325), [#3379](https://github.com/FreshRSS/FreshRSS/pull/3379), [#3448](https://github.com/FreshRSS/FreshRSS/pull/3448), [#3455](https://github.com/FreshRSS/FreshRSS/pull/3455) - * Improve Occitan [#3245](https://github.com/FreshRSS/FreshRSS/pull/3245), [#3511](https://github.com/FreshRSS/FreshRSS/pull/3511) -* Code improvements - * Improve FreshRSS system initialisation [#3070](https://github.com/FreshRSS/FreshRSS/pull/3070) - * Improve session code during install [#3276](https://github.com/FreshRSS/FreshRSS/pull/3276) - * Enforce `phpcs` (PHP_CodeSniffer) line length + whitespace [#3488](https://github.com/FreshRSS/FreshRSS/pull/3488) - * Improve settings and applies to `*.phtml, *.css, *.js` as well - * Fix superfluous Minz check during install [#3302](https://github.com/FreshRSS/FreshRSS/pull/3302) - * Extract some classes to their own files [#3301](https://github.com/FreshRSS/FreshRSS/pull/3301), [#3298](https://github.com/FreshRSS/FreshRSS/pull/3298), [#3297](https://github.com/FreshRSS/FreshRSS/pull/3297) - * Explicit git declaration of `.png` files as binary [#3211](https://github.com/FreshRSS/FreshRSS/pull/3211) - * Remove Minz validation [#3439](https://github.com/FreshRSS/FreshRSS/pull/3439) - * Explicit `PDO::ERRMODE_SILENT` [#3048](https://github.com/FreshRSS/FreshRSS/pull/3408) - * Add constant for minimal PHP version [#3369](https://github.com/FreshRSS/FreshRSS/pull/3369) - * Refactor requirements check during install [#3368](https://github.com/FreshRSS/FreshRSS/pull/3368) -* Misc. - * Check access rights to temp folder during install [#3312](https://github.com/FreshRSS/FreshRSS/pull/3312) - * Ensure maximum integer for a date to avoid some database issues [#3259](https://github.com/FreshRSS/FreshRSS/pull/3259) - * Upgrade PHPMailer to 6.3.0 [#3457](https://github.com/FreshRSS/FreshRSS/pull/3457) - * Make our Travis greener by testing only our oldest and newest supported PHP versions [#3492](https://github.com/FreshRSS/FreshRSS/pull/3492) - - -## 2020-09-22 FreshRSS 1.17.0 - -* Features - * New tag management page [#3121](https://github.com/FreshRSS/FreshRSS/pull/3121) - * New page to add feeds and categories [#3027](https://github.com/FreshRSS/FreshRSS/pull/3027) - * Add a way to disable/enable users [#3056](https://github.com/FreshRSS/FreshRSS/pull/3056) -* Security - * Add user auto-registration when using HTTP Basic authentication login method [#3003](https://github.com/FreshRSS/FreshRSS/pull/3003) - * Fix special characters in user queries [#3037](https://github.com/FreshRSS/FreshRSS/pull/3037) - * Hide feed credentials when adding a new feed [#3099](https://github.com/FreshRSS/FreshRSS/pull/3099) - * Trim whitespace for feed passwords [#3158](https://github.com/FreshRSS/FreshRSS/pull/3158) - * Updated PHPMailer library to 6.1.6 [#3024](https://github.com/FreshRSS/FreshRSS/pull/3024) - * Add blogger.com to the default list of forced HTTPS [#3088](https://github.com/FreshRSS/FreshRSS/pull/3088) -* UI - * Show feed name and date inside the article (especially good on mobile) [#3081](https://github.com/FreshRSS/FreshRSS/pull/3081) - * Add shortcut to control media elements (video, audio) [#3036](https://github.com/FreshRSS/FreshRSS/pull/3036) - * New option to disable shortcuts [#3114](https://github.com/FreshRSS/FreshRSS/pull/3114) - * Case-insensitive sort order of feeds in categories [#3131](https://github.com/FreshRSS/FreshRSS/pull/3131) - * Use machine-readable `<time datetime="">` for entry dates [#3106](https://github.com/FreshRSS/FreshRSS/pull/3106) - * Add tooltips on entry icons [#3115](https://github.com/FreshRSS/FreshRSS/pull/3115) - * Limit dropdown menus max-height [#3102](https://github.com/FreshRSS/FreshRSS/pull/3102) - * Fix inline code tag contrast in Ansum and Mapco themes [#3048](https://github.com/FreshRSS/FreshRSS/pull/3048), [#3050](https://github.com/FreshRSS/FreshRSS/pull/3050) - * Fix login form in BlueLagoon and Screwdriver themes [#3028](https://github.com/FreshRSS/FreshRSS/pull/3028) -* API - * Supported by [Fluent Reader](https://hyliu.me/fluent-reader/) (Windows, Linux, MacOS) [#3140](https://github.com/FreshRSS/FreshRSS/pull/3140) - * Fix API `quickadd` [#3051](https://github.com/FreshRSS/FreshRSS/pull/3051) - * Fix warning when adding a feed [#3075](https://github.com/FreshRSS/FreshRSS/pull/3075) - * Work-around for common API address errors [#3061](https://github.com/FreshRSS/FreshRSS/pull/3061) -* Compatibility - * Add fall-backs for compatibility with OPMLs from The Old Reader [#3071](https://github.com/FreshRSS/FreshRSS/pull/3071) - * Relaxed to allow underscore `_` in feed addresses [#3133](https://github.com/FreshRSS/FreshRSS/pull/3133) -* Deployment - * Docker default image rebased on Debian 10 Buster, with Apache 2.4.38 and PHP 7.3.19 [#3159](https://github.com/FreshRSS/FreshRSS/pull/3159) - * Docker: Alpine image updated to 3.12 with Apache/2.4.46 and PHP 7.3.21 [#3025](https://github.com/FreshRSS/FreshRSS/pull/3025) - * Docker: Remove healthcheck [#3161](https://github.com/FreshRSS/FreshRSS/pull/3161) - * Update example of Dockerfile [#3108](https://github.com/FreshRSS/FreshRSS/pull/3108) -* CLI - * Re-introduce `--api_password` option (vanished in 1.16.0) [#3179](https://github.com/FreshRSS/FreshRSS/pull/3179) - * Modify shebang to be more portable [#3038](https://github.com/FreshRSS/FreshRSS/pull/3038) -* Bug fixing - * SimplePie: Fix compliance with HTTP 301 Moved Permanently [#3180](https://github.com/FreshRSS/FreshRSS/pull/3180) -* i18n - * Add language negotiation when the user is not logged in [#3022](https://github.com/FreshRSS/FreshRSS/pull/3022) - * New United States English [#3060](https://github.com/FreshRSS/FreshRSS/pull/3060) - * Improved British English [#3068](https://github.com/FreshRSS/FreshRSS/pull/3068) - * Improved Dutch [#3063](https://github.com/FreshRSS/FreshRSS/pull/3063) - * Improved Slovak [#3020](https://github.com/FreshRSS/FreshRSS/pull/3020) - * Add a language reference when adding a new one [#3044](https://github.com/FreshRSS/FreshRSS/pull/3044) - * Change how updating a key works [#3072](https://github.com/FreshRSS/FreshRSS/pull/3072) - * Add missing translations [#3034](https://github.com/FreshRSS/FreshRSS/pull/3034) -* Misc. - * Return proper MIME type for favicons [#3032](https://github.com/FreshRSS/FreshRSS/pull/3032) - * Add a migration system [#2760](https://github.com/FreshRSS/FreshRSS/pull/2760) - * Makefile support for FreshRSS extensions [#3042](https://github.com/FreshRSS/FreshRSS/pull/3042) - * Update rules to use Make syntax [#3062](https://github.com/FreshRSS/FreshRSS/pull/3062) - * Refactor the export feature [#3045](https://github.com/FreshRSS/FreshRSS/pull/3045) - - -## 2020-05-31 FreshRSS 1.16.2 - -* Bug fixing (regressions) - * Fix migration of the preference *Show categories unfolded* (from ≤ 1.16.0) to the new *Categories to unfold* [#3019](https://github.com/FreshRSS/FreshRSS/pull/3019) - - -## 2020-05-30 FreshRSS 1.16.1 - -* Features - * Add the possibility to filter by feed IDs [#2892](https://github.com/FreshRSS/FreshRSS/pull/2892) - * like `f:123 more-search` or multiple feed IDs like `f:123,234,345 more-search` or an exclusion like `!f:456,789 more-search` - * Show users last activity date [#2936](https://github.com/FreshRSS/FreshRSS/pull/2936) - * Ability to follow HTML redirections when retrieving full article content [#2985](https://github.com/FreshRSS/FreshRSS/pull/2985) -* API - * New table of compatible clients [#2942](https://github.com/FreshRSS/FreshRSS/pull/2942) - * Expose podcasts in API (used by e.g. FeedMe) [#2898](https://github.com/FreshRSS/FreshRSS/pull/2898) - * Workaround for clients not sending a clean login request [#2961](https://github.com/FreshRSS/FreshRSS/pull/2961) - * Relaxed detection of GReader short/long ID form (for Reeder) [#2957](https://github.com/FreshRSS/FreshRSS/pull/2957) - * Fix warning with FeedReader [#2947](https://github.com/FreshRSS/FreshRSS/pull/2947) - * Fix GReader string type for Usec fields [#2935](https://github.com/FreshRSS/FreshRSS/pull/2935) - * Fix Fever integers type [#2946](https://github.com/FreshRSS/FreshRSS/pull/2946) -* CLI - * JSON output option for `./cli/user-info.php --json` [#2968](https://github.com/FreshRSS/FreshRSS/pull/2968) - * Add language and e-mail in `./cli/user-info.php` [#2958](https://github.com/FreshRSS/FreshRSS/pull/2958) - * Fix filenames for exported files [#2932](https://github.com/FreshRSS/FreshRSS/pull/2932) -* UI - * Access to feed configuration in mobile view [#2938](https://github.com/FreshRSS/FreshRSS/pull/2938) - * Use standard `loading="lazy"` for favicons [#2962](https://github.com/FreshRSS/FreshRSS/pull/2962) - * New option to control which categories to unfold [#2888](https://github.com/FreshRSS/FreshRSS/pull/2888) - * Turn off autocapitalization in login fields [#2907](https://github.com/FreshRSS/FreshRSS/pull/2907) - * Minor layout improvement of help labels [#2911](https://github.com/FreshRSS/FreshRSS/pull/2911) - * Minor layout improvement of checkbox labels [#2937](https://github.com/FreshRSS/FreshRSS/pull/2937) - * Fix styling of search input fields in Safari [#2887](https://github.com/FreshRSS/FreshRSS/pull/2887) - * Fix styling of `.stick` elements in older Webkit browsers [#2995](https://github.com/FreshRSS/FreshRSS/pull/2995) - * Use common CSS template for *Alternative-Dark* theme [#3000](https://github.com/FreshRSS/FreshRSS/pull/3000) - * Upgrade to jQuery 3.5.1 for statistics [#2982](https://github.com/FreshRSS/FreshRSS/pull/2982) -* Compatibility - * Relax OPML parsing to allow importing not strictly-valid ones [#2983](https://github.com/FreshRSS/FreshRSS/pull/2983) -* Deployment - * Docker: Alpine image updated to PHP 7.3.17 - * Add reference documentation for using Apache as a reverse proxy [#2919](https://github.com/FreshRSS/FreshRSS/pull/2919) - * Enforce Unix line endings when checking out via git [#2879](https://github.com/FreshRSS/FreshRSS/pull/2879) -* Bug fixing - * Fix regression when marking all articles as read, risking to mark newer articles as read [#2909](https://github.com/FreshRSS/FreshRSS/pull/2909) - * Fix memory leak when using `lib_phpQuery` for full-content retrieval [#3004](https://github.com/FreshRSS/FreshRSS/pull/3004) - * Fix preview of CSS selector to retrieve full article content [#2993](https://github.com/FreshRSS/FreshRSS/pull/2993) - * Fix PostgreSQL install when user has limited connection rights [#3013](https://github.com/FreshRSS/FreshRSS/pull/3013) - * Fix Docker make cron use `FRESHRSS_ENV` environment variable [#2963](https://github.com/FreshRSS/FreshRSS/pull/2963) - * Fix e-mail validation bug for admins [#2917](https://github.com/FreshRSS/FreshRSS/pull/2917) - * Fix some cases when WebSub-enabled feeds change address [#2922](https://github.com/FreshRSS/FreshRSS/pull/2922) - * Fix ensuring that wrong login attempts generate HTTP 403 (e.g. for fail2ban) [#2903](https://github.com/FreshRSS/FreshRSS/pull/2903) - * Fix archiving options layout in Edge [#2906](https://github.com/FreshRSS/FreshRSS/pull/2906) - * Fix form in statistics for article repartition [#2896](https://github.com/FreshRSS/FreshRSS/pull/2896) - * Fix double-HTML-encoding of category names in statistics [#2897](https://github.com/FreshRSS/FreshRSS/pull/2897) - * Fix password reveal button during install [#2999](https://github.com/FreshRSS/FreshRSS/pull/2999) - * Fix Makefile rules when PHP is not installed [#3010](https://github.com/FreshRSS/FreshRSS/pull/3010) -* i18n - * Improve Simplified Chinese [#2891](https://github.com/FreshRSS/FreshRSS/pull/2891) - * Improve Dutch [#3005](https://github.com/FreshRSS/FreshRSS/pull/3005) - * Reformat i18n files [#2976](https://github.com/FreshRSS/FreshRSS/pull/2976) - * Add a Makefile rule to produce PO4A i18n files [#3006](https://github.com/FreshRSS/FreshRSS/pull/3006) -* Misc. - * Reduce memory consumption during feed refresh [#2972](https://github.com/FreshRSS/FreshRSS/pull/2972), [#2955](https://github.com/FreshRSS/FreshRSS/pull/2955) - * and improved logs containing memory consumption [#2964](https://github.com/FreshRSS/FreshRSS/pull/2964) - * Reduce the risk of DB lock errors [#2899](https://github.com/FreshRSS/FreshRSS/pull/2899) - * Update PHPMailer library to 6.1.5 [#2980](https://github.com/FreshRSS/FreshRSS/pull/2980) - * Initial rules for Markdown linting [#2880](https://github.com/FreshRSS/FreshRSS/pull/2880) - * Add a Makefile rule for linting [#2996](https://github.com/FreshRSS/FreshRSS/pull/2996) - * Add a Makefile rule to refresh feeds [#3014](https://github.com/FreshRSS/FreshRSS/pull/3014) - - -## 2020-04-09 FreshRSS 1.16.0 - -* Features - * Allow multiple users to have administration rights [#2096](https://github.com/FreshRSS/FreshRSS/issues/2096) - * Preview the CSS rule to retrieve full article content [#2778](https://github.com/FreshRSS/FreshRSS/pull/2778) - * Improve CSS selector ordering in the full-text retrieval (`lib_phpQuery`) [#2874](https://github.com/FreshRSS/FreshRSS/pull/2874) - * Allow combining selectors with a comma such as `#article .title, #article .content` - * New search option `!date:` allowing to exclude any date interval [#2869](https://github.com/FreshRSS/FreshRSS/pull/2869) - * For instance `!date:P1W` (exclude articles newer than 1 week), `!pubdate:2019`, `-date:2020-01-01/P5d`, etc. - * New option to show all articles in the favourites view [#2434](https://github.com/FreshRSS/FreshRSS/issues/2434) - * Allow feed to be actualized just after being truncated [#2862](https://github.com/FreshRSS/FreshRSS/pull/2862) - * Fallback to showing a GUID when an article title is empty [#2813](https://github.com/FreshRSS/FreshRSS/pull/2813) -* API - * Supported by [Readrops](https://github.com/readrops/Readrops) (Android, open source) [#2798](https://github.com/FreshRSS/FreshRSS/pull/2798) - * Improve consistency of the default category [#2840](https://github.com/FreshRSS/FreshRSS/pull/2840) - * Return proper `newestItemTimestampUsec` [#2853](https://github.com/FreshRSS/FreshRSS/issues/2853) - * Return `HTTP/1.x 200 OK` for an empty request, to ease discovery [#2855](https://github.com/FreshRSS/FreshRSS/pull/2855) - * Add ability to customise dates shown in API [#2773](https://github.com/FreshRSS/FreshRSS/pull/2773) - * Minor clearing of unused parameters [#2816](https://github.com/FreshRSS/FreshRSS/pull/2816) -* Compatibility - * Support PHP 7.4 -* Bug fixing - * Fix regression causing a login bug in some situations related to e-mail login [#2686](https://github.com/FreshRSS/FreshRSS/pull/2686) - * Fix regression in feed refresh when there are users whose e-mail is not verified [#2694](https://github.com/FreshRSS/FreshRSS/pull/2694) - * Fix PostgreSQL install when using a username different than database name [#2732](https://github.com/FreshRSS/FreshRSS/issues/2732) - * Fix error with advanced searches using SQLite [#2777](https://github.com/FreshRSS/FreshRSS/pull/2777) - * Fix feed action filter when filtering on `author:` [#2806](https://github.com/FreshRSS/FreshRSS/issues/2806) - * Fix warning in WebSub [#2743](https://github.com/FreshRSS/FreshRSS/pull/2743) - * Fix environment variables `COPY_LOG_TO_SYSLOG` and `FRESHRSS_ENV` controlling logging [#2745](https://github.com/FreshRSS/FreshRSS/pull/2745) - * Fix UI flickering when hovering over articles when authors are displayed [#2701](https://github.com/FreshRSS/FreshRSS/issues/2701) - * Fix array error with PHP 7.4 [#2780](https://github.com/FreshRSS/FreshRSS/pull/2780) - * Fix wrong `foreach` in `applyFilterActions` [#2809](https://github.com/FreshRSS/FreshRSS/pull/2809) - * Fix encoding bug in `lib_phpQuery` when fetching the full content of HTML documents with a complex `<head ...>` [#2864](https://github.com/FreshRSS/FreshRSS/issues/2864) - * Fix minor bug in “articles to display” configuration UI [#2767](https://github.com/FreshRSS/FreshRSS/pull/2767) - * Fix sharing with Wallabag [#2817](https://github.com/FreshRSS/FreshRSS/pull/2817) - * Fix UI background bug when hovering over a long title that overlaps the date [#2755](https://github.com/FreshRSS/FreshRSS/issues/2755) -* UI - * Better UI / client network performance (time to first byte) thanks to a data streaming pipeline with `yield` [#2588](https://github.com/FreshRSS/FreshRSS/pull/2588) - * Improved buffering strategy accordingly, with a loading animation while waiting for the first articles to arrive (e.g. complex / slow search) [#2845](https://github.com/FreshRSS/FreshRSS/pull/2845) - * To benefit from it, requires that the full Web stack allow efficient streaming / flushing of data. Check our reference [Docker + Traefik documentation](./Docker/README.md). - * Support RTL (right-to-left) languages [#2776](https://github.com/FreshRSS/FreshRSS/pull/2776) - * New keyboard shortcut <kbd>Alt ⎇</kbd>+<kbd>r</kbd> to park *previous* articles as read [#2843](https://github.com/FreshRSS/FreshRSS/pull/2843) - * In the statistics page, show feeds inactive for 1, 2, 3, 5 years [#2827](https://github.com/FreshRSS/FreshRSS/issues/2827) - * Reset FreshRSS page scroll when restoring a browser session, to avoid inadvertently marking as read new articles [#2842](https://github.com/FreshRSS/FreshRSS/pull/2842) - * Fix scrolling of labels dropdown [#2727](https://github.com/FreshRSS/FreshRSS/pull/2727) - * Enlarge `<audio>` widgets to use the full width of the reading zone, to help navigation in e.g. podcasts [#2875](https://github.com/FreshRSS/FreshRSS/issues/2875) - * Use `<p>` instead of `<pre>` to display `<media:description>` information [#2807](https://github.com/FreshRSS/FreshRSS/issues/2807) - * Show language and e-mail address in the list of users [#2703](https://github.com/FreshRSS/FreshRSS/pull/2703) - * Change logic when using shortcuts to navigate between feeds, in the case some are empty [#2687](https://github.com/FreshRSS/FreshRSS/pull/2687) - * Option to show/hide favicons (e.g. to reduce the number of requests) [#2821](https://github.com/FreshRSS/FreshRSS/pull/2821) - * Improve loader animation colour in the Dark theme [#2753](https://github.com/FreshRSS/FreshRSS/pull/2753) -* SimplePie - * Use distinct cache for feeds retrieved with `#force_feed` [simplepie#643](https://github.com/simplepie/simplepie/pull/643) - * Fix the issue of not being able to immediately try to add an invalid feed again [#2524](https://github.com/FreshRSS/FreshRSS/issues/2524) - * Update to SimplePie 1.5.4 [#2702](https://github.com/FreshRSS/FreshRSS/pull/2702), [#2814](https://github.com/FreshRSS/FreshRSS/pull/2814) - * Require PHP 5.6+, and add PHP 7.4+ compatibility - * Add Russian and German dates - * Etc. -* Deployment - * Docker: Alpine image updated to 3.11 with PHP 7.3.16 and Apache 2.4.43 [#2729](https://github.com/FreshRSS/FreshRSS/pull/2729) - * Move core extensions (shipped with FreshRSS) to their own directory, so that `./extensions/` is solely for third-party extensions [#2837](https://github.com/FreshRSS/FreshRSS/pull/2837) - * This allows mounting `./extensions/` as a Docker volume, to ease adding third-party extensions -* Extensions - * New core extension to find feeds for Google Groups [#2835](https://github.com/FreshRSS/FreshRSS/issues/2835) - * New hooks `check_url_before_add` and `feed_before_actualize` [#2704](https://github.com/FreshRSS/FreshRSS/pull/2704) - * Execute the `entry_before_display` hook also through the API [#2762](https://github.com/FreshRSS/FreshRSS/issues/2762) - * Allow extensions to change CSP (security) rules [#2708](https://github.com/FreshRSS/FreshRSS/pull/2708) - * Expose the article ID in the share system (for a new e-mail sharing extension) [#2707](https://github.com/FreshRSS/FreshRSS/pull/2707) -* i18n - * Improve French [#2878](https://github.com/FreshRSS/FreshRSS/pull/2878) - * Improve German [#2690](https://github.com/FreshRSS/FreshRSS/pull/2690) - * Improve Occitan [#2873](https://github.com/FreshRSS/FreshRSS/pull/2873) - * Improve Portuguese [#2833](https://github.com/FreshRSS/FreshRSS/pull/2833) - * Improve Simplified Chinese [#2730](https://github.com/FreshRSS/FreshRSS/pull/2730) - * Improve Spanish [#2823](https://github.com/FreshRSS/FreshRSS/pull/2823) -* Misc. - * Improve logging of database errors [#2734](https://github.com/FreshRSS/FreshRSS/pull/2734) - * Remove the `min_posts_per_rss` configuration, which made efficient buffering difficult [#2588](https://github.com/FreshRSS/FreshRSS/pull/2588) - * Add a test target to Makefile [#2725](https://github.com/FreshRSS/FreshRSS/pull/2725) - * Fix test suite [#2721](https://github.com/FreshRSS/FreshRSS/pull/2721) - * Refactor request class [#2373](https://github.com/FreshRSS/FreshRSS/pull/2373) - * Remove deprecated *magic quotes* logic [#2698](https://github.com/FreshRSS/FreshRSS/pull/2698) - - -## 2019-11-22 FreshRSS 1.15.3 - -* Bug fixing (regressions from 1.15.x) - * Fix adding categories in MySQL 5.5 [#2670](https://github.com/FreshRSS/FreshRSS/issues/2670) - * Fix saving sharing integrations [#2669](https://github.com/FreshRSS/FreshRSS/pull/2669) -* Compatibility - * Add fallback for systems with old ICU < 4.6 (*International Components for Unicode*) [#2680](https://github.com/FreshRSS/FreshRSS/pull/2680) -* API - * Do not obey `rel=self` feed redirections when WebSub is disabled [#2659](https://github.com/FreshRSS/FreshRSS/pull/2659) -* UI - * Start adding support for RTL (*right-to-left*) languages [#2656](https://github.com/FreshRSS/FreshRSS/pull/2656) -* Deployment - * Docker: Ubuntu image updated to PHP 7.3.11 -* Misc. - * Add more log when errors occur when saving a profile [#2663](https://github.com/FreshRSS/FreshRSS/issues/2663) - * Improve Makefile with port override [#2660](https://github.com/FreshRSS/FreshRSS/pull/2660) - * Update a few external links to HTTPS [#2662](https://github.com/FreshRSS/FreshRSS/pull/2662) - - -## 2019-11-12 FreshRSS 1.15.2 - -* Bug fixing (regressions from 1.15.x) - * Fix CLI failing due to new test against empty usernames [#2644](https://github.com/FreshRSS/FreshRSS/issues/2644) - * Fix CLI install for SQLite [#2648](https://github.com/FreshRSS/FreshRSS/pull/2648) - * Fix database optimize action for MySQL/MariaDB [#2647](https://github.com/FreshRSS/FreshRSS/pull/2647) -* Bug fixing (misc.) - * Sanitize Unicode UTF-8 before insertion of entries, especially needed for PostgreSQL [#2645](https://github.com/FreshRSS/FreshRSS/issues/2645) -* Misc. - * Rename *sharing* action to avoid erroneous blocking by some ad-blockers [#2509](https://github.com/FreshRSS/FreshRSS/issues/2509) - - -## 2019-11-06 FreshRSS 1.15.1 - -* Features - * New approach based on OPML to definite default feeds for new users [#2627](https://github.com/FreshRSS/FreshRSS/pull/2627) -* API - * Always send articles IDs as string, to fix compatibility with Reeder [#2621](https://github.com/FreshRSS/FreshRSS/pull/2621) -* Bug fixing (regressions from 1.15.0) - * Fix database auto-creation at install [#2635](https://github.com/FreshRSS/FreshRSS/pull/2635) - * Fix bug in database size estimation with PostgreSQL for users with uppercase names [#2631](https://github.com/FreshRSS/FreshRSS/pull/2631) - * Reset name of default category (which cannot be customised anymore) [#2639](https://github.com/FreshRSS/FreshRSS/pull/2639) - * Fix UI style details [#2634](https://github.com/FreshRSS/FreshRSS/pull/2634) -* Security - * Improve cookie security with policy `SameSite=Lax` [#2630](https://github.com/FreshRSS/FreshRSS/pull/2630) -* Misc. - * Perform automatic git updates with safer fetch+reset instead of clean+fetch+merge [#2625](https://github.com/FreshRSS/FreshRSS/pull/2625) - - -## 2019-10-31 FreshRSS 1.15.0 - -* CLI - * Command line to export/import any database to/from SQLite [#2496](https://github.com/FreshRSS/FreshRSS/pull/2496) -* Features - * New archiving method, including maximum number of articles per feed, and settings at feed, category, global levels [#2335](https://github.com/FreshRSS/FreshRSS/pull/2335) - * New option to control category sort order [#2592](https://github.com/FreshRSS/FreshRSS/pull/2592) - * New option to display article authors underneath the article title [#2487](https://github.com/FreshRSS/FreshRSS/pull/2487) - * Add e-mail capability [#2476](https://github.com/FreshRSS/FreshRSS/pull/2476), [#2481](https://github.com/FreshRSS/FreshRSS/pull/2481) - * Ability to define default user settings in `data/config-user.custom.php` [#2490](https://github.com/FreshRSS/FreshRSS/pull/2490) - * Including default feeds [#2515](https://github.com/FreshRSS/FreshRSS/pull/2515) - * Allow recreating users if they still exist in database [#2555](https://github.com/FreshRSS/FreshRSS/pull/2555) - * Add optional database connection URI parameters [#2549](https://github.com/FreshRSS/FreshRSS/issues/2549), [#2559](https://github.com/FreshRSS/FreshRSS/pull/2559) - * Allow longer articles with MySQL / MariaDB (up to 16MB compressed instead of 64kB) [#2448](https://github.com/FreshRSS/FreshRSS/issues/2448) - * Add support for terms of service [#2520](https://github.com/FreshRSS/FreshRSS/pull/2520) - * Add sharing with [Lemmy](https://github.com/dessalines/lemmy) [#2510](https://github.com/FreshRSS/FreshRSS/pull/2510) -* API - * Add support for [Reeder-4](https://www.reederapp.com/) client [#2513](https://github.com/FreshRSS/FreshRSS/issues/2513) -* Compatibility - * Require at least PHP 5.6+ [#2495](https://github.com/FreshRSS/FreshRSS/pull/2495), [#2527](https://github.com/FreshRSS/FreshRSS/pull/2527), [#2585](https://github.com/FreshRSS/FreshRSS/pull/2585) - * Require `php-json` and remove remove `JSON.php` fallback [#2528](https://github.com/FreshRSS/FreshRSS/pull/2528) - * Require at least PostgreSQL 9.5+ [#2554](https://github.com/FreshRSS/FreshRSS/pull/2554) -* Deployment - * Take advantage of `mod_authz_core` instead of `mod_access_compat` when running on Apache 2.4+ [#2461](https://github.com/FreshRSS/FreshRSS/pull/2461) - * Docker: Ubuntu image updated to 19.10 with PHP 7.3.8 and Apache 2.4.41 [#2577](https://github.com/FreshRSS/FreshRSS/pull/2577) - * Docker: Alpine image updated to 3.10 with PHP 7.3.11 and Apache 2.4.41 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) - * Docker: Increase default PHP POST/upload size to ease importing ZIP files [#2563](https://github.com/FreshRSS/FreshRSS/pull/2563) - * New environment variable `COPY_LOG_TO_SYSLOG` to see all logs at once in e.g. `docker logs -f` [#2591](https://github.com/FreshRSS/FreshRSS/pull/2591) - * New environment variable `FRESHRSS_ENV` to control Minz development mode [#2508](https://github.com/FreshRSS/FreshRSS/pull/2508) - * Git ignore `themes/xTheme-*` [#2511](https://github.com/FreshRSS/FreshRSS/pull/2511) -* Bug fixing - * Fix missing PHP `opcache` package in Docker Alpine [#2498](https://github.com/FreshRSS/FreshRSS/pull/2498) - * Fix IE11 / Edge keyboard compatibility [#2507](https://github.com/FreshRSS/FreshRSS/pull/2507) - * Use `<dc:creator>` instead of `<author>` for RSS 2.0 outputs [#2542](https://github.com/FreshRSS/FreshRSS/pull/2542) - * Fix PostgreSQL and SQLite database size estimation [#2562](https://github.com/FreshRSS/FreshRSS/pull/2562) - * Fix broken SVG icons in Swage theme [#2568](https://github.com/FreshRSS/FreshRSS/issues/2568), [#2571](https://github.com/FreshRSS/FreshRSS/pull/2571) -* Security - * Fix referrer vulnerability when opening an article original link with a shortcut [#2506](https://github.com/FreshRSS/FreshRSS/pull/2506) - * Slight refactoring of access check [#2471](https://github.com/FreshRSS/FreshRSS/pull/2471) -* UI - * Optimize dynamic favicon for HiDPI screens [#2539](https://github.com/FreshRSS/FreshRSS/pull/2539) - * Hide the admin checkbox if user is not admin [#2531](https://github.com/FreshRSS/FreshRSS/pull/2531) -* I18n - * Add Slovak [#2497](https://github.com/FreshRSS/FreshRSS/pull/2497) - * Improve Dutch [#2503](https://github.com/FreshRSS/FreshRSS/pull/2503) - * Improve Occitan [#2519](https://github.com/FreshRSS/FreshRSS/pull/2519), [#2583](https://github.com/FreshRSS/FreshRSS/pull/2583), [#2603](https://github.com/FreshRSS/FreshRSS/pull/2603) -* Extensions - * Additional hooks [#2482](https://github.com/FreshRSS/FreshRSS/pull/2482) - * New call to change the layout [#2467](https://github.com/FreshRSS/FreshRSS/pull/2467) -* Misc. - * Make our JavaScript compatible with LibreJS [#2576](https://github.com/FreshRSS/FreshRSS/pull/2576) - * PDO (database) refactoring for code simplification [#2522](https://github.com/FreshRSS/FreshRSS/pull/2522) - * Automatic check of CSS syntax in Travis CI [#2477](https://github.com/FreshRSS/FreshRSS/pull/2477) - * Make our Travis greener by reducing redundant tests [#2589](https://github.com/FreshRSS/FreshRSS/pull/2589) - * Remove support for sharing with Google+ [#2464](https://github.com/FreshRSS/FreshRSS/pull/2464) - * Redirect connected users accessing registration page [#2530](https://github.com/FreshRSS/FreshRSS/pull/2530) - * Add Makefile [#2481](https://github.com/FreshRSS/FreshRSS/pull/2481) - - -## 2019-07-25 FreshRSS 1.14.3 - -* UI - * New configuration page for each category [#2369](https://github.com/FreshRSS/FreshRSS/issues/2369) - * Update shortcut configuration page [#2405](https://github.com/FreshRSS/FreshRSS/issues/2405) - * CSS style for printing [#2149](https://github.com/FreshRSS/FreshRSS/issues/2149) - * Do not hide multiple `<br />` tags [#2437](https://github.com/FreshRSS/FreshRSS/issues/2437) - * Updated to jQuery 3.4.1 (only for statistics page) [#2424](https://github.com/FreshRSS/FreshRSS/pull/2424) -* Bug fixing - * Fix wrong mark-as-read limit [#2429](https://github.com/FreshRSS/FreshRSS/issues/2429) - * Fix API call for removing a category [#2411](https://github.com/FreshRSS/FreshRSS/issues/2411) - * Fix user self-registration [#2381](https://github.com/FreshRSS/FreshRSS/issues/2381) - * Make CGI Authorization configuration for API more compatible [#2446](https://github.com/FreshRSS/FreshRSS/issues/2446) - * Fix refresh icon in Swage theme [#2375](https://github.com/FreshRSS/FreshRSS/issues/2375) - * Fix message banner in Swage theme [#2379](https://github.com/FreshRSS/FreshRSS/issues/2379) - * Docker: Add `php-gmp` for API support in Ubuntu 32-bit [#2450](https://github.com/FreshRSS/FreshRSS/pull/2450) -* Deployment - * Docker: Add automatic health check [#2438](https://github.com/FreshRSS/FreshRSS/pull/2438), [#2455](https://github.com/FreshRSS/FreshRSS/pull/2455) - * Docker: Add a version for ARM architecture such as for Raspberry Pi [#2436](https://github.com/FreshRSS/FreshRSS/pull/2436) - * Docker: Ubuntu image updated to 19.04 with PHP 7.2.19 and Apache 2.4.38 [#2422](https://github.com/FreshRSS/FreshRSS/pull/2422) - * Docker: Alpine image updated to 3.10 with PHP 7.3.7 and Apache 2.4.39 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) - * Add `hadolint` automatic check of Docker files in Travis [#2456](https://github.com/FreshRSS/FreshRSS/pull/2456) -* Security - * Allow `@-` as valid characters in usernames (i.e. allow most e-mails) [#2391](https://github.com/FreshRSS/FreshRSS/issues/2391) -* I18n - * Improve Occitan [#2358](https://github.com/FreshRSS/FreshRSS/pull/2358) -* Misc. - * New parameter `?maxFeeds=10` to control the max number of feeds to refresh manually [#2388](https://github.com/FreshRSS/FreshRSS/pull/2388) - * Default to SQLite during install [#2443](https://github.com/FreshRSS/FreshRSS/pull/2443) - * Add automatic check of shell scripts in Travis with `shellcheck` and `shfmt` [#2454](https://github.com/FreshRSS/FreshRSS/pull/2454) - - -## 2019-04-08 FreshRSS 1.14.2 - -* Bug fixing (regressions introduced in 1.14.X) - * Fix PHP 5.5- compatibility [#2359](https://github.com/FreshRSS/FreshRSS/issues/2359) -* Bug fixing (misc.) - * Fix minor code syntax warning in API [#2362](https://github.com/FreshRSS/FreshRSS/pull/2362) -* Misc. - * Add Travis check for PHP syntax [#2361](https://github.com/FreshRSS/FreshRSS/pull/2361) - - -## 2019-04-07 FreshRSS 1.14.1 - -* Bug fixing (regressions introduced in 1.14.0) - * Fix *load more articles* when using ascending order [#2314](https://github.com/FreshRSS/FreshRSS/issues/2314) - * Fix cron in the Ubuntu flavour of the Docker image [#2319](https://github.com/FreshRSS/FreshRSS/issues/2319) - * Fix the use of arrow keyboard keys for shortcuts [#2316](https://github.com/FreshRSS/FreshRSS/issues/2316) - * Fix control+click or middle-click for opening articles in a background tab [#2310](https://github.com/FreshRSS/FreshRSS/issues/2310) - * Fix the naming of the option to unfold categories [#2307](https://github.com/FreshRSS/FreshRSS/issues/2307) - * Fix shortcut problem when using unfolded articles [#2328](https://github.com/FreshRSS/FreshRSS/issues/2328) - * Fix auto-hiding articles [#2323](https://github.com/FreshRSS/FreshRSS/issues/2323) - * Fix scroll functions with Edge [#2337](https://github.com/FreshRSS/FreshRSS/pull/2337) - * Fix drop-down menu warning [#2353](https://github.com/FreshRSS/FreshRSS/pull/2353) - * Fix delay for individual mark-as-read actions [#2332](https://github.com/FreshRSS/FreshRSS/issues/2332) - * Fix scroll functions in Edge [#2337](https://github.com/FreshRSS/FreshRSS/pull/2337) -* Bug fixing (misc.) - * Fix extensions in Windows [#994](https://github.com/FreshRSS/FreshRSS/issues/994) - * Fix import of empty articles [#2351](https://github.com/FreshRSS/FreshRSS/pull/2351) - * Fix quote escaping on CLI i18n tools [#2355](https://github.com/FreshRSS/FreshRSS/pull/2355) -* UI - * Better handling of bad Ajax requests and fast page unload (ask confirmation) [#2346](https://github.com/FreshRSS/FreshRSS/pull/2346) -* I18n - * Improve Dutch [#2312](https://github.com/FreshRSS/FreshRSS/pull/2312) -* Misc. - * Check JavaScript (jshint) in Travis continuous integration [#2315](https://github.com/FreshRSS/FreshRSS/pull/2315) - * Add PHP 7.3 to Travis [#2317](https://github.com/FreshRSS/FreshRSS/pull/2317) - - -## 2019-03-31 FreshRSS 1.14.0 - -* Features - * *Filter actions* feature, to auto-mark-as-read based on a search query per feed [#2275](https://github.com/FreshRSS/FreshRSS/pull/2275) - * Improve account change when using the *unsafe automatic login* [#2288](https://github.com/FreshRSS/FreshRSS/issues/2288) -* UI - * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) - * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) - * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) - * Keyboard-shortcut navigation at end of feed or category continues to the next one [#2255](https://github.com/FreshRSS/FreshRSS/pull/2255) - * Changed jump behaviour after marking articles as read [#2206](https://github.com/FreshRSS/FreshRSS/issues/2206) - * More reactive auto-loading of articles [#2268](https://github.com/FreshRSS/FreshRSS/pull/2268) -* Deployment - * New default Docker image based on Ubuntu (~3 times faster, but ~2.5 times larger) [#2205](https://github.com/FreshRSS/FreshRSS/pull/2205) - * Using Ubuntu 18.10 with PHP 7.2.15 and Apache 2.4.34 - * Alpine version updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) -* Bug fixing - * Fix feed option for marking modified articles as unread [#2200](https://github.com/FreshRSS/FreshRSS/issues/2200) - * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) - * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) - * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) - * Fix author semi-colon prefix in Fever API [#2281](https://github.com/FreshRSS/FreshRSS/issues/2281) - * Fix the reading of the environment variable `COPY_SYSLOG_TO_STDERR` [#2260](https://github.com/FreshRSS/FreshRSS/pull/2260) - * Session fix when form login + HTTP auth are used [#2286](https://github.com/FreshRSS/FreshRSS/pull/2286) - * Fix `cli/user-info.php` for accounts using a version of the database older than 1.12.0 [#2291](https://github.com/FreshRSS/FreshRSS/issues/2291) -* CLI - * Better validation of parameters [#2046](https://github.com/FreshRSS/FreshRSS/issues/2046) - * New option `--header` to `cli/user-info.php` [#2296](https://github.com/FreshRSS/FreshRSS/pull/2296) -* API - * Supported by [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API) -* I18n - * Improve Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) - * Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253) -* Security - * Reworked the CSRF token interaction with the session in some edge cases [#2290](https://github.com/FreshRSS/FreshRSS/pull/2290) - * Remove deprecated CSP `child-src` instruction (was already replaced by `frame-src`) [#2250](https://github.com/FreshRSS/FreshRSS/pull/2250) - * Ensure entry IDs are unique and cannot be set by feeds [#2273](https://github.com/FreshRSS/FreshRSS/issues/2273) -* Misc. - * Remove HHMV from Travis continuous integration [#2249](https://github.com/FreshRSS/FreshRSS/pull/2249) - - -## 2019-01-26 FreshRSS 1.13.1 - -* Features - * Include articles with custom labels during export [#2196](https://github.com/FreshRSS/FreshRSS/issues/2196) - * Export/import articles read/unread state [#2226](https://github.com/FreshRSS/FreshRSS/pull/2226) - * Import FeedBin, and more robust general import [#2228](https://github.com/FreshRSS/FreshRSS/pull/2228) -* Bug fixing - * Fix missing HTTP `X-Forwarded-Prefix` in cookie path behind a reverse-proxy [#2201](https://github.com/FreshRSS/FreshRSS/pull/2201) -* Deployment - * Docker improvements [#2202](https://github.com/FreshRSS/FreshRSS/pull/2202) - * Performance: Hard-include Apache .htaccess to avoid having to scan for changes in those files - * Performance: Disable unused Apache security check of symlinks - * Performance: Disable unused Apache modules - * Add option to mount custom `.htaccess` for HTTP authentication - * Docker logs gets PHP syslog messages (e.g. from cron job and when fetching external content) - * New environment variable `COPY_SYSLOG_TO_STDERR` or in `constants.local.php` to copy PHP syslog messages to STDERR [#2213](https://github.com/FreshRSS/FreshRSS/pull/2213) - * New `TZ` timezone environment variable [#2153](https://github.com/FreshRSS/FreshRSS/issues/2153) - * Run Docker cron job with Apache user instead of root [#2208](https://github.com/FreshRSS/FreshRSS/pull/2208) - * Accept HTTP header `X-WebAuth-User` for delegated HTTP Authentication [#2204](https://github.com/FreshRSS/FreshRSS/pull/2204) -* Extensions - * Trigger a `freshrss:openArticle` JavaScript event [#2222](https://github.com/FreshRSS/FreshRSS/pull/2222) -* API - * Automatic test of API configuration [#2207](https://github.com/FreshRSS/FreshRSS/pull/2207) - * Performance + compatibility: Use Apache `SetEnvIf` module if available and fall-back to `RewriteRule` [#2202](https://github.com/FreshRSS/FreshRSS/pull/2202) -* Security - * Fixes when HTTP user does not exist in FreshRSS [#2204](https://github.com/FreshRSS/FreshRSS/pull/2204) -* I18n - * Improve Dutch [#2221](https://github.com/FreshRSS/FreshRSS/pull/2221) - * Improve Occitan [#2230](https://github.com/FreshRSS/FreshRSS/pull/2230) -* Accessibility - * Remove alt in logo [#2209](https://github.com/FreshRSS/FreshRSS/pull/2209) - - -## 2018-12-22 FreshRSS 1.13.0 - -* API - * Improvements to the Google Reader API [#2093](https://github.com/FreshRSS/FreshRSS/pull/2093) - * Support for [Vienna RSS](http://www.vienna-rss.com/) (client for Mac OS X) [#2091](https://github.com/FreshRSS/FreshRSS/issues/2091) - * Contributions to WebSub in third-party systems to support instant push notifications - from [Mastodon](https://joinmastodon.org) 2.6.2+ and [Friendica](https://friendi.ca) 2018.12+ - [#mastodon/9302](https://github.com/tootsuite/mastodon/pull/9302), [#friendica/6137](https://github.com/friendica/friendica/pull/6137) - * Rename the PubSubHubbub protocol to use the new standard [WebSub](https://www.w3.org/TR/websub/) name [#2184](https://github.com/FreshRSS/FreshRSS/pull/2184) -* Features - * Ability to import XML files exported from Tiny-Tiny-RSS [#2079](https://github.com/FreshRSS/FreshRSS/issues/2079) - * Ability to show all the feeds that have a warning [#2146](https://github.com/FreshRSS/FreshRSS/issues/2146) - * Share with Pinboard [#1972](https://github.com/FreshRSS/FreshRSS/issues/1972) -* UI - * Reworked the scrolling of the categories/feeds sidebar [#2117](https://github.com/FreshRSS/FreshRSS/pull/2117) - * Native styled scrollbars in Firefox 64+, Chrome. - * Show collapsed sidebar in the reader mode [#2169](https://github.com/FreshRSS/FreshRSS/issues/2169) - * New shortcuts to move to previous/next article without opening it [#1767](https://github.com/FreshRSS/FreshRSS/pull/1767) - * Fix regression from 1.12.0 preventing from closing an article [#2085](https://github.com/FreshRSS/FreshRSS/issues/2085) - * Improvements of the Swage theme [#2088](https://github.com/FreshRSS/FreshRSS/pull/2088), [#2094](https://github.com/FreshRSS/FreshRSS/pull/2094) - * Many style improvements [#2108](https://github.com/FreshRSS/FreshRSS/pull/2108), [#2115](https://github.com/FreshRSS/FreshRSS/issues/2115), - [#1620](https://github.com/FreshRSS/FreshRSS/issues/1620), [#2089](https://github.com/FreshRSS/FreshRSS/pull/2089), - [#2122](https://github.com/FreshRSS/FreshRSS/pull/2122), [#2161](https://github.com/FreshRSS/FreshRSS/pull/2161) -* Deployment - * Support for HTTP `X-Forwarded-Prefix` to ease the use of reverse proxies [#2191](https://github.com/FreshRSS/FreshRSS/pull/2191) - * Updated Docker + Træfik + Let’s Encrypt deployment guide [#2189](https://github.com/FreshRSS/FreshRSS/pull/2189) - * Docker image updated to Alpine 3.8.2 with PHP 7.2.13 and Apache 2.4.35 - * Fix `.dockerignore` [#2195](https://github.com/FreshRSS/FreshRSS/pull/2195) -* I18n - * Occitan [#2110](https://github.com/FreshRSS/FreshRSS/pull/2110) -* SimplePie - * Update to SimplePie 1.5.2 [#2136](https://github.com/FreshRSS/FreshRSS/pull/2136) - * Fix some sanitizing in authors / tags - * Strip embedded SVG images for now [#2135](https://github.com/FreshRSS/FreshRSS/pull/2135) -* Security - * Fix HTML injections reported by [Netsparker](https://www.netsparker.com) [#2121](https://github.com/FreshRSS/FreshRSS/issues/2121) -* Bug fixing - * Fix warning in `tempnam()` with PHP 7.1+ affecting ZIP export [#2134](https://github.com/FreshRSS/FreshRSS/pull/2134) - * Fix print for views with unfolded articles [#2130](https://github.com/FreshRSS/FreshRSS/issues/2130) - * Fix notifications in reader view [#1407](https://github.com/FreshRSS/FreshRSS/issues/1407) - * Fix sharing with Movim [#1781](https://github.com/FreshRSS/FreshRSS/issues/1781) -* Misc. - * Add username in configuration menu and exported files [#2133](https://github.com/FreshRSS/FreshRSS/pull/2133) - * New option to set the duration of the cookie session [#2137](https://github.com/FreshRSS/FreshRSS/pull/2137) - * Add [donation option via Liberapay](https://liberapay.com/FreshRSS/) [#1694](https://github.com/FreshRSS/FreshRSS/issues/1694) - - -## 2018-10-28 FreshRSS 1.12.0 - -* Features - * Ability to add *labels* (custom tags) to articles [#928](https://github.com/FreshRSS/FreshRSS/issues/928) - * Also available through Google Reader API (full support in News+, partial in FeedMe, EasyRSS). No support in Fever API. - * Handle article tags containing spaces, as well as comma-separated tags [#2023](https://github.com/FreshRSS/FreshRSS/pull/2023) - * Handle authors containing spaces, as well as comma or semi-colon separated authors [#2025](https://github.com/FreshRSS/FreshRSS/pull/2025) - * Searches by tag, author, etc. accept Unicode characters [#2025](https://github.com/FreshRSS/FreshRSS/pull/2025) - * New option to disable cache for feeds with invalid HTTP caching [#2052](https://github.com/FreshRSS/FreshRSS/pull/2052) -* UI - * New theme *Swage* [#2069](https://github.com/FreshRSS/FreshRSS/pull/2069) - * Click on authors to initiate a search by author [#2025](https://github.com/FreshRSS/FreshRSS/pull/2025) - * Fix CSS for button alignments in older Chrome versions [#2020](https://github.com/FreshRSS/FreshRSS/pull/2020) - * Updated to jQuery 3.3.1 [#2021](https://github.com/FreshRSS/FreshRSS/pull/2021) - * Updated to bcrypt.js 2.4.4 [#2022](https://github.com/FreshRSS/FreshRSS/pull/2022) -* Security - * Improved flow for password change (avoid error 403) [#2056](https://github.com/FreshRSS/FreshRSS/issues/2056) - * Allow dot `.` in username (best to avoid, though) [#2061](https://github.com/FreshRSS/FreshRSS/issues/2061) -* Performance - * Remove some counterproductive preload / prefetch rules [#2040](https://github.com/FreshRSS/FreshRSS/pull/2040) - * Improved fast flush (earlier transfer, fetching of resources, and rendering) [#2045](https://github.com/FreshRSS/FreshRSS/pull/2045) - * Only available for Apache running PHP as module (not for NGINX, or PHP as CGI / FPM) because we want to keep compression -* Deployment - * Fix Docker bug with some cron values [#2032](https://github.com/FreshRSS/FreshRSS/pull/2032) - * Perform `git clean -f -d -f` (removes unknown files and folders) before git auto-update method [#2036](https://github.com/FreshRSS/FreshRSS/pull/2036) - * Docker image updated to Alpine 3.8.1 with PHP 7.2.8 and Apache 2.4.34 -* Bug fixing - * Make article GUIDs case-sensitive also with MySQL [#2077](https://github.com/FreshRSS/FreshRSS/issues/2077) - * Ask confirmation for important configuration actions [#2048](https://github.com/FreshRSS/FreshRSS/pull/2048) - * Fix database size in the Web UI for users about to be deleted [#2047](https://github.com/FreshRSS/FreshRSS/pull/2047) - * Fix actualize bug after install [#2044](https://github.com/FreshRSS/FreshRSS/pull/2044) - * Fix manual / Web actualize for which the final commit could be done too early [#2081](https://github.com/FreshRSS/FreshRSS/pull/2081) - * Fix regression from version 1.11.2, which might have wrongly believed that the server address was private [#2084](https://github.com/FreshRSS/FreshRSS/pull/2084) - * Please check in `data/config.php` that you have `'pubsubhubbub_enabled' => true,` if your server has a public address -* Extensions - * Update built-in extension to again fix Tumblr feeds from European Union due to GDPR [#2053](https://github.com/FreshRSS/FreshRSS/pull/2053) -* I18n - * Fix missing German translations, e.g. for *Sharing with Known* [#2059](https://github.com/FreshRSS/FreshRSS/pull/2059) -* Misc. - * Better port detection behind a proxy [#2031](https://github.com/FreshRSS/FreshRSS/issues/2031) - - -## 2018-09-09 FreshRSS 1.11.2 - -* Features - * New menu to mark selected articles (view) as unread [#1966](https://github.com/FreshRSS/FreshRSS/issues/1966) - * Share with LinkedIn [#1960](https://github.com/FreshRSS/FreshRSS/pull/1960) -* Deployment - * Update Docker image to Alpine 3.8 with PHP 7.2 [#1956](https://github.com/FreshRSS/FreshRSS/pull/1956) -* Bug fixing - * Fix bugs when searching with special characters (e.g. preventing marking as read) [#1944](https://github.com/FreshRSS/FreshRSS/issues/1944) - * Avoid cutting in the middle of a multi-byte Unicode character [#1996](https://github.com/FreshRSS/FreshRSS/pull/1996) - * Fix username check in API to allow underscores [#1955](https://github.com/FreshRSS/FreshRSS/issues/1955) - * Fix Fever API to allow 32-bit architectures [#1962](https://github.com/FreshRSS/FreshRSS/issues/1962) - * Fix CSS font bug for *Origine-compact* theme [#1990](https://github.com/FreshRSS/FreshRSS/issues/1990) - * Fix last user activity for SQLite and PostgreSQL [#2008](https://github.com/FreshRSS/FreshRSS/pull/2008) - * Fix article counts with SQLite [#2009](https://github.com/FreshRSS/FreshRSS/pull/2009) - * Fix some automatic URL generation cases [#1946](https://github.com/FreshRSS/FreshRSS/issues/1946) -* Security - * Avoid feed credentials in logs [#1949](https://github.com/FreshRSS/FreshRSS/pull/1949) -* UI - * Improved mark-as-read the bottom articles during scrolling [#1973](https://github.com/FreshRSS/FreshRSS/issues/1973) - * Show all authors for articles with multiple authors [#1968](https://github.com/FreshRSS/FreshRSS/issues/1968) -* I18n - * Updated Korean [#1985](https://github.com/FreshRSS/FreshRSS/pull/1985) -* Mics. - * Auto-login after self user creation [#1928](https://github.com/FreshRSS/FreshRSS/issues/1928) - * Better test if server has public address [#2010](https://github.com/FreshRSS/FreshRSS/pull/2010) - * Allow `-` in database name at install time [#2005](https://github.com/FreshRSS/FreshRSS/pull/2005) - - -## 2018-06-16 FreshRSS 1.11.1 - -* Features - * Better support of `media:` tags such as thumbnails and descriptions (e.g. for YouTube) [#944](https://github.com/FreshRSS/FreshRSS/issues/944) -* Extensions - * New extension mechanism allowing changing HTTP headers and other SimplePie parameters [#1924](https://github.com/FreshRSS/FreshRSS/pull/1924) - * Built-in extension to fix Tumblr feeds from European Union due to GDPR [#1894](https://github.com/FreshRSS/FreshRSS/issues/1894) -* Bug fixing - * Fix bug in case of bad i18n in extensions [#1797](https://github.com/FreshRSS/FreshRSS/issues/1797) - * Fix extension callback for updated articles and PubSubHubbub [#1926](https://github.com/FreshRSS/FreshRSS/issues/1926) - * Fix regression in fetching full articles content [#1917](https://github.com/FreshRSS/FreshRSS/issues/1917) - * Fix several bugs in the new Fever API [#1930](https://github.com/FreshRSS/FreshRSS/issues/1930) - * Updated sharing to Mastodon [#1904](https://github.com/FreshRSS/FreshRSS/issues/1904) - - -## 2018-06-03 FreshRSS 1.11.0 - -* API - * Add support for Fever compatible API, enabling more clients [#1406](https://github.com/FreshRSS/FreshRSS/pull/1406) - * iOS: [Fiery Feeds](https://apps.apple.com/app/fiery-feeds-rss-reader/id1158763303), [Unread](https://apps.apple.com/app/unread-rss-reader/id1252376153) - * MacOS: [Readkit](https://apps.apple.com/app/readkit/id588726889) -* Features - * Several per-feed options (implemented in JSON) [#1838](https://github.com/FreshRSS/FreshRSS/pull/1838) - * Mark updated articles as read [#891](https://github.com/FreshRSS/FreshRSS/issues/891) - * Mark as read upon reception [#1702](https://github.com/FreshRSS/FreshRSS/issues/1702) - * Only for admin user [#1905](https://github.com/FreshRSS/FreshRSS/pull/1905) - * Feed cURL timeout - * Ignore SSL (unsafe) [#1811](https://github.com/FreshRSS/FreshRSS/issues/1811) - * Light Boolean search implementation [#879](https://github.com/FreshRSS/FreshRSS/issues/879) - * All parts are implicitly `AND` (which must not be written), except if `OR` is stated. - * No use of parentheses. Support for quotes to disable the Boolean search, like `"This or that"`. - * Example: `Hello intitle:World OR date:P1D example OR author:Else intitle:"This or that"` - * Share with Pocket [#1884](https://github.com/FreshRSS/FreshRSS/issues/1884) -* Deployment - * Includes an optional cron daemon in Docker to refresh feeds automatically [#1869](https://github.com/FreshRSS/FreshRSS/issues/1869) - * Docker Compose example [#1882](https://github.com/FreshRSS/FreshRSS/pull/1882) -* Bug fixing - * Fix Docker bug affecting Apache `CustomLog` (unwanted local copy of access logs), `ErrorLog`, `Listen` (IPv6 bug) [#1873](https://github.com/FreshRSS/FreshRSS/pull/1873) - * Fix muted feeds that were not actually muted [#1844](https://github.com/FreshRSS/FreshRSS/issues/1844) - * Fix null exception in shares, showing only the first article [#1824](https://github.com/FreshRSS/FreshRSS/issues/1824) - * Fix error during import [#1890](https://github.com/FreshRSS/FreshRSS/issues/1890) - * Fix additional automatic sequence bug with PostgreSQL [#1907](https://github.com/FreshRSS/FreshRSS/pull/1907) - * Fix errors in case of empty/wrong username when updating user settings [#1857](https://github.com/FreshRSS/FreshRSS/pull/1857) - * Fixes in subscription menu [#1858](https://github.com/FreshRSS/FreshRSS/pull/1858) - * Fix allowing Unix sockets for MySQL and PostgreSQL [#1888](https://github.com/FreshRSS/FreshRSS/issues/1888) - * Fix `create-user` CLI option `no_default_feeds` [#1900](https://github.com/FreshRSS/FreshRSS/pull/1900) -* SimplePie - * Work-around for feeds with invalid non-unique GUIDs [#1887](https://github.com/FreshRSS/FreshRSS/pull/1887) - * Fix for Atom feeds using a namespace for type [#1892](https://github.com/FreshRSS/FreshRSS/issues/1892) - * Remove some warnings during parsing attempts of some bad feeds [#1909](https://github.com/FreshRSS/FreshRSS/pull/1909) -* Security - * Strip HTTP credentials from HTTP Referer in SimplePie [#1891](https://github.com/FreshRSS/FreshRSS/pull/1891) - * Use `autocomplete="new-password"` to prevent form autocomplete in user management pages (fix bug with e.g. Firefox) [#1877](https://github.com/FreshRSS/FreshRSS/pull/1877) -* UI - * Add tooltips on user queries [#1823](https://github.com/FreshRSS/FreshRSS/pull/1823) -* I18n - * Improve i18n tools [#1829](https://github.com/FreshRSS/FreshRSS/pull/1829) - * Updated German [#1856](https://github.com/FreshRSS/FreshRSS/pull/1856) - * Updated Dutch [#1903](https://github.com/FreshRSS/FreshRSS/pull/1903) -* Misc. - * Use cURL for fetching full articles content [#1870](https://github.com/FreshRSS/FreshRSS/issues/1870) - * Add error log information when SQLite has not enough temp space [#1816](https://github.com/FreshRSS/FreshRSS/issues/1816) - * Allow extension dir to be a symlink [#1911](https://github.com/FreshRSS/FreshRSS/pull/1911) - - -## 2018-03-09 FreshRSS 1.10.2 (Docker only) - -* Bug fixing - * Fix Docker image for OPML import [#1819](https://github.com/FreshRSS/FreshRSS/pull/1819) - * Fix Docker image for CSS selectors [#1821](https://github.com/FreshRSS/FreshRSS/issues/1821) - * Fix Docker other missing PHP extensions [#1822](https://github.com/FreshRSS/FreshRSS/pull/1822) - - -## 2018-03-04 FreshRSS 1.10.1 - -* Deployment - * New Docker image, smaller (based on Alpine Linux) and newer (with PHP 7.1) [#1813](https://github.com/FreshRSS/FreshRSS/pull/1813) - * with [automated build](https://hub.docker.com/r/freshrss/freshrss/) for x86-64 (AMD64) architectures -* CLI - * New command `./cli/prepare.php` to make the needed sub-directories of the `./data/` directory [#1813](https://github.com/FreshRSS/FreshRSS/pull/1813) -* Bug fixing - * Fix API bug for EasyRSS [#1799](https://github.com/FreshRSS/FreshRSS/issues/1799) - * Fix login bug when using double authentication (HTTP + Web form) [#1807](https://github.com/FreshRSS/FreshRSS/issues/1807) - * Fix database upgrade for FreshRSS versions older than 1.1.1 [#1803](https://github.com/FreshRSS/FreshRSS/issues/1803) - * Fix cases of double port in FreshRSS public URL [#1815](https://github.com/FreshRSS/FreshRSS/pull/1815) -* UI - * Add tooltips on share configuration buttons [#1805](https://github.com/FreshRSS/FreshRSS/pull/1805) -* Misc. - * Move `./data/shares.php` to `./app/shares.php` to facilitate updates [#1812](https://github.com/FreshRSS/FreshRSS/pull/1812) - * Show article author email when there is no author name [#1801](https://github.com/FreshRSS/FreshRSS/pull/1801) - * Improve translation tools [#1808](https://github.com/FreshRSS/FreshRSS/pull/1808) - - -## 2018-02-24 FreshRSS 1.10.0 - -* API - * Add compatibility with [FeedMe](https://play.google.com/store/apps/details?id=com.seazon.feedme) 3.5.3+ on Android [#1774](https://github.com/FreshRSS/FreshRSS/pull/1774) -* Features - * Ability to pause feeds, and to hide them from categories [#1750](https://github.com/FreshRSS/FreshRSS/pull/1750) - * Ability for the admin to reset a user’s password [#960](https://github.com/FreshRSS/FreshRSS/issues/960) -* Security - * Allow HTTP Auth login with `REDIRECT_REMOTE_USER` when using Apache internal redirect [#1772](https://github.com/FreshRSS/FreshRSS/pull/1772) -* UI - * New icons for marking as favourite and marking as read in the Reading View [#603](https://github.com/FreshRSS/FreshRSS/issues/603) - * Add shortcuts to switch views [#1755](https://github.com/FreshRSS/FreshRSS/pull/1755) -* Bug fixing - * Fix login bug when HTTP `REMOTE_USER` changes (used by YunoHost) [#1756](https://github.com/FreshRSS/FreshRSS/pull/1756) - * Fix warning in PHP 7.2 [#1739](https://github.com/FreshRSS/FreshRSS/pull/1739) -* Extensions - * Allow extensions to define their own reading view [#1714](https://github.com/FreshRSS/FreshRSS/pull/1714) -* I18n - * Updated Chinese [#1769](https://github.com/FreshRSS/FreshRSS/pull/1769) - * Updated Dutch [#1792](https://github.com/FreshRSS/FreshRSS/pull/1792) - * Updated Korean [#1776](https://github.com/FreshRSS/FreshRSS/pull/1776) -* Misc. - * More sites in `force-https.default.txt` [#1745](https://github.com/FreshRSS/FreshRSS/pull/1745) - * Trim URLs when adding new feeds [#1778](https://github.com/FreshRSS/FreshRSS/pull/1778) - - -## 2017-12-17 FreshRSS 1.9.0 - -* Features - * Share with Mastodon [#1521](https://github.com/FreshRSS/FreshRSS/issues/1521) -* UI - * Add more Unicode glyphs in the Open Sans font [#1032](https://github.com/FreshRSS/FreshRSS/pull/1032) - * Show URL to add subscriptions from third-party tools [#1247](https://github.com/FreshRSS/FreshRSS/issues/1247) - * Improved message when checking for new versions [#1586](https://github.com/FreshRSS/FreshRSS/issues/1586) -* SimplePie - * Remove "SimplePie" name from HTTP User-Agent string [#1656](https://github.com/FreshRSS/FreshRSS/pull/1656) -* Bug fixing - * Work-around for PHP 5.6.0- `CURLOPT_FOLLOWLOCATION` `open_basedir` bug in favicons and PubSubHubbub [#1655](https://github.com/FreshRSS/FreshRSS/issues/1655) - * Fix PDO PostgreSQL detection [#1690](https://github.com/FreshRSS/FreshRSS/issues/1690) - * Fix punycode warning in PHP 7.2 [#1699](https://github.com/FreshRSS/FreshRSS/issues/1699) - * Fix crash when adding a new category while adding a new feed [#1731](https://github.com/FreshRSS/FreshRSS/pull/1731) - * Fix ExtensionManager exception handling [#1724](https://github.com/FreshRSS/FreshRSS/pull/1724) -* CLI - * New command `./cli/db-optimize.php` for database optimisation [#1583](https://github.com/FreshRSS/FreshRSS/issues/1583) - * Check PHP requirements before running `actualize_script.php` (cron for refreshing feeds) [#1711](https://github.com/FreshRSS/FreshRSS/pull/1711) -* SQL - * Perform `VACUUM` on SQLite and PostgreSQL databases when optimisation is requested [#918](https://github.com/FreshRSS/FreshRSS/issues/918) -* API - * Breaking change / compatibility fix (EasyRSS): Provide `link` to articles without HTML-encoding [#1683](https://github.com/FreshRSS/FreshRSS/issues/1683) -* Extensions - * Breaking change: uppercase `./Controllers/` directory [#1729](https://github.com/FreshRSS/FreshRSS/pull/1729) - * Show existing extensions in admin panel [#1708](https://github.com/FreshRSS/FreshRSS/pull/1708) - * New function `$entry->_hash($hex)` for extensions that change the content of entries [#1707](https://github.com/FreshRSS/FreshRSS/pull/1707) -* I18n - * Hebrew [#1716](https://github.com/FreshRSS/FreshRSS/pull/1716) - * Improved German [#1698](https://github.com/FreshRSS/FreshRSS/pull/1698) -* Misc. - * Customisable `constants.local.php` [#1725](https://github.com/FreshRSS/FreshRSS/pull/1725) - * Basic mechanism to limit the size of the logs [#1712](https://github.com/FreshRSS/FreshRSS/pull/1712) - * Translation validation tool [#1653](https://github.com/FreshRSS/FreshRSS/pull/1653) - * Translation manipulation tool [#1658](https://github.com/FreshRSS/FreshRSS/pull/1658) - * Improved documentation [#1697](https://github.com/FreshRSS/FreshRSS/pull/1697), [#1704](https://github.com/FreshRSS/FreshRSS/pull/1704) - * New `.editorconfig` file [#1732](https://github.com/FreshRSS/FreshRSS/pull/1732) - - -## 2017-10-01 FreshRSS 1.8.0 - -* Compatibility - * Minimal PHP version increased to PHP 5.3.8+ to fix sanitize bug [#1604](https://github.com/FreshRSS/FreshRSS/issues/1604) - * Add support for PHP 7.1 in the API [#1584](https://github.com/FreshRSS/FreshRSS/issues/1584), [#1594](https://github.com/FreshRSS/FreshRSS/pull/1594) -* UI - * New page for subscription tools [#1534](https://github.com/FreshRSS/FreshRSS/issues/1354) - * Adjustments to the padding of the tree of categories and feeds [1589](https://github.com/FreshRSS/FreshRSS/pull/1589) - * Fix feed column position after lazy-loading images [#1616](https://github.com/FreshRSS/FreshRSS/pull/1616) - * Force UI controls for HTML5 video and audio [#1642](https://github.com/FreshRSS/FreshRSS/pull/1642) - * Fix share menu on small screens [#1645](https://github.com/FreshRSS/FreshRSS/pull/1645) - * Go back to previous view when collapsing article [#1177](https://github.com/FreshRSS/FreshRSS/issues/1177) -* CLI - * New command `./cli/update-user.php` to update user settings [#1600](https://github.com/FreshRSS/FreshRSS/issues/1600) -* I18n - * Korean [#1578](https://github.com/FreshRSS/FreshRSS/pull/1578) - * Portuguese (Brazilian) [#1648](https://github.com/FreshRSS/FreshRSS/pull/1648) - * Fix month abbreviations [#1560](https://github.com/FreshRSS/FreshRSS/issues/1560) -* Bug fixing - * Fix API compatibility bug between PostgreSQL and EasyRSS [#1603](https://github.com/FreshRSS/FreshRSS/pull/1603) - * Fix PostgreSQL error when adding entries with duplicated GUID [#1610](https://github.com/FreshRSS/FreshRSS/issues/1610), [#1614](https://github.com/FreshRSS/FreshRSS/issues/1614) - * Fix for RSS feeds containing HTML in author field [#1590](https://github.com/FreshRSS/FreshRSS/issues/1590) - * Fix logout issue in global view due to CSRF [#1591](https://github.com/FreshRSS/FreshRSS/issues/1591) -* Misc. - * Travis continuous integration [#1619](https://github.com/FreshRSS/FreshRSS/pull/1619) - * Allow longer database usernames [#1597](https://github.com/FreshRSS/FreshRSS/issues/1597) - - -## 2017-06-03 FreshRSS 1.7.0 - -* Features - * Deferred insertion of new articles, for better chronological order [#530](https://github.com/FreshRSS/FreshRSS/issues/530) - * Better search: - * Possibility to use multiple `intitle:`, `inurl:`, `author:` [#1478](https://github.com/FreshRSS/FreshRSS/pull/1478) - * Negative searches with `!` or `-` [#1381](https://github.com/FreshRSS/FreshRSS/issues/1381) - * Examples: `!intitle:unwanted`, `-intitle:unwanted`, `-inurl:unwanted`, `-author:unwanted`, `-#unwanted`, `-unwanted` - * Allow double-quotes, such as `author:"some name"`, in addition to single-quotes such as `author:'some name'` [#1478](https://github.com/FreshRSS/FreshRSS/pull/1478) - * Multi-user tokens (to access RSS outputs of any user) [#1390](https://github.com/FreshRSS/FreshRSS/issues/1390) -* Compatibility - * Add support for PHP 7.1 [#1471](https://github.com/FreshRSS/FreshRSS/issues/1471) - * PostgreSQL is not experimental anymore [#1476](https://github.com/FreshRSS/FreshRSS/pull/1476) -* Bug fixing - * Fix PubSubHubbub bugs when deleting users, and improved behaviour when removing feeds [#1495](https://github.com/FreshRSS/FreshRSS/pull/1495) - * Fix SQL uniqueness bug with PostgreSQL [#1476](https://github.com/FreshRSS/FreshRSS/pull/1476) - * (Require manual update for existing installations) - * Do not require PHP extension `fileinfo` for favicons [#1461](https://github.com/FreshRSS/FreshRSS/issues/1461) - * Fix UI lowest subscription popup hidden [#1479](https://github.com/FreshRSS/FreshRSS/issues/1479) - * Fix update system via ZIP archive [#1498](https://github.com/FreshRSS/FreshRSS/pull/1498) - * Work around for IE / Edge bug in username pattern in version 1.6.3 [#1511](https://github.com/FreshRSS/FreshRSS/issues/1511) - * Fix *mark as read* articles when adding a new feed [#1535](https://github.com/FreshRSS/FreshRSS/issues/1535) - * Change load order of CSS and JS to help CustomCSS and CustomJS extensions [Extensions#13](https://github.com/FreshRSS/Extensions/issues/13), [#1547](https://github.com/FreshRSS/FreshRSS/pull/1547) -* UI - * New option for not closing the article when clicking outside its area [#1539](https://github.com/FreshRSS/FreshRSS/pull/1539) - * Add shortcut in reader view to open the original page [#1564](https://github.com/FreshRSS/FreshRSS/pull/1564) - * Download icon 💾 for other MIME types (e.g. `application/*`) [#1522](https://github.com/FreshRSS/FreshRSS/pull/1522) -* I18n - * Simplified Chinese [#1541](https://github.com/FreshRSS/FreshRSS/pull/1541) - * Improve English [#1465](https://github.com/FreshRSS/FreshRSS/pull/1465) - * Improve Dutch [#1559](https://github.com/FreshRSS/FreshRSS/pull/1559) - * Added Spanish language [#1631](https://github.com/FreshRSS/FreshRSS/pull/1631/) -* Security - * Do not require write access to check availability of new versions [#1450](https://github.com/FreshRSS/FreshRSS/issues/1450) -* Misc. - * Move [documentation](./docs/) into FreshRSS code [#1510](https://github.com/FreshRSS/FreshRSS/pull/1510) - * Moved `./data/force-https.default.txt` to `./force-https.default.txt`, - `./data/config.default.php` to `./config.default.php`, - and `./data/users/_/config.default.php` to `./config-user.default.php` [#1531](https://github.com/FreshRSS/FreshRSS/issues/1531) - * Fall back to article URL when the article GUID is empty [#1482](https://github.com/FreshRSS/FreshRSS/issues/1482) - * Rewritten Favicon library using cURL [#1504](https://github.com/FreshRSS/FreshRSS/pull/1504) - * Fix SimplePie option to disable syslog [#1528](https://github.com/FreshRSS/FreshRSS/pull/1528) - - -## 2017-03-11 FreshRSS 1.6.3 - -* Features - * New option `disable_update` (also from CLI) to hide the system to update to new FreshRSS versions [#1436](https://github.com/FreshRSS/FreshRSS/pull/1436) - * Share with Known [#1420](https://github.com/FreshRSS/FreshRSS/pull/1420) - * Share with GNU social [#1422](https://github.com/FreshRSS/FreshRSS/issues/1422) -* UI - * New theme *Origine-compact* [#1388](https://github.com/FreshRSS/FreshRSS/pull/1388) - * Chrome parity with Firefox: auto-focus tab when clicking on notification [#1409](https://github.com/FreshRSS/FreshRSS/pull/1409) -* CLI - * New command `./cli/reconfigure.php` to update an existing installation [#1439](https://github.com/FreshRSS/FreshRSS/pull/1439) - * Many CLI improvements [#1447](https://github.com/FreshRSS/FreshRSS/pull/1447) - * More information (number of feeds, articles, etc.) in `./cli/user-info.php` - * Better idempotency of `./cli/do-install.php` and language parameter [#1449](https://github.com/FreshRSS/FreshRSS/issues/1449) -* Bug fixing - * Fix several CLI issues [#1445](https://github.com/FreshRSS/FreshRSS/issues/1445) - * Fix CLI install bugs with SQLite [#1443](https://github.com/FreshRSS/FreshRSS/issues/1443), [#1448](https://github.com/FreshRSS/FreshRSS/issues/1448) - * Allow empty strings in CLI do-install [#1435](https://github.com/FreshRSS/FreshRSS/pull/1435) - * Fix PostgreSQL bugs with API and feed modifications [#1417](https://github.com/FreshRSS/FreshRSS/pull/1417) - * Do not mark as read in anonymous mode [#1431](https://github.com/FreshRSS/FreshRSS/issues/1431) - * Fix Favicons warnings [#59dfc64](https://github.com/FreshRSS/FreshRSS/commit/59dfc64512372eaba7609d84500d943bb7274399), [#1452](https://github.com/FreshRSS/FreshRSS/pull/1452) -* Security - * Sanitize feed Web site URL [#1434](https://github.com/FreshRSS/FreshRSS/issues/1434) - * No version number for anonymous users [#1404](https://github.com/FreshRSS/FreshRSS/issues/1404) -* Misc. - * Relaxed requirements for username to `/^[0-9a-zA-Z]|[0-9a-zA-Z_]{2,38}$/` [#1423](https://github.com/FreshRSS/FreshRSS/pull/1423) - - -## 2016-12-26 FreshRSS 1.6.2 - -* Features - * Add git compatibility in Web update system [#1357](https://github.com/FreshRSS/FreshRSS/issues/1357) - * Requires that the initial installation is done with git - * New option `limits.cookie_duration` in `data/config.php` to set the login cookie duration [#1384](https://github.com/FreshRSS/FreshRSS/issues/1384) -* SQL - * More robust export function in the case of large datasets [#1372](https://github.com/FreshRSS/FreshRSS/issues/1372) -* CLI - * New command `./cli/user-info.php` to get some user information [#1345](https://github.com/FreshRSS/FreshRSS/issues/1345) -* Bug fixing - * Fix bug in estimating last user activity [#1358](https://github.com/FreshRSS/FreshRSS/issues/1358) - * PostgreSQL: fix bug when updating cached values [#1360](https://github.com/FreshRSS/FreshRSS/issues/1360) - * Fix bug in confirmation before marking as read [#1348](https://github.com/FreshRSS/FreshRSS/issues/1348) - * Fix small bugs in installer [#1363](https://github.com/FreshRSS/FreshRSS/pull/1363) - * Allow slash in database hostname, when using sockets [#1364](https://github.com/FreshRSS/FreshRSS/issues/1364) - * Add curl user-agent to retrieve favicons [#1380](https://github.com/FreshRSS/FreshRSS/issues/1380) - * Send login cookie only once [#1398](https://github.com/FreshRSS/FreshRSS/pull/1398) - * Add a check for PHP extension fileinfo [#1375](https://github.com/FreshRSS/FreshRSS/issues/1375) - - -## 2016-11-02 FreshRSS 1.6.1 - -* Bug fixing - * Fix regression introduced in 1.6.0 when refreshing articles with *Mark updated articles as unread* [#1349](https://github.com/FreshRSS/FreshRSS/issues/1349) - - -## 2016-10-30 FreshRSS 1.6.0 - -* CLI - * New Command-Line Interface (CLI) [#1095](https://github.com/FreshRSS/FreshRSS/issues/1095) - * Install, add/delete users, actualize, import/export. See [CLI documentation](./cli/README.md). -* API - * Support for editing feeds and categories from client applications [#1254](https://github.com/FreshRSS/FreshRSS/issues/1254) -* Compatibility: - * Support for PostgreSQL [#416](https://github.com/FreshRSS/FreshRSS/issues/416) - * New client supporting FreshRSS on Linux: FeedReader 2.0+ [#1252](https://github.com/FreshRSS/FreshRSS/issues/1252) -* Features - * Rework the “mark as read during scroll” option, enabled by default for new users [#1258](https://github.com/FreshRSS/FreshRSS/issues/1258), [#1309](https://github.com/FreshRSS/FreshRSS/pull/1309) - * Including a *keep unread* function [#1327](https://github.com/FreshRSS/FreshRSS/pull/1327) - * In a multi-user context, take better advantage of other users’ refreshes [#1280](https://github.com/FreshRSS/FreshRSS/pull/1280) - * Better control of number of entries per page or RSS feed [#1249](https://github.com/FreshRSS/FreshRSS/issues/1249) - * Since X hours: `https://freshrss.example/i/?a=rss&hours=3` - * Explicit number: `https://freshrss.example/i/?a=rss&nb=10` - * Limited by `min_posts_per_rss` and `max_posts_per_rss` in user config - * Support custom ports `localhost:3306` for database servers [#1241](https://github.com/FreshRSS/FreshRSS/issues/1241) - * Add date to exported files [#1240](https://github.com/FreshRSS/FreshRSS/issues/1240) - * Auto-refresh favicons once or twice a month [#1181](https://github.com/FreshRSS/FreshRSS/issues/1181), [#1298](https://github.com/FreshRSS/FreshRSS/issues/1298) - * Cron updates will also refresh favicons every 2 weeks [#1306](https://github.com/FreshRSS/FreshRSS/pull/1306) -* Bug fixing - * Correction of bugs related to CSRF tokens introduced in version 1.5.0 [#1253](https://github.com/FreshRSS/FreshRSS/issues/1253), [44f22ab](https://github.com/FreshRSS/FreshRSS/pull/1261/commits/d9bf9b2c6f0b2cc9dec3b638841b7e3040dcf46f) - * Fix bug in Global view introduced in version 1.5.0 [#1269](https://github.com/FreshRSS/FreshRSS/pull/1269) - * Fix sharing bug [#1289](https://github.com/FreshRSS/FreshRSS/issues/1289) - * Fix bug in auto-loading more articles after marking an article as un-read [#1318](https://github.com/FreshRSS/FreshRSS/issues/1318) - * Fix bug during import of favourites [#1315](https://github.com/FreshRSS/FreshRSS/pull/1315), [#1312](https://github.com/FreshRSS/FreshRSS/issues/1312) - * Fix bug not respecting language option for new users [#1273](https://github.com/FreshRSS/FreshRSS/issues/1273) - * Bug in example of URL for FreshRSS RSS output with token [#1274](https://github.com/FreshRSS/FreshRSS/issues/1274) -* Security - * Prevent `<a target="_blank">` attacks with `window.opener` [#1245](https://github.com/FreshRSS/FreshRSS/issues/1245) - * Updated gitignore rules to keep user directories during a `git clean -f -d` [#1307](https://github.com/FreshRSS/FreshRSS/pull/1307) -* Extensions - * Allow extensions for default account in anonymous mode [#1288](https://github.com/FreshRSS/FreshRSS/pull/1288) - * Trigger a `freshrss:load-more` JavaScript event to help extensions [#1278](https://github.com/FreshRSS/FreshRSS/issues/1278) -* SQL - * Slightly modified several SQL requests (MySQL, SQLite) to simplify support of PostgreSQL [#1195](https://github.com/FreshRSS/FreshRSS/pull/1195) - * Increase performances by removing a superfluous category request [#1316](https://github.com/FreshRSS/FreshRSS/pull/1316) -* I18n - * Fix some messages during installation [#1339](https://github.com/FreshRSS/FreshRSS/pull/1339) -* UI - * Fix CSS line-height bug with `<sup>` in dates (English, Russian, Turkish) [#1340](https://github.com/FreshRSS/FreshRSS/pull/1340) - * Disable *Mark all as read* before confirmation script is loaded [#1342](https://github.com/FreshRSS/FreshRSS/issues/1342) - * Download icon 💾 for podcasts [#1236](https://github.com/FreshRSS/FreshRSS/issues/1236) -* SimplePie - * Fix auto-discovery of RSS feeds in Web pages served as `text/xml` [#1264](https://github.com/FreshRSS/FreshRSS/issues/1264) -* Misc. - * Removed *resource-priorities* attributes (`defer`, `lazyload`), deprecated by W3C [#1222](https://github.com/FreshRSS/FreshRSS/pull/1222) - - -## 2016-08-29 FreshRSS 1.5.0 - -* Compatibility - * Require at least MySQL 5.5.3+ [#1153](https://github.com/FreshRSS/FreshRSS/issues/1153) - * Require at least PHP 5.3.3+ [#1183](https://github.com/FreshRSS/FreshRSS/pull/1183) - * Restore compatibility with PHP 5.3.3 [#1208](https://github.com/FreshRSS/FreshRSS/issues/1208) - * Restore compatibility with Microsoft Internet Explorer 11 / Edge [#772](https://github.com/FreshRSS/FreshRSS/issues/772) -* Features - * Mark a search as read [#608](https://github.com/FreshRSS/FreshRSS/issues/608) - * Support for full Unicode such as emoji 💕 in MySQL with utf8mb4 [#1153](https://github.com/FreshRSS/FreshRSS/issues/1153) - * FreshRSS will automatically migrate MySQL tables to utf8mb4 the first time it is needed. -* Security - * Remove Mozilla Persona login (the service closes on 2016-11-30) [#1052](https://github.com/FreshRSS/FreshRSS/issues/1052) - * Use Referrer Policy `<meta name="referrer" content="never" />` for anonymizing HTTP Referer [#955](https://github.com/FreshRSS/FreshRSS/issues/955) - * Implement CSRF tokens for POST security [#570](https://github.com/FreshRSS/FreshRSS/issues/570) -* Bug fixing - * Fixed scroll in log view [#1178](https://github.com/FreshRSS/FreshRSS/issues/1178) - * Fixed JavaScript bug when articles were not always marked as read [#1123](https://github.com/FreshRSS/FreshRSS/issues/1123) - * Fixed Apache Etag issue that prevented caching [#1199](https://github.com/FreshRSS/FreshRSS/pull/1199) - * Fixed OPML import of categories [#1202](https://github.com/FreshRSS/FreshRSS/issues/1202) - * Fixed PubSubHubbub callback address bug on some configurations [1229](https://github.com/FreshRSS/FreshRSS/pull/1229) -* UI - * Use sticky category column [#1172](https://github.com/FreshRSS/FreshRSS/pull/1172) - * Updated to jQuery 3.1.0 and several JavaScript fixes (e.g. drag & drop) [#1197](https://github.com/FreshRSS/FreshRSS/pull/1197) -* API - * Add API link in FreshRSS profile settings to ease set-up [#1186](https://github.com/FreshRSS/FreshRSS/pull/1186) -* Misc. - * Work-around for SuperFeeder time-outs during PubSubHubbub registration [#1184](https://github.com/FreshRSS/FreshRSS/pull/1184) - * JSHint of JavaScript code and better initialisation [#1196](https://github.com/FreshRSS/FreshRSS/pull/1196) - * Updated credits, and images in README [#1201](https://github.com/FreshRSS/FreshRSS/issues/1201) - - -## 2016-07-23 FreshRSS 1.4.0 - -## 2016-06-12 FreshRSS 1.3.2-beta - -* Compatibility - * Require at least PHP 5.3+ (drop PHP 5.2) [#1133](https://github.com/FreshRSS/FreshRSS/pull/1133) -* Features - * Support for MySQL 5.7+ (e.g. Ubuntu 16.04 LTS) [#1132](https://github.com/FreshRSS/FreshRSS/pull/1132) - * Speed optimization for HTTP/2 [#1133](https://github.com/FreshRSS/FreshRSS/pull/1133) - * API support for REDIRECT_* HTTP headers (fcgi) [#1128](https://github.com/FreshRSS/FreshRSS/issues/1128) -* SimplePie - * Support for feeds with invalid whitespace [#1142](https://github.com/FreshRSS/FreshRSS/issues/1142) -* Bug fixing - * Fix bug when adding feeds with passwords [#1137](https://github.com/FreshRSS/FreshRSS/pull/1137) - * Fix validator link [#1147](https://github.com/FreshRSS/FreshRSS/pull/1147) - * Fix Favicon small bugs [#1135](https://github.com/FreshRSS/FreshRSS/pull/1135) -* Security - * CSP compatibility for homepage [#1120](https://github.com/FreshRSS/FreshRSS/pull/1120) -* I18n - * Draft of Russian [#1085](https://github.com/FreshRSS/FreshRSS/pull/1085) -* Misc. - * Change default feed timeout to 15 seconds [#1146](https://github.com/FreshRSS/FreshRSS/pull/1146) - * Updated Wallabag v2 [#1150](https://github.com/FreshRSS/FreshRSS/pull/1150) - - -## 2016-03-11 FreshRSS 1.3.1-beta - -* Security - * Added CSP `Content-Security-Policy: default-src 'self'; child-src *; frame-src *; img-src * data:; media-src *` [#1075](https://github.com/FreshRSS/FreshRSS/issues/1075), [#1114](https://github.com/FreshRSS/FreshRSS/issues/1114) - * Added `X-Content-Type-Options: nosniff` [#1116](https://github.com/FreshRSS/FreshRSS/pull/1116) - * Cookie with `Secure` tag when used over HTTPS [#1117](https://github.com/FreshRSS/FreshRSS/pull/1117) - * Limit API post input to 1MB [#1118](https://github.com/FreshRSS/FreshRSS/pull/1118) -* Features - * New list of domains for which to force HTTPS (for images, videos, iframes…) defined in `./data/force-https.default.txt` and `./data/force-https.txt` [#1083](https://github.com/FreshRSS/FreshRSS/issues/1083) - * In particular useful for privacy and to avoid mixed content errors, e.g. to see YouTube videos when FreshRSS is in HTTPS - * Add sharing with “Journal du Hacker” [#1056](https://github.com/FreshRSS/FreshRSS/pull/1056) -* UI - * Updated to jQuery 2.2.1 and changed code for auto-load on scroll [#1050](https://github.com/FreshRSS/FreshRSS/pull/1050), [#1091](https://github.com/FreshRSS/FreshRSS/pull/1091) -* I18n - * Turkish [#1073](https://github.com/FreshRSS/FreshRSS/issues/1073) -* Bug fixing - * Fixed OPML import title bug [#1048](https://github.com/FreshRSS/FreshRSS/issues/1048) - * Fixed upgrade bug with SQLite when articles were marked as unread [#1049](https://github.com/FreshRSS/FreshRSS/issues/1049) - * Fixed error when deleting feeds from statistics page [#1047](https://github.com/FreshRSS/FreshRSS/issues/1047) - * Fixed several small bugs in global and reader view [#1050](https://github.com/FreshRSS/FreshRSS/pull/1050) - * Fixed sharing bug with PHP7 [#1072](https://github.com/FreshRSS/FreshRSS/issues/1072) - * Fixed fall-back when php-json is not installed [#1092](https://github.com/FreshRSS/FreshRSS/issues/1092) -* API - * Possibility to show only read items [#1035](https://github.com/FreshRSS/FreshRSS/pull/1035) -* Misc. - * Filters `<img />` attributes `srcset` and `sizes` [#1077](https://github.com/FreshRSS/FreshRSS/issues/1077), [#1086](https://github.com/FreshRSS/FreshRSS/pull/1086) - * Implement PubSubHubbub unsubscribe responses [#1058](https://github.com/FreshRSS/FreshRSS/issues/1058) - * Restored some compatibility with PHP 5.2 [#1055](https://github.com/FreshRSS/FreshRSS/issues/1055) - * Check for extension php-xml during install [#1094](https://github.com/FreshRSS/FreshRSS/issues/1094) - * Updated the sharing with Movim [#1030](https://github.com/FreshRSS/FreshRSS/pull/1030) - - -## 2015-11-03 FreshRSS 1.2.0 / 1.3.0-beta - -* Features - * Share with Movim [#992](https://github.com/FreshRSS/FreshRSS/issues/992) - * New option to allow robots / search engines [#938](https://github.com/FreshRSS/FreshRSS/issues/938) -* Security - * Invalid logins now return HTTP 403, to be easier to catch (e.g. fail2ban) [#1015](https://github.com/FreshRSS/FreshRSS/issues/1015) -* UI - * Remove "title" field during installation [#858](https://github.com/FreshRSS/FreshRSS/issues/858) - * Visual alert on categories containing feeds in error [#984](https://github.com/FreshRSS/FreshRSS/pull/984) -* I18n - * Italian [#1003](https://github.com/FreshRSS/FreshRSS/issues/1003) -* Misc. - * Support reverse proxy [#975](https://github.com/FreshRSS/FreshRSS/issues/975) - * Make auto-update server URL alterable [#1019](https://github.com/FreshRSS/FreshRSS/issues/1019) - - -## 2015-09-12 FreshRSS 1.1.3-beta - -* UI - * Configuration page for global settings such as limits [#958](https://github.com/FreshRSS/FreshRSS/pull/958) - * Add feed ID in articles to ease styling [#953](https://github.com/FreshRSS/FreshRSS/issues/953) -* I18n - * Dutch [#949](https://github.com/FreshRSS/FreshRSS/issues/949) -* Bug fixing - * Session cookie bug [#924](https://github.com/FreshRSS/FreshRSS/issues/924) - * Better error handling for PubSubHubbub [#939](https://github.com/FreshRSS/FreshRSS/issues/939) - * Fix tag search link from articles [#970](https://github.com/FreshRSS/FreshRSS/issues/970) - * Fix all queries deleted when deleting a feed or category [#982](https://github.com/FreshRSS/FreshRSS/pull/982) - - -## 2015-07-30 FreshRSS 1.1.2-beta - -* Features - * Support for PubSubHubbub for instant notifications from compatible Web sites. [#312](https://github.com/FreshRSS/FreshRSS/issues/312) - * cURL options to use a proxy for retrieving feeds. [#897](https://github.com/FreshRSS/FreshRSS/issues/897) [#675](https://github.com/FreshRSS/FreshRSS/issues/675) - * Allow anonymous users to create an account. [#679](https://github.com/FreshRSS/FreshRSS/issues/679) -* Security - * cURL options to verify or not SSL/TLS certificates (now enabled by default). [#897](https://github.com/FreshRSS/FreshRSS/issues/897) [#502](https://github.com/FreshRSS/FreshRSS/issues/502) - * Support for SSL connection to MySQL. [#868](https://github.com/FreshRSS/FreshRSS/issues/868) - * Workaround for browsers that have disabled support for `<form autocomplete="off">`. [#880](https://github.com/FreshRSS/FreshRSS/issues/880) -* UI - * Force UTF-8 for responses. [#870](https://github.com/FreshRSS/FreshRSS/issues/870) - * Increased pagination limit to 500 articles. [#872](https://github.com/FreshRSS/FreshRSS/issues/872) - * Improved UI for installation. [#855](https://github.com/FreshRSS/FreshRSS/issues/855) -* Misc. - * PHP 7 officially supported (~70% speed improvements on early tests). [#889](https://github.com/FreshRSS/FreshRSS/issues/889) - * Restore support for PHP 5.2.1+. [#214a5cc](https://github.com/Alkarex/FreshRSS/commit/214a5cc9a4c2b821961bc21f22b4b08e34b5be68) [#894](https://github.com/FreshRSS/FreshRSS/issues/894) - * Support for data-src for images of articles retrieved via the full-content module. [#877](https://github.com/FreshRSS/FreshRSS/issues/877) - * Add a couple of default feeds for fresh installations. [#886](https://github.com/FreshRSS/FreshRSS/issues/886) - * Changed some log visibilities. [#885](https://github.com/FreshRSS/FreshRSS/issues/885) - * Fix broken links for extension script / style files. [#862](https://github.com/FreshRSS/FreshRSS/issues/862) - * Load default configuration during installation to avoid hard-coded values. [#890](https://github.com/FreshRSS/FreshRSS/issues/890) - * Fix non-consistent behaviour in Minz_Request::getBaseUrl() and introduce Minz_Request::guessBaseUrl(). [#906](https://github.com/FreshRSS/FreshRSS/issues/906) - * Generate `base_url` during the installation and add a `pubsubhubbub_enabled` configuration key. [#865](https://github.com/FreshRSS/FreshRSS/issues/865) - * Load configuration by recursion to overwrite array values. [#923](https://github.com/FreshRSS/FreshRSS/issues/923) - * Cast `$limits` configuration values in integer. [#925](https://github.com/FreshRSS/FreshRSS/issues/925) - * Don’t hide errors in configuration. [#920](https://github.com/FreshRSS/FreshRSS/issues/920) - - -## 2015-05-31 FreshRSS 1.1.1 (beta) - -* Features - * New option to detect and mark updated articles as unread. - * Support for internationalized domain name (IDN). - * Improved logic for automatic deletion of old articles. -* API - * Work-around for News+ bug when there is no unread article on the server. -* UI - * New confirmation message when leaving a configuration page without saving the changes. -* Bug fixing - * Corrected bug introduced in previous beta about handling of HTTP 301 (feeds that have changed address) - * Corrected bug in FreshRSS RSS feeds. -* Security - * Sanitize HTTP request header `Host`. -* Misc. - * Attempt to better handle encoded article titles. - - -## 2015-01-31 FreshRSS 1.0.0 / 1.1.0 (beta) - -* UI - * Slider math with Dark theme - * Add a message if request failed for mark as read / favourite -* I18n - * Fix some sentences - * Add German as a supported language - * Add some indications on password format -* Bug fixing - * Some shortcuts was never saved - * Global view didn’t work if set by default - * Minz_Error was badly raised - * Feed update failed if nothing had changed (MySQL only) - * CRON task failed with multiple users - * Tricky bug caused by cookie path - * Email sharing was badly supported (no urlencode()) -* Misc. - * Add a CREDIT file with contributor names - * Update lib_opml - * Default favicon is now served by HTTP code 200 - * Change calls to syslog by Minz_Log::notice - * HTTP credentials are no longer logged - - -## 2015-01-15 FreshRSS 0.9.4 (beta) - -* Feature - * Extension system (!!): some extensions are available at [github.com/FreshRSS/Extensions](https://github.com/FreshRSS/Extensions) -* Refactoring - * Front controller (FreshRSS class) - * Configuration system - * Sharing system - * New data files organization -* Updates - * Remove restriction of 1h for updates - * Show the current version of FreshRSS and the next one -* UI - * Remove the "sticky position" of the feed aside (moved into an extension) - * "Show password" shows the password only while the user is pressing the mouse. - - -## 2014-12-12 FreshRSS 0.9.3 (beta) - -* SimplePie - * Support for content-type application/x-rss+xml - * New force_feed option (for feeds sent with the wrong content-type / MIME) by adding #force_feed at the end of the feed URL - * Improved error messages -* Statistics - * Add information on feed repartition pages - * Add percent repartition for the bigger feeds -* UI - * New theme selector - * Update Screwdriver theme - * Add BlueLagoon theme by Mister aiR -* Misc. - * Add option to remove articles after reading them - * Add comments - * Refactor i18n system to avoid loading unnecessary strings - * Fix security issue in Minz_Error::error() method - * Fix redirection after refreshing a given feed - - -## 2014-10-31 FreshRSS 0.9.2 (beta) - -* UI - * New subscription page (introduce .box items) - * Change feed category by drag and drop - * New feed aside on the main page - * New configuration / administration organization -* Configuration - * New options in config.php for cache duration, timeout, max inactivity, max number of feeds and categories per user. -* Refactoring - * Refactor authentication system (introduce FreshRSS_Auth model) - * Refactor indexController (introduce FreshRSS_Context model) - * Use ```_t()```, ```_i()```, ```_url()```, ```Minz_Request::good()``` and ```Minz_Request::bad()``` as much as possible - * Refactor javascript_vars.phtml - * Better coding style -* I18n - * Introduce a new system for i18n keys (not finished yet) -* Misc. - * Fix global view (did not work anymore) - * Add do_post_update for update system - * Introduce ```checkInstallAction``` to test if FreshRSS installation is ok - - -## 2014-10-09 FreshRSS 0.8.1 / 0.9.1 (beta) - -* UI - * Add a space after tag icon -* Statistics - * Add an average per day on the 30-day period graph - * Add percent of total on top 10 feed -* Bug fixes - * Fix "mark as read" in global view - * Fix "read all" shortcut - * Fix categories not appearing when adding a new feed (GET action) - * Fix enclosure problem - * Fix getExtension() on PHP < 5.3.7 - - -## 2014-09-26 FreshRSS 0.8.0 / 0.9.0 (beta) - -* UI - * New interface for statistics - * Fix filter buttons - * Number of articles divided by 2 in reading view - * Redesign of bigMarkAsRead -* Features - * New automatic update system - * New reset auth system -* Security - * "Mark as read" requires POST requests for several articles - * Test HTTP REFERER in install.php -* Configuration - * New "Show all articles" / "Show only unread" / "Adjust viewing" option - * New notification timeout option -* Misc. - * Improve coding style + comments - * Fix SQLite bug "ON DELETE CASCADE" - * Improve performance when importing articles - - -## 2014-08-24 FreshRSS 0.7.4 - -* UI - * Hide categories/feeds with unread articles when showing only unread articles - * Dynamic favicon showing the number of unread articles - * New theme: Screwdriver by Mister aiR -* Statistics - * New page with article repartition - * Improvements -* Security - * Basic protection against XSRF (Cross-Site Request Forgery) based on HTTP Referer (POST requests only) -* API - * Compatible with lighttpd -* Misc. - * Changed lazyload implementation - * Support of HTML5 notifications for new upcoming articles - * Add option to stay logged in -* Bug fixes in export function, add/remove users, keyboard shortcuts, etc. - - -## 2014-07-21 FreshRSS 0.7.3 - -* New options - * Add system of user queries which are shortcuts to filter the view - * New TTL option to limit the frequency at which feeds are refreshed (by cron or manual refresh button). - It is still possible to manually refresh an individual feed at a higher frequency. -* SQL - * Add support for SQLite (beta) in addition to MySQL -* SimplePie - * Complies with HTTP "301 Moved Permanently" responses by automatically updating the URL of feeds that have changed address. -* Themes - * Flat and Dark designs are based on same template file as Origine -* Statistics - * Refactor code - * Add an idle feed page -* Misc - * Several bug fixes - * Add confirmation option when marking all articles as read - * Fix some typo - - -## 2014-06-13 FreshRSS 0.7.2 - -* API compatible with Google Reader API level 2 - * FreshRSS can now be used from e.g.: - * (Android) [News+](https://github.com/noinnion/newsplus/tree/master/extensions/GoogleReaderCloneExtension) - * (Android) [EasyRSS](https://github.com/Alkarex/EasyRSS) -* Basic support for audio and video podcasts -* Searching - * New search filters date: and pubdate: accepting ISO 8601 date intervals such as `date:2013-2014` or `pubdate:P1W` - * Possibility to combine search filters, e.g. `date:2014-05 intitle:FreshRSS intitle:Open great reader #Internet` -* Change nav menu with more buttons instead of dropdown menus and add some filters -* New system of import / export - * Support OPML, Json (like Google Reader) and ZIP archives - * Can export and import articles (specific option for favourites) -* Refactor "Origine" theme - * Some improvements - * Based on a template file (other themes will use it too) - - ## Older -[See older changes (in French)](./CHANGELOG-old.md) +[See older changes](./docs/CHANGELOG-old2.md) diff --git a/CHANGELOG-old.md b/docs/CHANGELOG-old.md index 07dfddf00..34d1bd2da 100644 --- a/CHANGELOG-old.md +++ b/docs/CHANGELOG-old.md @@ -1,6 +1,6 @@ # Journal des modifications de FreshRSS -[Voir les changements plus récents (en anglais)](./CHANGELOG.md) +[Voir les changements plus récents (en anglais)](./CHANGELOG-old2.md) ## 2014-02-19 FreshRSS 0.7.1 diff --git a/docs/CHANGELOG-old2.md b/docs/CHANGELOG-old2.md new file mode 100644 index 000000000..f8315f2e2 --- /dev/null +++ b/docs/CHANGELOG-old2.md @@ -0,0 +1,2169 @@ +# FreshRSS changelog (old 2) + +[See the newer changes](../CHANGELOG.md) + +## 2023-12-30 FreshRSS 1.23.1 + +* Bug fixing + * Fix crash regression with the option *Max number of tags shown* [#5978](https://github.com/FreshRSS/FreshRSS/pull/5978) + * Fix crash regression when enabling extensions defined by old FreshRSS installations [#5979](https://github.com/FreshRSS/FreshRSS/pull/5979) + * Fix crash regression during export when using MySQL [#5988](https://github.com/FreshRSS/FreshRSS/pull/5988) + * More robust assignment of categories to feeds [#5986](https://github.com/FreshRSS/FreshRSS/pull/5986) + * Fix `base_url` being cleared when saving settings [#5992](https://github.com/FreshRSS/FreshRSS/pull/5992) + * Fix unwanted button in UI of update page [#5999](https://github.com/FreshRSS/FreshRSS/pull/5999) +* Deployment + * Exclude more folders with `.dockerignore` [#5996](https://github.com/FreshRSS/FreshRSS/pull/5996) +* i18n + * Improve Simplified Chinese [#5977](https://github.com/FreshRSS/FreshRSS/pull/5977) + * Improve Hungarian [#6000](https://github.com/FreshRSS/FreshRSS/pull/6000) + + +## 2023-12-24 FreshRSS 1.23.0 + +* Features + * New *Important feeds* group in the main view, with corresponding new priority level for feeds [#5782](https://github.com/FreshRSS/FreshRSS/pull/5782) + * Entries from important feeds are not marked as read during *scroll*, during *focus*, nor during *Mark all as read* + * Add filter actions (auto mark as read) at category level and at global levels [#5942](https://github.com/FreshRSS/FreshRSS/pull/5942) + * Improve reliability of *Max number of articles to keep unread* [#5905](https://github.com/FreshRSS/FreshRSS/pull/5905) + * New option to mark entries as read when focused from keyboard shortcut [5812](https://github.com/FreshRSS/FreshRSS/pull/5812) + * New display option to hide *My labels* in article footers [#5884](https://github.com/FreshRSS/FreshRSS/pull/5884) + * Add support for more thumbnail types in feeds enclosures [#5806](https://github.com/FreshRSS/FreshRSS/pull/5806) + * Support for favicons with non-absolute paths [#5839](https://github.com/FreshRSS/FreshRSS/pull/5839) + * Increase SQL (`VARCHAR`) text fields length to maximum possible [#5788](https://github.com/FreshRSS/FreshRSS/pull/5788) + * Increase SQL date fields to 64-bit to be ready for year 2038+ [#5570](https://github.com/FreshRSS/FreshRSS/pull/5570) +* Compatibility + * Require PHP 7.4+, and implement *typed properties* [#5720](https://github.com/FreshRSS/FreshRSS/pull/5720) + * Soft require Apache 2.4+ (but repair minimal compatibility with Apache 2.2) [#5791](https://github.com/FreshRSS/FreshRSS/pull/5791), [#5804](https://github.com/FreshRSS/FreshRSS/pull/5804) +* Bug fixing + * Fix regression in Docker `CRON_MIN` if any environment variable contains a single quote [#5795](https://github.com/FreshRSS/FreshRSS/pull/5795) + * Improve filtering of cron environment variables [#5898](https://github.com/FreshRSS/FreshRSS/pull/5898) + * Fix the `TRUSTED_PROXY` environment variable used in combination with *trusted sources* [#5853](https://github.com/FreshRSS/FreshRSS/pull/5853) + * Fix regression in marking as read if an identical title already exists [#5937](https://github.com/FreshRSS/FreshRSS/pull/5937) + * Fix JavaScript regression in label dropdown [#5785](https://github.com/FreshRSS/FreshRSS/pull/5785) + * Fix regression when renaming a label [#5842](https://github.com/FreshRSS/FreshRSS/pull/5842) + * Fix API for adding feed with a title [#5868](https://github.com/FreshRSS/FreshRSS/pull/5868) + * Fix regression in UI of update page [#5802](https://github.com/FreshRSS/FreshRSS/pull/5802) + * Fix XPath encoding [#5912](https://github.com/FreshRSS/FreshRSS/pull/5912) + * Fix notifications, in particular during login [#5959](https://github.com/FreshRSS/FreshRSS/pull/5959) +* Deployment + * Use GitHub Actions to build Docker images, offering architectures `amd64`, `arm32v7`, `arm64v8` with automatic detection [#5808](https://github.com/FreshRSS/FreshRSS/pull/5808) + * Docker alternative image updated to Alpine 3.19 with PHP 8.2.13 and Apache 2.4.58 [#5383](https://github.com/FreshRSS/FreshRSS/pull/5383) +* Extensions + * Upgrade extensions code to PHP 7.4+ [#5901](https://github.com/FreshRSS/FreshRSS/pull/5901), [#5957](https://github.com/FreshRSS/FreshRSS/pull/5957) + * Breaking change: upgraded extensions require FreshRSS 1.23.0+ [Extensions#181](https://github.com/FreshRSS/Extensions/pull/181) + * Pass FreshRSS version to JavaScript client side for extensions [#5902](https://github.com/FreshRSS/FreshRSS/pull/5902) + * Add GitHub Actions and PHPStan for automatic testing of the Extensions repository [Extensions#185](https://github.com/FreshRSS/Extensions/pull/185) +* API + * Improve handling of new lines in enclosure descriptions (e.g., YouTube video descriptions) [#5859](https://github.com/FreshRSS/FreshRSS/pull/5859) +* Security + * Avoid printing exceptions in favicons [#5867](https://github.com/FreshRSS/FreshRSS/pull/5867) + * Remove unneeded execution permissions on some files [#5831](https://github.com/FreshRSS/FreshRSS/pull/5831) +* UI + * Ensure that enough articles are loaded on window resize [#5815](https://github.com/FreshRSS/FreshRSS/pull/5815) + * Improve *Nord* theme [#5885](https://github.com/FreshRSS/FreshRSS/pull/5885) + * Do not show message *Add some feeds* [#5827](https://github.com/FreshRSS/FreshRSS/pull/5827) + * Various UI and style improvements [#5886](https://github.com/FreshRSS/FreshRSS/pull/5886) +* i18n + * Fix font priority for languages using Han characters [#5930](https://github.com/FreshRSS/FreshRSS/pull/5930) + * Improve Dutch [#5796](https://github.com/FreshRSS/FreshRSS/pull/5796) + * Improve Hungarian [#5918](https://github.com/FreshRSS/FreshRSS/pull/5918) +* Misc. + * Increase PHPStan from Level 7 to [Level 8](https://phpstan.org/user-guide/rule-levels) [#5946](https://github.com/FreshRSS/FreshRSS/pull/5946) + * Compatibility PHP 8.2+ for running automated tests [#5826](https://github.com/FreshRSS/FreshRSS/pull/5826) + * Use PHP [`declare(strict_types=1);`](https://php.net/language.types.declarations#language.types.declarations.strict) [#5830](https://github.com/FreshRSS/FreshRSS/pull/5830) + * Better stack trace for SQL errors [#5916](https://github.com/FreshRSS/FreshRSS/pull/5916) + * Code improvements [#5511](https://github.com/FreshRSS/FreshRSS/pull/5511), [#5945](https://github.com/FreshRSS/FreshRSS/pull/5945) + * Update dev dependencies [#5787](https://github.com/FreshRSS/FreshRSS/pull/5787) + + +## 2023-10-30 FreshRSS 1.22.1 + +* Bug fixing + * Fix regression in i18n English fallback for extensions [#5752](https://github.com/FreshRSS/FreshRSS/pull/5752) + * Fix identification of thumbnails [#5750](https://github.com/FreshRSS/FreshRSS/pull/5750) + * OpenID Connect compatibility with colon `:` in `OIDC_SCOPES` [#5753](https://github.com/FreshRSS/FreshRSS/pull/5753), [#5764](https://github.com/FreshRSS/FreshRSS/pull/5764) + * Avoid a warning on non-numeric `TRUSTED_PROXY` environment variable [#5733](https://github.com/FreshRSS/FreshRSS/pull/5733) + * Better identification of proxied client IP with `RemoteIPInternalProxy` in Apache [#5740](https://github.com/FreshRSS/FreshRSS/pull/5740) +* Deployment + * Export all environment variables to cron (to allow custom environment variables such as for Kubernetes) [#5772](https://github.com/FreshRSS/FreshRSS/pull/5772) + * Docker: Upgraded Alpine dev image `freshrss/freshrss:newest` to PHP 8.3 and Apache 2.4.58 [#5764](https://github.com/FreshRSS/FreshRSS/pull/5764) +* Compatibility + * Test compatibility with PHP 8.3 [#5764](https://github.com/FreshRSS/FreshRSS/pull/5764) +* UI + * Improve *Origine* theme (dark mode) [#5745](https://github.com/FreshRSS/FreshRSS/pull/5745) + * Improve *Nord* theme [#5754](https://github.com/FreshRSS/FreshRSS/pull/5754) + * Various UI and style improvements [#5737](https://github.com/FreshRSS/FreshRSS/pull/5737), [#5765](https://github.com/FreshRSS/FreshRSS/pull/5765), + [#5773](https://github.com/FreshRSS/FreshRSS/pull/5773), [#5774](https://github.com/FreshRSS/FreshRSS/pull/5774) +* i18n + * Better i18n string for feed submenu for mark as read [#5762](https://github.com/FreshRSS/FreshRSS/pull/5762) + * Improve Dutch [#5759](https://github.com/FreshRSS/FreshRSS/pull/5759) +* Misc. + * Move to GitHub Actions for our GitHub Pages [#5681](https://github.com/FreshRSS/FreshRSS/pull/5681) + * Update dev dependencies and use `stylelint-stylistic` [#5766](https://github.com/FreshRSS/FreshRSS/pull/5766) + + +## 2023-10-23 FreshRSS 1.22.0 + +* Features + * Add support for OpenID Connect (only in our default Debian-based Docker image for `x86_64`, not Alpine) through [`libapache2-mod-auth-openidc`](https://github.com/OpenIDC/mod_auth_openidc) + [#5351](https://github.com/FreshRSS/FreshRSS/pull/5351), [#5463](https://github.com/FreshRSS/FreshRSS/pull/5463), [#5481](https://github.com/FreshRSS/FreshRSS/pull/5481), + [#5523](https://github.com/FreshRSS/FreshRSS/pull/5523), [#5646](https://github.com/FreshRSS/FreshRSS/pull/5646) + * Allow sharing in anonymous mode [#5261](https://github.com/FreshRSS/FreshRSS/pull/5261) + * Support Unix socket for MySQL / MariaDB [#5166](https://github.com/FreshRSS/FreshRSS/pull/5166) + * Use proxy settings also for fetching favicons [#5421](https://github.com/FreshRSS/FreshRSS/pull/5421) + * Add mutual exclusion semaphore for better scaling of actualize script [#5235](https://github.com/FreshRSS/FreshRSS/pull/5235) + * Better reporting of XPath failures [#5317](https://github.com/FreshRSS/FreshRSS/pull/5317) + * Add sharing with Buffer.com [#5286](https://github.com/FreshRSS/FreshRSS/pull/5286) + * Add sharing with Omnivore [#5477](https://github.com/FreshRSS/FreshRSS/pull/5477) + * Improve sharing with Linkding [#5433](https://github.com/FreshRSS/FreshRSS/pull/5433) + * Do not automatically update feeds after import, to better support multiple imports [#5629](https://github.com/FreshRSS/FreshRSS/pull/5629) + * Compatibility for servers disabling `set_time_limit()` [#5675](https://github.com/FreshRSS/FreshRSS/pull/5675) + * New configuration constant `CLEANCACHE_HOURS` [#5144](https://github.com/FreshRSS/FreshRSS/pull/5144) +* Bug fixing + * Fix cache refresh [#5562](https://github.com/FreshRSS/FreshRSS/pull/5562) + * Fix and improvement of hash of articles using *load full content* [#5576](https://github.com/FreshRSS/FreshRSS/pull/5576) + * Fix case of falsy GUIDs [#5412](https://github.com/FreshRSS/FreshRSS/pull/5412) + * Fix and improve JSON export/import [#5332](https://github.com/FreshRSS/FreshRSS/pull/5332), [#5626](https://github.com/FreshRSS/FreshRSS/pull/5626) + * Fix enclosures in RSS output [#5540](https://github.com/FreshRSS/FreshRSS/pull/5540) + * Fix parenthesis escaping bug in searches [#5633](https://github.com/FreshRSS/FreshRSS/pull/5633) + * Fix regression in Fever API enclosures [#5214](https://github.com/FreshRSS/FreshRSS/pull/5214) + * Fix regression in Fever API mark-all-as-read [#5185](https://github.com/FreshRSS/FreshRSS/pull/5185) + * Fix regression in OPML export of single feeds [#5238](https://github.com/FreshRSS/FreshRSS/pull/5238) + * Fix warning during OPML export with empty attributes [#5559](https://github.com/FreshRSS/FreshRSS/pull/5559) + * Fix extensions in *actualize script* [#5243](https://github.com/FreshRSS/FreshRSS/pull/5243) + * Fix link to configuration (system or user) for extensions [#5394](https://github.com/FreshRSS/FreshRSS/pull/5394) + * Fix *mark as read upon gone* option in some conditions [#5315](https://github.com/FreshRSS/FreshRSS/pull/5315), + [#5382](https://github.com/FreshRSS/FreshRSS/pull/5382), [#5404](https://github.com/FreshRSS/FreshRSS/pull/5404) + * Fix *mark selection as unread* [#5367](https://github.com/FreshRSS/FreshRSS/pull/5367) + * Fix warning in articles repartition statistics [#5228](https://github.com/FreshRSS/FreshRSS/pull/5228) + * Fix count entries with some databases [#5368](https://github.com/FreshRSS/FreshRSS/pull/5368) + * Fix MariaDB database size calculation [#5655](https://github.com/FreshRSS/FreshRSS/pull/5655) + * Fix feed position attribute [#5203](https://github.com/FreshRSS/FreshRSS/pull/5203) + * Fix warning when tagging entries [#5221](https://github.com/FreshRSS/FreshRSS/pull/5221) + * Fix labels in anonymous mode [#5650](https://github.com/FreshRSS/FreshRSS/pull/5650) + * Fix bug not allowing strings for tags in XPath [#5653](https://github.com/FreshRSS/FreshRSS/pull/5653) + * Fix get and order when saving user query [#5515](https://github.com/FreshRSS/FreshRSS/pull/5515) + * Fix search using user queries [#5669](https://github.com/FreshRSS/FreshRSS/pull/5669) + * Fix regression of access to logs even when auto-update is disabled [#5577](https://github.com/FreshRSS/FreshRSS/pull/5577) + * Fix access to Apache logs from Dev Container [#5660](https://github.com/FreshRSS/FreshRSS/pull/5660) + * Fix malformed HTTP header in case of internal fatal error [#5699](https://github.com/FreshRSS/FreshRSS/pull/5699) + * Fix rare exception for HTML notifications [#5690](https://github.com/FreshRSS/FreshRSS/pull/5690) +* UI + * New option to display website name and/or favicon of articles [#4969](https://github.com/FreshRSS/FreshRSS/pull/4969) + * Support `<meta name="theme-color" .../>` [#5105](https://github.com/FreshRSS/FreshRSS/pull/5105) + * Config user settings in slider [#5094](https://github.com/FreshRSS/FreshRSS/pull/5094) + * Improve theme selector [#5281](https://github.com/FreshRSS/FreshRSS/pull/5281), [#5688](https://github.com/FreshRSS/FreshRSS/pull/5688) + * Improve *share to clipboard* with animation and icon [#5295](https://github.com/FreshRSS/FreshRSS/pull/5295) + * Allow *share to clipboard* even for localhost and without HTTPS [#5606](https://github.com/FreshRSS/FreshRSS/pull/5606) + * Feedback when tag with same name as category already exists [#5181](https://github.com/FreshRSS/FreshRSS/pull/5181) + * Show *base URL* in configuration [#5656](https://github.com/FreshRSS/FreshRSS/pull/5656), [#5657](https://github.com/FreshRSS/FreshRSS/pull/5657) + * Show *Terms of Service* in config menu [#5215](https://github.com/FreshRSS/FreshRSS/pull/5215) + * Show *Terms of Service* in footer [#5222](https://github.com/FreshRSS/FreshRSS/pull/5222) + * Improve *about* page [#5192](https://github.com/FreshRSS/FreshRSS/pull/5192) + * Improve *update* page [#5420](https://github.com/FreshRSS/FreshRSS/pull/5420), [#5636](https://github.com/FreshRSS/FreshRSS/pull/5636), + [#5647](https://github.com/FreshRSS/FreshRSS/pull/5647) + * Improve Step 1 of install process [#5350](https://github.com/FreshRSS/FreshRSS/pull/5350) + * Improve *Global view* on mobile [#5297](https://github.com/FreshRSS/FreshRSS/pull/5297) + * Reduce network overhead for Global view [#5496](https://github.com/FreshRSS/FreshRSS/pull/5496) + * Fix *Global view*: Stick the article to the top when opened [#5153](https://github.com/FreshRSS/FreshRSS/pull/5153) + * Fix configuration views that are using a slider [#5469](https://github.com/FreshRSS/FreshRSS/pull/5469) + * Fix highlight next/prev article while using shortcuts [#5211](https://github.com/FreshRSS/FreshRSS/pull/5211) + * Fix regression in statistics column name *% of total* [#5232](https://github.com/FreshRSS/FreshRSS/pull/5232) + * Fix macOS feed title meta-click behaviour [#5492](https://github.com/FreshRSS/FreshRSS/pull/5492) + * Improve themes + * *Origine* (dark mode) [#5229](https://github.com/FreshRSS/FreshRSS/pull/5229), + [#5288](https://github.com/FreshRSS/FreshRSS/pull/5288), [#5437](https://github.com/FreshRSS/FreshRSS/pull/5437) + * *Alternative Dark* [#5206](https://github.com/FreshRSS/FreshRSS/pull/5206) + * *Ansum* / *Mapco* [#5453](https://github.com/FreshRSS/FreshRSS/pull/5453) + * *Dark* [#5280](https://github.com/FreshRSS/FreshRSS/pull/5280), [#5439](https://github.com/FreshRSS/FreshRSS/pull/5439) + * *Flat* (un-deprecated) [#5316](https://github.com/FreshRSS/FreshRSS/pull/5316) + * *Nord* [#5689](https://github.com/FreshRSS/FreshRSS/pull/5689), [#5719](https://github.com/FreshRSS/FreshRSS/pull/5719) + * Delete previously deprecated themes: *BlueLagoon*, *Screwdriver* [#5374](https://github.com/FreshRSS/FreshRSS/pull/5374), + [#5694](https://github.com/FreshRSS/FreshRSS/pull/5694) + * Various UI and style improvements [#5147](https://github.com/FreshRSS/FreshRSS/pull/5147), [#5216](https://github.com/FreshRSS/FreshRSS/pull/5216), + [#5303](https://github.com/FreshRSS/FreshRSS/pull/5303), [#5304](https://github.com/FreshRSS/FreshRSS/pull/5304), [#5397](https://github.com/FreshRSS/FreshRSS/pull/5397), + [#5398](https://github.com/FreshRSS/FreshRSS/pull/5398), [#5400](https://github.com/FreshRSS/FreshRSS/pull/5400), [#5603](https://github.com/FreshRSS/FreshRSS/pull/5603), + [#5695](https://github.com/FreshRSS/FreshRSS/pull/5695) +* Security + * Rework trusted proxies (especially with Docker) [#5549](https://github.com/FreshRSS/FreshRSS/pull/5549) + * Automatic trusted sources during install [#5358](https://github.com/FreshRSS/FreshRSS/pull/5358) + * Show remote IP address in case of HTTP Basic Auth error [#5314](https://github.com/FreshRSS/FreshRSS/pull/5314) +* Deployment + * Docker listen on all interfaces by default, including IPv6 [#5180](https://github.com/FreshRSS/FreshRSS/pull/5180) + * Docker default image updated to Debian 12 Bookworm with PHP 8.2.7 and Apache 2.4.57 [#5461](https://github.com/FreshRSS/FreshRSS/pull/5461) + * Docker alternative image updated to Alpine 3.18 with PHP 8.1.23 and Apache 2.4.58 [#5383](https://github.com/FreshRSS/FreshRSS/pull/5383) + * Docker quiet Apache `a2enmod` [#5464](https://github.com/FreshRSS/FreshRSS/pull/5464) + * Docker: Add `DATA_PATH` to cron env [#5531](https://github.com/FreshRSS/FreshRSS/pull/5531) +* i18n + * Fix i18n for automatic dark mode configuration [#5168](https://github.com/FreshRSS/FreshRSS/pull/5168) + * Clarify that maximum number to keep is per feed [#5458](https://github.com/FreshRSS/FreshRSS/pull/5458) + * Add Hungarian [#5589](https://github.com/FreshRSS/FreshRSS/pull/5589), [#5593](https://github.com/FreshRSS/FreshRSS/pull/5593) + * Add Latvian [#5254](https://github.com/FreshRSS/FreshRSS/pull/5254) + * Add Persian [#5571](https://github.com/FreshRSS/FreshRSS/pull/5571) + * Remove unneeded quotes in feed warning [#5480](https://github.com/FreshRSS/FreshRSS/pull/5480) + * Improve German [#5171](https://github.com/FreshRSS/FreshRSS/pull/5171), [#5468](https://github.com/FreshRSS/FreshRSS/pull/5468), + [#5640](https://github.com/FreshRSS/FreshRSS/pull/5640) + * Improve Spanish [#5408](https://github.com/FreshRSS/FreshRSS/pull/5408), [#5436](https://github.com/FreshRSS/FreshRSS/pull/5436), + [#5609](https://github.com/FreshRSS/FreshRSS/pull/5609) +* Extensions + * Fix fallback to English for extensions [#5426](https://github.com/FreshRSS/FreshRSS/pull/5426) + * Allow deep-link to extension configuration [#5449](https://github.com/FreshRSS/FreshRSS/pull/5449) + * New extension hook `entry_auto_read` [#5505](https://github.com/FreshRSS/FreshRSS/pull/5505), [#5561](https://github.com/FreshRSS/FreshRSS/pull/5561) + * Simplify extension method [#5234](https://github.com/FreshRSS/FreshRSS/pull/5234) + * Remove obsolete core extensions *Google Group* and *Tumblr* [#5457](https://github.com/FreshRSS/FreshRSS/pull/5457) +* SimplePie + * Fix `error_reporting` for PHP 8.1+ [#5199](https://github.com/FreshRSS/FreshRSS/pull/5199) +* Misc. + * Reduce database locks [#5576](https://github.com/FreshRSS/FreshRSS/pull/5576), [#5625](https://github.com/FreshRSS/FreshRSS/pull/5625), + [#5648](https://github.com/FreshRSS/FreshRSS/pull/5648), [#5649](https://github.com/FreshRSS/FreshRSS/pull/5649) + * Improve MySQL / MariaDB performance for updating cached SQL values [#5648](https://github.com/FreshRSS/FreshRSS/pull/5648) + * Increase time limit import OPML [#5231](https://github.com/FreshRSS/FreshRSS/pull/5231) + * Save SQL attributes as native Unicode [#5371](https://github.com/FreshRSS/FreshRSS/pull/5371) + * Remove old SQL auto-updates [#5625](https://github.com/FreshRSS/FreshRSS/pull/5625), [#5649](https://github.com/FreshRSS/FreshRSS/pull/5649) + * Improve Dev Container (update to Alpine 3.18, use `DATA_PATH` environment variable) [#5423](https://github.com/FreshRSS/FreshRSS/pull/5423) + * Update `lib_opml` [#5188](https://github.com/FreshRSS/FreshRSS/pull/5188) + * Update `lib/http-conditional` [#5277](https://github.com/FreshRSS/FreshRSS/pull/5277) + * Update *PHPMailer* [#5389](https://github.com/FreshRSS/FreshRSS/pull/5389) + * Use typed access to request parameters [#5267](https://github.com/FreshRSS/FreshRSS/pull/5267) + * Typed view model classes [#5380](https://github.com/FreshRSS/FreshRSS/pull/5380) + * Remove `ConfigurationSetter` [#5251](https://github.com/FreshRSS/FreshRSS/pull/5251), [#5580](https://github.com/FreshRSS/FreshRSS/pull/5580) + * Ignore `./data.back/` in `.gitignore` [#5359](https://github.com/FreshRSS/FreshRSS/pull/5359) + * Composer dev command compatibility with macOS [#5379](https://github.com/FreshRSS/FreshRSS/pull/5379) + * Code improvements [#5089](https://github.com/FreshRSS/FreshRSS/pull/5089), + [#5212](https://github.com/FreshRSS/FreshRSS/pull/5212), [#5213](https://github.com/FreshRSS/FreshRSS/pull/5213), [#5362](https://github.com/FreshRSS/FreshRSS/pull/5362), + [#5470](https://github.com/FreshRSS/FreshRSS/pull/5470), [#5501](https://github.com/FreshRSS/FreshRSS/pull/5501), [#5504](https://github.com/FreshRSS/FreshRSS/pull/5504), + [#5667](https://github.com/FreshRSS/FreshRSS/pull/5667) + * Increase PHPStan from Level 5 to [level 7](https://phpstan.org/user-guide/rule-levels) [#4112](https://github.com/FreshRSS/FreshRSS/issues/4112), + [#5064](https://github.com/FreshRSS/FreshRSS/pull/5064), [#5087](https://github.com/FreshRSS/FreshRSS/pull/5087), [#5090](https://github.com/FreshRSS/FreshRSS/pull/5090), + [#5106](https://github.com/FreshRSS/FreshRSS/pull/5106), [#5108](https://github.com/FreshRSS/FreshRSS/pull/5108), [#5230](https://github.com/FreshRSS/FreshRSS/pull/5230), + [#5239](https://github.com/FreshRSS/FreshRSS/pull/5239), [#5258](https://github.com/FreshRSS/FreshRSS/pull/5258), [#5263](https://github.com/FreshRSS/FreshRSS/pull/5263), + [#5264](https://github.com/FreshRSS/FreshRSS/pull/5264), [#5269](https://github.com/FreshRSS/FreshRSS/pull/5269), [#5272](https://github.com/FreshRSS/FreshRSS/pull/5272), + [#5275](https://github.com/FreshRSS/FreshRSS/pull/5275), [#5279](https://github.com/FreshRSS/FreshRSS/pull/5279), [#5282](https://github.com/FreshRSS/FreshRSS/pull/5282), + [#5283](https://github.com/FreshRSS/FreshRSS/pull/5283), [#5289](https://github.com/FreshRSS/FreshRSS/pull/5289), [#5290](https://github.com/FreshRSS/FreshRSS/pull/5290), + [#5291](https://github.com/FreshRSS/FreshRSS/pull/5291), [#5292](https://github.com/FreshRSS/FreshRSS/pull/5292), [#5299](https://github.com/FreshRSS/FreshRSS/pull/5299), + [#5305](https://github.com/FreshRSS/FreshRSS/pull/5305), [#5307](https://github.com/FreshRSS/FreshRSS/pull/5307), [#5309](https://github.com/FreshRSS/FreshRSS/pull/5309), + [#5313](https://github.com/FreshRSS/FreshRSS/pull/5313), [#5318](https://github.com/FreshRSS/FreshRSS/pull/5318), [#5319](https://github.com/FreshRSS/FreshRSS/pull/5319), + [#5327](https://github.com/FreshRSS/FreshRSS/pull/5327), [#5328](https://github.com/FreshRSS/FreshRSS/pull/5328), [#5352](https://github.com/FreshRSS/FreshRSS/pull/5352), + [#5353](https://github.com/FreshRSS/FreshRSS/pull/5353), [#5354](https://github.com/FreshRSS/FreshRSS/pull/5354), [#5361](https://github.com/FreshRSS/FreshRSS/pull/5361), + [#5366](https://github.com/FreshRSS/FreshRSS/pull/5366), [#5370](https://github.com/FreshRSS/FreshRSS/pull/5370), [#5373](https://github.com/FreshRSS/FreshRSS/pull/5373), + [#5376](https://github.com/FreshRSS/FreshRSS/pull/5376), [#5384](https://github.com/FreshRSS/FreshRSS/pull/5384), [#5388](https://github.com/FreshRSS/FreshRSS/pull/5388), + [#5393](https://github.com/FreshRSS/FreshRSS/pull/5393), [#5400](https://github.com/FreshRSS/FreshRSS/pull/5400), [#5406](https://github.com/FreshRSS/FreshRSS/pull/5406), + [#5429](https://github.com/FreshRSS/FreshRSS/pull/5429), [#5431](https://github.com/FreshRSS/FreshRSS/pull/5431), [#5434](https://github.com/FreshRSS/FreshRSS/pull/5434), + [#5578](https://github.com/FreshRSS/FreshRSS/pull/5578) + * Update dev dependencies [#5336](https://github.com/FreshRSS/FreshRSS/pull/5336), [#5339](https://github.com/FreshRSS/FreshRSS/pull/5339), + [#5478](https://github.com/FreshRSS/FreshRSS/pull/5478), [#5513](https://github.com/FreshRSS/FreshRSS/pull/5513), [#5541](https://github.com/FreshRSS/FreshRSS/pull/5541), + [#5691](https://github.com/FreshRSS/FreshRSS/pull/5691), [#5693](https://github.com/FreshRSS/FreshRSS/pull/5693) + + +## 2023-03-04 FreshRSS 1.21.0 + +* Features + * New *XML+XPath* mode for fetching XML documents when there is no RSS/ATOM feed [#5076](https://github.com/FreshRSS/FreshRSS/pull/5076) + * Better support of feed enclosures (image / audio / video attachments) [#4944](https://github.com/FreshRSS/FreshRSS/pull/4944) + * User-defined time-zone [#4906](https://github.com/FreshRSS/FreshRSS/pull/4906) + * Improve HTML+XPath mode by allowing HTML content [#4878](https://github.com/FreshRSS/FreshRSS/pull/4878) + * Search only on full tag names and not on parts of tag names [#4882](https://github.com/FreshRSS/FreshRSS/pull/4882) + * Allows searching for parentheses with `\(` or `\)` [#4989](https://github.com/FreshRSS/FreshRSS/pull/4989) + * Firefox-compatible sharing service for `mailto:` links for webmail services [#4680](https://github.com/FreshRSS/FreshRSS/pull/4680) + * Add sharing to [archive.org](https://archive.org/) [#5096](https://github.com/FreshRSS/FreshRSS/pull/5096) + * Increase max HTTP timeout to 15 minutes [#5074](https://github.com/FreshRSS/FreshRSS/pull/5074) +* Compatibility + * Require PHP 7.2+ (drop support for PHP 7.0 and 7.1) [#4848](https://github.com/FreshRSS/FreshRSS/pull/4848) + * Workaround disabled `openlog()` or `syslog()` [#5054](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4886) + * More uniform time-zone behaviour [#4903](https://github.com/FreshRSS/FreshRSS/pull/4903), [#4905](https://github.com/FreshRSS/FreshRSS/pull/4905) + * New CLI script `cli/sensitive-log.sh` to help e.g. Apache clear logs for sensitive information such as credentials [#5001](https://github.com/FreshRSS/FreshRSS/pull/5001) + * New CLI script `cli/access-permissions.sh` to help apply file permissions correctly [#5062](https://github.com/FreshRSS/FreshRSS/pull/5062) + * Improve file permissions on `./extensions/` [#4956](https://github.com/FreshRSS/FreshRSS/pull/4956) + * Update Apache mime type `font/woff` [#4894](https://github.com/FreshRSS/FreshRSS/pull/4894) + * Re-added a git `latest` branch (instead of a tag) to track the latest FreshRSS stable releases [#5148](https://github.com/FreshRSS/FreshRSS/pull/5148) +* Bug fixing + * Fix allow disabling curl proxy for specific feed, when proxy is defined globally [#5082](https://github.com/FreshRSS/FreshRSS/pull/5082) + * NFS-friendly `is_writable()` checks [#4780](https://github.com/FreshRSS/FreshRSS/pull/4780) + * Fix error handling when updating feed URL [#5039](https://github.com/FreshRSS/FreshRSS/pull/5039) + * Fix feed favicon after editing feed URL [#4975](https://github.com/FreshRSS/FreshRSS/pull/4975) + * Fix allow <kbd>Ctrl</kbd>+<kbd>Click</kbd> to open *Manage feeds* in new tab [#4980](https://github.com/FreshRSS/FreshRSS/pull/4980) + * Fix empty window opened when pressing space after page load [#5146](https://github.com/FreshRSS/FreshRSS/pull/5146) + * Fix keep current view when searching [#4981](https://github.com/FreshRSS/FreshRSS/pull/4981) + * Fix mobile view: scroll main area again after closing slider [#5092](https://github.com/FreshRSS/FreshRSS/pull/5092) + * Fix change confirmation when leaving sharing service config [#5098](https://github.com/FreshRSS/FreshRSS/pull/5098) + * Fix sharing to Lemmy [#5020](https://github.com/FreshRSS/FreshRSS/pull/5020) +* Security + * API avoid logging passwords [CVE-2023-22481](https://github.com/FreshRSS/FreshRSS/security/advisories/GHSA-8vvv-jxg6-8578) + * Remove execution rights on some files not needing it [#5065](https://github.com/FreshRSS/FreshRSS/pull/5065) + * More robust application of file access permissions [#5062](https://github.com/FreshRSS/FreshRSS/pull/5062) +* UI + * Improve search box [#4994](https://github.com/FreshRSS/FreshRSS/pull/4994) + * Improve navigation menu structure [#4937](https://github.com/FreshRSS/FreshRSS/pull/4937) + * More consistent sorting of feeds alphabetically [#4841](https://github.com/FreshRSS/FreshRSS/pull/4841) + * Improve reader view on mobile screen [#4868](https://github.com/FreshRSS/FreshRSS/pull/4868) + * Various UI and style improvements [#4681](https://github.com/FreshRSS/FreshRSS/pull/4681), [#4794](https://github.com/FreshRSS/FreshRSS/pull/4794) + [#4800](https://github.com/FreshRSS/FreshRSS/pull/4800), [#4850](https://github.com/FreshRSS/FreshRSS/pull/4850), [#4865](https://github.com/FreshRSS/FreshRSS/pull/4865), + [#4872](https://github.com/FreshRSS/FreshRSS/pull/4872), [#4874](https://github.com/FreshRSS/FreshRSS/pull/4874), [#4889](https://github.com/FreshRSS/FreshRSS/pull/4889), + [#4890](https://github.com/FreshRSS/FreshRSS/pull/4890), [#4891](https://github.com/FreshRSS/FreshRSS/pull/4891), [#4897](https://github.com/FreshRSS/FreshRSS/pull/4897), + [#4899](https://github.com/FreshRSS/FreshRSS/pull/4899), [#4910](https://github.com/FreshRSS/FreshRSS/pull/4910), [#4923](https://github.com/FreshRSS/FreshRSS/pull/4923), + [#4927](https://github.com/FreshRSS/FreshRSS/pull/4927), [#4960](https://github.com/FreshRSS/FreshRSS/pull/4960), [#4985](https://github.com/FreshRSS/FreshRSS/pull/4985), + [#4998](https://github.com/FreshRSS/FreshRSS/pull/4998), [#5034](https://github.com/FreshRSS/FreshRSS/pull/5034), [#5040](https://github.com/FreshRSS/FreshRSS/pull/5040), + [#5055](https://github.com/FreshRSS/FreshRSS/pull/5055), [#5058](https://github.com/FreshRSS/FreshRSS/pull/5058), [#5097](https://github.com/FreshRSS/FreshRSS/pull/5097), + [#5100](https://github.com/FreshRSS/FreshRSS/pull/5100) +* Themes + * Dark mode for *Origine* and *Origine compact* themes [#4843](https://github.com/FreshRSS/FreshRSS/pull/4843) + * Improve *Ansum* and *Mapco* [#4938](https://github.com/FreshRSS/FreshRSS/pull/4938), [#4959](https://github.com/FreshRSS/FreshRSS/pull/4959), [#4967](https://github.com/FreshRSS/FreshRSS/pull/4967), + [#4983](https://github.com/FreshRSS/FreshRSS/pull/4983), [#4995](https://github.com/FreshRSS/FreshRSS/pull/4995) + * Improve *Dark pink* [#4881](https://github.com/FreshRSS/FreshRSS/pull/4881) + * Improve *Nord theme* [#4892](https://github.com/FreshRSS/FreshRSS/pull/4892), [#4979](https://github.com/FreshRSS/FreshRSS/pull/4979) + * Improve *Origine* [#4893](https://github.com/FreshRSS/FreshRSS/pull/4893) + * Improve *Origine compact* [#4873](https://github.com/FreshRSS/FreshRSS/pull/4873) + * Improve *Pafat* [#4909](https://github.com/FreshRSS/FreshRSS/pull/4909) + * Improve *Swage* [#4875](https://github.com/FreshRSS/FreshRSS/pull/4875), [#4922](https://github.com/FreshRSS/FreshRSS/pull/4922), [#4936](https://github.com/FreshRSS/FreshRSS/pull/4936), + [#5029](https://github.com/FreshRSS/FreshRSS/pull/5029) + * Mark some themes as tentatively deprecated: *BlueLagoon*, *Flat*, *Screwdriver* [#4807](https://github.com/FreshRSS/FreshRSS/pull/4807) +* i18n + * Improve Chinese [#4853](https://github.com/FreshRSS/FreshRSS/pull/4853), [#4856](https://github.com/FreshRSS/FreshRSS/pull/4856) +* SimplePie + * No URL Decode for enclosure links [simplepie#768](https://github.com/simplepie/simplepie/pull/768) + * Fix case of multiple RSS2.0 enclosures [simplepie#769](https://github.com/simplepie/simplepie/pull/769) + * Sanitize thumbnail URL [simplepie#770](https://github.com/simplepie/simplepie/pull/770) + * Use single constant for default HTTP Accept header [simplepie#784](https://github.com/simplepie/simplepie/pull/784) +* Misc. + * Increase max feed URL length and drop unicity in database [#5038](https://github.com/FreshRSS/FreshRSS/pull/5038) + * New support of [Development Containers](https://containers.dev) / [GitHub Codespaces](https://github.com/features/codespaces) to ease development [#4859](https://github.com/FreshRSS/FreshRSS/pull/4859) + * Update library `lib_opml` [#4403](https://github.com/FreshRSS/FreshRSS/pull/4403) + * Code improvements [#4232](https://github.com/FreshRSS/FreshRSS/pull/4232), [#4651](https://github.com/FreshRSS/FreshRSS/pull/4651), + [#5024](https://github.com/FreshRSS/FreshRSS/pull/5024), [#5025](https://github.com/FreshRSS/FreshRSS/pull/5025), [#5028](https://github.com/FreshRSS/FreshRSS/pull/5028), + [#5032](https://github.com/FreshRSS/FreshRSS/pull/5032), [#5158](https://github.com/FreshRSS/FreshRSS/pull/5158), [#5045](https://github.com/FreshRSS/FreshRSS/pull/5045), + [#5049](https://github.com/FreshRSS/FreshRSS/pull/5049), [#5063](https://github.com/FreshRSS/FreshRSS/pull/5063), [#5084](https://github.com/FreshRSS/FreshRSS/pull/5084) + * Update dev dependencies [#4993](https://github.com/FreshRSS/FreshRSS/pull/4993), [#5006](https://github.com/FreshRSS/FreshRSS/pull/5006), [#5109](https://github.com/FreshRSS/FreshRSS/pull/5109) + + +## 2022-12-08 FreshRSS 1.20.2 + +* Security fixes + * [CVE-2022-23497](https://github.com/FreshRSS/FreshRSS/security/advisories/GHSA-hvrj-5fwj-p7v6) Fix security vulnerability in `ext.php` [#4928](https://github.com/FreshRSS/FreshRSS/pull/4928) + * Apache `TraceEnable Off` [#4863](https://github.com/FreshRSS/FreshRSS/pull/4863) + + +## 2022-11-14 FreshRSS 1.20.1 + +* Features + * Add support for custom XPath date/time format [#4703](https://github.com/FreshRSS/FreshRSS/pull/4703) + * Add default redirect when authenticating [#4778](https://github.com/FreshRSS/FreshRSS/pull/4778) + * Force default user before rendering login page [#4620](https://github.com/FreshRSS/FreshRSS/pull/4620) +* API + * Minor Google Reader API improvements [#4763](https://github.com/FreshRSS/FreshRSS/pull/4763) +* Bug fixing + * Fix SQL transaction rollbacks during auto-update [#4622](https://github.com/FreshRSS/FreshRSS/pull/4622) + * Fix `opcache` bug during Web update [#4629](https://github.com/FreshRSS/FreshRSS/pull/4629), [update.freshrss.org#4](https://github.com/FreshRSS/update.freshrss.org/pull/4) + * Fix export bug [#4822](https://github.com/FreshRSS/FreshRSS/pull/4822) + * Fix OPML import of special feed attributes [#4708](https://github.com/FreshRSS/FreshRSS/pull/4708) + * Fix JavaScript bug with remembering opened categories [#4827](https://github.com/FreshRSS/FreshRSS/pull/4827) + * Fix `curlopt` options for HTML+XPath [#4759](https://github.com/FreshRSS/FreshRSS/pull/4759) + * Fix charset bug for HTML+XPath [#4623](https://github.com/FreshRSS/FreshRSS/pull/4623) + * Fix HTML-encoding of CSS selectors [#4707](https://github.com/FreshRSS/FreshRSS/pull/4707), [#4823](https://github.com/FreshRSS/FreshRSS/pull/4823) + * Fix some broken author links [#4743](https://github.com/FreshRSS/FreshRSS/pull/4743) + * Fix show settings page after adding new feed [#4631](https://github.com/FreshRSS/FreshRSS/pull/4631) + * Fix login page when user does not exist [#4621](https://github.com/FreshRSS/FreshRSS/pull/4621) + * Fix feed manage link on stats page [#4768](https://github.com/FreshRSS/FreshRSS/pull/4768) + * Fix minor layout bugs [#4830](https://github.com/FreshRSS/FreshRSS/pull/4830) + * Fix minor UI bugs with Safari [#4643](https://github.com/FreshRSS/FreshRSS/pull/4643) +* UI + * Change some default settings related to marking articles as read [#4736](https://github.com/FreshRSS/FreshRSS/pull/4736) + * Improve scrollbar when slider is open [#4692](https://github.com/FreshRSS/FreshRSS/pull/4692) + * Improve Subscription Management: Show the category position number [#4679](https://github.com/FreshRSS/FreshRSS/pull/4679) + * Improve Reader view: Mark article as read while scrolling [#4652](https://github.com/FreshRSS/FreshRSS/pull/4652) + * Improve sharing / integration page [#4774](https://github.com/FreshRSS/FreshRSS/pull/4774) + * Improve article summary text cut [#4666](https://github.com/FreshRSS/FreshRSS/pull/4666) + * Improve HTML semantics for some boxes [#4665](https://github.com/FreshRSS/FreshRSS/pull/4665) + * Change dynamic OPML icon [#4673](https://github.com/FreshRSS/FreshRSS/pull/4673), [#4810](https://github.com/FreshRSS/FreshRSS/pull/4810) + * Improve box layout for global view [#4791](https://github.com/FreshRSS/FreshRSS/pull/4791) + * Improve logs layout [#4594](https://github.com/FreshRSS/FreshRSS/pull/4594) + * Improve Feed configuration: number of articles [#4625](https://github.com/FreshRSS/FreshRSS/pull/4625) + * Improve drop-down menus [#4597](https://github.com/FreshRSS/FreshRSS/pull/4597) + * Show tile with explanation when hovering empty feeds [#4617](https://github.com/FreshRSS/FreshRSS/pull/4617) + * Added bottom nav padding for iOS [#4741](https://github.com/FreshRSS/FreshRSS/pull/4741) +* Themes + * Implement CSS variables for easy colour customisation [#4641](https://github.com/FreshRSS/FreshRSS/pull/4641), [#4693](https://github.com/FreshRSS/FreshRSS/pull/4693), [#4789](https://github.com/FreshRSS/FreshRSS/pull/4789) + * Improve CSS line height [#4671](https://github.com/FreshRSS/FreshRSS/pull/4671), [#4782](https://github.com/FreshRSS/FreshRSS/pull/4782) + * Improved reader view with framed articles [#4663](https://github.com/FreshRSS/FreshRSS/pull/4663) + * Improve themes + Alternative Dark [#4635](https://github.com/FreshRSS/FreshRSS/pull/4635), [#4797](https://github.com/FreshRSS/FreshRSS/pull/4797); + Blue Lagon [#4786](https://github.com/FreshRSS/FreshRSS/pull/4786); + Dark [#4806](https://github.com/FreshRSS/FreshRSS/pull/4806); + Mapco [#4648](https://github.com/FreshRSS/FreshRSS/pull/4648), [#4709](https://github.com/FreshRSS/FreshRSS/pull/4709), [#4711](https://github.com/FreshRSS/FreshRSS/pull/4711); + Origine [#4842](https://github.com/FreshRSS/FreshRSS/pull/4842); + Origine Compact [#4636](https://github.com/FreshRSS/FreshRSS/pull/4636), [#4735](https://github.com/FreshRSS/FreshRSS/pull/4735), [#4787](https://github.com/FreshRSS/FreshRSS/pull/4787); + Pafat [#4783](https://github.com/FreshRSS/FreshRSS/pull/4783), [#4792](https://github.com/FreshRSS/FreshRSS/pull/4792), [#4793](https://github.com/FreshRSS/FreshRSS/pull/4793), + [#4796](https://github.com/FreshRSS/FreshRSS/pull/4796), [#4811](https://github.com/FreshRSS/FreshRSS/pull/4811); + Swage [#4799](https://github.com/FreshRSS/FreshRSS/pull/4799), [#4828](https://github.com/FreshRSS/FreshRSS/pull/4828), [#4829](https://github.com/FreshRSS/FreshRSS/pull/4829) + * Rename `template.css` to `frss.css` [#4644](https://github.com/FreshRSS/FreshRSS/pull/4644) + * Misc. [#4596](https://github.com/FreshRSS/FreshRSS/pull/4596), [#4619](https://github.com/FreshRSS/FreshRSS/pull/4619), [#4696](https://github.com/FreshRSS/FreshRSS/pull/4696) +* i18n + * Rename *tag* to *label* in some languages [#4770](https://github.com/FreshRSS/FreshRSS/pull/4770) + * Improve typographic quotes [#4714](https://github.com/FreshRSS/FreshRSS/pull/4714) + * Remove invalid i18n string [#4844](https://github.com/FreshRSS/FreshRSS/pull/4844) + * Add Greek [#4718](https://github.com/FreshRSS/FreshRSS/pull/4718), [#4754](https://github.com/FreshRSS/FreshRSS/pull/4754) + * Add Indonesian [#4706](https://github.com/FreshRSS/FreshRSS/pull/4706) + * Improve Brazilian Portuguese [#4669](https://github.com/FreshRSS/FreshRSS/pull/4669) + * Improve Czech [#4670](https://github.com/FreshRSS/FreshRSS/pull/4670) + * Improve Italian [#4803](https://github.com/FreshRSS/FreshRSS/pull/4803) + * Improve Japanese [#4668](https://github.com/FreshRSS/FreshRSS/pull/4668) + * Improve Russian [#4719](https://github.com/FreshRSS/FreshRSS/pull/4719) + * Improve Spanish [#4676](https://github.com/FreshRSS/FreshRSS/pull/4676), [#4725](https://github.com/FreshRSS/FreshRSS/pull/4725) + * Improve Turkish [#4715](https://github.com/FreshRSS/FreshRSS/pull/4715) + * Improve i18n tools [#4742](https://github.com/FreshRSS/FreshRSS/pull/4742), [#4756](https://github.com/FreshRSS/FreshRSS/pull/4756) +* Compatibility + * Compatibility PHP 8.1+ `strip_tags()` [#4688](https://github.com/FreshRSS/FreshRSS/pull/4688) + * Fix `GLOB_BRACE` is not available on all platforms [#4628](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4721) + * Exclude `.git/` from tests [#4824](https://github.com/FreshRSS/FreshRSS/pull/4824) + * Exclude `extensions/` from eslint and stylelint tests [#4606](https://github.com/FreshRSS/FreshRSS/pull/4606) + * Update GitHub Actions version [#4717](https://github.com/FreshRSS/FreshRSS/pull/4717) + + +## 2022-09-10 FreshRSS 1.20.0 + +* Features + * New Web scraping feature *HTML+XPath* for Web pages without any RSS/ATOM feed [#4220](https://github.com/FreshRSS/FreshRSS/pull/4220) + * Add support for *Dynamic OPML* [#4407](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4378), [#4503](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4347) + * Note: only for new users or after an export/import or a manual database update + * See also [#4357](https://github.com/FreshRSS/FreshRSS/pull/4357), [#4353](https://github.com/FreshRSS/FreshRSS/pull/4353), + [#4417](https://github.com/FreshRSS/FreshRSS/pull/4417), [#4502](https://github.com/FreshRSS/FreshRSS/pull/4502) + * New option to exclude some DOM elements with a CSS Selector when retrieving an article full content [#4501](https://github.com/FreshRSS/FreshRSS/pull/4501) + * New option to automatically mark as read gone articles [#4426](https://github.com/FreshRSS/FreshRSS/pull/4426) + * New OPML export/import of some proprietary FreshRSS attributes [#4342](https://github.com/FreshRSS/FreshRSS/pull/4342) + * Tolerate the import of some invalid OPML files [#4591](https://github.com/FreshRSS/FreshRSS/pull/4591) + * New feed settings to allow cookies and HTTP redirects [#4470](https://github.com/FreshRSS/FreshRSS/pull/4470) + * Performance: Easier [text search indexes](https://freshrss.github.io/FreshRSS/en/admins/DatabaseConfig.html) for fast searches with PostgreSQL [#4505](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4360) + * New sharing through standard [Web Share API](https://www.w3.org/TR/web-share/) [#4271](https://github.com/FreshRSS/FreshRSS/pull/4271) + * New sharing with Xing, Reddit, Pinterest, WhatsApp [#4270](https://github.com/FreshRSS/FreshRSS/pull/4270) + * New sharing with [`archive.today`](https://archive.ph/) [#4530](https://github.com/FreshRSS/FreshRSS/pull/4530) +* SimplePie + * New method `rename_attribute()` instead of removing attributes to better be able to style/hide content of articles [#4175](https://github.com/FreshRSS/FreshRSS/pull/4175), + [simplepie#717](https://github.com/simplepie/simplepie/pull/717) + * Fix parsing of HTTP Links [simplepie#729](https://github.com/simplepie/simplepie/pull/729) + * Fix `status_code` type for PHP 8.1+ [simplepie#728](https://github.com/simplepie/simplepie/pull/728) + * Fix relative URLs [simplepie#744](https://github.com/simplepie/simplepie/pull/744) +* Bug fixing + * Fix last update & archive logic (especially for very long feeds, for which some old items were marked as unread) [#4422](https://github.com/FreshRSS/FreshRSS/pull/4422) + * Fix regression with Fever API on 32-bit platforms [#4201](https://github.com/FreshRSS/FreshRSS/pull/4201) + * Fix read-when-same-title bug [#4206](https://github.com/FreshRSS/FreshRSS/pull/4206) + * Fix some search expressions such as `"ab cd"` and `ab-cd` [#4277](https://github.com/FreshRSS/FreshRSS/pull/4277) + * Fix auto-load of more articles when using shortcuts [#4532](https://github.com/FreshRSS/FreshRSS/pull/4532) + * Fix <kbd>space</kbd> shortcut [#4581](https://github.com/FreshRSS/FreshRSS/pull/4581) + * WebSub: Use hash instead of base64 to handle long URLs [#4282](https://github.com/FreshRSS/FreshRSS/pull/4282) + * Fix handling of authors with ampersand `&` [#4287](https://github.com/FreshRSS/FreshRSS/pull/4287) + * Fix lazy loading images containing a quote `'` in the address [#4330](https://github.com/FreshRSS/FreshRSS/pull/4330) + * Fix database size calculation for PostgreSQL [#4249](https://github.com/FreshRSS/FreshRSS/pull/4249) + * Fix HTTP root redirection in some cases (trailing slash with a proxy) [#4167](https://github.com/FreshRSS/FreshRSS/pull/4167) + * Fix `htmlspecialchars()` warnings with PHP 8.1+ [#4411](https://github.com/FreshRSS/FreshRSS/pull/4411) + * Fix OPML category encoding [#4427](https://github.com/FreshRSS/FreshRSS/pull/4427) + * Fix one category of favicon update problem [#4358](https://github.com/FreshRSS/FreshRSS/pull/4358) + * Fix rare mark-as-read bug [#4456](https://github.com/FreshRSS/FreshRSS/pull/4456) + * Add missing extension hook `freshrss_user_maintenance` in CLI [#4495](https://github.com/FreshRSS/FreshRSS/pull/4495) + * Rename conflicting function `errorMessage()` which exists on some platforms [#4289](https://github.com/FreshRSS/FreshRSS/pull/4289) + * Fix remain of bookmarklet [#4240](https://github.com/FreshRSS/FreshRSS/pull/4240) +* UI + * Performance: Automatic simplification of layout for 1000+ feeds [#4357](https://github.com/FreshRSS/FreshRSS/pull/4357) + * Performance: New option *icons-as-emojis* [#4353](https://github.com/FreshRSS/FreshRSS/pull/4353) + * Manage feed configuration using a dynamic slider view [#4226](https://github.com/FreshRSS/FreshRSS/pull/4226), [#4297](https://github.com/FreshRSS/FreshRSS/pull/4297), [#4394](https://github.com/FreshRSS/FreshRSS/pull/4394) + * New option for custom HTML logo/title in the main Web UI view [#4369](https://github.com/FreshRSS/FreshRSS/pull/4369) + * Show errored, empty, muted feeds in statistics [#4276](https://github.com/FreshRSS/FreshRSS/pull/4276) + * Improve configuration of registration form [#3932](https://github.com/FreshRSS/FreshRSS/pull/3932) + * Improve subscription list drag & drop [#3953](https://github.com/FreshRSS/FreshRSS/pull/3953) + * Improve extension manager [#4181](https://github.com/FreshRSS/FreshRSS/pull/4181) + * Improve idle feeds list [#4192](https://github.com/FreshRSS/FreshRSS/pull/4192) + * Improve feed link in normal view [#4006](https://github.com/FreshRSS/FreshRSS/pull/4006) + * Improve browser notification for unread message [#4193](https://github.com/FreshRSS/FreshRSS/pull/4193) + * Improve notification banner [#4023](https://github.com/FreshRSS/FreshRSS/pull/4023) + * Improve new article banner [#4037](https://github.com/FreshRSS/FreshRSS/pull/4037) + * Improve pagination + *load more* button [#4125](https://github.com/FreshRSS/FreshRSS/pull/4125) + * Improve log view [#4204](https://github.com/FreshRSS/FreshRSS/pull/4204) + * Improve unread articles counter in normal view [#4166](https://github.com/FreshRSS/FreshRSS/pull/4166) + * Automatically set the category when adding a feed from an existing category [#4333](https://github.com/FreshRSS/FreshRSS/pull/4333) + * Better PWA colours for mobile [#4254](https://github.com/FreshRSS/FreshRSS/pull/4254) + * Improve article footer [#4306](https://github.com/FreshRSS/FreshRSS/pull/4306) + * Various UI and style improvements [#4205](https://github.com/FreshRSS/FreshRSS/pull/4205), [#4212](https://github.com/FreshRSS/FreshRSS/pull/4212), [#4218](https://github.com/FreshRSS/FreshRSS/pull/4218), + [#4238](https://github.com/FreshRSS/FreshRSS/pull/4238), [#4455](https://github.com/FreshRSS/FreshRSS/pull/4455), [#4298](https://github.com/FreshRSS/FreshRSS/pull/4298), + [#4383](https://github.com/FreshRSS/FreshRSS/pull/4383), [#4452](https://github.com/FreshRSS/FreshRSS/pull/4452), [#4455](https://github.com/FreshRSS/FreshRSS/pull/4455), + [#4466](https://github.com/FreshRSS/FreshRSS/pull/4466), [#4471](https://github.com/FreshRSS/FreshRSS/pull/4471), [#4472](https://github.com/FreshRSS/FreshRSS/pull/4472), + [#4474](https://github.com/FreshRSS/FreshRSS/pull/4474), [#4498](https://github.com/FreshRSS/FreshRSS/pull/4498), [#4502](https://github.com/FreshRSS/FreshRSS/pull/4502), + [#4504](https://github.com/FreshRSS/FreshRSS/pull/4504), [#4558](https://github.com/FreshRSS/FreshRSS/pull/4558), [#4546](https://github.com/FreshRSS/FreshRSS/pull/4546), + [#4541](https://github.com/FreshRSS/FreshRSS/pull/4541) +* Themes + * New theme *Dark pink* [#4311](https://github.com/FreshRSS/FreshRSS/pull/4311) + * New theme *Nord* [#4400](https://github.com/FreshRSS/FreshRSS/pull/4400) + * Improve themes *Alternative Dark* [#4587](https://github.com/FreshRSS/FreshRSS/pull/4587); + *Ansum* [#4538](https://github.com/FreshRSS/FreshRSS/pull/4538), [#4549](https://github.com/FreshRSS/FreshRSS/pull/4549); + *Flat* [#4575](https://github.com/FreshRSS/FreshRSS/pull/4575); + *Mapco* [#4491](https://github.com/FreshRSS/FreshRSS/pull/4491), [#4491](https://github.com/FreshRSS/FreshRSS/pull/4491); + *Swage* [#4493](https://github.com/FreshRSS/FreshRSS/pull/4493), [#4512](https://github.com/FreshRSS/FreshRSS/pull/4512), [#4566](https://github.com/FreshRSS/FreshRSS/pull/4566) +* Extensions + * Allow extensions using `entry_before_insert` to change `entry->isRead()` [#4331](https://github.com/FreshRSS/FreshRSS/pull/4331) +* i18n + * Improve i18n CLI [#4197](https://github.com/FreshRSS/FreshRSS/pull/4197), [#4199](https://github.com/FreshRSS/FreshRSS/pull/4199) + * Add Chinese (Traditional) [#4578](https://github.com/FreshRSS/FreshRSS/pull/4578) + * Improve Chinese (Simplified) [#4332](https://github.com/FreshRSS/FreshRSS/pull/4332), [#4337](https://github.com/FreshRSS/FreshRSS/pull/4337), [#4379](https://github.com/FreshRSS/FreshRSS/pull/4379), + [#4509](https://github.com/FreshRSS/FreshRSS/pull/4509), [#4577](https://github.com/FreshRSS/FreshRSS/pull/4577) + * Improve English [#4450](https://github.com/FreshRSS/FreshRSS/pull/4450) + * Improve German [#4525](https://github.com/FreshRSS/FreshRSS/pull/4525) + * Improve Korean [#4572](https://github.com/FreshRSS/FreshRSS/pull/4572) + * Improve Occitan [#4548](https://github.com/FreshRSS/FreshRSS/pull/4548) + * Improve Polish [#4363](https://github.com/FreshRSS/FreshRSS/pull/4363) + * Improve Russian [#4385](https://github.com/FreshRSS/FreshRSS/pull/4385) + * Improve Slovak [#4524](https://github.com/FreshRSS/FreshRSS/pull/4524) +* API + * Restrict maximum length of item content length for clients compatibility [#4583](https://github.com/FreshRSS/FreshRSS/pull/4583) + * Supported by [Fluent Reader Lite](https://hyliu.me/fluent-reader-lite/) [#4595](https://github.com/FreshRSS/FreshRSS/pull/4595) +* Deployment + * Docker: Performance: entrypoint fix buffering, problematic when importing large OPMLs during install [#4417](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/4391) + * Add PHP extensions `php-openssl` (used by PHPMailer) and `php-xml` (used by SimplePie) [#4420](https://github.com/FreshRSS/FreshRSS/pull/4420) + * Docker: Upgraded dev image `freshrss/freshrss:newest` to PHP 8.2 [#4420](https://github.com/FreshRSS/FreshRSS/pull/4420) + * Include PHP extensions in Composer for easier automated deployment [#4497](https://github.com/FreshRSS/FreshRSS/pull/4497) + * Improved trimming of `base_url` to avoid some common configuration bugs, especially via Docker / CLI [#4423](https://github.com/FreshRSS/FreshRSS/pull/4423) +* CLI + * Allow empty DB prefix [#4488](https://github.com/FreshRSS/FreshRSS/pull/4488) +* Compatibility + * Initial support for PHP 8.2+ [#4420](https://github.com/FreshRSS/FreshRSS/pull/4420), [#4421](https://github.com/FreshRSS/FreshRSS/pull/4421) +* Security + * Improved error page, properly returning HTTP 500 and CSP [#4465](https://github.com/FreshRSS/FreshRSS/pull/4465) +* Misc. + * Replace `lib_phpQuery` by [`PhpGt/CssXPath`](https://github.com/PhpGt/CssXPath) library for full content retrieval [#4261](https://github.com/FreshRSS/FreshRSS/pull/4261) + * Add support for star CSS Selectors such as `a[href*="example"]` [CssXPath#181](https://github.com/PhpGt/CssXPath/pull/181) + * Performance: Do not render irrelevant HTML for Ajax calls [#4310](https://github.com/FreshRSS/FreshRSS/pull/4310), [#4366](https://github.com/FreshRSS/FreshRSS/pull/4366) + * Performance: New limit option when reloading a feed [#4370](https://github.com/FreshRSS/FreshRSS/pull/4370) + * Optional possibility to use Composer to update some libraries [#4329](https://github.com/FreshRSS/FreshRSS/pull/4329), [#4368](https://github.com/FreshRSS/FreshRSS/pull/4368) + * Update to PHPMailer 6.6.0 [#4329](https://github.com/FreshRSS/FreshRSS/pull/4329) + * Use `.gitattributes` `export-ignore` [#4415](https://github.com/FreshRSS/FreshRSS/pull/4415) + * Remove HTTP Referer for HTML download [#4372](https://github.com/FreshRSS/FreshRSS/pull/4372) + * Add database field `attributes` (JSON) for entries [#4444](https://github.com/FreshRSS/FreshRSS/pull/4444) + * Improve dev automated checks [#4209](https://github.com/FreshRSS/FreshRSS/pull/4209) + * Update dev dependencies [#4173](https://github.com/FreshRSS/FreshRSS/pull/4173), [#4203](https://github.com/FreshRSS/FreshRSS/pull/4203), [#4241](https://github.com/FreshRSS/FreshRSS/pull/4241), + [#4419](https://github.com/FreshRSS/FreshRSS/pull/4419), [#4424](https://github.com/FreshRSS/FreshRSS/pull/4424) + * Fix extension list warning when offline[#4571](https://github.com/FreshRSS/FreshRSS/pull/4571) + * Code improvements [#4130](https://github.com/FreshRSS/FreshRSS/pull/4130), [#4194](https://github.com/FreshRSS/FreshRSS/pull/4194), [#4201](https://github.com/FreshRSS/FreshRSS/pull/4201), + [#4202](https://github.com/FreshRSS/FreshRSS/pull/4202), [#4258](https://github.com/FreshRSS/FreshRSS/pull/4258), [#4263](https://github.com/FreshRSS/FreshRSS/pull/4263), + [#4356](https://github.com/FreshRSS/FreshRSS/pull/4356), [#4436](https://github.com/FreshRSS/FreshRSS/pull/4436), [#4489](https://github.com/FreshRSS/FreshRSS/pull/4489), + [#4490](https://github.com/FreshRSS/FreshRSS/pull/4490), [#4496](https://github.com/FreshRSS/FreshRSS/pull/4496) + + +## 2022-02-04 FreshRSS 1.19.2 + +* Bug fixing + * Fix regression regarding keeping read state after seeing favourites / labels [#4178](https://github.com/FreshRSS/FreshRSS/pull/4178) + * Fix migration system on Synology and systems adding custom files to folders [#4163](https://github.com/FreshRSS/FreshRSS/pull/4163) + * Fix wrong dropdown triangle UI for labels [#4174](https://github.com/FreshRSS/FreshRSS/pull/4174) + * Fix minor UI bugs [#4169](https://github.com/FreshRSS/FreshRSS/pull/4169), [#4189](https://github.com/FreshRSS/FreshRSS/pull/4189), [#4188](https://github.com/FreshRSS/FreshRSS/pull/4188) + * Fix minor SCSS details for the themes Ansum and Mapco [#4146](https://github.com/FreshRSS/FreshRSS/pull/4146) +* UI + * Improve dropdown menus on mobile view [#4141](https://github.com/FreshRSS/FreshRSS/pull/4141), [#4128](https://github.com/FreshRSS/FreshRSS/pull/4128) + * Improve menu icons [#4004](https://github.com/FreshRSS/FreshRSS/pull/4004) +* Features + * Support JSON import with date in milliseconds (e.g., Feedly) [#4186](https://github.com/FreshRSS/FreshRSS/pull/4186) +* Deployment + * Docker: development image `:newest` updated to PHP 8.1.1 and Apache 2.4.52 [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) +* i18n + * Improve i18n CLI [#4131](https://github.com/FreshRSS/FreshRSS/pull/4131) + * Use typographic quotes [#4133](https://github.com/FreshRSS/FreshRSS/pull/4133) + * Improve message regarding forced feeds [#4145](https://github.com/FreshRSS/FreshRSS/pull/4145) + * Improve Czech [#4151](https://github.com/FreshRSS/FreshRSS/pull/4151) + * Improve English [#4161](https://github.com/FreshRSS/FreshRSS/pull/4161) +* Misc. + * Increase PHPStan to [level 5](https://phpstan.org/user-guide/rule-levels) for code quality, also fixing several PHP 8.1 warnings [#4110](https://github.com/FreshRSS/FreshRSS/pull/4110), [#4123](https://github.com/FreshRSS/FreshRSS/pull/4123), [#4119](https://github.com/FreshRSS/FreshRSS/pull/4119), [#4182](https://github.com/FreshRSS/FreshRSS/pull/4182) + * Clean temporary files generated by automated tests [#4177](https://github.com/FreshRSS/FreshRSS/pull/4177) + * Add automated spell checking of the code using [typos](https://github.com/crate-ci/typos) [#4138](https://github.com/FreshRSS/FreshRSS/pull/4138), [#4134](https://github.com/FreshRSS/FreshRSS/pull/4134) + * Enforce code style *opening brace on same line* in PHPCS [#4122](https://github.com/FreshRSS/FreshRSS/pull/4122) + * Remove broken GitHub Action automatically adding the `latest` tag to git [#4135](https://github.com/FreshRSS/FreshRSS/pull/4135) + + +## 2022-01-02 FreshRSS 1.19.1 + +* Bug fixing + * Fix some filters for automatic article actions (e.g., `!pubdate:P3d`) [#4092](https://github.com/FreshRSS/FreshRSS/pull/4092) +* Features + * New search operator on article IDs (useful to show a single article, extensions) [#4058](https://github.com/FreshRSS/FreshRSS/pull/4058) + * Entry (article) ID: `e:1639310674957894` or multiple entry IDs (*or*): `e:1639310674957894,1639310674957893` +* UI + * Fix left navigation with long category names [#4055](https://github.com/FreshRSS/FreshRSS/pull/4055) + * Show *My labels* menu also when empty [#4065](https://github.com/FreshRSS/FreshRSS/pull/4065) + * Improve category titles on global view [#4059](https://github.com/FreshRSS/FreshRSS/pull/4059) + * Disable dynamic favicon for browser / extensions blocking canvas [#4098](https://github.com/FreshRSS/FreshRSS/pull/4098) + * Minor UI and style improvements [#4061](https://github.com/FreshRSS/FreshRSS/pull/4061), [#4067](https://github.com/FreshRSS/FreshRSS/pull/4067), [#4085](https://github.com/FreshRSS/FreshRSS/pull/4085) +* SimplePie + * Manual update to SimplePie 1.5.8 [#4113](https://github.com/FreshRSS/FreshRSS/pull/4113) +* Code improvements + * Add PHPStan [level 1](https://phpstan.org/user-guide/rule-levels) for code quality [#4021](https://github.com/FreshRSS/FreshRSS/pull/4021) + + +## 2021-12-31 FreshRSS 1.19.0 + +* Features + * New thumbnail and/or summary options for the normal view [#3805](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/3303) + * New setting to keep only a maximum number of unread articles in a given feed [#3303](https://github.com/FreshRSS/FreshRSS/pull/3303) + * New search operator based on custom labels, or not [#3709](https://github.com/FreshRSS/FreshRSS/pull/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](https://github.com/FreshRSS/FreshRSS/pull/3890) +* Bug fixing + * Fix marking as read a label with SQLite and PostgreSQL [#3711](https://github.com/FreshRSS/FreshRSS/pull/3711) + * Better fallback for feeds without title [#3787](https://github.com/FreshRSS/FreshRSS/pull/3787) + * Fix auto-load articles in anonymous mode and global view [#4082](https://github.com/FreshRSS/FreshRSS/pull/4082) + * Fix several typos found by PHPStan, including one affecting the cache of *keep max unread articles* [#4019](https://github.com/FreshRSS/FreshRSS/pull/4019) + * Fix warning in Fever API [#4056](https://github.com/FreshRSS/FreshRSS/pull/4056) + * Show *no articles* alert-box also in global view [#4042](https://github.com/FreshRSS/FreshRSS/pull/4042), [#3099](https://github.com/FreshRSS/FreshRSS/pull/3999) + * Fix theme selection when a theme has been deleted [#3874](https://github.com/FreshRSS/FreshRSS/pull/3874) + * Fix keyboard shortcuts in anonymous mode [#3945](https://github.com/FreshRSS/FreshRSS/pull/3945) + * Fix show password in settings [#3966](https://github.com/FreshRSS/FreshRSS/pull/3966) + * Fix JavaScript warnings for non-validated users [#3980](https://github.com/FreshRSS/FreshRSS/pull/3980) + * Fix drag & drop layout for subscriptions [#3949](https://github.com/FreshRSS/FreshRSS/pull/3949) +* Security + * Better error handling when a user does not exist (especially for API) [#3751](https://github.com/FreshRSS/FreshRSS/pull/3751), [#4084](https://github.com/FreshRSS/FreshRSS/pull/4084) + * Do not show *Add new feed* for anonymous users [#4040](https://github.com/FreshRSS/FreshRSS/pull/4040) + * Do not show *Mark as read / unread / favourite* for anonymous users [#3871](https://github.com/FreshRSS/FreshRSS/pull/3871), [#3876](https://github.com/FreshRSS/FreshRSS/pull/3876) + * Do not show back link on error pages if the user does not have access [#3765](https://github.com/FreshRSS/FreshRSS/pull/3765) + * Only show *Back to RSS feeds* when logged-in [#3790](https://github.com/FreshRSS/FreshRSS/pull/3790) + * Fix for special characters in keyboard shortcuts [#3922](https://github.com/FreshRSS/FreshRSS/issues/3922) + * Remove old workarounds with white space to prevent password autocompletion [#3814](https://github.com/FreshRSS/FreshRSS/pull/3814) +* Compatibility + * Require PHP 7.0+ (drop support for PHP 5.x) [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) + * Drop support for Microsoft Internet Explorer (IE11) [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) + * Fix some warnings with PHP 8.1+ [#4012](https://github.com/FreshRSS/FreshRSS/pull/4012), [#4018](https://github.com/FreshRSS/FreshRSS/pull/4018) + * Fix back-compatibility with Git 2.21- for automatic updates [#3669](https://github.com/FreshRSS/FreshRSS/pull/3669) + * Fix JavaScript caching and compression for some Apache platforms [#4075](https://github.com/FreshRSS/FreshRSS/pull/4075) +* Deployment + * Docker: development image `:oldest` is now based on `alpine:3.5` with PHP 7.0.33 and Apache 2.4.35 [#3666](https://github.com/FreshRSS/FreshRSS/pull/3666) + * Docker: default image updated to Debian 11 Bullseye with PHP 7.4.25 and Apache 2.4.51 [#3782](https://github.com/FreshRSS/FreshRSS/pull/3782) + * Docker: alternative image updated to Alpine 3.15 with PHP 8.0.14 and Apache 2.4.52 [#3996](https://github.com/FreshRSS/FreshRSS/pull/3996) + * Docker: fix inclusion of `.htaccess` for `./p/themes/` folder [#4074](https://github.com/FreshRSS/FreshRSS/pull/4074) + * Docker: only add the crontab when `CRON_MIN` is set [#3927](https://github.com/FreshRSS/FreshRSS/pull/3927) + * Docker: move logic to disable FreshRSS updates [#3973](https://github.com/FreshRSS/FreshRSS/pull/3973) + * Docker: allow mounting a volume for the cron file [#3927](https://github.com/FreshRSS/FreshRSS/pull/3927) + * Images on Docker Hub are automatically scanned for software vulnerabilities +* UI + * Remember article filters when changing views (category / feed) [#3986](https://github.com/FreshRSS/FreshRSS/pull/3986) + * Mobile view can access the configuration menu [#3879](https://github.com/FreshRSS/FreshRSS/pull/3879), [#3881](https://github.com/FreshRSS/FreshRSS/pull/3881) + * Improve layout of settings on small screen [#3818](https://github.com/FreshRSS/FreshRSS/pull/3818), [#3819](https://github.com/FreshRSS/FreshRSS/pull/3819) + * New shortcut to jump to next unread article [#3891](https://github.com/FreshRSS/FreshRSS/pull/3891) + * New shortcut to actualise feeds [#3900](https://github.com/FreshRSS/FreshRSS/pull/3900) + * Implement Escape shortcut to close panels [#3901](https://github.com/FreshRSS/FreshRSS/pull/3901) + * Improve layout of subscription management page [#3893](https://github.com/FreshRSS/FreshRSS/pull/3893) + * Use HTML5 tags with better semantics and structure [#3651](https://github.com/FreshRSS/FreshRSS/pull/3651), [#3676](https://github.com/FreshRSS/FreshRSS/pull/3676), [#3713](https://github.com/FreshRSS/FreshRSS/pull/3713), [#3747](https://github.com/FreshRSS/FreshRSS/pull/3747), [#3830](https://github.com/FreshRSS/FreshRSS/pull/3830), [#3851](https://github.com/FreshRSS/FreshRSS/pull/3851) + * Allow JavaScript in themes [#3739](https://github.com/FreshRSS/FreshRSS/pull/3739) + * Improve layout of statistics [#3797](https://github.com/FreshRSS/FreshRSS/pull/3797), [#3799](https://github.com/FreshRSS/FreshRSS/pull/3799), [#3803](https://github.com/FreshRSS/FreshRSS/pull/3803) + * Replace flotr2 with chart.js library [#3858](https://github.com/FreshRSS/FreshRSS/pull/3858) + * Remove jQuery fully [#3847](https://github.com/FreshRSS/FreshRSS/pull/3847) + * Improve label management [#3959](https://github.com/FreshRSS/FreshRSS/pull/3959) + * Update layout of user queries [#3827](https://github.com/FreshRSS/FreshRSS/pull/3827) + * Improve style of install procedure [#3721](https://github.com/FreshRSS/FreshRSS/pull/3721) + * Add retry button when checking requirements during install [#3771](https://github.com/FreshRSS/FreshRSS/pull/3771) + * Improve notification icon [#3678](https://github.com/FreshRSS/FreshRSS/pull/3678) + * Add CSS class to back links [#3761](https://github.com/FreshRSS/FreshRSS/pull/3761) + * Better support for `400` and `405` HTTP error codes [#3981](https://github.com/FreshRSS/FreshRSS/pull/3981) + * Many minor UI and style improvements [#3792](https://github.com/FreshRSS/FreshRSS/pull/3792), [#3795](https://github.com/FreshRSS/FreshRSS/pull/3795), [#3801](https://github.com/FreshRSS/FreshRSS/pull/3801), [#3802](https://github.com/FreshRSS/FreshRSS/pull/3802), [#3817](https://github.com/FreshRSS/FreshRSS/pull/3817), [#3821](https://github.com/FreshRSS/FreshRSS/pull/3821), [#3824](https://github.com/FreshRSS/FreshRSS/pull/3824), [#3831](https://github.com/FreshRSS/FreshRSS/pull/3831), [#3832](https://github.com/FreshRSS/FreshRSS/pull/3832), [#3877](https://github.com/FreshRSS/FreshRSS/pull/3877), [#3880](https://github.com/FreshRSS/FreshRSS/pull/3880), [#3969](https://github.com/FreshRSS/FreshRSS/pull/3969), [#3989](https://github.com/FreshRSS/FreshRSS/pull/3989), [#3990](https://github.com/FreshRSS/FreshRSS/pull/3990), [#4005](https://github.com/FreshRSS/FreshRSS/pull/4005), [#4015](https://github.com/FreshRSS/FreshRSS/pull/4015) +* Themes + * Show search box for all themes in mobile view [#4025](https://github.com/FreshRSS/FreshRSS/pull/4025) + * Fix *alternative-dark* theme to avoid bright elements [#3774](https://github.com/FreshRSS/FreshRSS/pull/3774), [#3806](https://github.com/FreshRSS/FreshRSS/pull/3806) + * Improve the contrast of message boxes for the *Origine* theme [#3725](https://github.com/FreshRSS/FreshRSS/pull/3725) + * Uniformize the size of `input`and `select` elements for the *Origine* theme [#3727](https://github.com/FreshRSS/FreshRSS/pull/3727) + * Fix style of banner text for the *Origine* theme [#3731](https://github.com/FreshRSS/FreshRSS/pull/3731) +* i18n + * Fix language of e-mail notifications [#4076](https://github.com/FreshRSS/FreshRSS/pull/4076) + * Lint i18n [#3841](https://github.com/FreshRSS/FreshRSS/pull/3841) + * Fix bug in French and German translations of new/old tags [#3703](https://github.com/FreshRSS/FreshRSS/pull/3703), [#3668](https://github.com/FreshRSS/FreshRSS/pull/3668) + * Fix name of keyboard shortcut to open in new tab [#3899](https://github.com/FreshRSS/FreshRSS/pull/3899) + * Add Japanese [#3828](https://github.com/FreshRSS/FreshRSS/pull/3828), [#3834](https://github.com/FreshRSS/FreshRSS/pull/3834) + * Improve Chinese [#3926](https://github.com/FreshRSS/FreshRSS/pull/3926), [#3947](https://github.com/FreshRSS/FreshRSS/pull/3947), [#3963](https://github.com/FreshRSS/FreshRSS/pull/3963), [#4084](https://github.com/FreshRSS/FreshRSS/pull/4084) + * Improve Dutch [#3844](https://github.com/FreshRSS/FreshRSS/pull/3844), [#3928](https://github.com/FreshRSS/FreshRSS/pull/3928) + * Improve German [#3720](https://github.com/FreshRSS/FreshRSS/pull/3720), [#3846](https://github.com/FreshRSS/FreshRSS/pull/3846), [#3913](https://github.com/FreshRSS/FreshRSS/pull/3913), [#4008](https://github.com/FreshRSS/FreshRSS/pull/4008) + * Improve Italian [#3939](https://github.com/FreshRSS/FreshRSS/pull/3939) + * Improve Korean [#3914](https://github.com/FreshRSS/FreshRSS/pull/3914) + * Improve Occitan [#3935](https://github.com/FreshRSS/FreshRSS/pull/3935) + * Improve Polish [#4027](https://github.com/FreshRSS/FreshRSS/pull/4027) + * Improve Portuguese [#3908](https://github.com/FreshRSS/FreshRSS/pull/3908), [#3925](https://github.com/FreshRSS/FreshRSS/pull/3925) + * Improve Russian [#3907](https://github.com/FreshRSS/FreshRSS/pull/3907) + * Improve Slovak [#4036](https://github.com/FreshRSS/FreshRSS/pull/4036) + * Improve Spanish [#3916](https://github.com/FreshRSS/FreshRSS/pull/3916) +* Extensions + * Add system configuration for extension [#3626](https://github.com/FreshRSS/FreshRSS/pull/3626) +* SimplePie + * Merge from upstream, help with PHP 8.1+ [#4011](https://github.com/FreshRSS/FreshRSS/pull/4011) + * Fallback to file extensions for enclosures not providing a media type [#3861](https://github.com/FreshRSS/FreshRSS/pull/3861) +* Misc. + * Implement GitHub Actions for continuous integration / automated testing [3920](https://github.com/FreshRSS/FreshRSS/pull/3920) + * Use ESLint instead of JSHint [#3906](https://github.com/FreshRSS/FreshRSS/pull/3906) + * Improve `.editorconfig` and `.stylelintrc` [#3895](https://github.com/FreshRSS/FreshRSS/pull/3895), [#3912](https://github.com/FreshRSS/FreshRSS/pull/3912) + * Simplify Minz code with PHP 7 `??` operator [#4020](https://github.com/FreshRSS/FreshRSS/pull/4020) + * Upgrade PHPMailer to 6.5.1 [#3977](https://github.com/FreshRSS/FreshRSS/pull/3977) + * Added Raindrop.io as sharing option [#3717](https://github.com/FreshRSS/FreshRSS/pull/3717) + * Delete outdated information regarding Firefox feed reader list [#3822](https://github.com/FreshRSS/FreshRSS/pull/3822) + + +## 2021-06-06 FreshRSS 1.18.1 + +* Features + * Support standard `HTTP 410 Gone` by disabling (muting) gone feeds [#3561](https://github.com/FreshRSS/FreshRSS/pull/3561) + * Make advanced feed options such as SSL available to non-admins [#3612](https://github.com/FreshRSS/FreshRSS/pull/3612) +* API + * Supported by [Newsboat 2.24+](https://newsboat.org/) [#3574](https://github.com/FreshRSS/FreshRSS/pull/3574) + * Supported by [RSS Guard](https://github.com/martinrotter/rssguard) [#3627](https://github.com/FreshRSS/FreshRSS/pull/3627) +* UI + * Allow Unicode for shortcuts [#3548](https://github.com/FreshRSS/FreshRSS/pull/3548) +* Bug fixing + * Fix database lock during refresh with MariaDB [#3559](https://github.com/FreshRSS/FreshRSS/pull/3559) + * Fix database creation from CLI [#3544](https://github.com/FreshRSS/FreshRSS/pull/3544) + * Fix: `pdo_sqlite` is optional except for export/import SQLite [#3545](https://github.com/FreshRSS/FreshRSS/pull/3545) + * Fix import of JSON and TT-RSS files, especially with PHP 8 [#3553](https://github.com/FreshRSS/FreshRSS/pull/3553) + * Allow import of more than 999 favourites/labelled articles even with SQLite + * Fix additional SQL limits, especially for SQLite [#3586](https://github.com/FreshRSS/FreshRSS/pull/3586) + * Fix search param encoding in user query [#3541](https://github.com/FreshRSS/FreshRSS/pull/3541) + * Fix undefined variable & dead code when adding feed [#3546](https://github.com/FreshRSS/FreshRSS/pull/3546) + * Fix missing translation in feed configuration [#3554](https://github.com/FreshRSS/FreshRSS/pull/3554) + * Fix double escaping in feed filters [#3563](https://github.com/FreshRSS/FreshRSS/pull/3563) + * Fix bugs in migration system [#3589](https://github.com/FreshRSS/FreshRSS/pull/3589) + * Fix regression preventing showing startup errors [#3590](https://github.com/FreshRSS/FreshRSS/pull/3590) + * Fix form redirection after erroneous user creation [#3656](https://github.com/FreshRSS/FreshRSS/pull/3656) + * Fix JavaScript error during navigation when no article is selected [#3655](https://github.com/FreshRSS/FreshRSS/pull/3655) + * Fix link to add feeds from the empty homepage [#3650](https://github.com/FreshRSS/FreshRSS/pull/3650) + * Fix git update error message [#3645](https://github.com/FreshRSS/FreshRSS/pull/3645) +* SimplePie + * Fix regression about media attachments [#3565](https://github.com/FreshRSS/FreshRSS/pull/3565) + * Fix regression about forcing HTTPS for enclosures [#3568](https://github.com/FreshRSS/FreshRSS/pull/3568) + * Catch ValueError for loadHTML with PHP 8 [simplepie#673](https://github.com/simplepie/simplepie/pull/673) + * Provide access to latest HTTP status code [simplepie#674](https://github.com/simplepie/simplepie/pull/674) + * Fix wrong SimplePie type hint [simplepie#678](https://github.com/simplepie/simplepie/pull/678) + * Merge details from upstream PRs [#3588](https://github.com/FreshRSS/FreshRSS/pull/3588), [#3614](https://github.com/FreshRSS/FreshRSS/pull/3614) +* API + * Compatibility with Web servers providing `ORIG_PATH_INFO` [#3560](https://github.com/FreshRSS/FreshRSS/pull/3560) +* i18n + * Improved Russian [#3579](https://github.com/FreshRSS/FreshRSS/pull/3579) + * Improved Turkish [#3604](https://github.com/FreshRSS/FreshRSS/pull/3604) + * Improved Chinese [#3600](https://github.com/FreshRSS/FreshRSS/pull/3600) +* Code improvements: + * Friendly constant syntax for Intellisense [#3577](https://github.com/FreshRSS/FreshRSS/pull/3577) + * Fix several comments syntaxes [#3615](https://github.com/FreshRSS/FreshRSS/pull/3615) + * Minor uniform stricter HTML [#3616](https://github.com/FreshRSS/FreshRSS/pull/3616) + * Removed unused variable [#3587](https://github.com/FreshRSS/FreshRSS/pull/3587) + * Provide action name in Minz controller exception [#3624](https://github.com/FreshRSS/FreshRSS/pull/3624) + * New convenience method to extract multiline GET parameters from e.g. `<textarea>` [#3629](https://github.com/FreshRSS/FreshRSS/pull/3629) +* Deployment + * Automatically apply `latest` tag in git for the latest FreshRSS release [#3524](https://github.com/FreshRSS/FreshRSS/pull/3524) +* Misc. + * Remove legacy `data/do-install.txt` for triggering install process [#3555](https://github.com/FreshRSS/FreshRSS/pull/3555) + * If using built-in git updates, automatically change to git `edge` branch if using old `master` or `dev` branch names [#3589](https://github.com/FreshRSS/FreshRSS/pull/3589) + + +## 2021-03-14 FreshRSS 1.18.0 + +* Features + * Allow parallel requests [#3096](https://github.com/FreshRSS/FreshRSS/pull/3096) + * Much faster manual feeds refresh + * Reload full article content when an article has changed [#3506](https://github.com/FreshRSS/FreshRSS/pull/3506) + * New share article link to clipboard [#3330](https://github.com/FreshRSS/FreshRSS/pull/3330) + * Improved OPML import of feeds with multiple categories [#3286](https://github.com/FreshRSS/FreshRSS/pull/3286) + * Add a content action parameter to work with CSS selector [#3453](https://github.com/FreshRSS/FreshRSS/pull/3453) + * New cURL options per feed: proxy, cookie, user-agent [#3367](https://github.com/FreshRSS/FreshRSS/pull/3367), [#3494](https://github.com/FreshRSS/FreshRSS/pull/3494), [#3516](https://github.com/FreshRSS/FreshRSS/pull/3516) + * Do not import feeds causing database errors (e.g. due to conflicting HTTP redirections) [#3347](https://github.com/FreshRSS/FreshRSS/pull/3347) +* UI + * New option to remember open categories [#3185](https://github.com/FreshRSS/FreshRSS/pull/3185) + * Remember the scroll position of the sidebar [#3231](https://github.com/FreshRSS/FreshRSS/pull/3231) + * Feedback messages are now properly attached to a request, in case multiple tabs are open [#3208](https://github.com/FreshRSS/FreshRSS/pull/3208) + * New user query configuration page [#3366](https://github.com/FreshRSS/FreshRSS/pull/3366) + * Allow sorting and drag & drop in the list of user queries [#3346](https://github.com/FreshRSS/FreshRSS/pull/3346), [#3355](https://github.com/FreshRSS/FreshRSS/pull/3355) + * Change layout to add a subscription [#3289](https://github.com/FreshRSS/FreshRSS/pull/3289) + * Change integration configuration page [#3372](https://github.com/FreshRSS/FreshRSS/pull/3372) + * Improve author search when clicking on an author [#3315](https://github.com/FreshRSS/FreshRSS/pull/3315) + * Allow typing a label name instead of selecting it [#3213](https://github.com/FreshRSS/FreshRSS/pull/3213) + * Use same behaviour for labels than the option *Show all articles in favourites* [#3472](https://github.com/FreshRSS/FreshRSS/pull/3472) + * Change naming from *Tag management* to *Label management* [#3446](https://github.com/FreshRSS/FreshRSS/pull/3446) + * Sort options alphabetically in share menu [#3331](https://github.com/FreshRSS/FreshRSS/pull/3331) + * Case-insensitive sort order of feeds in category settings [#3466](https://github.com/FreshRSS/FreshRSS/pull/3466) + * Better compression of the images [#3184](https://github.com/FreshRSS/FreshRSS/pull/3184) + * Fix minor jaggy motion of the sidebar [#3266](https://github.com/FreshRSS/FreshRSS/pull/3266) + * Remove useless reset action in sharing configuration page [#3365](https://github.com/FreshRSS/FreshRSS/pull/3365) + * Add autofocus on subscription page [#3334](https://github.com/FreshRSS/FreshRSS/pull/3334) + * Fix contrast issue by enforcing black text in base theme [#3196](https://github.com/FreshRSS/FreshRSS/pull/3196) + * Adjust brightness & contrast of images and videos in dark themes [#3356](https://github.com/FreshRSS/FreshRSS/pull/3356) + * Improve menu bar of several themes for mobile view [#3480](https://github.com/FreshRSS/FreshRSS/pull/3480), [#3491](https://github.com/FreshRSS/FreshRSS/pull/3491) + * Fix dropdown menu for user queries with BlueLagoon and Screwdriver themes [#3485](https://github.com/FreshRSS/FreshRSS/pull/3485) + * Upgrade to jQuery 3.6.0 for statistics [#3501](https://github.com/FreshRSS/FreshRSS/pull/3501) +* Bug fixing + * Fix the reloading of full article content with SQLite [#3461](https://github.com/FreshRSS/FreshRSS/pull/3461) + * Fix the caching of an SQL prepared statement affecting the read state of updated articles [#3500](https://github.com/FreshRSS/FreshRSS/pull/3500) + * Better handle expected article conflicts in database [#3409](https://github.com/FreshRSS/FreshRSS/pull/3409) + * Fix SQL syntax error/warning when deleting temporary articles [#3357](https://github.com/FreshRSS/FreshRSS/pull/3357) + * Fix login and refresh bugs in anonymous mode [#3305](https://github.com/FreshRSS/FreshRSS/pull/3305) + * Fix i18n init [#3249](https://github.com/FreshRSS/FreshRSS/pull/3249) + * Fix tag management [#3292](https://github.com/FreshRSS/FreshRSS/pull/3292) + * Fix user queries with labels [#3285](https://github.com/FreshRSS/FreshRSS/pull/3285) + * Fix loading of default actions for shortcuts [#3394](https://github.com/FreshRSS/FreshRSS/pull/3394) + * Fix extensions when using CLI [#3443](https://github.com/FreshRSS/FreshRSS/pull/3443) + * Fix translation CLI [#3364](https://github.com/FreshRSS/FreshRSS/pull/3364) + * Allow searching for `+` sign [#3489](https://github.com/FreshRSS/FreshRSS/pull/3489) + * Fix cURL version detection in install script [#3519](https://github.com/FreshRSS/FreshRSS/pull/3519) +* Compatibility + * Support PHP 8+ [#3186](https://github.com/FreshRSS/FreshRSS/pull/3186), [#3207](https://github.com/FreshRSS/FreshRSS/pull/3207), [#3459](https://github.com/FreshRSS/FreshRSS/pull/3459), [#3487](https://github.com/FreshRSS/FreshRSS/pull/3487) + * Note: needed for MySQL 8+ with default authentication settings + * Change ZIP-handling method [#3470](https://github.com/FreshRSS/FreshRSS/pull/3470) +* API + * Supported by [FocusReader](https://play.google.com/store/apps/details?id=allen.town.focus.reader) (Android) [#3478](https://github.com/FreshRSS/FreshRSS/issues/3478) + * Implement OPML import/export [#3424](https://github.com/FreshRSS/FreshRSS/pull/3424) + * Add `canonical` field for fluent-reader, better compatibility InoReader [#3391](https://github.com/FreshRSS/FreshRSS/pull/3391) + * Better compatibility with BazQux API [#3320](https://github.com/FreshRSS/FreshRSS/pull/3320) + * Fix continuation token by ensuring it is a string (for Reeder) [#3247](https://github.com/FreshRSS/FreshRSS/issues/3247) +* CLI + * Add requirements check in relevant CLI [#3410](https://github.com/FreshRSS/FreshRSS/pull/3410) +* Deployment + * Possibility to auto-install via e.g. `docker-compose` [#3353](https://github.com/FreshRSS/FreshRSS/pull/3353) + * New tolerance when the database is not available / up (yet) by trying a few times to connect + * Docker: use Apache `remoteip` to log the client remote IP instead of the local proxy IP [#3226](https://github.com/FreshRSS/FreshRSS/pull/3226) + * Docker: new environment variable `LISTEN` to change the internal Apache port when running in host network mode [#3343](https://github.com/FreshRSS/FreshRSS/pull/3343) + * Docker: Alpine image updated to 3.13 with PHP 8.0.3 and Apache 2.4.46 [#3375](https://github.com/FreshRSS/FreshRSS/pull/3375) + * Note: needed for MySQL 8+ with default authentication settings [#3191](https://github.com/FreshRSS/FreshRSS/issues/3191) + * Docker default image (Debian 10 Buster) updated to PHP 7.3.27 + * New Docker development image based on `alpine:edge` to test the latest PHP 8+ version [#3294](https://github.com/FreshRSS/FreshRSS/pull/3294) + * New Docker development image based on `alpine:3.4` to test oldest supported PHP 5.6.36 version with Apache 2.4.43 [#3274](https://github.com/FreshRSS/FreshRSS/pull/3274) + * Disable built-in update mechanism for new installations using Docker [#3496](https://github.com/FreshRSS/FreshRSS/pull/3496) + * Check that PHP session is working during install [#3430](https://github.com/FreshRSS/FreshRSS/pull/3430) +* Security + * Auto-renew login cookie [#3287](https://github.com/FreshRSS/FreshRSS/pull/3287) + * Remove referer check, already replaced by CSRF token [#3432](https://github.com/FreshRSS/FreshRSS/pull/3432) + * Increase login cookie duration to 3 months by default [#3170](https://github.com/FreshRSS/FreshRSS/pull/3170) + * Prevent click on login button until JavaScript is fully loaded [#3275](https://github.com/FreshRSS/FreshRSS/pull/3275) + * Add toggle password visibility button on login form UI [#3205](https://github.com/FreshRSS/FreshRSS/pull/3205) + * Better sanitize feed description [#3222](https://github.com/FreshRSS/FreshRSS/pull/3222) + * Allow `@`-sign in database username (for Azure) [#3241](https://github.com/FreshRSS/FreshRSS/pull/3241) + * Add username hint for permissions during install [#3373](https://github.com/FreshRSS/FreshRSS/pull/3373) +* SimplePie + * SimplePie prevent cache pollution [#3502](https://github.com/FreshRSS/FreshRSS/pull/3502) + * Update to SimplePie 1.5.6 with PHP8 support [#3469](https://github.com/FreshRSS/FreshRSS/pull/3469), [#3206](https://github.com/FreshRSS/FreshRSS/pull/3206) + * Reduce memory consumption to handle very big feeds [simplepie#672](https://github.com/simplepie/simplepie/pull/672) + * Replace `ceil()` by `intval()` for edge cases with PHP8 [simplepie#670](https://github.com/simplepie/simplepie/pull/670) + * Strip HTML comments in feeds [#3288](https://github.com/FreshRSS/FreshRSS/pull/3288) + * Minor fix of return type for broken feeds [#3423](https://github.com/FreshRSS/FreshRSS/pull/3423) + * Fix images in enclosures without MIME type [#3361](https://github.com/FreshRSS/FreshRSS/pull/3361) +* Extensions + * New user maintenance hooks [#3440](https://github.com/FreshRSS/FreshRSS/pull/3440) + * New hooks `js_vars` and `nav_menu` [#3342](https://github.com/FreshRSS/FreshRSS/pull/3342) + * Add class autoload for extensions [#3350](https://github.com/FreshRSS/FreshRSS/pull/3350) + * Add support for extension user files [#3433](https://github.com/FreshRSS/FreshRSS/pull/3433) + * Add user configuration in extensions [#3397](https://github.com/FreshRSS/FreshRSS/pull/3397) + * Add a method to retrieve a configuration value [#3422](https://github.com/FreshRSS/FreshRSS/pull/3422) + * Search files for both core and third-party extensions [#3413](https://github.com/FreshRSS/FreshRSS/pull/3413) + * Updated base extension class [#3333](https://github.com/FreshRSS/FreshRSS/pull/3333), [#3335](https://github.com/FreshRSS/FreshRSS/pull/3335) + * Refactor extension file script [#3399](https://github.com/FreshRSS/FreshRSS/pull/3399) +* i18n + * Fix some translation inconsistencies [#3316](https://github.com/FreshRSS/FreshRSS/pull/3316), [#3240](https://github.com/FreshRSS/FreshRSS/pull/3240) + * Add Polish [#3190](https://github.com/FreshRSS/FreshRSS/pull/3190) + * Improve Chinese [#3473](https://github.com/FreshRSS/FreshRSS/pull/3473) + * Improve Dutch [#3468](https://github.com/FreshRSS/FreshRSS/pull/3468) + * Improve English [#3248](https://github.com/FreshRSS/FreshRSS/pull/3248) + * Improve British English date format [#3326](https://github.com/FreshRSS/FreshRSS/pull/3326) + * Improve German [#3237](https://github.com/FreshRSS/FreshRSS/pull/3237), [#3317](https://github.com/FreshRSS/FreshRSS/pull/3317), [#3318](https://github.com/FreshRSS/FreshRSS/pull/3318), [#3325](https://github.com/FreshRSS/FreshRSS/pull/3325), [#3379](https://github.com/FreshRSS/FreshRSS/pull/3379), [#3448](https://github.com/FreshRSS/FreshRSS/pull/3448), [#3455](https://github.com/FreshRSS/FreshRSS/pull/3455) + * Improve Occitan [#3245](https://github.com/FreshRSS/FreshRSS/pull/3245), [#3511](https://github.com/FreshRSS/FreshRSS/pull/3511) +* Code improvements + * Improve FreshRSS system initialisation [#3070](https://github.com/FreshRSS/FreshRSS/pull/3070) + * Improve session code during install [#3276](https://github.com/FreshRSS/FreshRSS/pull/3276) + * Enforce `phpcs` (PHP_CodeSniffer) line length + whitespace [#3488](https://github.com/FreshRSS/FreshRSS/pull/3488) + * Improve settings and applies to `*.phtml, *.css, *.js` as well + * Fix superfluous Minz check during install [#3302](https://github.com/FreshRSS/FreshRSS/pull/3302) + * Extract some classes to their own files [#3301](https://github.com/FreshRSS/FreshRSS/pull/3301), [#3298](https://github.com/FreshRSS/FreshRSS/pull/3298), [#3297](https://github.com/FreshRSS/FreshRSS/pull/3297) + * Explicit git declaration of `.png` files as binary [#3211](https://github.com/FreshRSS/FreshRSS/pull/3211) + * Remove Minz validation [#3439](https://github.com/FreshRSS/FreshRSS/pull/3439) + * Explicit `PDO::ERRMODE_SILENT` [#3048](https://github.com/FreshRSS/FreshRSS/pull/3408) + * Add constant for minimal PHP version [#3369](https://github.com/FreshRSS/FreshRSS/pull/3369) + * Refactor requirements check during install [#3368](https://github.com/FreshRSS/FreshRSS/pull/3368) +* Misc. + * Check access rights to temp folder during install [#3312](https://github.com/FreshRSS/FreshRSS/pull/3312) + * Ensure maximum integer for a date to avoid some database issues [#3259](https://github.com/FreshRSS/FreshRSS/pull/3259) + * Upgrade PHPMailer to 6.3.0 [#3457](https://github.com/FreshRSS/FreshRSS/pull/3457) + * Make our Travis greener by testing only our oldest and newest supported PHP versions [#3492](https://github.com/FreshRSS/FreshRSS/pull/3492) + + +## 2020-09-22 FreshRSS 1.17.0 + +* Features + * New tag management page [#3121](https://github.com/FreshRSS/FreshRSS/pull/3121) + * New page to add feeds and categories [#3027](https://github.com/FreshRSS/FreshRSS/pull/3027) + * Add a way to disable/enable users [#3056](https://github.com/FreshRSS/FreshRSS/pull/3056) +* Security + * Add user auto-registration when using HTTP Basic authentication login method [#3003](https://github.com/FreshRSS/FreshRSS/pull/3003) + * Fix special characters in user queries [#3037](https://github.com/FreshRSS/FreshRSS/pull/3037) + * Hide feed credentials when adding a new feed [#3099](https://github.com/FreshRSS/FreshRSS/pull/3099) + * Trim whitespace for feed passwords [#3158](https://github.com/FreshRSS/FreshRSS/pull/3158) + * Updated PHPMailer library to 6.1.6 [#3024](https://github.com/FreshRSS/FreshRSS/pull/3024) + * Add blogger.com to the default list of forced HTTPS [#3088](https://github.com/FreshRSS/FreshRSS/pull/3088) +* UI + * Show feed name and date inside the article (especially good on mobile) [#3081](https://github.com/FreshRSS/FreshRSS/pull/3081) + * Add shortcut to control media elements (video, audio) [#3036](https://github.com/FreshRSS/FreshRSS/pull/3036) + * New option to disable shortcuts [#3114](https://github.com/FreshRSS/FreshRSS/pull/3114) + * Case-insensitive sort order of feeds in categories [#3131](https://github.com/FreshRSS/FreshRSS/pull/3131) + * Use machine-readable `<time datetime="">` for entry dates [#3106](https://github.com/FreshRSS/FreshRSS/pull/3106) + * Add tooltips on entry icons [#3115](https://github.com/FreshRSS/FreshRSS/pull/3115) + * Limit dropdown menus max-height [#3102](https://github.com/FreshRSS/FreshRSS/pull/3102) + * Fix inline code tag contrast in Ansum and Mapco themes [#3048](https://github.com/FreshRSS/FreshRSS/pull/3048), [#3050](https://github.com/FreshRSS/FreshRSS/pull/3050) + * Fix login form in BlueLagoon and Screwdriver themes [#3028](https://github.com/FreshRSS/FreshRSS/pull/3028) +* API + * Supported by [Fluent Reader](https://hyliu.me/fluent-reader/) (Windows, Linux, MacOS) [#3140](https://github.com/FreshRSS/FreshRSS/pull/3140) + * Fix API `quickadd` [#3051](https://github.com/FreshRSS/FreshRSS/pull/3051) + * Fix warning when adding a feed [#3075](https://github.com/FreshRSS/FreshRSS/pull/3075) + * Work-around for common API address errors [#3061](https://github.com/FreshRSS/FreshRSS/pull/3061) +* Compatibility + * Add fall-backs for compatibility with OPMLs from The Old Reader [#3071](https://github.com/FreshRSS/FreshRSS/pull/3071) + * Relaxed to allow underscore `_` in feed addresses [#3133](https://github.com/FreshRSS/FreshRSS/pull/3133) +* Deployment + * Docker default image rebased on Debian 10 Buster, with Apache 2.4.38 and PHP 7.3.19 [#3159](https://github.com/FreshRSS/FreshRSS/pull/3159) + * Docker: Alpine image updated to 3.12 with Apache/2.4.46 and PHP 7.3.21 [#3025](https://github.com/FreshRSS/FreshRSS/pull/3025) + * Docker: Remove healthcheck [#3161](https://github.com/FreshRSS/FreshRSS/pull/3161) + * Update example of Dockerfile [#3108](https://github.com/FreshRSS/FreshRSS/pull/3108) +* CLI + * Re-introduce `--api_password` option (vanished in 1.16.0) [#3179](https://github.com/FreshRSS/FreshRSS/pull/3179) + * Modify shebang to be more portable [#3038](https://github.com/FreshRSS/FreshRSS/pull/3038) +* Bug fixing + * SimplePie: Fix compliance with HTTP 301 Moved Permanently [#3180](https://github.com/FreshRSS/FreshRSS/pull/3180) +* i18n + * Add language negotiation when the user is not logged in [#3022](https://github.com/FreshRSS/FreshRSS/pull/3022) + * New United States English [#3060](https://github.com/FreshRSS/FreshRSS/pull/3060) + * Improved British English [#3068](https://github.com/FreshRSS/FreshRSS/pull/3068) + * Improved Dutch [#3063](https://github.com/FreshRSS/FreshRSS/pull/3063) + * Improved Slovak [#3020](https://github.com/FreshRSS/FreshRSS/pull/3020) + * Add a language reference when adding a new one [#3044](https://github.com/FreshRSS/FreshRSS/pull/3044) + * Change how updating a key works [#3072](https://github.com/FreshRSS/FreshRSS/pull/3072) + * Add missing translations [#3034](https://github.com/FreshRSS/FreshRSS/pull/3034) +* Misc. + * Return proper MIME type for favicons [#3032](https://github.com/FreshRSS/FreshRSS/pull/3032) + * Add a migration system [#2760](https://github.com/FreshRSS/FreshRSS/pull/2760) + * Makefile support for FreshRSS extensions [#3042](https://github.com/FreshRSS/FreshRSS/pull/3042) + * Update rules to use Make syntax [#3062](https://github.com/FreshRSS/FreshRSS/pull/3062) + * Refactor the export feature [#3045](https://github.com/FreshRSS/FreshRSS/pull/3045) + + +## 2020-05-31 FreshRSS 1.16.2 + +* Bug fixing (regressions) + * Fix migration of the preference *Show categories unfolded* (from ≤ 1.16.0) to the new *Categories to unfold* [#3019](https://github.com/FreshRSS/FreshRSS/pull/3019) + + +## 2020-05-30 FreshRSS 1.16.1 + +* Features + * Add the possibility to filter by feed IDs [#2892](https://github.com/FreshRSS/FreshRSS/pull/2892) + * like `f:123 more-search` or multiple feed IDs like `f:123,234,345 more-search` or an exclusion like `!f:456,789 more-search` + * Show users last activity date [#2936](https://github.com/FreshRSS/FreshRSS/pull/2936) + * Ability to follow HTML redirections when retrieving full article content [#2985](https://github.com/FreshRSS/FreshRSS/pull/2985) +* API + * New table of compatible clients [#2942](https://github.com/FreshRSS/FreshRSS/pull/2942) + * Expose podcasts in API (used by e.g. FeedMe) [#2898](https://github.com/FreshRSS/FreshRSS/pull/2898) + * Workaround for clients not sending a clean login request [#2961](https://github.com/FreshRSS/FreshRSS/pull/2961) + * Relaxed detection of GReader short/long ID form (for Reeder) [#2957](https://github.com/FreshRSS/FreshRSS/pull/2957) + * Fix warning with FeedReader [#2947](https://github.com/FreshRSS/FreshRSS/pull/2947) + * Fix GReader string type for Usec fields [#2935](https://github.com/FreshRSS/FreshRSS/pull/2935) + * Fix Fever integers type [#2946](https://github.com/FreshRSS/FreshRSS/pull/2946) +* CLI + * JSON output option for `./cli/user-info.php --json` [#2968](https://github.com/FreshRSS/FreshRSS/pull/2968) + * Add language and e-mail in `./cli/user-info.php` [#2958](https://github.com/FreshRSS/FreshRSS/pull/2958) + * Fix filenames for exported files [#2932](https://github.com/FreshRSS/FreshRSS/pull/2932) +* UI + * Access to feed configuration in mobile view [#2938](https://github.com/FreshRSS/FreshRSS/pull/2938) + * Use standard `loading="lazy"` for favicons [#2962](https://github.com/FreshRSS/FreshRSS/pull/2962) + * New option to control which categories to unfold [#2888](https://github.com/FreshRSS/FreshRSS/pull/2888) + * Turn off autocapitalization in login fields [#2907](https://github.com/FreshRSS/FreshRSS/pull/2907) + * Minor layout improvement of help labels [#2911](https://github.com/FreshRSS/FreshRSS/pull/2911) + * Minor layout improvement of checkbox labels [#2937](https://github.com/FreshRSS/FreshRSS/pull/2937) + * Fix styling of search input fields in Safari [#2887](https://github.com/FreshRSS/FreshRSS/pull/2887) + * Fix styling of `.stick` elements in older Webkit browsers [#2995](https://github.com/FreshRSS/FreshRSS/pull/2995) + * Use common CSS template for *Alternative-Dark* theme [#3000](https://github.com/FreshRSS/FreshRSS/pull/3000) + * Upgrade to jQuery 3.5.1 for statistics [#2982](https://github.com/FreshRSS/FreshRSS/pull/2982) +* Compatibility + * Relax OPML parsing to allow importing not strictly-valid ones [#2983](https://github.com/FreshRSS/FreshRSS/pull/2983) +* Deployment + * Docker: Alpine image updated to PHP 7.3.17 + * Add reference documentation for using Apache as a reverse proxy [#2919](https://github.com/FreshRSS/FreshRSS/pull/2919) + * Enforce Unix line endings when checking out via git [#2879](https://github.com/FreshRSS/FreshRSS/pull/2879) +* Bug fixing + * Fix regression when marking all articles as read, risking to mark newer articles as read [#2909](https://github.com/FreshRSS/FreshRSS/pull/2909) + * Fix memory leak when using `lib_phpQuery` for full-content retrieval [#3004](https://github.com/FreshRSS/FreshRSS/pull/3004) + * Fix preview of CSS selector to retrieve full article content [#2993](https://github.com/FreshRSS/FreshRSS/pull/2993) + * Fix PostgreSQL install when user has limited connection rights [#3013](https://github.com/FreshRSS/FreshRSS/pull/3013) + * Fix Docker make cron use `FRESHRSS_ENV` environment variable [#2963](https://github.com/FreshRSS/FreshRSS/pull/2963) + * Fix e-mail validation bug for admins [#2917](https://github.com/FreshRSS/FreshRSS/pull/2917) + * Fix some cases when WebSub-enabled feeds change address [#2922](https://github.com/FreshRSS/FreshRSS/pull/2922) + * Fix ensuring that wrong login attempts generate HTTP 403 (e.g. for fail2ban) [#2903](https://github.com/FreshRSS/FreshRSS/pull/2903) + * Fix archiving options layout in Edge [#2906](https://github.com/FreshRSS/FreshRSS/pull/2906) + * Fix form in statistics for article repartition [#2896](https://github.com/FreshRSS/FreshRSS/pull/2896) + * Fix double-HTML-encoding of category names in statistics [#2897](https://github.com/FreshRSS/FreshRSS/pull/2897) + * Fix password reveal button during install [#2999](https://github.com/FreshRSS/FreshRSS/pull/2999) + * Fix Makefile rules when PHP is not installed [#3010](https://github.com/FreshRSS/FreshRSS/pull/3010) +* i18n + * Improve Simplified Chinese [#2891](https://github.com/FreshRSS/FreshRSS/pull/2891) + * Improve Dutch [#3005](https://github.com/FreshRSS/FreshRSS/pull/3005) + * Reformat i18n files [#2976](https://github.com/FreshRSS/FreshRSS/pull/2976) + * Add a Makefile rule to produce PO4A i18n files [#3006](https://github.com/FreshRSS/FreshRSS/pull/3006) +* Misc. + * Reduce memory consumption during feed refresh [#2972](https://github.com/FreshRSS/FreshRSS/pull/2972), [#2955](https://github.com/FreshRSS/FreshRSS/pull/2955) + * and improved logs containing memory consumption [#2964](https://github.com/FreshRSS/FreshRSS/pull/2964) + * Reduce the risk of DB lock errors [#2899](https://github.com/FreshRSS/FreshRSS/pull/2899) + * Update PHPMailer library to 6.1.5 [#2980](https://github.com/FreshRSS/FreshRSS/pull/2980) + * Initial rules for Markdown linting [#2880](https://github.com/FreshRSS/FreshRSS/pull/2880) + * Add a Makefile rule for linting [#2996](https://github.com/FreshRSS/FreshRSS/pull/2996) + * Add a Makefile rule to refresh feeds [#3014](https://github.com/FreshRSS/FreshRSS/pull/3014) + + +## 2020-04-09 FreshRSS 1.16.0 + +* Features + * Allow multiple users to have administration rights [#2096](https://github.com/FreshRSS/FreshRSS/issues/2096) + * Preview the CSS rule to retrieve full article content [#2778](https://github.com/FreshRSS/FreshRSS/pull/2778) + * Improve CSS selector ordering in the full-text retrieval (`lib_phpQuery`) [#2874](https://github.com/FreshRSS/FreshRSS/pull/2874) + * Allow combining selectors with a comma such as `#article .title, #article .content` + * New search option `!date:` allowing to exclude any date interval [#2869](https://github.com/FreshRSS/FreshRSS/pull/2869) + * For instance `!date:P1W` (exclude articles newer than 1 week), `!pubdate:2019`, `-date:2020-01-01/P5d`, etc. + * New option to show all articles in the favourites view [#2434](https://github.com/FreshRSS/FreshRSS/issues/2434) + * Allow feed to be actualized just after being truncated [#2862](https://github.com/FreshRSS/FreshRSS/pull/2862) + * Fallback to showing a GUID when an article title is empty [#2813](https://github.com/FreshRSS/FreshRSS/pull/2813) +* API + * Supported by [Readrops](https://github.com/readrops/Readrops) (Android, open source) [#2798](https://github.com/FreshRSS/FreshRSS/pull/2798) + * Improve consistency of the default category [#2840](https://github.com/FreshRSS/FreshRSS/pull/2840) + * Return proper `newestItemTimestampUsec` [#2853](https://github.com/FreshRSS/FreshRSS/issues/2853) + * Return `HTTP/1.x 200 OK` for an empty request, to ease discovery [#2855](https://github.com/FreshRSS/FreshRSS/pull/2855) + * Add ability to customise dates shown in API [#2773](https://github.com/FreshRSS/FreshRSS/pull/2773) + * Minor clearing of unused parameters [#2816](https://github.com/FreshRSS/FreshRSS/pull/2816) +* Compatibility + * Support PHP 7.4 +* Bug fixing + * Fix regression causing a login bug in some situations related to e-mail login [#2686](https://github.com/FreshRSS/FreshRSS/pull/2686) + * Fix regression in feed refresh when there are users whose e-mail is not verified [#2694](https://github.com/FreshRSS/FreshRSS/pull/2694) + * Fix PostgreSQL install when using a username different than database name [#2732](https://github.com/FreshRSS/FreshRSS/issues/2732) + * Fix error with advanced searches using SQLite [#2777](https://github.com/FreshRSS/FreshRSS/pull/2777) + * Fix feed action filter when filtering on `author:` [#2806](https://github.com/FreshRSS/FreshRSS/issues/2806) + * Fix warning in WebSub [#2743](https://github.com/FreshRSS/FreshRSS/pull/2743) + * Fix environment variables `COPY_LOG_TO_SYSLOG` and `FRESHRSS_ENV` controlling logging [#2745](https://github.com/FreshRSS/FreshRSS/pull/2745) + * Fix UI flickering when hovering over articles when authors are displayed [#2701](https://github.com/FreshRSS/FreshRSS/issues/2701) + * Fix array error with PHP 7.4 [#2780](https://github.com/FreshRSS/FreshRSS/pull/2780) + * Fix wrong `foreach` in `applyFilterActions` [#2809](https://github.com/FreshRSS/FreshRSS/pull/2809) + * Fix encoding bug in `lib_phpQuery` when fetching the full content of HTML documents with a complex `<head ...>` [#2864](https://github.com/FreshRSS/FreshRSS/issues/2864) + * Fix minor bug in “articles to display” configuration UI [#2767](https://github.com/FreshRSS/FreshRSS/pull/2767) + * Fix sharing with Wallabag [#2817](https://github.com/FreshRSS/FreshRSS/pull/2817) + * Fix UI background bug when hovering over a long title that overlaps the date [#2755](https://github.com/FreshRSS/FreshRSS/issues/2755) +* UI + * Better UI / client network performance (time to first byte) thanks to a data streaming pipeline with `yield` [#2588](https://github.com/FreshRSS/FreshRSS/pull/2588) + * Improved buffering strategy accordingly, with a loading animation while waiting for the first articles to arrive (e.g. complex / slow search) [#2845](https://github.com/FreshRSS/FreshRSS/pull/2845) + * To benefit from it, requires that the full Web stack allow efficient streaming / flushing of data. Check our reference [Docker + Traefik documentation](./Docker/README.md). + * Support RTL (right-to-left) languages [#2776](https://github.com/FreshRSS/FreshRSS/pull/2776) + * New keyboard shortcut <kbd>Alt ⎇</kbd>+<kbd>r</kbd> to park *previous* articles as read [#2843](https://github.com/FreshRSS/FreshRSS/pull/2843) + * In the statistics page, show feeds inactive for 1, 2, 3, 5 years [#2827](https://github.com/FreshRSS/FreshRSS/issues/2827) + * Reset FreshRSS page scroll when restoring a browser session, to avoid inadvertently marking as read new articles [#2842](https://github.com/FreshRSS/FreshRSS/pull/2842) + * Fix scrolling of labels dropdown [#2727](https://github.com/FreshRSS/FreshRSS/pull/2727) + * Enlarge `<audio>` widgets to use the full width of the reading zone, to help navigation in e.g. podcasts [#2875](https://github.com/FreshRSS/FreshRSS/issues/2875) + * Use `<p>` instead of `<pre>` to display `<media:description>` information [#2807](https://github.com/FreshRSS/FreshRSS/issues/2807) + * Show language and e-mail address in the list of users [#2703](https://github.com/FreshRSS/FreshRSS/pull/2703) + * Change logic when using shortcuts to navigate between feeds, in the case some are empty [#2687](https://github.com/FreshRSS/FreshRSS/pull/2687) + * Option to show/hide favicons (e.g. to reduce the number of requests) [#2821](https://github.com/FreshRSS/FreshRSS/pull/2821) + * Improve loader animation colour in the Dark theme [#2753](https://github.com/FreshRSS/FreshRSS/pull/2753) +* SimplePie + * Use distinct cache for feeds retrieved with `#force_feed` [simplepie#643](https://github.com/simplepie/simplepie/pull/643) + * Fix the issue of not being able to immediately try to add an invalid feed again [#2524](https://github.com/FreshRSS/FreshRSS/issues/2524) + * Update to SimplePie 1.5.4 [#2702](https://github.com/FreshRSS/FreshRSS/pull/2702), [#2814](https://github.com/FreshRSS/FreshRSS/pull/2814) + * Require PHP 5.6+, and add PHP 7.4+ compatibility + * Add Russian and German dates + * Etc. +* Deployment + * Docker: Alpine image updated to 3.11 with PHP 7.3.16 and Apache 2.4.43 [#2729](https://github.com/FreshRSS/FreshRSS/pull/2729) + * Move core extensions (shipped with FreshRSS) to their own directory, so that `./extensions/` is solely for third-party extensions [#2837](https://github.com/FreshRSS/FreshRSS/pull/2837) + * This allows mounting `./extensions/` as a Docker volume, to ease adding third-party extensions +* Extensions + * New core extension to find feeds for Google Groups [#2835](https://github.com/FreshRSS/FreshRSS/issues/2835) + * New hooks `check_url_before_add` and `feed_before_actualize` [#2704](https://github.com/FreshRSS/FreshRSS/pull/2704) + * Execute the `entry_before_display` hook also through the API [#2762](https://github.com/FreshRSS/FreshRSS/issues/2762) + * Allow extensions to change CSP (security) rules [#2708](https://github.com/FreshRSS/FreshRSS/pull/2708) + * Expose the article ID in the share system (for a new e-mail sharing extension) [#2707](https://github.com/FreshRSS/FreshRSS/pull/2707) +* i18n + * Improve French [#2878](https://github.com/FreshRSS/FreshRSS/pull/2878) + * Improve German [#2690](https://github.com/FreshRSS/FreshRSS/pull/2690) + * Improve Occitan [#2873](https://github.com/FreshRSS/FreshRSS/pull/2873) + * Improve Portuguese [#2833](https://github.com/FreshRSS/FreshRSS/pull/2833) + * Improve Simplified Chinese [#2730](https://github.com/FreshRSS/FreshRSS/pull/2730) + * Improve Spanish [#2823](https://github.com/FreshRSS/FreshRSS/pull/2823) +* Misc. + * Improve logging of database errors [#2734](https://github.com/FreshRSS/FreshRSS/pull/2734) + * Remove the `min_posts_per_rss` configuration, which made efficient buffering difficult [#2588](https://github.com/FreshRSS/FreshRSS/pull/2588) + * Add a test target to Makefile [#2725](https://github.com/FreshRSS/FreshRSS/pull/2725) + * Fix test suite [#2721](https://github.com/FreshRSS/FreshRSS/pull/2721) + * Refactor request class [#2373](https://github.com/FreshRSS/FreshRSS/pull/2373) + * Remove deprecated *magic quotes* logic [#2698](https://github.com/FreshRSS/FreshRSS/pull/2698) + + +## 2019-11-22 FreshRSS 1.15.3 + +* Bug fixing (regressions from 1.15.x) + * Fix adding categories in MySQL 5.5 [#2670](https://github.com/FreshRSS/FreshRSS/issues/2670) + * Fix saving sharing integrations [#2669](https://github.com/FreshRSS/FreshRSS/pull/2669) +* Compatibility + * Add fallback for systems with old ICU < 4.6 (*International Components for Unicode*) [#2680](https://github.com/FreshRSS/FreshRSS/pull/2680) +* API + * Do not obey `rel=self` feed redirections when WebSub is disabled [#2659](https://github.com/FreshRSS/FreshRSS/pull/2659) +* UI + * Start adding support for RTL (*right-to-left*) languages [#2656](https://github.com/FreshRSS/FreshRSS/pull/2656) +* Deployment + * Docker: Ubuntu image updated to PHP 7.3.11 +* Misc. + * Add more log when errors occur when saving a profile [#2663](https://github.com/FreshRSS/FreshRSS/issues/2663) + * Improve Makefile with port override [#2660](https://github.com/FreshRSS/FreshRSS/pull/2660) + * Update a few external links to HTTPS [#2662](https://github.com/FreshRSS/FreshRSS/pull/2662) + + +## 2019-11-12 FreshRSS 1.15.2 + +* Bug fixing (regressions from 1.15.x) + * Fix CLI failing due to new test against empty usernames [#2644](https://github.com/FreshRSS/FreshRSS/issues/2644) + * Fix CLI install for SQLite [#2648](https://github.com/FreshRSS/FreshRSS/pull/2648) + * Fix database optimize action for MySQL/MariaDB [#2647](https://github.com/FreshRSS/FreshRSS/pull/2647) +* Bug fixing (misc.) + * Sanitize Unicode UTF-8 before insertion of entries, especially needed for PostgreSQL [#2645](https://github.com/FreshRSS/FreshRSS/issues/2645) +* Misc. + * Rename *sharing* action to avoid erroneous blocking by some ad-blockers [#2509](https://github.com/FreshRSS/FreshRSS/issues/2509) + + +## 2019-11-06 FreshRSS 1.15.1 + +* Features + * New approach based on OPML to definite default feeds for new users [#2627](https://github.com/FreshRSS/FreshRSS/pull/2627) +* API + * Always send articles IDs as string, to fix compatibility with Reeder [#2621](https://github.com/FreshRSS/FreshRSS/pull/2621) +* Bug fixing (regressions from 1.15.0) + * Fix database auto-creation at install [#2635](https://github.com/FreshRSS/FreshRSS/pull/2635) + * Fix bug in database size estimation with PostgreSQL for users with uppercase names [#2631](https://github.com/FreshRSS/FreshRSS/pull/2631) + * Reset name of default category (which cannot be customised anymore) [#2639](https://github.com/FreshRSS/FreshRSS/pull/2639) + * Fix UI style details [#2634](https://github.com/FreshRSS/FreshRSS/pull/2634) +* Security + * Improve cookie security with policy `SameSite=Lax` [#2630](https://github.com/FreshRSS/FreshRSS/pull/2630) +* Misc. + * Perform automatic git updates with safer fetch+reset instead of clean+fetch+merge [#2625](https://github.com/FreshRSS/FreshRSS/pull/2625) + + +## 2019-10-31 FreshRSS 1.15.0 + +* CLI + * Command line to export/import any database to/from SQLite [#2496](https://github.com/FreshRSS/FreshRSS/pull/2496) +* Features + * New archiving method, including maximum number of articles per feed, and settings at feed, category, global levels [#2335](https://github.com/FreshRSS/FreshRSS/pull/2335) + * New option to control category sort order [#2592](https://github.com/FreshRSS/FreshRSS/pull/2592) + * New option to display article authors underneath the article title [#2487](https://github.com/FreshRSS/FreshRSS/pull/2487) + * Add e-mail capability [#2476](https://github.com/FreshRSS/FreshRSS/pull/2476), [#2481](https://github.com/FreshRSS/FreshRSS/pull/2481) + * Ability to define default user settings in `data/config-user.custom.php` [#2490](https://github.com/FreshRSS/FreshRSS/pull/2490) + * Including default feeds [#2515](https://github.com/FreshRSS/FreshRSS/pull/2515) + * Allow recreating users if they still exist in database [#2555](https://github.com/FreshRSS/FreshRSS/pull/2555) + * Add optional database connection URI parameters [#2549](https://github.com/FreshRSS/FreshRSS/issues/2549), [#2559](https://github.com/FreshRSS/FreshRSS/pull/2559) + * Allow longer articles with MySQL / MariaDB (up to 16MB compressed instead of 64kB) [#2448](https://github.com/FreshRSS/FreshRSS/issues/2448) + * Add support for terms of service [#2520](https://github.com/FreshRSS/FreshRSS/pull/2520) + * Add sharing with [Lemmy](https://github.com/dessalines/lemmy) [#2510](https://github.com/FreshRSS/FreshRSS/pull/2510) +* API + * Add support for [Reeder-4](https://www.reederapp.com/) client [#2513](https://github.com/FreshRSS/FreshRSS/issues/2513) +* Compatibility + * Require at least PHP 5.6+ [#2495](https://github.com/FreshRSS/FreshRSS/pull/2495), [#2527](https://github.com/FreshRSS/FreshRSS/pull/2527), [#2585](https://github.com/FreshRSS/FreshRSS/pull/2585) + * Require `php-json` and remove remove `JSON.php` fallback [#2528](https://github.com/FreshRSS/FreshRSS/pull/2528) + * Require at least PostgreSQL 9.5+ [#2554](https://github.com/FreshRSS/FreshRSS/pull/2554) +* Deployment + * Take advantage of `mod_authz_core` instead of `mod_access_compat` when running on Apache 2.4+ [#2461](https://github.com/FreshRSS/FreshRSS/pull/2461) + * Docker: Ubuntu image updated to 19.10 with PHP 7.3.8 and Apache 2.4.41 [#2577](https://github.com/FreshRSS/FreshRSS/pull/2577) + * Docker: Alpine image updated to 3.10 with PHP 7.3.11 and Apache 2.4.41 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) + * Docker: Increase default PHP POST/upload size to ease importing ZIP files [#2563](https://github.com/FreshRSS/FreshRSS/pull/2563) + * New environment variable `COPY_LOG_TO_SYSLOG` to see all logs at once in e.g. `docker logs -f` [#2591](https://github.com/FreshRSS/FreshRSS/pull/2591) + * New environment variable `FRESHRSS_ENV` to control Minz development mode [#2508](https://github.com/FreshRSS/FreshRSS/pull/2508) + * Git ignore `themes/xTheme-*` [#2511](https://github.com/FreshRSS/FreshRSS/pull/2511) +* Bug fixing + * Fix missing PHP `opcache` package in Docker Alpine [#2498](https://github.com/FreshRSS/FreshRSS/pull/2498) + * Fix IE11 / Edge keyboard compatibility [#2507](https://github.com/FreshRSS/FreshRSS/pull/2507) + * Use `<dc:creator>` instead of `<author>` for RSS 2.0 outputs [#2542](https://github.com/FreshRSS/FreshRSS/pull/2542) + * Fix PostgreSQL and SQLite database size estimation [#2562](https://github.com/FreshRSS/FreshRSS/pull/2562) + * Fix broken SVG icons in Swage theme [#2568](https://github.com/FreshRSS/FreshRSS/issues/2568), [#2571](https://github.com/FreshRSS/FreshRSS/pull/2571) +* Security + * Fix referrer vulnerability when opening an article original link with a shortcut [#2506](https://github.com/FreshRSS/FreshRSS/pull/2506) + * Slight refactoring of access check [#2471](https://github.com/FreshRSS/FreshRSS/pull/2471) +* UI + * Optimize dynamic favicon for HiDPI screens [#2539](https://github.com/FreshRSS/FreshRSS/pull/2539) + * Hide the admin checkbox if user is not admin [#2531](https://github.com/FreshRSS/FreshRSS/pull/2531) +* I18n + * Add Slovak [#2497](https://github.com/FreshRSS/FreshRSS/pull/2497) + * Improve Dutch [#2503](https://github.com/FreshRSS/FreshRSS/pull/2503) + * Improve Occitan [#2519](https://github.com/FreshRSS/FreshRSS/pull/2519), [#2583](https://github.com/FreshRSS/FreshRSS/pull/2583), [#2603](https://github.com/FreshRSS/FreshRSS/pull/2603) +* Extensions + * Additional hooks [#2482](https://github.com/FreshRSS/FreshRSS/pull/2482) + * New call to change the layout [#2467](https://github.com/FreshRSS/FreshRSS/pull/2467) +* Misc. + * Make our JavaScript compatible with LibreJS [#2576](https://github.com/FreshRSS/FreshRSS/pull/2576) + * PDO (database) refactoring for code simplification [#2522](https://github.com/FreshRSS/FreshRSS/pull/2522) + * Automatic check of CSS syntax in Travis CI [#2477](https://github.com/FreshRSS/FreshRSS/pull/2477) + * Make our Travis greener by reducing redundant tests [#2589](https://github.com/FreshRSS/FreshRSS/pull/2589) + * Remove support for sharing with Google+ [#2464](https://github.com/FreshRSS/FreshRSS/pull/2464) + * Redirect connected users accessing registration page [#2530](https://github.com/FreshRSS/FreshRSS/pull/2530) + * Add Makefile [#2481](https://github.com/FreshRSS/FreshRSS/pull/2481) + + +## 2019-07-25 FreshRSS 1.14.3 + +* UI + * New configuration page for each category [#2369](https://github.com/FreshRSS/FreshRSS/issues/2369) + * Update shortcut configuration page [#2405](https://github.com/FreshRSS/FreshRSS/issues/2405) + * CSS style for printing [#2149](https://github.com/FreshRSS/FreshRSS/issues/2149) + * Do not hide multiple `<br />` tags [#2437](https://github.com/FreshRSS/FreshRSS/issues/2437) + * Updated to jQuery 3.4.1 (only for statistics page) [#2424](https://github.com/FreshRSS/FreshRSS/pull/2424) +* Bug fixing + * Fix wrong mark-as-read limit [#2429](https://github.com/FreshRSS/FreshRSS/issues/2429) + * Fix API call for removing a category [#2411](https://github.com/FreshRSS/FreshRSS/issues/2411) + * Fix user self-registration [#2381](https://github.com/FreshRSS/FreshRSS/issues/2381) + * Make CGI Authorization configuration for API more compatible [#2446](https://github.com/FreshRSS/FreshRSS/issues/2446) + * Fix refresh icon in Swage theme [#2375](https://github.com/FreshRSS/FreshRSS/issues/2375) + * Fix message banner in Swage theme [#2379](https://github.com/FreshRSS/FreshRSS/issues/2379) + * Docker: Add `php-gmp` for API support in Ubuntu 32-bit [#2450](https://github.com/FreshRSS/FreshRSS/pull/2450) +* Deployment + * Docker: Add automatic health check [#2438](https://github.com/FreshRSS/FreshRSS/pull/2438), [#2455](https://github.com/FreshRSS/FreshRSS/pull/2455) + * Docker: Add a version for ARM architecture such as for Raspberry Pi [#2436](https://github.com/FreshRSS/FreshRSS/pull/2436) + * Docker: Ubuntu image updated to 19.04 with PHP 7.2.19 and Apache 2.4.38 [#2422](https://github.com/FreshRSS/FreshRSS/pull/2422) + * Docker: Alpine image updated to 3.10 with PHP 7.3.7 and Apache 2.4.39 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) + * Add `hadolint` automatic check of Docker files in Travis [#2456](https://github.com/FreshRSS/FreshRSS/pull/2456) +* Security + * Allow `@-` as valid characters in usernames (i.e. allow most e-mails) [#2391](https://github.com/FreshRSS/FreshRSS/issues/2391) +* I18n + * Improve Occitan [#2358](https://github.com/FreshRSS/FreshRSS/pull/2358) +* Misc. + * New parameter `?maxFeeds=10` to control the max number of feeds to refresh manually [#2388](https://github.com/FreshRSS/FreshRSS/pull/2388) + * Default to SQLite during install [#2443](https://github.com/FreshRSS/FreshRSS/pull/2443) + * Add automatic check of shell scripts in Travis with `shellcheck` and `shfmt` [#2454](https://github.com/FreshRSS/FreshRSS/pull/2454) + + +## 2019-04-08 FreshRSS 1.14.2 + +* Bug fixing (regressions introduced in 1.14.X) + * Fix PHP 5.5- compatibility [#2359](https://github.com/FreshRSS/FreshRSS/issues/2359) +* Bug fixing (misc.) + * Fix minor code syntax warning in API [#2362](https://github.com/FreshRSS/FreshRSS/pull/2362) +* Misc. + * Add Travis check for PHP syntax [#2361](https://github.com/FreshRSS/FreshRSS/pull/2361) + + +## 2019-04-07 FreshRSS 1.14.1 + +* Bug fixing (regressions introduced in 1.14.0) + * Fix *load more articles* when using ascending order [#2314](https://github.com/FreshRSS/FreshRSS/issues/2314) + * Fix cron in the Ubuntu flavour of the Docker image [#2319](https://github.com/FreshRSS/FreshRSS/issues/2319) + * Fix the use of arrow keyboard keys for shortcuts [#2316](https://github.com/FreshRSS/FreshRSS/issues/2316) + * Fix control+click or middle-click for opening articles in a background tab [#2310](https://github.com/FreshRSS/FreshRSS/issues/2310) + * Fix the naming of the option to unfold categories [#2307](https://github.com/FreshRSS/FreshRSS/issues/2307) + * Fix shortcut problem when using unfolded articles [#2328](https://github.com/FreshRSS/FreshRSS/issues/2328) + * Fix auto-hiding articles [#2323](https://github.com/FreshRSS/FreshRSS/issues/2323) + * Fix scroll functions with Edge [#2337](https://github.com/FreshRSS/FreshRSS/pull/2337) + * Fix drop-down menu warning [#2353](https://github.com/FreshRSS/FreshRSS/pull/2353) + * Fix delay for individual mark-as-read actions [#2332](https://github.com/FreshRSS/FreshRSS/issues/2332) + * Fix scroll functions in Edge [#2337](https://github.com/FreshRSS/FreshRSS/pull/2337) +* Bug fixing (misc.) + * Fix extensions in Windows [#994](https://github.com/FreshRSS/FreshRSS/issues/994) + * Fix import of empty articles [#2351](https://github.com/FreshRSS/FreshRSS/pull/2351) + * Fix quote escaping on CLI i18n tools [#2355](https://github.com/FreshRSS/FreshRSS/pull/2355) +* UI + * Better handling of bad Ajax requests and fast page unload (ask confirmation) [#2346](https://github.com/FreshRSS/FreshRSS/pull/2346) +* I18n + * Improve Dutch [#2312](https://github.com/FreshRSS/FreshRSS/pull/2312) +* Misc. + * Check JavaScript (jshint) in Travis continuous integration [#2315](https://github.com/FreshRSS/FreshRSS/pull/2315) + * Add PHP 7.3 to Travis [#2317](https://github.com/FreshRSS/FreshRSS/pull/2317) + + +## 2019-03-31 FreshRSS 1.14.0 + +* Features + * *Filter actions* feature, to auto-mark-as-read based on a search query per feed [#2275](https://github.com/FreshRSS/FreshRSS/pull/2275) + * Improve account change when using the *unsafe automatic login* [#2288](https://github.com/FreshRSS/FreshRSS/issues/2288) +* UI + * New themes *Ansum* and *Mapco* [#2245](https://github.com/FreshRSS/FreshRSS/pull/2245) + * Rewrite jQuery and keyboard shortcut code as native JavaScript ES6 (except for graphs on the statistics pages) [#2234](https://github.com/FreshRSS/FreshRSS/pull/2234) + * Batch scroll-as-read for better client-side and server-side performance [#2199](https://github.com/FreshRSS/FreshRSS/pull/2199) + * Keyboard-shortcut navigation at end of feed or category continues to the next one [#2255](https://github.com/FreshRSS/FreshRSS/pull/2255) + * Changed jump behaviour after marking articles as read [#2206](https://github.com/FreshRSS/FreshRSS/issues/2206) + * More reactive auto-loading of articles [#2268](https://github.com/FreshRSS/FreshRSS/pull/2268) +* Deployment + * New default Docker image based on Ubuntu (~3 times faster, but ~2.5 times larger) [#2205](https://github.com/FreshRSS/FreshRSS/pull/2205) + * Using Ubuntu 18.10 with PHP 7.2.15 and Apache 2.4.34 + * Alpine version updated to Alpine 3.9 with PHP 7.2.14 and Apache 2.4.38 [#2238](https://github.com/FreshRSS/FreshRSS/pull/2238) +* Bug fixing + * Fix feed option for marking modified articles as unread [#2200](https://github.com/FreshRSS/FreshRSS/issues/2200) + * Fix API HTTP Authorization case-sensitivity issue introduced in FreshRSS 1.13.1 [#2233](https://github.com/FreshRSS/FreshRSS/issues/2233) + * Fix breaking warning in Fever API [#2239](https://github.com/FreshRSS/FreshRSS/issues/2239) + * Fix encoding problem in Fever API [#2241](https://github.com/FreshRSS/FreshRSS/issues/2241) + * Fix author semi-colon prefix in Fever API [#2281](https://github.com/FreshRSS/FreshRSS/issues/2281) + * Fix the reading of the environment variable `COPY_SYSLOG_TO_STDERR` [#2260](https://github.com/FreshRSS/FreshRSS/pull/2260) + * Session fix when form login + HTTP auth are used [#2286](https://github.com/FreshRSS/FreshRSS/pull/2286) + * Fix `cli/user-info.php` for accounts using a version of the database older than 1.12.0 [#2291](https://github.com/FreshRSS/FreshRSS/issues/2291) +* CLI + * Better validation of parameters [#2046](https://github.com/FreshRSS/FreshRSS/issues/2046) + * New option `--header` to `cli/user-info.php` [#2296](https://github.com/FreshRSS/FreshRSS/pull/2296) +* API + * Supported by [Readably](https://play.google.com/store/apps/details?id=com.isaiasmatewos.readably) (client for Android using Fever API) +* I18n + * Improve Korean [#2242](https://github.com/FreshRSS/FreshRSS/pull/2242) + * Improve Occitan [#2253](https://github.com/FreshRSS/FreshRSS/pull/2253) +* Security + * Reworked the CSRF token interaction with the session in some edge cases [#2290](https://github.com/FreshRSS/FreshRSS/pull/2290) + * Remove deprecated CSP `child-src` instruction (was already replaced by `frame-src`) [#2250](https://github.com/FreshRSS/FreshRSS/pull/2250) + * Ensure entry IDs are unique and cannot be set by feeds [#2273](https://github.com/FreshRSS/FreshRSS/issues/2273) +* Misc. + * Remove HHMV from Travis continuous integration [#2249](https://github.com/FreshRSS/FreshRSS/pull/2249) + + +## 2019-01-26 FreshRSS 1.13.1 + +* Features + * Include articles with custom labels during export [#2196](https://github.com/FreshRSS/FreshRSS/issues/2196) + * Export/import articles read/unread state [#2226](https://github.com/FreshRSS/FreshRSS/pull/2226) + * Import FeedBin, and more robust general import [#2228](https://github.com/FreshRSS/FreshRSS/pull/2228) +* Bug fixing + * Fix missing HTTP `X-Forwarded-Prefix` in cookie path behind a reverse-proxy [#2201](https://github.com/FreshRSS/FreshRSS/pull/2201) +* Deployment + * Docker improvements [#2202](https://github.com/FreshRSS/FreshRSS/pull/2202) + * Performance: Hard-include Apache .htaccess to avoid having to scan for changes in those files + * Performance: Disable unused Apache security check of symlinks + * Performance: Disable unused Apache modules + * Add option to mount custom `.htaccess` for HTTP authentication + * Docker logs gets PHP syslog messages (e.g. from cron job and when fetching external content) + * New environment variable `COPY_SYSLOG_TO_STDERR` or in `constants.local.php` to copy PHP syslog messages to STDERR [#2213](https://github.com/FreshRSS/FreshRSS/pull/2213) + * New `TZ` timezone environment variable [#2153](https://github.com/FreshRSS/FreshRSS/issues/2153) + * Run Docker cron job with Apache user instead of root [#2208](https://github.com/FreshRSS/FreshRSS/pull/2208) + * Accept HTTP header `X-WebAuth-User` for delegated HTTP Authentication [#2204](https://github.com/FreshRSS/FreshRSS/pull/2204) +* Extensions + * Trigger a `freshrss:openArticle` JavaScript event [#2222](https://github.com/FreshRSS/FreshRSS/pull/2222) +* API + * Automatic test of API configuration [#2207](https://github.com/FreshRSS/FreshRSS/pull/2207) + * Performance + compatibility: Use Apache `SetEnvIf` module if available and fall-back to `RewriteRule` [#2202](https://github.com/FreshRSS/FreshRSS/pull/2202) +* Security + * Fixes when HTTP user does not exist in FreshRSS [#2204](https://github.com/FreshRSS/FreshRSS/pull/2204) +* I18n + * Improve Dutch [#2221](https://github.com/FreshRSS/FreshRSS/pull/2221) + * Improve Occitan [#2230](https://github.com/FreshRSS/FreshRSS/pull/2230) +* Accessibility + * Remove alt in logo [#2209](https://github.com/FreshRSS/FreshRSS/pull/2209) + + +## 2018-12-22 FreshRSS 1.13.0 + +* API + * Improvements to the Google Reader API [#2093](https://github.com/FreshRSS/FreshRSS/pull/2093) + * Support for [Vienna RSS](http://www.vienna-rss.com/) (client for Mac OS X) [#2091](https://github.com/FreshRSS/FreshRSS/issues/2091) + * Contributions to WebSub in third-party systems to support instant push notifications + from [Mastodon](https://joinmastodon.org) 2.6.2+ and [Friendica](https://friendi.ca) 2018.12+ + [#mastodon/9302](https://github.com/tootsuite/mastodon/pull/9302), [#friendica/6137](https://github.com/friendica/friendica/pull/6137) + * Rename the PubSubHubbub protocol to use the new standard [WebSub](https://www.w3.org/TR/websub/) name [#2184](https://github.com/FreshRSS/FreshRSS/pull/2184) +* Features + * Ability to import XML files exported from Tiny-Tiny-RSS [#2079](https://github.com/FreshRSS/FreshRSS/issues/2079) + * Ability to show all the feeds that have a warning [#2146](https://github.com/FreshRSS/FreshRSS/issues/2146) + * Share with Pinboard [#1972](https://github.com/FreshRSS/FreshRSS/issues/1972) +* UI + * Reworked the scrolling of the categories/feeds sidebar [#2117](https://github.com/FreshRSS/FreshRSS/pull/2117) + * Native styled scrollbars in Firefox 64+, Chrome. + * Show collapsed sidebar in the reader mode [#2169](https://github.com/FreshRSS/FreshRSS/issues/2169) + * New shortcuts to move to previous/next article without opening it [#1767](https://github.com/FreshRSS/FreshRSS/pull/1767) + * Fix regression from 1.12.0 preventing from closing an article [#2085](https://github.com/FreshRSS/FreshRSS/issues/2085) + * Improvements of the Swage theme [#2088](https://github.com/FreshRSS/FreshRSS/pull/2088), [#2094](https://github.com/FreshRSS/FreshRSS/pull/2094) + * Many style improvements [#2108](https://github.com/FreshRSS/FreshRSS/pull/2108), [#2115](https://github.com/FreshRSS/FreshRSS/issues/2115), + [#1620](https://github.com/FreshRSS/FreshRSS/issues/1620), [#2089](https://github.com/FreshRSS/FreshRSS/pull/2089), + [#2122](https://github.com/FreshRSS/FreshRSS/pull/2122), [#2161](https://github.com/FreshRSS/FreshRSS/pull/2161) +* Deployment + * Support for HTTP `X-Forwarded-Prefix` to ease the use of reverse proxies [#2191](https://github.com/FreshRSS/FreshRSS/pull/2191) + * Updated Docker + Træfik + Let’s Encrypt deployment guide [#2189](https://github.com/FreshRSS/FreshRSS/pull/2189) + * Docker image updated to Alpine 3.8.2 with PHP 7.2.13 and Apache 2.4.35 + * Fix `.dockerignore` [#2195](https://github.com/FreshRSS/FreshRSS/pull/2195) +* I18n + * Occitan [#2110](https://github.com/FreshRSS/FreshRSS/pull/2110) +* SimplePie + * Update to SimplePie 1.5.2 [#2136](https://github.com/FreshRSS/FreshRSS/pull/2136) + * Fix some sanitizing in authors / tags + * Strip embedded SVG images for now [#2135](https://github.com/FreshRSS/FreshRSS/pull/2135) +* Security + * Fix HTML injections reported by [Netsparker](https://www.netsparker.com) [#2121](https://github.com/FreshRSS/FreshRSS/issues/2121) +* Bug fixing + * Fix warning in `tempnam()` with PHP 7.1+ affecting ZIP export [#2134](https://github.com/FreshRSS/FreshRSS/pull/2134) + * Fix print for views with unfolded articles [#2130](https://github.com/FreshRSS/FreshRSS/issues/2130) + * Fix notifications in reader view [#1407](https://github.com/FreshRSS/FreshRSS/issues/1407) + * Fix sharing with Movim [#1781](https://github.com/FreshRSS/FreshRSS/issues/1781) +* Misc. + * Add username in configuration menu and exported files [#2133](https://github.com/FreshRSS/FreshRSS/pull/2133) + * New option to set the duration of the cookie session [#2137](https://github.com/FreshRSS/FreshRSS/pull/2137) + * Add [donation option via Liberapay](https://liberapay.com/FreshRSS/) [#1694](https://github.com/FreshRSS/FreshRSS/issues/1694) + + +## 2018-10-28 FreshRSS 1.12.0 + +* Features + * Ability to add *labels* (custom tags) to articles [#928](https://github.com/FreshRSS/FreshRSS/issues/928) + * Also available through Google Reader API (full support in News+, partial in FeedMe, EasyRSS). No support in Fever API. + * Handle article tags containing spaces, as well as comma-separated tags [#2023](https://github.com/FreshRSS/FreshRSS/pull/2023) + * Handle authors containing spaces, as well as comma or semi-colon separated authors [#2025](https://github.com/FreshRSS/FreshRSS/pull/2025) + * Searches by tag, author, etc. accept Unicode characters [#2025](https://github.com/FreshRSS/FreshRSS/pull/2025) + * New option to disable cache for feeds with invalid HTTP caching [#2052](https://github.com/FreshRSS/FreshRSS/pull/2052) +* UI + * New theme *Swage* [#2069](https://github.com/FreshRSS/FreshRSS/pull/2069) + * Click on authors to initiate a search by author [#2025](https://github.com/FreshRSS/FreshRSS/pull/2025) + * Fix CSS for button alignments in older Chrome versions [#2020](https://github.com/FreshRSS/FreshRSS/pull/2020) + * Updated to jQuery 3.3.1 [#2021](https://github.com/FreshRSS/FreshRSS/pull/2021) + * Updated to bcrypt.js 2.4.4 [#2022](https://github.com/FreshRSS/FreshRSS/pull/2022) +* Security + * Improved flow for password change (avoid error 403) [#2056](https://github.com/FreshRSS/FreshRSS/issues/2056) + * Allow dot `.` in username (best to avoid, though) [#2061](https://github.com/FreshRSS/FreshRSS/issues/2061) +* Performance + * Remove some counterproductive preload / prefetch rules [#2040](https://github.com/FreshRSS/FreshRSS/pull/2040) + * Improved fast flush (earlier transfer, fetching of resources, and rendering) [#2045](https://github.com/FreshRSS/FreshRSS/pull/2045) + * Only available for Apache running PHP as module (not for NGINX, or PHP as CGI / FPM) because we want to keep compression +* Deployment + * Fix Docker bug with some cron values [#2032](https://github.com/FreshRSS/FreshRSS/pull/2032) + * Perform `git clean -f -d -f` (removes unknown files and folders) before git auto-update method [#2036](https://github.com/FreshRSS/FreshRSS/pull/2036) + * Docker image updated to Alpine 3.8.1 with PHP 7.2.8 and Apache 2.4.34 +* Bug fixing + * Make article GUIDs case-sensitive also with MySQL [#2077](https://github.com/FreshRSS/FreshRSS/issues/2077) + * Ask confirmation for important configuration actions [#2048](https://github.com/FreshRSS/FreshRSS/pull/2048) + * Fix database size in the Web UI for users about to be deleted [#2047](https://github.com/FreshRSS/FreshRSS/pull/2047) + * Fix actualize bug after install [#2044](https://github.com/FreshRSS/FreshRSS/pull/2044) + * Fix manual / Web actualize for which the final commit could be done too early [#2081](https://github.com/FreshRSS/FreshRSS/pull/2081) + * Fix regression from version 1.11.2, which might have wrongly believed that the server address was private [#2084](https://github.com/FreshRSS/FreshRSS/pull/2084) + * Please check in `data/config.php` that you have `'pubsubhubbub_enabled' => true,` if your server has a public address +* Extensions + * Update built-in extension to again fix Tumblr feeds from European Union due to GDPR [#2053](https://github.com/FreshRSS/FreshRSS/pull/2053) +* I18n + * Fix missing German translations, e.g. for *Sharing with Known* [#2059](https://github.com/FreshRSS/FreshRSS/pull/2059) +* Misc. + * Better port detection behind a proxy [#2031](https://github.com/FreshRSS/FreshRSS/issues/2031) + + +## 2018-09-09 FreshRSS 1.11.2 + +* Features + * New menu to mark selected articles (view) as unread [#1966](https://github.com/FreshRSS/FreshRSS/issues/1966) + * Share with LinkedIn [#1960](https://github.com/FreshRSS/FreshRSS/pull/1960) +* Deployment + * Update Docker image to Alpine 3.8 with PHP 7.2 [#1956](https://github.com/FreshRSS/FreshRSS/pull/1956) +* Bug fixing + * Fix bugs when searching with special characters (e.g. preventing marking as read) [#1944](https://github.com/FreshRSS/FreshRSS/issues/1944) + * Avoid cutting in the middle of a multi-byte Unicode character [#1996](https://github.com/FreshRSS/FreshRSS/pull/1996) + * Fix username check in API to allow underscores [#1955](https://github.com/FreshRSS/FreshRSS/issues/1955) + * Fix Fever API to allow 32-bit architectures [#1962](https://github.com/FreshRSS/FreshRSS/issues/1962) + * Fix CSS font bug for *Origine-compact* theme [#1990](https://github.com/FreshRSS/FreshRSS/issues/1990) + * Fix last user activity for SQLite and PostgreSQL [#2008](https://github.com/FreshRSS/FreshRSS/pull/2008) + * Fix article counts with SQLite [#2009](https://github.com/FreshRSS/FreshRSS/pull/2009) + * Fix some automatic URL generation cases [#1946](https://github.com/FreshRSS/FreshRSS/issues/1946) +* Security + * Avoid feed credentials in logs [#1949](https://github.com/FreshRSS/FreshRSS/pull/1949) +* UI + * Improved mark-as-read the bottom articles during scrolling [#1973](https://github.com/FreshRSS/FreshRSS/issues/1973) + * Show all authors for articles with multiple authors [#1968](https://github.com/FreshRSS/FreshRSS/issues/1968) +* I18n + * Updated Korean [#1985](https://github.com/FreshRSS/FreshRSS/pull/1985) +* Mics. + * Auto-login after self user creation [#1928](https://github.com/FreshRSS/FreshRSS/issues/1928) + * Better test if server has public address [#2010](https://github.com/FreshRSS/FreshRSS/pull/2010) + * Allow `-` in database name at install time [#2005](https://github.com/FreshRSS/FreshRSS/pull/2005) + + +## 2018-06-16 FreshRSS 1.11.1 + +* Features + * Better support of `media:` tags such as thumbnails and descriptions (e.g. for YouTube) [#944](https://github.com/FreshRSS/FreshRSS/issues/944) +* Extensions + * New extension mechanism allowing changing HTTP headers and other SimplePie parameters [#1924](https://github.com/FreshRSS/FreshRSS/pull/1924) + * Built-in extension to fix Tumblr feeds from European Union due to GDPR [#1894](https://github.com/FreshRSS/FreshRSS/issues/1894) +* Bug fixing + * Fix bug in case of bad i18n in extensions [#1797](https://github.com/FreshRSS/FreshRSS/issues/1797) + * Fix extension callback for updated articles and PubSubHubbub [#1926](https://github.com/FreshRSS/FreshRSS/issues/1926) + * Fix regression in fetching full articles content [#1917](https://github.com/FreshRSS/FreshRSS/issues/1917) + * Fix several bugs in the new Fever API [#1930](https://github.com/FreshRSS/FreshRSS/issues/1930) + * Updated sharing to Mastodon [#1904](https://github.com/FreshRSS/FreshRSS/issues/1904) + + +## 2018-06-03 FreshRSS 1.11.0 + +* API + * Add support for Fever compatible API, enabling more clients [#1406](https://github.com/FreshRSS/FreshRSS/pull/1406) + * iOS: [Fiery Feeds](https://apps.apple.com/app/fiery-feeds-rss-reader/id1158763303), [Unread](https://apps.apple.com/app/unread-rss-reader/id1252376153) + * MacOS: [Readkit](https://apps.apple.com/app/readkit/id588726889) +* Features + * Several per-feed options (implemented in JSON) [#1838](https://github.com/FreshRSS/FreshRSS/pull/1838) + * Mark updated articles as read [#891](https://github.com/FreshRSS/FreshRSS/issues/891) + * Mark as read upon reception [#1702](https://github.com/FreshRSS/FreshRSS/issues/1702) + * Only for admin user [#1905](https://github.com/FreshRSS/FreshRSS/pull/1905) + * Feed cURL timeout + * Ignore SSL (unsafe) [#1811](https://github.com/FreshRSS/FreshRSS/issues/1811) + * Light Boolean search implementation [#879](https://github.com/FreshRSS/FreshRSS/issues/879) + * All parts are implicitly `AND` (which must not be written), except if `OR` is stated. + * No use of parentheses. Support for quotes to disable the Boolean search, like `"This or that"`. + * Example: `Hello intitle:World OR date:P1D example OR author:Else intitle:"This or that"` + * Share with Pocket [#1884](https://github.com/FreshRSS/FreshRSS/issues/1884) +* Deployment + * Includes an optional cron daemon in Docker to refresh feeds automatically [#1869](https://github.com/FreshRSS/FreshRSS/issues/1869) + * Docker Compose example [#1882](https://github.com/FreshRSS/FreshRSS/pull/1882) +* Bug fixing + * Fix Docker bug affecting Apache `CustomLog` (unwanted local copy of access logs), `ErrorLog`, `Listen` (IPv6 bug) [#1873](https://github.com/FreshRSS/FreshRSS/pull/1873) + * Fix muted feeds that were not actually muted [#1844](https://github.com/FreshRSS/FreshRSS/issues/1844) + * Fix null exception in shares, showing only the first article [#1824](https://github.com/FreshRSS/FreshRSS/issues/1824) + * Fix error during import [#1890](https://github.com/FreshRSS/FreshRSS/issues/1890) + * Fix additional automatic sequence bug with PostgreSQL [#1907](https://github.com/FreshRSS/FreshRSS/pull/1907) + * Fix errors in case of empty/wrong username when updating user settings [#1857](https://github.com/FreshRSS/FreshRSS/pull/1857) + * Fixes in subscription menu [#1858](https://github.com/FreshRSS/FreshRSS/pull/1858) + * Fix allowing Unix sockets for MySQL and PostgreSQL [#1888](https://github.com/FreshRSS/FreshRSS/issues/1888) + * Fix `create-user` CLI option `no_default_feeds` [#1900](https://github.com/FreshRSS/FreshRSS/pull/1900) +* SimplePie + * Work-around for feeds with invalid non-unique GUIDs [#1887](https://github.com/FreshRSS/FreshRSS/pull/1887) + * Fix for Atom feeds using a namespace for type [#1892](https://github.com/FreshRSS/FreshRSS/issues/1892) + * Remove some warnings during parsing attempts of some bad feeds [#1909](https://github.com/FreshRSS/FreshRSS/pull/1909) +* Security + * Strip HTTP credentials from HTTP Referer in SimplePie [#1891](https://github.com/FreshRSS/FreshRSS/pull/1891) + * Use `autocomplete="new-password"` to prevent form autocomplete in user management pages (fix bug with e.g. Firefox) [#1877](https://github.com/FreshRSS/FreshRSS/pull/1877) +* UI + * Add tooltips on user queries [#1823](https://github.com/FreshRSS/FreshRSS/pull/1823) +* I18n + * Improve i18n tools [#1829](https://github.com/FreshRSS/FreshRSS/pull/1829) + * Updated German [#1856](https://github.com/FreshRSS/FreshRSS/pull/1856) + * Updated Dutch [#1903](https://github.com/FreshRSS/FreshRSS/pull/1903) +* Misc. + * Use cURL for fetching full articles content [#1870](https://github.com/FreshRSS/FreshRSS/issues/1870) + * Add error log information when SQLite has not enough temp space [#1816](https://github.com/FreshRSS/FreshRSS/issues/1816) + * Allow extension dir to be a symlink [#1911](https://github.com/FreshRSS/FreshRSS/pull/1911) + + +## 2018-03-09 FreshRSS 1.10.2 (Docker only) + +* Bug fixing + * Fix Docker image for OPML import [#1819](https://github.com/FreshRSS/FreshRSS/pull/1819) + * Fix Docker image for CSS selectors [#1821](https://github.com/FreshRSS/FreshRSS/issues/1821) + * Fix Docker other missing PHP extensions [#1822](https://github.com/FreshRSS/FreshRSS/pull/1822) + + +## 2018-03-04 FreshRSS 1.10.1 + +* Deployment + * New Docker image, smaller (based on Alpine Linux) and newer (with PHP 7.1) [#1813](https://github.com/FreshRSS/FreshRSS/pull/1813) + * with [automated build](https://hub.docker.com/r/freshrss/freshrss/) for x86-64 (AMD64) architectures +* CLI + * New command `./cli/prepare.php` to make the needed sub-directories of the `./data/` directory [#1813](https://github.com/FreshRSS/FreshRSS/pull/1813) +* Bug fixing + * Fix API bug for EasyRSS [#1799](https://github.com/FreshRSS/FreshRSS/issues/1799) + * Fix login bug when using double authentication (HTTP + Web form) [#1807](https://github.com/FreshRSS/FreshRSS/issues/1807) + * Fix database upgrade for FreshRSS versions older than 1.1.1 [#1803](https://github.com/FreshRSS/FreshRSS/issues/1803) + * Fix cases of double port in FreshRSS public URL [#1815](https://github.com/FreshRSS/FreshRSS/pull/1815) +* UI + * Add tooltips on share configuration buttons [#1805](https://github.com/FreshRSS/FreshRSS/pull/1805) +* Misc. + * Move `./data/shares.php` to `./app/shares.php` to facilitate updates [#1812](https://github.com/FreshRSS/FreshRSS/pull/1812) + * Show article author email when there is no author name [#1801](https://github.com/FreshRSS/FreshRSS/pull/1801) + * Improve translation tools [#1808](https://github.com/FreshRSS/FreshRSS/pull/1808) + + +## 2018-02-24 FreshRSS 1.10.0 + +* API + * Add compatibility with [FeedMe](https://play.google.com/store/apps/details?id=com.seazon.feedme) 3.5.3+ on Android [#1774](https://github.com/FreshRSS/FreshRSS/pull/1774) +* Features + * Ability to pause feeds, and to hide them from categories [#1750](https://github.com/FreshRSS/FreshRSS/pull/1750) + * Ability for the admin to reset a user’s password [#960](https://github.com/FreshRSS/FreshRSS/issues/960) +* Security + * Allow HTTP Auth login with `REDIRECT_REMOTE_USER` when using Apache internal redirect [#1772](https://github.com/FreshRSS/FreshRSS/pull/1772) +* UI + * New icons for marking as favourite and marking as read in the Reading View [#603](https://github.com/FreshRSS/FreshRSS/issues/603) + * Add shortcuts to switch views [#1755](https://github.com/FreshRSS/FreshRSS/pull/1755) +* Bug fixing + * Fix login bug when HTTP `REMOTE_USER` changes (used by YunoHost) [#1756](https://github.com/FreshRSS/FreshRSS/pull/1756) + * Fix warning in PHP 7.2 [#1739](https://github.com/FreshRSS/FreshRSS/pull/1739) +* Extensions + * Allow extensions to define their own reading view [#1714](https://github.com/FreshRSS/FreshRSS/pull/1714) +* I18n + * Updated Chinese [#1769](https://github.com/FreshRSS/FreshRSS/pull/1769) + * Updated Dutch [#1792](https://github.com/FreshRSS/FreshRSS/pull/1792) + * Updated Korean [#1776](https://github.com/FreshRSS/FreshRSS/pull/1776) +* Misc. + * More sites in `force-https.default.txt` [#1745](https://github.com/FreshRSS/FreshRSS/pull/1745) + * Trim URLs when adding new feeds [#1778](https://github.com/FreshRSS/FreshRSS/pull/1778) + + +## 2017-12-17 FreshRSS 1.9.0 + +* Features + * Share with Mastodon [#1521](https://github.com/FreshRSS/FreshRSS/issues/1521) +* UI + * Add more Unicode glyphs in the Open Sans font [#1032](https://github.com/FreshRSS/FreshRSS/pull/1032) + * Show URL to add subscriptions from third-party tools [#1247](https://github.com/FreshRSS/FreshRSS/issues/1247) + * Improved message when checking for new versions [#1586](https://github.com/FreshRSS/FreshRSS/issues/1586) +* SimplePie + * Remove "SimplePie" name from HTTP User-Agent string [#1656](https://github.com/FreshRSS/FreshRSS/pull/1656) +* Bug fixing + * Work-around for PHP 5.6.0- `CURLOPT_FOLLOWLOCATION` `open_basedir` bug in favicons and PubSubHubbub [#1655](https://github.com/FreshRSS/FreshRSS/issues/1655) + * Fix PDO PostgreSQL detection [#1690](https://github.com/FreshRSS/FreshRSS/issues/1690) + * Fix punycode warning in PHP 7.2 [#1699](https://github.com/FreshRSS/FreshRSS/issues/1699) + * Fix crash when adding a new category while adding a new feed [#1731](https://github.com/FreshRSS/FreshRSS/pull/1731) + * Fix ExtensionManager exception handling [#1724](https://github.com/FreshRSS/FreshRSS/pull/1724) +* CLI + * New command `./cli/db-optimize.php` for database optimisation [#1583](https://github.com/FreshRSS/FreshRSS/issues/1583) + * Check PHP requirements before running `actualize_script.php` (cron for refreshing feeds) [#1711](https://github.com/FreshRSS/FreshRSS/pull/1711) +* SQL + * Perform `VACUUM` on SQLite and PostgreSQL databases when optimisation is requested [#918](https://github.com/FreshRSS/FreshRSS/issues/918) +* API + * Breaking change / compatibility fix (EasyRSS): Provide `link` to articles without HTML-encoding [#1683](https://github.com/FreshRSS/FreshRSS/issues/1683) +* Extensions + * Breaking change: uppercase `./Controllers/` directory [#1729](https://github.com/FreshRSS/FreshRSS/pull/1729) + * Show existing extensions in admin panel [#1708](https://github.com/FreshRSS/FreshRSS/pull/1708) + * New function `$entry->_hash($hex)` for extensions that change the content of entries [#1707](https://github.com/FreshRSS/FreshRSS/pull/1707) +* I18n + * Hebrew [#1716](https://github.com/FreshRSS/FreshRSS/pull/1716) + * Improved German [#1698](https://github.com/FreshRSS/FreshRSS/pull/1698) +* Misc. + * Customisable `constants.local.php` [#1725](https://github.com/FreshRSS/FreshRSS/pull/1725) + * Basic mechanism to limit the size of the logs [#1712](https://github.com/FreshRSS/FreshRSS/pull/1712) + * Translation validation tool [#1653](https://github.com/FreshRSS/FreshRSS/pull/1653) + * Translation manipulation tool [#1658](https://github.com/FreshRSS/FreshRSS/pull/1658) + * Improved documentation [#1697](https://github.com/FreshRSS/FreshRSS/pull/1697), [#1704](https://github.com/FreshRSS/FreshRSS/pull/1704) + * New `.editorconfig` file [#1732](https://github.com/FreshRSS/FreshRSS/pull/1732) + + +## 2017-10-01 FreshRSS 1.8.0 + +* Compatibility + * Minimal PHP version increased to PHP 5.3.8+ to fix sanitize bug [#1604](https://github.com/FreshRSS/FreshRSS/issues/1604) + * Add support for PHP 7.1 in the API [#1584](https://github.com/FreshRSS/FreshRSS/issues/1584), [#1594](https://github.com/FreshRSS/FreshRSS/pull/1594) +* UI + * New page for subscription tools [#1534](https://github.com/FreshRSS/FreshRSS/issues/1354) + * Adjustments to the padding of the tree of categories and feeds [1589](https://github.com/FreshRSS/FreshRSS/pull/1589) + * Fix feed column position after lazy-loading images [#1616](https://github.com/FreshRSS/FreshRSS/pull/1616) + * Force UI controls for HTML5 video and audio [#1642](https://github.com/FreshRSS/FreshRSS/pull/1642) + * Fix share menu on small screens [#1645](https://github.com/FreshRSS/FreshRSS/pull/1645) + * Go back to previous view when collapsing article [#1177](https://github.com/FreshRSS/FreshRSS/issues/1177) +* CLI + * New command `./cli/update-user.php` to update user settings [#1600](https://github.com/FreshRSS/FreshRSS/issues/1600) +* I18n + * Korean [#1578](https://github.com/FreshRSS/FreshRSS/pull/1578) + * Portuguese (Brazilian) [#1648](https://github.com/FreshRSS/FreshRSS/pull/1648) + * Fix month abbreviations [#1560](https://github.com/FreshRSS/FreshRSS/issues/1560) +* Bug fixing + * Fix API compatibility bug between PostgreSQL and EasyRSS [#1603](https://github.com/FreshRSS/FreshRSS/pull/1603) + * Fix PostgreSQL error when adding entries with duplicated GUID [#1610](https://github.com/FreshRSS/FreshRSS/issues/1610), [#1614](https://github.com/FreshRSS/FreshRSS/issues/1614) + * Fix for RSS feeds containing HTML in author field [#1590](https://github.com/FreshRSS/FreshRSS/issues/1590) + * Fix logout issue in global view due to CSRF [#1591](https://github.com/FreshRSS/FreshRSS/issues/1591) +* Misc. + * Travis continuous integration [#1619](https://github.com/FreshRSS/FreshRSS/pull/1619) + * Allow longer database usernames [#1597](https://github.com/FreshRSS/FreshRSS/issues/1597) + + +## 2017-06-03 FreshRSS 1.7.0 + +* Features + * Deferred insertion of new articles, for better chronological order [#530](https://github.com/FreshRSS/FreshRSS/issues/530) + * Better search: + * Possibility to use multiple `intitle:`, `inurl:`, `author:` [#1478](https://github.com/FreshRSS/FreshRSS/pull/1478) + * Negative searches with `!` or `-` [#1381](https://github.com/FreshRSS/FreshRSS/issues/1381) + * Examples: `!intitle:unwanted`, `-intitle:unwanted`, `-inurl:unwanted`, `-author:unwanted`, `-#unwanted`, `-unwanted` + * Allow double-quotes, such as `author:"some name"`, in addition to single-quotes such as `author:'some name'` [#1478](https://github.com/FreshRSS/FreshRSS/pull/1478) + * Multi-user tokens (to access RSS outputs of any user) [#1390](https://github.com/FreshRSS/FreshRSS/issues/1390) +* Compatibility + * Add support for PHP 7.1 [#1471](https://github.com/FreshRSS/FreshRSS/issues/1471) + * PostgreSQL is not experimental anymore [#1476](https://github.com/FreshRSS/FreshRSS/pull/1476) +* Bug fixing + * Fix PubSubHubbub bugs when deleting users, and improved behaviour when removing feeds [#1495](https://github.com/FreshRSS/FreshRSS/pull/1495) + * Fix SQL uniqueness bug with PostgreSQL [#1476](https://github.com/FreshRSS/FreshRSS/pull/1476) + * (Require manual update for existing installations) + * Do not require PHP extension `fileinfo` for favicons [#1461](https://github.com/FreshRSS/FreshRSS/issues/1461) + * Fix UI lowest subscription popup hidden [#1479](https://github.com/FreshRSS/FreshRSS/issues/1479) + * Fix update system via ZIP archive [#1498](https://github.com/FreshRSS/FreshRSS/pull/1498) + * Work around for IE / Edge bug in username pattern in version 1.6.3 [#1511](https://github.com/FreshRSS/FreshRSS/issues/1511) + * Fix *mark as read* articles when adding a new feed [#1535](https://github.com/FreshRSS/FreshRSS/issues/1535) + * Change load order of CSS and JS to help CustomCSS and CustomJS extensions [Extensions#13](https://github.com/FreshRSS/Extensions/issues/13), [#1547](https://github.com/FreshRSS/FreshRSS/pull/1547) +* UI + * New option for not closing the article when clicking outside its area [#1539](https://github.com/FreshRSS/FreshRSS/pull/1539) + * Add shortcut in reader view to open the original page [#1564](https://github.com/FreshRSS/FreshRSS/pull/1564) + * Download icon 💾 for other MIME types (e.g. `application/*`) [#1522](https://github.com/FreshRSS/FreshRSS/pull/1522) +* I18n + * Simplified Chinese [#1541](https://github.com/FreshRSS/FreshRSS/pull/1541) + * Improve English [#1465](https://github.com/FreshRSS/FreshRSS/pull/1465) + * Improve Dutch [#1559](https://github.com/FreshRSS/FreshRSS/pull/1559) + * Added Spanish language [#1631](https://github.com/FreshRSS/FreshRSS/pull/1631/) +* Security + * Do not require write access to check availability of new versions [#1450](https://github.com/FreshRSS/FreshRSS/issues/1450) +* Misc. + * Move [documentation](./docs/) into FreshRSS code [#1510](https://github.com/FreshRSS/FreshRSS/pull/1510) + * Moved `./data/force-https.default.txt` to `./force-https.default.txt`, + `./data/config.default.php` to `./config.default.php`, + and `./data/users/_/config.default.php` to `./config-user.default.php` [#1531](https://github.com/FreshRSS/FreshRSS/issues/1531) + * Fall back to article URL when the article GUID is empty [#1482](https://github.com/FreshRSS/FreshRSS/issues/1482) + * Rewritten Favicon library using cURL [#1504](https://github.com/FreshRSS/FreshRSS/pull/1504) + * Fix SimplePie option to disable syslog [#1528](https://github.com/FreshRSS/FreshRSS/pull/1528) + + +## 2017-03-11 FreshRSS 1.6.3 + +* Features + * New option `disable_update` (also from CLI) to hide the system to update to new FreshRSS versions [#1436](https://github.com/FreshRSS/FreshRSS/pull/1436) + * Share with Known [#1420](https://github.com/FreshRSS/FreshRSS/pull/1420) + * Share with GNU social [#1422](https://github.com/FreshRSS/FreshRSS/issues/1422) +* UI + * New theme *Origine-compact* [#1388](https://github.com/FreshRSS/FreshRSS/pull/1388) + * Chrome parity with Firefox: auto-focus tab when clicking on notification [#1409](https://github.com/FreshRSS/FreshRSS/pull/1409) +* CLI + * New command `./cli/reconfigure.php` to update an existing installation [#1439](https://github.com/FreshRSS/FreshRSS/pull/1439) + * Many CLI improvements [#1447](https://github.com/FreshRSS/FreshRSS/pull/1447) + * More information (number of feeds, articles, etc.) in `./cli/user-info.php` + * Better idempotency of `./cli/do-install.php` and language parameter [#1449](https://github.com/FreshRSS/FreshRSS/issues/1449) +* Bug fixing + * Fix several CLI issues [#1445](https://github.com/FreshRSS/FreshRSS/issues/1445) + * Fix CLI install bugs with SQLite [#1443](https://github.com/FreshRSS/FreshRSS/issues/1443), [#1448](https://github.com/FreshRSS/FreshRSS/issues/1448) + * Allow empty strings in CLI do-install [#1435](https://github.com/FreshRSS/FreshRSS/pull/1435) + * Fix PostgreSQL bugs with API and feed modifications [#1417](https://github.com/FreshRSS/FreshRSS/pull/1417) + * Do not mark as read in anonymous mode [#1431](https://github.com/FreshRSS/FreshRSS/issues/1431) + * Fix Favicons warnings [#59dfc64](https://github.com/FreshRSS/FreshRSS/commit/59dfc64512372eaba7609d84500d943bb7274399), [#1452](https://github.com/FreshRSS/FreshRSS/pull/1452) +* Security + * Sanitize feed Web site URL [#1434](https://github.com/FreshRSS/FreshRSS/issues/1434) + * No version number for anonymous users [#1404](https://github.com/FreshRSS/FreshRSS/issues/1404) +* Misc. + * Relaxed requirements for username to `/^[0-9a-zA-Z]|[0-9a-zA-Z_]{2,38}$/` [#1423](https://github.com/FreshRSS/FreshRSS/pull/1423) + + +## 2016-12-26 FreshRSS 1.6.2 + +* Features + * Add git compatibility in Web update system [#1357](https://github.com/FreshRSS/FreshRSS/issues/1357) + * Requires that the initial installation is done with git + * New option `limits.cookie_duration` in `data/config.php` to set the login cookie duration [#1384](https://github.com/FreshRSS/FreshRSS/issues/1384) +* SQL + * More robust export function in the case of large datasets [#1372](https://github.com/FreshRSS/FreshRSS/issues/1372) +* CLI + * New command `./cli/user-info.php` to get some user information [#1345](https://github.com/FreshRSS/FreshRSS/issues/1345) +* Bug fixing + * Fix bug in estimating last user activity [#1358](https://github.com/FreshRSS/FreshRSS/issues/1358) + * PostgreSQL: fix bug when updating cached values [#1360](https://github.com/FreshRSS/FreshRSS/issues/1360) + * Fix bug in confirmation before marking as read [#1348](https://github.com/FreshRSS/FreshRSS/issues/1348) + * Fix small bugs in installer [#1363](https://github.com/FreshRSS/FreshRSS/pull/1363) + * Allow slash in database hostname, when using sockets [#1364](https://github.com/FreshRSS/FreshRSS/issues/1364) + * Add curl user-agent to retrieve favicons [#1380](https://github.com/FreshRSS/FreshRSS/issues/1380) + * Send login cookie only once [#1398](https://github.com/FreshRSS/FreshRSS/pull/1398) + * Add a check for PHP extension fileinfo [#1375](https://github.com/FreshRSS/FreshRSS/issues/1375) + + +## 2016-11-02 FreshRSS 1.6.1 + +* Bug fixing + * Fix regression introduced in 1.6.0 when refreshing articles with *Mark updated articles as unread* [#1349](https://github.com/FreshRSS/FreshRSS/issues/1349) + + +## 2016-10-30 FreshRSS 1.6.0 + +* CLI + * New Command-Line Interface (CLI) [#1095](https://github.com/FreshRSS/FreshRSS/issues/1095) + * Install, add/delete users, actualize, import/export. See [CLI documentation](./cli/README.md). +* API + * Support for editing feeds and categories from client applications [#1254](https://github.com/FreshRSS/FreshRSS/issues/1254) +* Compatibility: + * Support for PostgreSQL [#416](https://github.com/FreshRSS/FreshRSS/issues/416) + * New client supporting FreshRSS on Linux: FeedReader 2.0+ [#1252](https://github.com/FreshRSS/FreshRSS/issues/1252) +* Features + * Rework the “mark as read during scroll” option, enabled by default for new users [#1258](https://github.com/FreshRSS/FreshRSS/issues/1258), [#1309](https://github.com/FreshRSS/FreshRSS/pull/1309) + * Including a *keep unread* function [#1327](https://github.com/FreshRSS/FreshRSS/pull/1327) + * In a multi-user context, take better advantage of other users’ refreshes [#1280](https://github.com/FreshRSS/FreshRSS/pull/1280) + * Better control of number of entries per page or RSS feed [#1249](https://github.com/FreshRSS/FreshRSS/issues/1249) + * Since X hours: `https://freshrss.example/i/?a=rss&hours=3` + * Explicit number: `https://freshrss.example/i/?a=rss&nb=10` + * Limited by `min_posts_per_rss` and `max_posts_per_rss` in user config + * Support custom ports `localhost:3306` for database servers [#1241](https://github.com/FreshRSS/FreshRSS/issues/1241) + * Add date to exported files [#1240](https://github.com/FreshRSS/FreshRSS/issues/1240) + * Auto-refresh favicons once or twice a month [#1181](https://github.com/FreshRSS/FreshRSS/issues/1181), [#1298](https://github.com/FreshRSS/FreshRSS/issues/1298) + * Cron updates will also refresh favicons every 2 weeks [#1306](https://github.com/FreshRSS/FreshRSS/pull/1306) +* Bug fixing + * Correction of bugs related to CSRF tokens introduced in version 1.5.0 [#1253](https://github.com/FreshRSS/FreshRSS/issues/1253), [44f22ab](https://github.com/FreshRSS/FreshRSS/pull/1261/commits/d9bf9b2c6f0b2cc9dec3b638841b7e3040dcf46f) + * Fix bug in Global view introduced in version 1.5.0 [#1269](https://github.com/FreshRSS/FreshRSS/pull/1269) + * Fix sharing bug [#1289](https://github.com/FreshRSS/FreshRSS/issues/1289) + * Fix bug in auto-loading more articles after marking an article as un-read [#1318](https://github.com/FreshRSS/FreshRSS/issues/1318) + * Fix bug during import of favourites [#1315](https://github.com/FreshRSS/FreshRSS/pull/1315), [#1312](https://github.com/FreshRSS/FreshRSS/issues/1312) + * Fix bug not respecting language option for new users [#1273](https://github.com/FreshRSS/FreshRSS/issues/1273) + * Bug in example of URL for FreshRSS RSS output with token [#1274](https://github.com/FreshRSS/FreshRSS/issues/1274) +* Security + * Prevent `<a target="_blank">` attacks with `window.opener` [#1245](https://github.com/FreshRSS/FreshRSS/issues/1245) + * Updated gitignore rules to keep user directories during a `git clean -f -d` [#1307](https://github.com/FreshRSS/FreshRSS/pull/1307) +* Extensions + * Allow extensions for default account in anonymous mode [#1288](https://github.com/FreshRSS/FreshRSS/pull/1288) + * Trigger a `freshrss:load-more` JavaScript event to help extensions [#1278](https://github.com/FreshRSS/FreshRSS/issues/1278) +* SQL + * Slightly modified several SQL requests (MySQL, SQLite) to simplify support of PostgreSQL [#1195](https://github.com/FreshRSS/FreshRSS/pull/1195) + * Increase performances by removing a superfluous category request [#1316](https://github.com/FreshRSS/FreshRSS/pull/1316) +* I18n + * Fix some messages during installation [#1339](https://github.com/FreshRSS/FreshRSS/pull/1339) +* UI + * Fix CSS line-height bug with `<sup>` in dates (English, Russian, Turkish) [#1340](https://github.com/FreshRSS/FreshRSS/pull/1340) + * Disable *Mark all as read* before confirmation script is loaded [#1342](https://github.com/FreshRSS/FreshRSS/issues/1342) + * Download icon 💾 for podcasts [#1236](https://github.com/FreshRSS/FreshRSS/issues/1236) +* SimplePie + * Fix auto-discovery of RSS feeds in Web pages served as `text/xml` [#1264](https://github.com/FreshRSS/FreshRSS/issues/1264) +* Misc. + * Removed *resource-priorities* attributes (`defer`, `lazyload`), deprecated by W3C [#1222](https://github.com/FreshRSS/FreshRSS/pull/1222) + + +## 2016-08-29 FreshRSS 1.5.0 + +* Compatibility + * Require at least MySQL 5.5.3+ [#1153](https://github.com/FreshRSS/FreshRSS/issues/1153) + * Require at least PHP 5.3.3+ [#1183](https://github.com/FreshRSS/FreshRSS/pull/1183) + * Restore compatibility with PHP 5.3.3 [#1208](https://github.com/FreshRSS/FreshRSS/issues/1208) + * Restore compatibility with Microsoft Internet Explorer 11 / Edge [#772](https://github.com/FreshRSS/FreshRSS/issues/772) +* Features + * Mark a search as read [#608](https://github.com/FreshRSS/FreshRSS/issues/608) + * Support for full Unicode such as emoji 💕 in MySQL with utf8mb4 [#1153](https://github.com/FreshRSS/FreshRSS/issues/1153) + * FreshRSS will automatically migrate MySQL tables to utf8mb4 the first time it is needed. +* Security + * Remove Mozilla Persona login (the service closes on 2016-11-30) [#1052](https://github.com/FreshRSS/FreshRSS/issues/1052) + * Use Referrer Policy `<meta name="referrer" content="never" />` for anonymizing HTTP Referer [#955](https://github.com/FreshRSS/FreshRSS/issues/955) + * Implement CSRF tokens for POST security [#570](https://github.com/FreshRSS/FreshRSS/issues/570) +* Bug fixing + * Fixed scroll in log view [#1178](https://github.com/FreshRSS/FreshRSS/issues/1178) + * Fixed JavaScript bug when articles were not always marked as read [#1123](https://github.com/FreshRSS/FreshRSS/issues/1123) + * Fixed Apache Etag issue that prevented caching [#1199](https://github.com/FreshRSS/FreshRSS/pull/1199) + * Fixed OPML import of categories [#1202](https://github.com/FreshRSS/FreshRSS/issues/1202) + * Fixed PubSubHubbub callback address bug on some configurations [1229](https://github.com/FreshRSS/FreshRSS/pull/1229) +* UI + * Use sticky category column [#1172](https://github.com/FreshRSS/FreshRSS/pull/1172) + * Updated to jQuery 3.1.0 and several JavaScript fixes (e.g. drag & drop) [#1197](https://github.com/FreshRSS/FreshRSS/pull/1197) +* API + * Add API link in FreshRSS profile settings to ease set-up [#1186](https://github.com/FreshRSS/FreshRSS/pull/1186) +* Misc. + * Work-around for SuperFeeder time-outs during PubSubHubbub registration [#1184](https://github.com/FreshRSS/FreshRSS/pull/1184) + * JSHint of JavaScript code and better initialisation [#1196](https://github.com/FreshRSS/FreshRSS/pull/1196) + * Updated credits, and images in README [#1201](https://github.com/FreshRSS/FreshRSS/issues/1201) + + +## 2016-07-23 FreshRSS 1.4.0 + +## 2016-06-12 FreshRSS 1.3.2-beta + +* Compatibility + * Require at least PHP 5.3+ (drop PHP 5.2) [#1133](https://github.com/FreshRSS/FreshRSS/pull/1133) +* Features + * Support for MySQL 5.7+ (e.g. Ubuntu 16.04 LTS) [#1132](https://github.com/FreshRSS/FreshRSS/pull/1132) + * Speed optimization for HTTP/2 [#1133](https://github.com/FreshRSS/FreshRSS/pull/1133) + * API support for REDIRECT_* HTTP headers (fcgi) [#1128](https://github.com/FreshRSS/FreshRSS/issues/1128) +* SimplePie + * Support for feeds with invalid whitespace [#1142](https://github.com/FreshRSS/FreshRSS/issues/1142) +* Bug fixing + * Fix bug when adding feeds with passwords [#1137](https://github.com/FreshRSS/FreshRSS/pull/1137) + * Fix validator link [#1147](https://github.com/FreshRSS/FreshRSS/pull/1147) + * Fix Favicon small bugs [#1135](https://github.com/FreshRSS/FreshRSS/pull/1135) +* Security + * CSP compatibility for homepage [#1120](https://github.com/FreshRSS/FreshRSS/pull/1120) +* I18n + * Draft of Russian [#1085](https://github.com/FreshRSS/FreshRSS/pull/1085) +* Misc. + * Change default feed timeout to 15 seconds [#1146](https://github.com/FreshRSS/FreshRSS/pull/1146) + * Updated Wallabag v2 [#1150](https://github.com/FreshRSS/FreshRSS/pull/1150) + + +## 2016-03-11 FreshRSS 1.3.1-beta + +* Security + * Added CSP `Content-Security-Policy: default-src 'self'; child-src *; frame-src *; img-src * data:; media-src *` [#1075](https://github.com/FreshRSS/FreshRSS/issues/1075), [#1114](https://github.com/FreshRSS/FreshRSS/issues/1114) + * Added `X-Content-Type-Options: nosniff` [#1116](https://github.com/FreshRSS/FreshRSS/pull/1116) + * Cookie with `Secure` tag when used over HTTPS [#1117](https://github.com/FreshRSS/FreshRSS/pull/1117) + * Limit API post input to 1MB [#1118](https://github.com/FreshRSS/FreshRSS/pull/1118) +* Features + * New list of domains for which to force HTTPS (for images, videos, iframes…) defined in `./data/force-https.default.txt` and `./data/force-https.txt` [#1083](https://github.com/FreshRSS/FreshRSS/issues/1083) + * In particular useful for privacy and to avoid mixed content errors, e.g. to see YouTube videos when FreshRSS is in HTTPS + * Add sharing with “Journal du Hacker” [#1056](https://github.com/FreshRSS/FreshRSS/pull/1056) +* UI + * Updated to jQuery 2.2.1 and changed code for auto-load on scroll [#1050](https://github.com/FreshRSS/FreshRSS/pull/1050), [#1091](https://github.com/FreshRSS/FreshRSS/pull/1091) +* I18n + * Turkish [#1073](https://github.com/FreshRSS/FreshRSS/issues/1073) +* Bug fixing + * Fixed OPML import title bug [#1048](https://github.com/FreshRSS/FreshRSS/issues/1048) + * Fixed upgrade bug with SQLite when articles were marked as unread [#1049](https://github.com/FreshRSS/FreshRSS/issues/1049) + * Fixed error when deleting feeds from statistics page [#1047](https://github.com/FreshRSS/FreshRSS/issues/1047) + * Fixed several small bugs in global and reader view [#1050](https://github.com/FreshRSS/FreshRSS/pull/1050) + * Fixed sharing bug with PHP7 [#1072](https://github.com/FreshRSS/FreshRSS/issues/1072) + * Fixed fall-back when php-json is not installed [#1092](https://github.com/FreshRSS/FreshRSS/issues/1092) +* API + * Possibility to show only read items [#1035](https://github.com/FreshRSS/FreshRSS/pull/1035) +* Misc. + * Filters `<img />` attributes `srcset` and `sizes` [#1077](https://github.com/FreshRSS/FreshRSS/issues/1077), [#1086](https://github.com/FreshRSS/FreshRSS/pull/1086) + * Implement PubSubHubbub unsubscribe responses [#1058](https://github.com/FreshRSS/FreshRSS/issues/1058) + * Restored some compatibility with PHP 5.2 [#1055](https://github.com/FreshRSS/FreshRSS/issues/1055) + * Check for extension php-xml during install [#1094](https://github.com/FreshRSS/FreshRSS/issues/1094) + * Updated the sharing with Movim [#1030](https://github.com/FreshRSS/FreshRSS/pull/1030) + + +## 2015-11-03 FreshRSS 1.2.0 / 1.3.0-beta + +* Features + * Share with Movim [#992](https://github.com/FreshRSS/FreshRSS/issues/992) + * New option to allow robots / search engines [#938](https://github.com/FreshRSS/FreshRSS/issues/938) +* Security + * Invalid logins now return HTTP 403, to be easier to catch (e.g. fail2ban) [#1015](https://github.com/FreshRSS/FreshRSS/issues/1015) +* UI + * Remove "title" field during installation [#858](https://github.com/FreshRSS/FreshRSS/issues/858) + * Visual alert on categories containing feeds in error [#984](https://github.com/FreshRSS/FreshRSS/pull/984) +* I18n + * Italian [#1003](https://github.com/FreshRSS/FreshRSS/issues/1003) +* Misc. + * Support reverse proxy [#975](https://github.com/FreshRSS/FreshRSS/issues/975) + * Make auto-update server URL alterable [#1019](https://github.com/FreshRSS/FreshRSS/issues/1019) + + +## 2015-09-12 FreshRSS 1.1.3-beta + +* UI + * Configuration page for global settings such as limits [#958](https://github.com/FreshRSS/FreshRSS/pull/958) + * Add feed ID in articles to ease styling [#953](https://github.com/FreshRSS/FreshRSS/issues/953) +* I18n + * Dutch [#949](https://github.com/FreshRSS/FreshRSS/issues/949) +* Bug fixing + * Session cookie bug [#924](https://github.com/FreshRSS/FreshRSS/issues/924) + * Better error handling for PubSubHubbub [#939](https://github.com/FreshRSS/FreshRSS/issues/939) + * Fix tag search link from articles [#970](https://github.com/FreshRSS/FreshRSS/issues/970) + * Fix all queries deleted when deleting a feed or category [#982](https://github.com/FreshRSS/FreshRSS/pull/982) + + +## 2015-07-30 FreshRSS 1.1.2-beta + +* Features + * Support for PubSubHubbub for instant notifications from compatible Web sites. [#312](https://github.com/FreshRSS/FreshRSS/issues/312) + * cURL options to use a proxy for retrieving feeds. [#897](https://github.com/FreshRSS/FreshRSS/issues/897) [#675](https://github.com/FreshRSS/FreshRSS/issues/675) + * Allow anonymous users to create an account. [#679](https://github.com/FreshRSS/FreshRSS/issues/679) +* Security + * cURL options to verify or not SSL/TLS certificates (now enabled by default). [#897](https://github.com/FreshRSS/FreshRSS/issues/897) [#502](https://github.com/FreshRSS/FreshRSS/issues/502) + * Support for SSL connection to MySQL. [#868](https://github.com/FreshRSS/FreshRSS/issues/868) + * Workaround for browsers that have disabled support for `<form autocomplete="off">`. [#880](https://github.com/FreshRSS/FreshRSS/issues/880) +* UI + * Force UTF-8 for responses. [#870](https://github.com/FreshRSS/FreshRSS/issues/870) + * Increased pagination limit to 500 articles. [#872](https://github.com/FreshRSS/FreshRSS/issues/872) + * Improved UI for installation. [#855](https://github.com/FreshRSS/FreshRSS/issues/855) +* Misc. + * PHP 7 officially supported (~70% speed improvements on early tests). [#889](https://github.com/FreshRSS/FreshRSS/issues/889) + * Restore support for PHP 5.2.1+. [#214a5cc](https://github.com/Alkarex/FreshRSS/commit/214a5cc9a4c2b821961bc21f22b4b08e34b5be68) [#894](https://github.com/FreshRSS/FreshRSS/issues/894) + * Support for data-src for images of articles retrieved via the full-content module. [#877](https://github.com/FreshRSS/FreshRSS/issues/877) + * Add a couple of default feeds for fresh installations. [#886](https://github.com/FreshRSS/FreshRSS/issues/886) + * Changed some log visibilities. [#885](https://github.com/FreshRSS/FreshRSS/issues/885) + * Fix broken links for extension script / style files. [#862](https://github.com/FreshRSS/FreshRSS/issues/862) + * Load default configuration during installation to avoid hard-coded values. [#890](https://github.com/FreshRSS/FreshRSS/issues/890) + * Fix non-consistent behaviour in Minz_Request::getBaseUrl() and introduce Minz_Request::guessBaseUrl(). [#906](https://github.com/FreshRSS/FreshRSS/issues/906) + * Generate `base_url` during the installation and add a `pubsubhubbub_enabled` configuration key. [#865](https://github.com/FreshRSS/FreshRSS/issues/865) + * Load configuration by recursion to overwrite array values. [#923](https://github.com/FreshRSS/FreshRSS/issues/923) + * Cast `$limits` configuration values in integer. [#925](https://github.com/FreshRSS/FreshRSS/issues/925) + * Don’t hide errors in configuration. [#920](https://github.com/FreshRSS/FreshRSS/issues/920) + + +## 2015-05-31 FreshRSS 1.1.1 (beta) + +* Features + * New option to detect and mark updated articles as unread. + * Support for internationalized domain name (IDN). + * Improved logic for automatic deletion of old articles. +* API + * Work-around for News+ bug when there is no unread article on the server. +* UI + * New confirmation message when leaving a configuration page without saving the changes. +* Bug fixing + * Corrected bug introduced in previous beta about handling of HTTP 301 (feeds that have changed address) + * Corrected bug in FreshRSS RSS feeds. +* Security + * Sanitize HTTP request header `Host`. +* Misc. + * Attempt to better handle encoded article titles. + + +## 2015-01-31 FreshRSS 1.0.0 / 1.1.0 (beta) + +* UI + * Slider math with Dark theme + * Add a message if request failed for mark as read / favourite +* I18n + * Fix some sentences + * Add German as a supported language + * Add some indications on password format +* Bug fixing + * Some shortcuts was never saved + * Global view didn’t work if set by default + * Minz_Error was badly raised + * Feed update failed if nothing had changed (MySQL only) + * CRON task failed with multiple users + * Tricky bug caused by cookie path + * Email sharing was badly supported (no urlencode()) +* Misc. + * Add a CREDIT file with contributor names + * Update lib_opml + * Default favicon is now served by HTTP code 200 + * Change calls to syslog by Minz_Log::notice + * HTTP credentials are no longer logged + + +## 2015-01-15 FreshRSS 0.9.4 (beta) + +* Feature + * Extension system (!!): some extensions are available at [github.com/FreshRSS/Extensions](https://github.com/FreshRSS/Extensions) +* Refactoring + * Front controller (FreshRSS class) + * Configuration system + * Sharing system + * New data files organization +* Updates + * Remove restriction of 1h for updates + * Show the current version of FreshRSS and the next one +* UI + * Remove the "sticky position" of the feed aside (moved into an extension) + * "Show password" shows the password only while the user is pressing the mouse. + + +## 2014-12-12 FreshRSS 0.9.3 (beta) + +* SimplePie + * Support for content-type application/x-rss+xml + * New force_feed option (for feeds sent with the wrong content-type / MIME) by adding #force_feed at the end of the feed URL + * Improved error messages +* Statistics + * Add information on feed repartition pages + * Add percent repartition for the bigger feeds +* UI + * New theme selector + * Update Screwdriver theme + * Add BlueLagoon theme by Mister aiR +* Misc. + * Add option to remove articles after reading them + * Add comments + * Refactor i18n system to avoid loading unnecessary strings + * Fix security issue in Minz_Error::error() method + * Fix redirection after refreshing a given feed + + +## 2014-10-31 FreshRSS 0.9.2 (beta) + +* UI + * New subscription page (introduce .box items) + * Change feed category by drag and drop + * New feed aside on the main page + * New configuration / administration organization +* Configuration + * New options in config.php for cache duration, timeout, max inactivity, max number of feeds and categories per user. +* Refactoring + * Refactor authentication system (introduce FreshRSS_Auth model) + * Refactor indexController (introduce FreshRSS_Context model) + * Use ```_t()```, ```_i()```, ```_url()```, ```Minz_Request::good()``` and ```Minz_Request::bad()``` as much as possible + * Refactor javascript_vars.phtml + * Better coding style +* I18n + * Introduce a new system for i18n keys (not finished yet) +* Misc. + * Fix global view (did not work anymore) + * Add do_post_update for update system + * Introduce ```checkInstallAction``` to test if FreshRSS installation is ok + + +## 2014-10-09 FreshRSS 0.8.1 / 0.9.1 (beta) + +* UI + * Add a space after tag icon +* Statistics + * Add an average per day on the 30-day period graph + * Add percent of total on top 10 feed +* Bug fixes + * Fix "mark as read" in global view + * Fix "read all" shortcut + * Fix categories not appearing when adding a new feed (GET action) + * Fix enclosure problem + * Fix getExtension() on PHP < 5.3.7 + + +## 2014-09-26 FreshRSS 0.8.0 / 0.9.0 (beta) + +* UI + * New interface for statistics + * Fix filter buttons + * Number of articles divided by 2 in reading view + * Redesign of bigMarkAsRead +* Features + * New automatic update system + * New reset auth system +* Security + * "Mark as read" requires POST requests for several articles + * Test HTTP REFERER in install.php +* Configuration + * New "Show all articles" / "Show only unread" / "Adjust viewing" option + * New notification timeout option +* Misc. + * Improve coding style + comments + * Fix SQLite bug "ON DELETE CASCADE" + * Improve performance when importing articles + + +## 2014-08-24 FreshRSS 0.7.4 + +* UI + * Hide categories/feeds with unread articles when showing only unread articles + * Dynamic favicon showing the number of unread articles + * New theme: Screwdriver by Mister aiR +* Statistics + * New page with article repartition + * Improvements +* Security + * Basic protection against XSRF (Cross-Site Request Forgery) based on HTTP Referer (POST requests only) +* API + * Compatible with lighttpd +* Misc. + * Changed lazyload implementation + * Support of HTML5 notifications for new upcoming articles + * Add option to stay logged in +* Bug fixes in export function, add/remove users, keyboard shortcuts, etc. + + +## 2014-07-21 FreshRSS 0.7.3 + +* New options + * Add system of user queries which are shortcuts to filter the view + * New TTL option to limit the frequency at which feeds are refreshed (by cron or manual refresh button). + It is still possible to manually refresh an individual feed at a higher frequency. +* SQL + * Add support for SQLite (beta) in addition to MySQL +* SimplePie + * Complies with HTTP "301 Moved Permanently" responses by automatically updating the URL of feeds that have changed address. +* Themes + * Flat and Dark designs are based on same template file as Origine +* Statistics + * Refactor code + * Add an idle feed page +* Misc + * Several bug fixes + * Add confirmation option when marking all articles as read + * Fix some typo + + +## 2014-06-13 FreshRSS 0.7.2 + +* API compatible with Google Reader API level 2 + * FreshRSS can now be used from e.g.: + * (Android) [News+](https://github.com/noinnion/newsplus/tree/master/extensions/GoogleReaderCloneExtension) + * (Android) [EasyRSS](https://github.com/Alkarex/EasyRSS) +* Basic support for audio and video podcasts +* Searching + * New search filters date: and pubdate: accepting ISO 8601 date intervals such as `date:2013-2014` or `pubdate:P1W` + * Possibility to combine search filters, e.g. `date:2014-05 intitle:FreshRSS intitle:Open great reader #Internet` +* Change nav menu with more buttons instead of dropdown menus and add some filters +* New system of import / export + * Support OPML, Json (like Google Reader) and ZIP archives + * Can export and import articles (specific option for favourites) +* Refactor "Origine" theme + * Some improvements + * Based on a template file (other themes will use it too) + + +## Older + +[See older changes (in French)](./CHANGELOG-old.md) diff --git a/docs/_config.yml b/docs/_config.yml index 67251f6b3..7f8f6132a 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -5,4 +5,5 @@ description: Documentation center logo: /img/FreshRSS-logo.png show_downloads: true -include: contributing.md +include: [contributing.md] +exclude: [CHANGELOG*.md] |
