# Remonter un problème ou une suggestion
Malgré le soin apporté à FreshRSS, il se peut que des bugs apparaissent
encore. Le projet est jeune et le développement dynamique, aussi celui-ci
pourra être corrigé rapidement. Il se peut aussi que vous ayez en tête une
fonctionnalité qui n’existe pas encore. Que celle-ci vous paraisse idiote,
farfelue, inutile ou trop spécifique, il ne faut surtout pas hésiter à nous
la proposer ! Très souvent des « idées en l’air » ont trouvé une oreille
attentive. Ce sont les regards externes qui font le plus évoluer le projet.
Si vous êtes convaincus qu’il faut vous faire entendre, voici la marche à
suivre.
## Sur GitHub
GitHub est la plate-forme à privilégier pour vos demandes. En effet, cela
nous permet de pouvoir discuter à plusieurs sur un problème ou une
suggestion et de faire émerger, souvent, des idées nouvelles. Ne négligeons
pas cet aspect « social » !
1. [Rendez-vous sur le gestionnaire de tickets de
bugs](https://github.com/FreshRSS/FreshRSS/issues)
2. Commencez par rechercher si une demande similaire n’a pas déjà été
faite. Si oui, n’hésitez pas à ajouter votre voix à la demande.
3. Si votre demande est nouvelle, [ouvrez un nouveau ticket de
bug](https://github.com/FreshRSS/FreshRSS/issues/new)
4. Rédigez enfin votre demande. Si vous maitrisez l’anglais, c’est la
langue à privilégier car cela permet d’ouvrir la discussion à un plus
grand nombre de personnes. Sinon, ce n’est pas grave, continuez en
français :)
5. Merci de bien vouloir suivre les quelques conseils donnés plus bas pour
faciliter la prise en compte de votre ticket.
## De façon informelle
Tout le monde n’aime pas ou n’utilise pas GitHub pour des raisons aussi
diverses que légitimes. C’est pourquoi vous pouvez aussi nous contacter de
façon plus informelle.
* Sur [notre chat
Mattermost](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
* Sur [les listes de
diffusion](https://freshrss.org/announce-of-the-mailing-lists.html)
* À des évènements / rencontres autour du Logiciel Libre
* Autour d’une bière dans un bar
* Etc.
## Conseils
Voici quelques conseils pour bien présenter votre remontée de bug ou votre
suggestion :
* **Faites attention à l’orthographe.** même si ce n’est pas toujours
facile, faites votre maximum. ;)
* **Donnez un titre explicite à votre demande**, quitte à ce qu’il soit un
peu long. Cela nous aide non seulement à comprendre votre demande, mais
aussi à retrouver votre ticket plus tard.
* **Une demande = un ticket.** Vous pouvez avoir des tas d’idées mais vous
avez peur de spammer le gestionnaire de bugs : ça ne fait rien. Il vaut
mieux avoir un peu trop de tickets que trop de demandes dans un seul. On
s’occupera de fermer et regrouper les demandes qui le peuvent.
* Si vous remontez un bug, pensez à nous **fournir les logs de FreshRSS**
(accessibles dans les dossier `data/log/` de FreshRSS) **et PHP**
(l’emplacement peut varier selon les distributions, mais pensez à chercher
dans `/var/log/httpd` ou `/var/log/apache`).
* Si vous ne trouvez pas les fichiers de logs, précisez-le dans votre ticket
afin que nous sachions que vous avez déjà cherché.
* Tous les bugs ne nécessitent pas les logs, mais si vous doutez, mieux vaut
nous les fournir. Les logs sont importants et très utiles pour débugguer !
* Il se peut que les logs puissent révéler des informations plus ou moins
confidentielles, **faites attention à ne rien divulguer de sensible.**
De plus, face à un bug, je ne peux que vous encourager à suivre le format de
message suivant (tiré du [site de Sam &
Max](http://sametmax.com/template-de-demande-daide-en-informatique/)) :
### Quel est mon objectif ?
Donnez le contexte général de ce que vous essayiez de faire.
### Qu’est-ce que j’ai essayé de faire ?
Expliquez pas à pas ce que vous avez fait afin que nous puissions reproduire
le bug.
### Quels résultats ai-je obtenus ?
Le bug : ce que vous voyez qui n’aurez pas dû se passer. Ici vous pouvez
fournir les logs.
### Quel était le résultat attendu ?
Afin que nous comprenions bien où est le problème… au moins selon vous :p
### Quelle est ma situation ?
Pensez à donner les informations suivantes si vous les connaissez :
1. Quel navigateur ? Quelle version ?
2. Quel serveur : Apache, Nginx ? Quelle version ?
3. Quelle version de PHP ?
4. Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle version ?
5. Quelle distribution sur le serveur ? Et… quelle version ?
## Système de branches
### Élémentaire
Si vous êtes novice dans Git, voici quelques ressources qui pourraient vous
être utiles :
* [Article du blog de GitHub](https://github.com/blog/120-new-to-git)
*
*
*
### Obtenir le dernier code du répertoire FreshRSS
Vous devez avant tout ajouter le repo officiel à votre liste de repo remote
:
```sh
git remote add upstream git@github.com:FreshRSS/FreshRSS.git
```
Vous pouvez vérifier que le repo remote a été ajouté avec succès en
utilisant :
```sh
git remote -v show
```
Vous pouvez maintenant pull le dernier code de développement :
```sh
git checkout edge
git pull upstream edge
```
### Lancer une nouvelle branche de développement
```sh
git checkout -b mon-branch-developpement
```
## Proposer un patch
```sh
# Ajoutez le fichier modifié, ici actualize_script.php
git add app/actualize_script.php
# Commitez le changement et écrivez un message de commit approprié.
git commit
# Vérifiez deux fois que tout a l’air d’aller bien
git show
# Poussez les changements sur ton fork
git push
```
Vous pouvez maintenant créer une PR en fonction de votre branche.
### Comment écrire un message de commit
Un message de commit devrait décrire succinctement les changements sur la
première ligne. Par exemple :
> Fixe une icône cassée
Si nécessaire, une ligne blanche et une explication plus longue peuvent le
suivre.
Pour d’autres conseils, voir
[ici](https://chris.beams.io/posts/git-commit/).