Wiki Organisation Code LinuxFr

0
10
mar.
2011

Sommaire

Le code de LinuxFr.org est disponible sous licence GNU Affero General Public License

Installation

Suivre les instructions fournies dans le README

Organisation générale

Le code répond à un modèle MVC ou Modèle-vue-contrôleur et se base sur Haml pour une syntaxe simplifiée des pages web.

  • CSS : Le code de vos CSS, ou vos modifications des CSS existantes.

Comprendre MVC : modèle, vue, contrôleur

Du fait du modèle MVC, pour identifier une modification, vous pouvez procéder ainsi :

  • retrouvez le fichier .haml concerné (dans les views/),
    • pour ce qui est esthétique
  • remontez au besoin au contrôleur (dans les controllers/),
    • pour ajouter un peu de logique métier ou simplement des attributs à afficher ou calculer
  • cherchez la définition des objets et leurs méthodes associées (dans les models/),
    • pour toutes les données disponibles

Proposer des patchs

Nul besoin de s'y connaître en Ruby on rails pour proposer des patchs, que ce soit esthétique ou dans les CSS.

Déroulement d'une demande de pull

Premièrement, il faut un compte sur GitHub.

  • Ensuite, il faut se rendre sur https://github.com/nono/linuxfr.org/ en étant loggué et cliquer sur le bouton en haut à gauche intitulé fork. Ensuite, on obtient une URL pour pouvoir cloner le dépôt Git (avec des droit d'écriture lors d'un push).
    • On peut ensuite modifier les fichiers et faire ses commit, une fois les modifications terminées, il ne faut pas oublier de faire un git push.
  • Il est aussi possible d'éditer un fichier directement sur github, cela crée automatiquement un fork (s'il n'existait pas) et une branche spécifique pour le fichier édité
  • On revient sur GitHub et dans son compte, on clique sur le bouton demande de pull (aka pull request), on écrit ensuite un gentil message à NoNo< qui explique le pourquoi de la demande.
  • Ne pas oublier de faire une entrée dans le suivi.

Cela fonctionne très bien pour une contribution ponctuelle, à un instant t.
Pour autant, si plus tard vous voulez de nouveau faire une modification, il est bon de resynchroniser son dépôt sur le master. Pour ce faire, il faut lancer git remote add nono https://github.com/nono/linuxfr.org.git qui ajoute le dépot de nono comme dépôt distant puis lancer git pull nono master pour merger le dépôt de nono avec la branche master locale.

J'ai aussi testé d'éditer le fichier de mon fork, mais cela semblait compliquer le merge (je n'avais qu'une ligne à modifier, mon fichier datant de 6 mois, cela faisait une vingtaine de lignes modifiées… non prises en compte dans l'intermède : la modif' s'appliquant à la version « actuelle » et non à celle que j'ai prise il y a six mois… je ne sais pas si je suis clair, là ?).

Exemples de contributions pour s'y retrouver dans le code

Vous pouvez regarder quelques commits significatifs pour identifier comment procéder, par exemple :

Ci-dessous, l'organisation détaillée des arborescences.

Arborescence du code

bibliothèques utilisées

LinuxFr.org respecte les bonnes pratiques du RoR et s'appuie sur des bibliothèques existantes lorsque cela est possible :

  • albino
  • jquery
  • rake
  • redcarpet pour le rendu Markdown
  • sanitizer
  • à compléter (markdown, bibliothèque pour les langages pygmentize -L lexer)

Voir https://github.com/nono/linuxfr.org/tree/master/vendor/assets/javascripts pour les scripts utilisés.
Voir aussi cette dépêche sur l'architecture logicielle.

gestion de l'application

Indiquer les url correspondant à l'arborescence (dashboard = tableau de bord), trier par ordre alphabétique.

app/ https://github.com/nono/linuxfr.org/tree/master/app liste de toutes les fonctionnalités
app/assets https://github.com/nono/linuxfr.org/tree/master/app/assets tout ce dont vous avez besoin pour les CSS
app/mailers

app/views https://github.com/nono/linuxfr.org/tree/master/app/views liste des vues, correspond généralement à l'URL

liste détaillée de l'arborescence du code

app/views/sections
app/views/diaries
app/views/home
app/views/tags
app/views/trackers
app/views/layouts
app/views/sessions
app/views/news
app/views/posts
app/views/links
app/views/static
app/views/redaction
app/views/redaction/paragraphs
app/views/redaction/news
app/views/redaction/links
app/views/devise
app/views/devise/unlocks
app/views/devise/passwords
app/views/devise/registrations
app/views/devise/shared
app/views/devise/mailer
app/views/devise/confirmations
app/views/news_notifications
app/views/shared
app/views/admin
app/views/admin/sections
app/views/admin/friend_sites
app/views/admin/responses
app/views/admin/categories
app/views/admin/accounts
app/views/admin/pages
app/views/admin/logos
app/views/admin/banners
app/views/admin/stylesheets
app/views/admin/forums
app/views/comments
app/views/users
app/views/stylesheets
app/views/forums
app/views/nodes
app/views/search
app/views/boards
app/views/moderation
app/views/moderation/news
app/views/moderation/polls
app/views/polls
app/views/dashboard
app/views/wiki_pages

app/controllers
app/controllers/redaction
app/controllers/admin
app/controllers/moderation

app/models

gestion des CSS

app/stylesheets CSS par défaut

app/helpers

public/errors
public/fonts
public/javascripts
public/stylesheets
public/stylesheets/contrib
public/stylesheets/pygments

public/images
public/images/icones
public/images/sections

public/images/contrib https://github.com/nono/linuxfr.org/tree/master/public/images/contrib liste des images spécifiques aux css contribuées

```text
public/images/contrib/retro
public/images/contrib/RonRonnement
public/images/contrib/ice
public/images/contrib/kitch
public/images/contrib/grises
public/images/contrib/grayscale
public/images/contrib/grayscale/blocks
public/images/contrib/grayscale/bg
public/images/contrib/grayscale/notice
public/images/contrib/grayscale/icons
public/images/contrib/grayscale/comments
public/images/contrib/grayscale/avatars
public/images/contrib/grayscale/flags
public/images/contrib/opensuse
public/images/contrib/edition_papier
public/images/contrib/sky
public/images/contrib/black_bling
public/images/contrib/black_bling/markitup
public/images/contrib/kaiska
public/images/contrib/colors
public/images/contrib/colors/scalable

public/images/logos
public/images/langs
```

divers

config/
config/templates
config/locales
config/environments
config/initializers
db/
db/migrate
db/pages
lib/
lib/tasks
public/
public/tmp
public/images/nouvelles
public/images/nouvelles/concours_dlfp2009
public/images/markitup
public/images/news
public/images/news/rechargeable_batteries
public/images/news/plantuml
public/images/deontologie
public/images/cuisine
public/images/dessins
public/images/dessins/concours_perenoel2006
public/images/dessins/concours_perenoel2006/lettre_pere_noel_clem
public/images/dessins/concours_perenoel2006/lettre_geekscottes
public/images/dessins/concours_antidrm
public/images/dessins/concours_antidrm/drm_noel
public/images/dessins/concours_antidrm/drm_enferme
public/images/dessins/concours_antidrm/DRM_un_droit_en_moins
public/images/dessins/concours_antidrm/itubes
public/images/dessins/concours_antidrm/drm_oreilles
public/images/dessins/concours_antidrm/drm_creativite
public/images/dessins/concours_antidrm/iShackle
public/images/dessins/concours_antidrm/antidrm-bras
public/images/dessins/concours_antidrm/supermajor
public/images/dessins/concours_antidrm/geekscottes
public/images/dessins/concours_antidrm/drm_musique_clefs
public/images/dessins/concours_antidrm/nouveau_drm
public/images/dessins/concours_antidrm/drm_is_toxic
public/images/dessins/concours_antidrm/protection_des_livres
public/images/dessins/concours_antidrm/do-re-mi
public/images/dessins/concours_antidrm/antidrm
public/images/dessins/concours_antidrm/liberte_de
public/images/dessins/concours_antidrm/stopdrm

public/association
public/board
app/uploaders

script/
spec/
spec/lib
spec/models
spec/factories
spec/controllers
spec/support
spec/requests
tmp/
tmp/sessions
vendor/
vendor/plugins
vendor/plugins/haml

(à trier)

  • # À mettre dans le code

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

    Quand on veut modifier le code, on clone le dépôt et on commence à hacker. On ne vient pas chercher sur le wiki de LinuxFR si par hasard il y aurait de la documentation sur le code.

    Ce document devrait être dans le dépôt des sources, tout comme le README actuel; à la racine ou dans un sous-répertoire doc/.

    • [^] # Re: À mettre dans le code

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

      moui, c'est pas faux ;-)

      En même temps, ce que je chercherais sur le wiki, ce serait plutôt un moyen de travailler à partir de gitorious et pour autant réussir à proposer mes patchs ;-)

      Le wiki pourrait renvoyer vers les docs dans le dépôt pour contribuer facilement au code de LinuxFr.org ;-) (et ajouter les liens vers les paquets .deb et .rpm permettant de l'installer facilement sur beaucoup de distros, les gentooistes et les archers ajouteront un lien vers l'ebuild ou AUR respectif :D).

Envoyer un commentaire

Suivre le flux des commentaires

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