Journal Tenter une première modification sur le code de LinuxFr.org

Posté par . Licence CC by-sa.
Tags :
31
15
fév.
2020

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 (page perso) . Évalué à 9 (+7/-0).

    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 !

  • # Les contributions sont les bienvenues

    Posté par (page perso) . Évalué à 10 (+10/-0).

    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).

    j'ai bien l'impression qu'il y a des tests automatisés

    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.

    Au delà du Readme, existe-t-il une aide à la prise en main du code LinuxFr ?

    Pas vraiment (ou des trucs trop anciens pour être vraiment utiles), mais j'essaye de répondre aux questions que l'on me pose.

    Peut-on proposer une pull request pour une entrée de suivi dont la note est de 0 ?

    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.

    Y a-t-il un forum préférable pour poser des questions en lien avec le développement du site LinuxFr ?

    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.

    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 ?

    Une pull request suffit pour ça.

    mysql> CREATE USER 'linuxfr_rails'@'localhost' IDENTIFIED BY 'asecretpassword';
    Access denied for user 'linuxfr_rails'@'localhost' (using password: NO)

    Dans le fichier config/database.yml, il y a une section development qu'il faut modifier en :

    development:
      database: linuxfr_development
      username: linuxfr_rails
      password: asecretpassword
  • # Pull request faite (et déjà mergée)

    Posté par . Évalué à 2 (+2/-0).

    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 . Évalué à 4 (+2/-0).

    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 . Évalué à 3 (+3/-0).

    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 :

    • à moins que je sois passé à côté, l'interface ne me permet pas de voir ce qui a été modifié ni pourquoi (même si je peux essayer de le deviner), ce qui ne m'aide pas à progresser ni sur les bonnes pratiques ni sur l'usage du markdown ;
    • la modification a été faite sur un journal qui n'est associé qu'à mon pseudo, donc, tel que je l'interprète, en mon nom (je n'ai aucun problème avec le fait que le texte soit réutilisé, c'est la modification non déclarée du journal qui me pose problème) ;
    • certaines modifications ne me plaisent pas ; c'est le cas en particulier pour le paragraphe qui commence par "Dans l'étape 3", puisque le résultat est à mon sens incohérent.

    Un commentaire eût été le bienvenu.

    • [^] # Re: Modifications non déclarées

      Posté par (page perso) . Évalué à 7 (+4/-0).

      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 . Évalué à 2 (+0/-0).

      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 . Évalué à 1 (+0/-0).

      la modification a été faite sur un journal qui n'est associé qu'à mon pseudo, donc, tel que je l'interprète, en mon nom (je n'ai aucun problème avec le fait que le texte soit réutilisé, c'est la modification non déclarée du journal qui me pose problème) ;

      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) :

      Vous devez créditer l'Œuvre, intégrer un lien vers la licence et indiquer si des modifications ont été effectuées à l'Oeuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'Offrant vous soutient ou soutient la façon dont vous avez utilisé son Oeuvre.

      C'est donc un bug assez gênant que tu remonte…

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.