Une entrée de suivi a été créée suite à un de mes commentaires ; je me suis demandé si j’étais capable de la traiter.
Prendre de l’info
Le code du site LinuxFr.org est trouvable sur GitHub, c’est du Ruby on Rails, un framework que je ne connais pas. Le texte qui me sert de point de départ, « Aller plus loin », est dans un template Haml, une autre nouveauté pour moi. Le Readme contient des instructions sur l’installation en local et j’ai bien l’impression qu’il y a des tests automatisés, top !
Voilà mon plan :
- faire tourner le site en local (puis faire une modification de texte dans le template Haml ciblé et vérifier que la modification est bien prise en compte) ;
- déterminer ce qu’implique le fait de ne plus afficher le « Aller plus loin » dans les dépêches (quels écrans sont concernés, quelle règle d’affichage en cours de rédaction ou de modération, etc.) ;
- coder le changement de comportement ;
- mettre en place le(s) test(s) automatisé(s) correspondant(s) (prérequis : avoir compris comment ils fonctionnent) ;
- créer une pull request.
C’est parti ! J’applique les instructions du Readme sur ma machine sous Ubuntu.
Des instructions d’installation semées de petites embûches
L’étape 1 du Readme demande l’installation d’un certain nombre de paquets. Seule l’installation de nodejs-legacy m’a posé problème, le paquet n’ayant plus de version installable. apt-get install
me propose à la place nodejs:i386
, libnode64:i386
, nodejs
ou libnode64
, et j’installe nodejs
, en gardant en tête que j’aurai peut‑être à revenir sur cette étape :
# apt-get install node-js
Dans l’étape 2 de configuration d’une base MySQL, j’ai une erreur à l’attribution des privilèges :
mysql> GRANT ALL PRIVILEGES ON linuxfr_rails.* TO "linuxfr_rails"@"localhost";
ERROR 1133 (42000): Can't find any matching row in the user table
Je décide de supprimer l’utilisateur linuxfr_rails créé précédemment pour le recréer avec un hôte « localhost » :
mysql> CREATE USER 'linuxfr_rails'@'localhost' IDENTIFIED BY 'asecretpassword';
Dans l'étape 3, bin/setup me renvoie une erreur (Could not find 'bundler' (1.16.4) [...] run `bundle update --bundler`)
qui, de fil en aiguille (Make sure that `gem install nokogiri -v '1.10.4' --source 'https[]()://rubygems.org/'` succeeds before bundling.
), m'amène à installer ruby-dev :
# apt-get install ruby-dev
Nouvelle tentative de bin/setup
, nouvelle erreur (== Command ["npm install"] failed ==
), qui me conduit à installer npm :
# apt-get install npm
Troisième tentative, qui me renvoie :
== Preparing database ==
Access denied for user 'linuxfr_rails'@'localhost' (using password: NO)
Couldn't create 'linuxfr_rails' database. Please check your configuration.
[...]
== Command ["bin/rails db:setup"] failed ==
Bon, il va falloir que je creuse, peut‑être du côté des fichiers YAML de configuration de base de données.
En attendant, comme j’ai des questions et que j’aime raconter ma vie, j’ai écrit un journal.
J’ai pas fini mais j’ai des questions
- au‑delà du Readme, existe‑t‑il une aide à la prise en main du code de LinuxFr.org ? Je n’ai pas trouvé via les liens « À propos de LinuxFr.org » ou dans les forums ;
- peut‑on proposer une pull request pour une entrée de suivi dont la note est de 0 ?
- y a‑t‑il un forum préférable pour poser des questions en lien avec le développement du site LinuxFr.org ?
- pour proposer une mise à jour du Readme de https://github.com/linuxfrorg/linuxfr.org/, une pull request suffit‑elle ou bien est‑il préférable d’ouvrir au préalable une entrée de suivi sur LinuxFr.org ?
# Instructions d'installation pour Debian Stretch
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 9.
Hello,
Pour t'aider dans la mise en place de ton environnement, j'ai écris un fichier "INSTALL.md" qui explique comment installer LinuxFr sur Debian Stretch.
Pour la piste du template, ça à l'aire juste, je commencerais par là aussi :)
Tu verras, Rails est sympa, il définit un environnement de travail assez chouette avec un ORM qui se base sur les models pour gérer la base de donnée et sur une approche MVC classique gérée par le serveur
bin/rails
.Avec Rails, pas mal de choses sont définies de manières implicites. Pour ce bug, ça ne devrait pas être nécessaire, mais, si tu veux mieux comprendre le fonctionnement de Rails, leur tutoriel est un très bon début :)
Tu peux faire des PRs pour tout ce que tu veux et dans ce cas, ça semble pertinent comme ajout.
Il me semble que, même sans entrée dans le suivi, tu peux faire des PRs. L'entrée dans le suivi permet d'avoir les avis des autres et voir si c'est pertinent pour le site. Je pense que des corrections du style, une mise à jour du Readme, n'a pas forcément besoin d'une entrée de suivi.
Bonne découverte !
[^] # Re: Instructions d'installation pour Debian Stretch
Posté par Victor . Évalué à 8.
Alors pourquoi ne pas faire une PR pour ajouter ton INSTALL.md au dépôt github de linuxfr ?
[^] # Re: Instructions d'installation pour Debian Stretch
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3.
Simplement parce que je pensais que les scripts Ansible seraient bientôt disponibles
^^
Mais vu comme le temps passe vite, je vais faire un rebase et un PR. Merci pour le relancement du sujet.
# Les contributions sont les bienvenues
Posté par Bruno Michel (site web personnel) . Évalué à 10.
Salut, je suis le développeur principal de la version Ruby on Rails du site. Ces dernières 4 ou 5 années, je ne suis plus très actif (mon dernier commit remonte à 6 mois par exemple), donc c'est vraiment bienvenu que d'autres personnes s'intéressent au code et proposent des PR.
Le gros du code a été écrit en 2009 et 2012. Ça remonte pas mal et certaines choses ont mal vieillies (mais moins que ce que l'on pourrait craindre). Dans l'ensemble, Ruby on Rails fait du bon boulot et le code est dans un état correct. Il y a des parties qui ont été écrites avant que Ruby on Rails ne propose une solution à ça, et si on réécrivait ça aujourd'hui, ça serait beaucoup plus simple en utilisant la solution de Ruby on Rails (par exemple, on n'utilise pas ActiveJob pour les jobs de publication des news sur twitter). Mais pour les parties qui ont mal vieillies, je pense plutôt à la doc et aux tests (ou plutôt l'absence de tests).
Non, il n'y en a plus. Il y en a eu par le passé, mais sans intégration continue et avec une couverture loin d'être suffisante. Du coup, ils ne servaient pas à grand chose, et quand ils ont cassé sur des mises à jour de Ruby on Rails ou d'autres gems, la solution la plus simple a été de retirer les tests cassés. À la fin, j'ai fini par tous les retirer.
Pas vraiment (ou des trucs trop anciens pour être vraiment utiles), mais j'essaye de répondre aux questions que l'on me pose.
Oui, c'est possible (surtout s'il n'y a pas de commentaires avec un avis négatif dessus). C'est probablement préférable d'indiquer dans l'entrée de suivi que tu comptes proposer une PR. Globalement, on a plutôt tendance dans l'équipe à accepter facilement les contributions.
Je dirais que le suivi est ce qui s'en rapproche le plus. Il y a eu une liste de diffusion par mails pour ça, mais je crois qu'elle n'existe plus.
Une pull request suffit pour ça.
Dans le fichier
config/database.yml
, il y a une sectiondevelopment
qu'il faut modifier en :# Pull request faite (et déjà mergée)
Posté par theojouedubanjo . Évalué à 2.
Merci Adrien et Bruno pour les infos et pour la mise à jour du Readme.
Après avoir renseigné le mot de passe de linuxfr_rails dans le fichier config/database.yml (+ opérations équivalentes à linuxfr_rails pour linuxfr_test), j'ai effectivement pu lancer le site LinuxFr en local.
La modification de code est au final très limitée, car peu d'impacts (ou alors je les ai manqués) et pas de tests automatisés sur le projet aujourd'hui. Mais la marche sera moins haute si je devais y revenir.
# quand LinuxFr monte dans un cargo
Posté par Marc Quinton . Évalué à 4.
Quand LinuxFr monte dans un bateau, que reste-t-il ?
voici un premier jet concernant la containerisation de l'application LinuxFr (WIP) : https://gitlab.com/mqu/linuxfr-docker
# Modifications non déclarées
Posté par theojouedubanjo . Évalué à 3.
Le contenu du journal ci-dessus a été modifié. Cela partait probablement d'une bonne intention (par exemple rajouter une ligne blanche dans le code markdown de la première liste pour qu'elle soit interprétée comme une liste à puces) mais :
Un commentaire eût été le bienvenu.
[^] # Re: Modifications non déclarées
Posté par Benoît Sibaud (site web personnel) . Évalué à 7.
Je ne suis pas l'auteur de modifications (et je ne suis pas d'accord avec sur les journaux) mais en comparant depuis les logs la version initiale et la version courante, il s'agit de modifications markdown et typographiques, plus de modifications linuxfr en LinuxFr.org et packages/paquets. Dans le paragraphe étape 3, les backquotes échappées couplées aux modifications typographiques ont un peu mis le souk dans le code, donc j'ai repris le paragraphe initial et je l'ai emballé dans des triples backquotes.
[^] # Re: Modifications non déclarées
Posté par Davy Defaud . Évalué à 2.
Je suis l’auteur des modifications. J’ai effectivement fait l’économie d’un commentaire qui me paraissait superflu, puisqu’il ne s’agissait que de corrections de mise en forme. Bien mal m’en a pris.
[^] # Re: Modifications non déclarées
Posté par barmic 🦦 . Évalué à 1.
C'est un peu plus grave que ça puisque ça viole la licence qui dit explicitement (si on suit le lien qui est dans le journal) :
C'est donc un bug assez gênant que tu remonte…
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.