Devenez un contributeur de WordPress !

Passionné du Web et du mouvement Libre, vous cherchez à apporter votre pierre à l’édifice WordPress ? Ce tutoriel est pour vous ! Les équipes de Savoir-faire Linux ont contribué au cœur de l’application et souhaite à son tour vous initier au développement de la plateforme de publication en ligne la plus populaire au monde.

Avant de commencer, sachez que la plupart des documents liés à cet article ne sont disponibles qu’en anglais malheureusement.

S’abonner
Première étape : Abonnez-vous  aux différentes plateformes utilisées par les contributeurs.

WordPress
Bien sûr, une incontournable, WordPress.org qui sert, entre autres, à documenter les procédures et à publier les informations liées au développement. Ce sera votre référence principale. Abonnez-vous et connectez-vous.

Une fois connecté, nous vous invitons à consulter la section dédiée au développement et à prendre connaissance des différentes équipes et de leur mission. C’est aussi l’occasion de vous abonner aux différents bulletins d’informations si vous souhaitez suivre de près un développement en particulier (marketing, modules, thèmes, documentations, etc.)

Slack
Les contributeurs discutent via la plateforme de communication collaborative Slack. Ils y tiennent leurs réunions, y diffusent les informations en primeur et vous aident à atteindre vos objectifs de contribution. Sur Slack, vous trouverez tous les développeurs influents de la communauté WordPress, c’est l’ endroit idéal pour leur poser vos questions !

Prenez soin de bien lire la documentation d’abonnement. La procédure peut parfois semer la confusion. Si vous rencontrez des difficultés, connectez-vous à votre compte WordPress.org, visitez la page d’abonnement et de nouvelles instructions apparaîtront.

Vous pourrez ensuite vous connecter à https://wordpress.slack.com/.

Trac
Dernière étape avant de contribuer ! Découvrez le gestionnaire de billet Trac. Chaque modification à WordPress y est documentée. Les développeurs principaux l’utilisent pour approuver et intégrer les modifications au cœur. Afin de garantir un développement efficace, précis et coordonné, son utilisation est obligatoire.

Développer: Les bonnes pratiques
C’est ici que le plaisir débute ! Avant de rédiger du code, vous devrez intégrer les bonnes pratiques et les standards de développement. Certains documents vous seront plus utiles que d’autres. Nous vous suggérons de vous concentrer sur ces sections : Core Contributor Handbook, Best Practices et Writing Patches.

Pour les développeurs PHP, ces documents sont les plus pertinents : PHP Coding Standards et Core APIs.

L’environnement
La majorité des développeurs utilisent Varying Vagrant Vagrants (VVV), qui fonctionne sous tous les systèmes d’exploitation. L’outil est spécifiquement paramétré pour le développement de l’application, incluant la création de thèmes et de modules.

L’installation peut être complexe, surtout si vous installez les modules optionnels de Vagrant. Sous Linux, assurez-vous d’avoir les librairies « build-essential » et « libc6-dev » avant de débuter.

Bien sûr, vous pouvez travailler avec d’autres outils que VVV. Si c’est le cas, n’oubliez pas de rapporter vos développements sur le dépôt de code du cœur de WordPress pour suivre les tests et les avancements de vos contributions !

Voici un exemple d'installation d'un environnement de développement utilisant VagrantPress et Git déployé avec Ubuntu.

git clone https://github.com/vagrantpress/vagrantpress.git
cd vagrantpress
vagrant up
rm -fr tests
git clone git://develop.git.wordpress.org/ tests
vagrant provision

SVN et Git
Vous avez sûrement remarqué que le dépôt de code utilise SVN. Si vous désirez contribuer au cœur, nous vous recommandons vivement son usage. Mais pas d’obligation, il est aussi possible de passer par Git.

Vous trouverez les documents dont vous aurez besoin pour utiliser ces deux systèmes de gestion de versions dans les librairies suivantes : How to Use Subversion for developers, plugin, codex  pour SVN et Using Git pour le second.

CSS et Javascript
WordPress compresse certaines ressources. Pour vous permettre de travailler, vous devrez désactiver cette fonction dans le   » wp-config.php « . Ajoutez-y  » define(‘SCRIPT_DEBUG’, true); « .

Validateur de code
Les standards de code WordPress sont fort probablement différents de ceux auxquels vous êtes habitué. Un vérificateur de format de code peut apporter une grande aide. Utilisez PHP_CodeSniffer avec le fichier de paramétrage de normes WordPress.

Vous pouvez aussi lire les guides de style WordPress pour connaître les instructions d’installation détaillées.

Contribuer en effectuant des tests
Saviez-vous que vous n’êtes pas obligé d’être développeur aguerri pour contribuer à WordPress ?

Par exemple, effectuer des tests est une bonne manière de participer au développement tout en apprenant. Trac liste les corrections à tester. Si vous débutez, travaillez d’abord sur des corrections non urgentes.

Réaliser de grands rêves avec de petits pas de bébé

Oui, contribuer demande un premier grand investissement : Lire, paramétrer, configurer, télécharger…  Mais une fois cette étape passée et quelques premières interventions, vous serez officiellement un contributeur de logiciel libre ! Maintenant, profitez de cette opportunité pour faire vos premiers pas de bébé, et de réaliser votre grand rêve… de devenir un développeur de logiciel libre!

Drupal 8 : de Barcelone à Dublin, une année à fond de train

drupal-8-logo-rgb-72

Lors du DrupalCon de Barcelone en septembre 2015, la communauté Drupal était très déçue de pas avoir réussi à finaliser Drupal 8, pourtant en développement depuis bientôt quatre ans.
Au moment du DrupalCon de Dublin en septembre 2016, Drupal 8 était non seulement disponible depuis plusieurs mois, mais deux nouvelles versions mineures (8.1.0 et 8.2.0) avaient déjà vu le jour.
Cette version est sans aucun doute la plus importante de l’histoire du projet, tant par les nouveautés apportées au logiciel que par les changements appliqués au processus de développement.
De ce fait, on peut se poser la question suivante : comment la communauté Drupal est-elle passée d’un délai de quatre ans entre les versions 7 et 8, à des itérations courtes et des nouveautés fréquentes ?

La mise en place des versions planifiées
Le graphique ci-dessous montre à quel point le temps entre chaque version de Drupal a augmenté de façon considérable.
crop_drupal

Ce délai entre Drupal 7 et 8 a aussi révélé un certain nombre de problèmes.
Puisque cette version était en mode de développement durant quatre ans, les contributeurs avaient l’impression de travailler dans une sorte de bulle, ajoutant de nouvelles fonctionnalités sans jamais savoir si elles répondaient à des besoins réels chez l’utilisateur hypothétique.
La mise en place de versions planifiées est venue remédier à ce dysfonctionnement en prévoyant une nouvelle version tous les six mois.

Cela permet aux développeurs d’ajouter des nouveautés beaucoup plus souvent, de recevoir des commentaires d’utilisateurs réels et d’être ainsi mieux à même de suivre le marché.
La sortie d’une nouvelle version marque aussi la fin du support de la précédente pour inciter les utilisateurs à tenir leur site à jour et pour éviter d’avoir à supporter plusieurs versions.
La gestion sémantique de version
Le passage d’un système de version à deux chiffres (7.x) à un système de version à trois chiffres (8.0.x), appelé gestion sémantique de version, a favorisé la mise en place des versions planifiées et permis de limiter les changements de versions majeures.
Le premier chiffre, la version majeure, n’augmente que lorsque des changements rétro-incompatibles sont nécessaires. Le troisième, la version de correctif, est augmenté chaque fois qu’une mise à jour de sécurité ou qu’un correctif de bogue est appliqué. Finalement, la version mineure représentée par le chiffre du centre, est augmentée toutes les fois que de nouvelles fonctionnalités rétro-compatibles sont ajoutées.
Dans le cas de Drupal 8, c’est cette version mineure qui est incrémentée tous les six mois.

Les modules expérimentaux
En plus des sorties planifiées et des versions sémantiques, Drupal 8 introduit aussi le concept de module expérimental.
Un module expérimental est un module qui aspire à être inclus dans le cœur de Drupal, mais qui n’a pas encore atteint une stabilité acceptable.
Comparativement à un module communautaire, un module expérimental reçoit davantage de visibilité de la part des utilisateurs et des core commiters puisqu’il est inclus dans le cœur de Drupal.
Toutes les modifications apportées à son code sont revues par une personne responsable du projet, garantissant ainsi qu’il ne contient aucune faille de sécurité connue ni aucun risque de perte de données.
Notons aussi que leur utilisation dans un environnement de production est déconseillé et que leur avenir dans le cœur de Drupal n’est pas garanti, car s’ils ne se stabilisent pas dans un délai d’un an, ils seront retirés.

Les nouveautés dans Drupal 8.2.

1) De nouveaux modules expérimentaux
– «Content moderation» qui introduit les états de modération du contenu.
– «DateTime range» qui permet d’ajouter des dates de fin.
– «Place block» qui permet de placer des blocs directement sur une page sans avoir à passer par les pages d’administration, facilitant ainsi la visualisation du rendu.
– «Settings tray» qui introduit un panneau latéral pour éditer la configuration de certaines parties des pages comme, par exemple, les menus.

2) Des améliorations à des fonctionnalités déjà présentes
– Des URL relatives converties en URL absolues lorsque présentées dans un flux RSS.
– Des révisions activées par défaut pour les nouveaux types de contenus.
– Un progrès considérable du côté du support REST, qui permet un plus grand contrôle sur un site Drupal depuis une application externe.

Que peut-on espérer pour Drupal 9 ?

Avec ce nouveau modèle de développement, certains se demandent si Drupal 9 sera vraiment nécessaire dans un futur proche.
Il est vrai que les nouveautés de Drupal 8 vues ici nous permettent d’ajouter des fonctionnalités beaucoup plus facilement et rapidement qu’auparavant, alors pourquoi ne pas continuer ainsi pendant plusieurs années ?
Nous sommes portés à croire que ce sera probablement le cas. Tant qu’il n’y aura pas un excès de couches de rétro-compatibilité qui gagneraient à être retirées ou qu’il n’y a pas de besoin urgent de faire des changements rétro-incompatibles, Drupal 8 continuera d’évoluer au rythme de ses versions mineures.
De plus, étant donné que la sortie d’une nouvelle version mineure implique la fin du support de la précédente, nous pouvons espérer que lorsque Drupal 9 sortira, la transition se fera beaucoup plus efficacement que celle entre Drupal 7 et 8. Et ce pour deux raisons.
Premièrement, puisque le plus important changement sera probablement le retrait des couches de rétro-compatibilité, et que leur dépréciation aura été annoncée progressivement au fil des versions mineures, les modules communautaires auront eu amplement le temps de s’adapter.
Deuxièmement, si des changements rétro-incompatibles sont ajoutés tels que des modifications aux API ou aux structures de données, ils seront certainement moins colossaux que ceux que nous avons vus entre les versions 7 et 8, ce qui présage une mise à jour beaucoup plus aisée.

Sources
Dries Buytaert, Driesnote, DrupalCon Dublin 2016
Gábor Hojtsy, Checking on Drupal 8’s rapid innovation promises, DrupalCon Dublin 2016

SVG Summit 2016: plein feu sur le format vectoriel ouvert SVG

Affiche Web du SVG Summit 2016Le SVG est une bibite rare! À la fois code et image, il peut être léger (comme le logo de Google dont une variante mobile ne pèse que 305 bytes!) mais aussi très chargé, soit plusieurs Mo. Il peut être interactif ou statique et n’a pas de résolution fixe. On peut le visionner dans un navigateur ou dans un logiciel graphique… On en vient à se demander ce que ça mange en hiver!

En janvier dernier, pour en savoir plus, j’ai assisté à la toute première conférence en ligne sur le sujet, organisé par Environments for Humans  : Le SVG Summit 2016. La liste des présentateurs était un heureux mélange d’illustrateurs, d’animateurs et d’intégrateurs. Ils ont tous parlé de l’usage qu’ils font du SVG dans le cadre de leurs pratiques respectives.

▶ Suite : Introduction au SVG


Conclusion

Après 15 ans d’existence, le SVG reçoit enfin l’attention qu’il mérite. L’avenir de cette technologie aujourd’hui implémentée dans tous les navigateurs modernes est prometteur. Elle continuera de nous en mettre plein la vue dans les années à venir.

Design web: comment tirer parti de l’innovation des logiciels libres

Émilien Edmond évolue aussi vite que le web! Designer UX/UI principal chez Savoir-faire Linux depuis bientôt trois ans, il adapte continuellement ses processus de travail. Le 18 mars dernier, il inaugurait la piste Design du Web à Québec (#WAQ) 2015 en lançant un message clair aux designers et enseignants qui utilisent encore l’arsenal logiciel classique du design propriétaire sans se poser de question. D’après lui, le moment est venu d’examiner — ou de réexaminer — de très près ce que leur propose aujourd’hui un certain nombre de logiciels libres.

Édités par des startups ou des chefs de file du secteur comme Adobe, portés ou appuyés par la communauté, ces logiciels s’adaptent rapidement aux réalités changeantes du Web et plusieurs d’entre eux arrivent aujourd’hui à maturation. En quoi leur utilisation pourrait-elle avoir un impact positif sur le travail des designers Web? Sont-ils fiables et matures? Y a-t-il encore des freins à leur utilisation? Si oui, comment les débloquer? Quelles sont les futures innovations auxquelles il faut s’attendre? Voici les principaux sujets abordés par Émilien dans cette conférence.

Sans oublier la présentation, rapide mais commentée, de plusieurs logiciels et sources d’information complémentaire:

  • Pencil: maquettes et prototypes (24’40 »)
  • Inkscape: dessin vectoriel (25’23 »)
  • Scribus: PAO (26’14 »)
  • Krita: dessin et illustration (26’31 »)
  • Gravit: éditeur graphique (27’03 »)
    NB: les sources de ce logiciel ne sont plus disponibles depuis mai 2015, mais un fork de la version GPL d’août 2014 est disponible sur Github.
  • Brackets: éditeur texte (28’05 »)
  • Framer: animation (28’57 »)

Et pour rester à l’affût de l’innovation du design libre et ouvert:

OCTAS 2015 : votez pour le Centre collégial des services regroupés, Véga, Python… et Savoir-faire Linux!

Prix COUP DE CŒUR TIIl y a quelques jours, le Réseau ACTION TI annonçait que, pour la première fois en 2015, un prix du public serait remis lors du Gala des OCTAS 2015, le 28 mai prochain : le prix COUP DE CŒUR TI. Parmi les 77 organisations nominées figure le Centre collégial des services regroupés (CCSR), qui lançait récemment Véga. Cette application Web de dernière génération permet à ses abonnés de gérer efficacement les données sur les produits dangereux entreposés par leur organisation, conformément aux normes et lois en vigueur.

En tant que fournisseur ayant développé ce projet, Savoir-faire Linux vous suggère fortement — sans aucun parti-pris LOL — de voter pour le Centre collégial des services regroupés avant le 27 mai. Comme vous allez le constater en lisant ce qui suit, ce ne sont pas les bonnes raisons qui manquent, que ce soit pour l’amour du logiciel libre, du langage Python, des applications Web utiles et bien faites, des normes de sécurité publique, de l’éducation supérieure ou de la mutualisation!

Votez maintenant!

Un peu d’histoire*

Centre collégial de services regroupésEn 2001, le CCSR met sur pied une banque de fiches signalétiques de produits contrôlés, Reprofics, pour en centraliser la mise à jour. Reprofics est d’abord accessible aux abonnés par l’entremise d’un logiciel propriétaire. Au tournant de 2008, ce logiciel n’est plus développé, ni supporté. De nombreux établissements continuent néanmoins de l’utiliser.

Des démarches sont entreprises pour l’adoption d’un nouveau logiciel, mais aucun des produits analysés ne convient aux utilisateurs. Le Cégep régional de Lanaudière amorce alors le développement d’un logiciel d’inventaire des produits contrôlés sous la supervision d’un chimiste, en collaboration avec des stagiaires. Au terme de ce développement, le Cégep propose au CCSR d’intégrer la banque de fiches au logiciel d’inventaire : la première version de Véga voit le jour.

Cette première application Web réalisée en .NET par des étudiants permet de répertorier les produits se trouvant dans un local donné et de les relier aux fiches signalétiques de Reprofics. Une autre interface permet de consulter la banque de fiches. Des fonctionnalités s’ajoutent au fil des ans (impression d’étiquettes en quatre formats, intégration de plans en PDF, aide à la préparation de laboratoires).

En 2012, Véga n’est cependant utilisée que par quelques établissements en phase pilote et n’est toujours pas commercialisable. En raison de son développement par des stagiaires sur une courte période, de la multiplication des modules et du manque de cohérence du code, faire évoluer Véga devient difficile, tant en ce qui a trait à l’apparence et à l’adaptabilité (téléphone, tablette) qu’à l’optimisation des fonctionnalités.

Le CCSR, propriétaire de Reprofics, rachète alors les droits de Véga au Cégep régional de Lanaudière et entreprend la refonte de l’application dans le but de la faire évoluer. Il met sur pied un comité d’utilisateurs responsable de proposer et de prioriser les adaptations et les développements.

Véga, la refonte

La refonte de Véga a été réalisée de janvier 2013 à janvier 2015 en collaboration avec Savoir-faire Linux. La nouvelle solution Web, développée en python avec le cadre d’applications Django, maintient et améliore les fonctionnalités existantes, en plus d’en proposer de nouvelles :

  • Banque de fiches – Accès aux fiches sommaires normalisées réalisées à partir des fiches d’origine (PDF), facilitant la tâche des utilisateurs des produits contrôlés en regroupant sur une même feuille toute l’information relative à l’identification du produit, à sa classification SIMDUT, à l’équipement de protection individuelle requis lors de l’utilisation, à sa manutention, à son entreposage et aux premiers soins à donner en cas d’urgence; ◤vidéos◥
  • Étiquettes – Production d’étiquettes conformes à la loi pour chaque produit dans tout format d’étiquette possible; (voir figure 1 plus bas)
  • Inventaire – Gestion, dans un emplacement accessible à tout intervenant autorisé, de l’inventaire des produits dangereux reliés aux fiches signalétiques des produits; ◤vidéos◥
  • Mesures d’urgence – Centralisation des plans de contingence concernant les produits dangereux et des plans détaillés des bâtiments, possibilité de les imprimer à même l’interface Web et de les envoyer sous forme de fichiers PDF aux services d’urgence, possibilité de créer un compte d’accès spécial permettant aux intervenants externes de récupérer en tout temps l’information et les plans les plus récents.
  • Mobilité et consultation multi-plateformes – Prise d’inventaire et gestion des fiches signalétiques et accès facilités par l’usage de tablettes et de téléphones intelligents.
  • Accès en mode consultation – Accès direct à partir de n’importe quel poste informatique d’une organisation membre (filtre par adresses IP), une fonctionnalité appréciée des professeurs et étudiants.

En conclusion, Véga est un projet numérique novateur qui tire parti des technologies de l’information afin d’améliorer l’efficacité et la transparence de la gestion des produits dangereux au sein des organisations. Le recours aux technologies ouvertes python et Django donne au CCSR le contrôle du code et de la propriété intellectuelle et assure le développement futur de l’application en fonction de l’évolution des besoins des utilisateurs, sans frais de licence et sans dépendre d’un fournisseur.

Image
Figure 1 – Exemple de formats d’impression d’étiquettes