diff options
| author | 2025-06-04 11:39:59 +0200 | |
|---|---|---|
| committer | 2025-06-04 11:39:59 +0200 | |
| commit | 2b94cffeab0dfd66fcef15b6295efba24319b555 (patch) | |
| tree | bda04dcf7455add4a64cf4a986304096cf8fc5ff /docs | |
| parent | cc35094bb261cb3185def89d745317fa756560ee (diff) | |
Archive some change logs (#7650)
* Move old changelog
* Archive some logs
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/CHANGELOG-old.md | 242 | ||||
| -rw-r--r-- | docs/CHANGELOG-old2.md | 2169 | ||||
| -rw-r--r-- | docs/_config.yml | 3 |
3 files changed, 2413 insertions, 1 deletions
diff --git a/docs/CHANGELOG-old.md b/docs/CHANGELOG-old.md new file mode 100644 index 000000000..34d1bd2da --- /dev/null +++ b/docs/CHANGELOG-old.md @@ -0,0 +1,242 @@ +# Journal des modifications de FreshRSS + +[Voir les changements plus récents (en anglais)](./CHANGELOG-old2.md) + +## 2014-02-19 FreshRSS 0.7.1 + +* Mise à jour des flux plus rapide grâce à une meilleure utilisation du cache + * Utilisation d’une signature MD5 du contenu intéressant pour les flux n’implémentant pas les requêtes conditionnelles +* Modification des raccourcis + * "s" partage directement si un seul moyen de partage + * Moyens de partage accessibles par "1", "2", "3", etc. + * Premier article : Home ; Dernier article : End + * Ajout du déplacement au sein des catégories / flux (via modificateurs shift et alt) +* UI + * Séparation des descriptions des raccourcis par groupes + * Revue rapide de la page de connexion + * Amélioration de l’affichage des notifications sur mobile +* Revue du système de rafraîchissement des flux + * Meilleure gestion de la file de flux à rafraîchir en JSON + * Rafraîchissement uniquement pour les flux non rafraîchis récemment + * Possibilité donnée aux anonymes de rafraîchir les flux +* SimplePie + * Mise à jour de la lib + * Corrige fuite de mémoire + * Meilleure tolérance aux flux invalides +* Corrections divers + * Ne déplie plus l’article lors du clic sur l’icône lien externe + * Ne boucle plus à la fin de la navigation dans les articles + * Suppression du champ category.color inutile + * Corrige bug redirection infinie (Persona) + * Amélioration vérification de la requête POST + * Ajout d’un verrou lorsqu’une action mark_read ou mark_favorite est en cours + + +## 2014-01-29 FreshRSS 0.7 + +* Nouveau mode multi-utilisateur + * L’utilisateur par défaut (administrateur) peut créer et supprimer d’autres utilisateurs + * Nécessite un contrôle d’accès, soit : + * par le nouveau mode de connexion par formulaire (nom d’utilisateur + mot de passe) + * relativement sûr même sans HTTPS (le mot de passe n’est pas transmis en clair) + * requiert JavaScript et PHP 5.3+ + * par HTTP (par exemple sous Apache en créant un fichier ./p/i/.htaccess et .htpasswd) + * le nom d’utilisateur HTTP doit correspondre au nom d’utilisateur FreshRSS + * par Mozilla Persona, en renseignant l’adresse courriel des utilisateurs +* Installateur supportant les mises à jour : + * Depuis une v0.6, placer application.ini et Configuration.array.php dans le nouveau répertoire “./data/” + (voir réorganisation ci-dessous) + * Pour les versions suivantes, juste garder le répertoire “./data/” +* Rafraîchissement automatique du nombre d’articles non lus toutes les deux minutes (utilise le cache HTTP à bon escient) + * Permet aussi de conserver la session valide, surtout dans le cas de Persona +* Nouvelle page de statistiques (nombres d’articles par jour / catégorie) +* Importation OPML instantanée et plus tolérante +* Nouvelle gestion des favicons avec téléchargement en parallèle +* Nouvelles options + * Réorganisation des options + * Gestion des utilisateurs + * Améliorations partage vers Shaarli, Poche, Diaspora*, Facebook, Twitter, Google+, courriel + * Raccourci ‘s’ par défaut + * Permet la suppression de tous les articles d’un flux + * Option pour marquer les articles comme lus dès la réception + * Permet de configurer plus finement le nombre d’articles minimum à conserver par flux + * Permet de modifier la description et l’adresse d’un flux RSS ainsi que le site Web associé + * Nouveau raccourci pour ouvrir/fermer un article (‘c’ par défaut) + * Boutons pour effacer les logs et pour purger les vieux articles + * Nouveaux filtres d’affichage : seulement les articles favoris, et seulement les articles lus +* SQL : + * Nouveau moteur de recherche, aussi accessible depuis la vue mobile + * Mots clefs de recherche “intitle:”, “inurl:”, “author:” + * Les articles sont triés selon la date de leur ajout dans FreshRSS plutôt que la date déclarée (souvent erronée) + * Permet de marquer tout comme lu sans affecter les nouveaux articles arrivés en cours de lecture + * Permet une pagination efficace + * Refactorisation + * Les tables sont préfixées avec le nom d’utilisateur afin de permettre le mode multi-utilisateurs + * Amélioration des performances + * Tolère un beaucoup plus grand nombre d’articles + * Compression des données côté MySQL plutôt que côté PHP + * Incompatible avec la version 0.6 (nécessite une mise à jour grâce à l’installateur) + * Affichage de la taille de la base de données dans FreshRSS + * Correction problème de marquage de tous les favoris comme lus +* HTML5 : + * Support des balises HTML5 audio, video, et éléments associés + * Utilisation de preload="none", et réécriture correcte des adresses, aussi en HTTPS + * Protection HTML5 des iframe (sandbox="allow-scripts allow-same-origin") + * Filtrage des object et embed + * Chargement différé HTML5 (postpone="") pour iframe et video + * Chargement différé JavaScript pour iframe +* CSS : + * Nouveau thème sombre + * Chargement plus robuste des thèmes + * Meilleur support des longs titres d’articles sur des écrans étroits + * Meilleure accessibilité + * FreshRSS fonctionne aussi en mode dégradé sans images (alternatives Unicode) et/ou sans CSS + * Diverses améliorations +* PHP : + * Encore plus tolérant pour les flux comportant des erreurs + * Mise à jour automatique de l’URL du flux (en base de données) lorsque SimplePie découvre qu’elle a changé + * Meilleure gestion des caractères spéciaux dans différents cas + * Compatibilité PHP 5.5+ avec OPcache + * Amélioration des performances + * Chargement automatique des classes + * Alternative dans le cas d’absence de librairie JSON + * Pour le développement, le cache HTTP peut être désactivé en créant un fichier “./data/no-cache.txt” +* Réorganisation des fichiers et répertoires, en particulier : + * Tous les fichiers utilisateur sont dans “./data/” (y compris “cache”, “favicons”, et “log”) + * Déplacement de “./app/configuration/application.ini” vers “./data/config.php” + * Meilleure sécurité et compatibilité + * Déplacement de “./public/data/Configuration.array.php” vers “./data/*_user.php” + * Déplacement de “./public/” vers “./p/” + * Déplacement de “./public/index.php” vers “./p/i/index.php” (voir cookie ci-dessous) + * Déplacement de “./actualize_script.php” vers “./app/actualize_script.php” (pour une meilleure sécurité) + * Pensez à mettre à jour votre Cron ! +* Divers : + * Nouvelle politique de cookie de session (témoin de connexion) + * Utilise un nom poli “FreshRSS” (évite des problèmes avec certains filtres) + * Se limite au répertoire “./FreshRSS/p/i/” pour de meilleures performances HTTP + * Les images, CSS, scripts sont servis sans cookie + * Utilise “HttpOnly” pour plus de sécurité + * Nouvel “agent utilisateur” exposé lors du téléchargement des flux, par exemple : + * `FreshRSS/0.7 (Linux; http://freshrss.org) SimplePie/1.3.1` + * Script d’actualisation avec plus de messages + * Sur la sortie standard, ainsi que dans le log système (syslog) + * Affichage du numéro de version dans “À propos” + + +## 2013-11-21 FreshRSS 0.6.1 + +* Corrige bug chargement du JavaScript +* Affiche un message d’erreur plus explicite si fichier de configuration inaccessible + + +## 2013-11-17 FreshRSS 0.6 + +* Nettoyage du code JavaScript + optimisations +* Utilisation d’adresses relatives +* Amélioration des performances coté client +* Mise à jour automatique du nombre d’articles non lus +* Corrections traductions +* Mise en cache de FreshRSS +* Amélioration des retours utilisateur lorsque la configuration n’est pas bonne +* Actualisation des flux après une importation OPML +* Meilleure prise en charge des flux RSS invalides +* Amélioration de la vue globale +* Possibilité de personnaliser les icônes de lecture +* Suppression de champs lors de l’installation (base_url et sel) +* Correction de bugs divers + + +## 2013-10-15 FreshRSS 0.5.1 + +* Correction du bug des catégories disparues +* Correction traduction i18n/fr et i18n/en +* Suppression de certains appels à la feuille de style fallback.css + + +## 2013-10-12 FreshRSS 0.5.0 + +* Possibilité d’interdire la lecture anonyme +* Option pour garder l’historique d’un flux +* Lors d’un clic sur “Marquer tous les articles comme lus”, FreshRSS peut désormais sauter à la prochaine catégorie / prochain flux avec des articles non lus. +* Ajout d’un token pour accéder aux flux RSS générés par FreshRSS sans nécessiter de connexion +* Possibilité de partager vers Facebook, Twitter et Google+ +* Possibilité de changer de thème +* Le menu de navigation (article précédent / suivant / haut de page) a été ajouté à la vue non mobile +* La police OpenSans est désormais appliquée +* Amélioration de la page de configuration +* Une meilleure sortie pour l’imprimante +* Quelques retouches du design par défaut +* Les vidéos ne dépassent plus du cadre de l’écran +* Nouveau logo +* Possibilité d’ajouter un préfixe aux tables lors de l’installation +* Ajout d’un champ en base de données keep_history à la table feed +* Si possible, création automatique de la base de données si elle n’existe pas lors de l’installation +* L’utilisation d’UTF-8 est forcée +* Le marquage automatique au défilement de la page a été amélioré +* La vue globale a été énormément améliorée et est beaucoup plus utile +* Amélioration des requêtes SQL +* Amélioration du JavaScript +* Correction bugs divers + + +## 2013-07-02 FreshRSS 0.4.0 + +* Correction bug et ajout notification lors de la phase d’installation +* Affichage d’erreur si fichier OPML invalide +* Les tags sont maintenant cliquables pour filtrer dessus +* Amélioration vue mobile (boutons plus gros et ajout d’une barre de navigation) +* Possibilité d’ajouter directement un flux dans une catégorie dès son ajout +* Affichage des flux en erreur (injoignable par exemple) en rouge pour les différencier +* Possibilité de changer les noms des flux +* Ajout d’une option (désactivable donc) pour charger les images en lazyload permettant de ne pas charger toutes les images d’un coup +* Le framework Minz est maintenant directement inclus dans l’archive (plus besoin de passer par ./build.sh) +* Amélioration des performances pour la récupération des flux tronqués +* Possibilité d’importer des flux sans catégorie lors de l’import OPML +* Suppression de “l’API” (qui était de toute façon très basique) et de la fonctionnalité de “notes” +* Amélioration de la recherche (garde en mémoire si l’on a sélectionné une catégorie) par exemple +* Modification apparence des balises hr et pre +* Meilleure vérification des champs de formulaire +* Remise en place du mode “endless” (permettant de simplement charger les articles qui suivent plutôt que de charger une nouvelle page) +* Ajout d’une page de visualisation des logs +* Ajout d’une option pour optimiser la BDD (diminue sa taille) +* Ajout des vues lecture et globale (assez basique) +* Les vidéos YouTube ne débordent plus du cadre sur les petits écrans +* Ajout d’une option pour marquer les articles comme lus lors du défilement (et suppression de celle au chargement de la page) + + +## 2013-05-05 FreshRSS 0.3.0 + +* Fallback pour les icônes SVG (utilisation de PNG à la place) +* Fallback pour les propriétés CSS3 (utilisation de préfixes) +* Affichage des tags associés aux articles +* Internationalisation de l’application (gestion des langues anglaise et française) +* Gestion des flux protégés par authentification HTTP +* Mise en cache des favicons +* Création d’un logo *temporaire* +* Affichage des vidéos dans les articles +* Gestion de la recherche et filtre par tags pleinement fonctionnels +* Création d’un vrai script CRON permettant de mettre tous les flux à jour +* Correction bugs divers + + +## 2013-04-17 FreshRSS 0.2.0 + +* Création d’un installateur +* Actualisation des flux en Ajax +* Partage par mail et Shaarli ajouté +* Export par flux RSS +* Possibilité de vider une catégorie +* Possibilité de sélectionner les catégories en vue mobile +* Les flux peuvent être sortis du flux principal (système de priorité) +* Amélioration ajout / import / export des flux +* Amélioration actualisation (meilleure gestion des erreurs) +* Améliorations du CSS +* Changements dans la base de données +* MàJ de la librairie SimplePie +* Flux sans auteurs gérés normalement +* Correction bugs divers + + +## 2013-04-08 FreshRSS 0.1.0 + +* “Première” version 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] |
