Planète

Par flocondetoile
Adhérent

Drupal 8 et les événements

Drupal 8 dispose désormais d'une nouvelle corde à son arc pour interagir avec le coeur ou ses modules contribués : les événements, hérités directement de Symfony2. Découvrons plus en détail comment propager un événement ou y souscrire, ainsi que leurs différents cas d'utilisation.

Par flocondetoile
Adhérent

Drupal 8 et les événements

Drupal 8 dispose désormais d'une nouvelle corde à son arc pour interagir avec le coeur ou ses modules contribués : les événements, hérités directement de Symfony2. Découvrons plus en détail comment propager un événement ou y souscrire, ainsi que leurs différents cas d'utilisation.

Par Artusamak
Julien Dubois

Alors comme ça t'es développeur ?

Alors comme ça t'es développeur ?

Artusamak
mar 08/11/2016 - 15:39

A chaque fois que l'on démarre une formation, on fait un petit tour de table pour que chacun se présente et nous parle un peu de son expérience. C'est une super occasion de briser la glace et de mettre tout le monde en confiance. Pour moi c'est aussi un bon prétexte pour picorer des bribes d'informations qui me serviront à lancer la conversation par la suite et à rebondir avec mon contenu. Parmi nos pré-requis de formation (et son intitulé) figure la mention "pour développeur Drupal". Oui mais voilà, ça veut dire quoi un développeur Drupal ?

C'est là que les choses se compliquent. Dans chaque société que l'on croise, la fiche de poste du développeur Drupal a un périmètre (très) variable. Je ne suis pas sûr qu'il y ait une bonne réponse parmi tous les cas d'usage mais au final j'ai le sentiment que cela se ressent un peu sur le marché. Les (vrais) développeurs Drupal finissent par être pénalisés car noyés dans la masse. Il en va de même sur la liste des critères de l'expert Drupal.

Regardons cette petite mise en scène qui se déroule il y a 2 ou 3 ans, les deux protagonistes sont Marc, un chef d'agence web et Thomas, un développeur PHP qui a déjà sauvé l'agence plusieurs fois pour des clients clés avec des demandes un peu trop tatillonnes le week-end.

Marc : Hey Thomas, viens me voir une seconde. Tu as vu l'email que je t'ai envoyé il y a cinq minutes ?
Thomas : Hmm, oui ? A propos du site vitrine avec Durpal ?
Marc : Ouais, Drupal, ouais. Le client a demandé à ce que l'on réponde avec et j'aimerais bien que tu te lances dessus pour qu'on se fasse les pieds.
Thomas : OK.

Quelques semaines plus tard, Thomas a réussi à mettre en ligne le projet en un temps record, faisant la fierté de Marc. Nos deux compères se croisent à la machine à café.

Marc : Bravo Thomas pour ta mise en ligne, c'est super. Le client est super content et t'as bien bossé.
Thomas : Merci Marc, content que ça plaise à tout le monde.
Marc : Dis moi, on est entrain de répondre à un plus gros projet avec Sarah d'ici la semaine prochaine et on pense que Drupal fera le job, tu pourras jeter un oeil ? T'es notre expert Drupal maintenant !
Thomas : Je dois mettre en prod MonSuperBoulanger.fr d'ici 10 jours, ça va être compliqué. Il fait quoi votre site ?
Marc : Oh bah les trucs classiques, de la gestion de contenu, un moteur de recherche de ressources, on a de la gestion de groupes et peut être que l'on doit importer les contenus de l'existant.
Thomas : Ah ouais quand même, bon ça devrait le faire alors. J'ai lu que Drupal savait faire ces trucs.

La réponse de l'appel d'offre part, par chance l'agence remporte le projet et voilà Thomas qui par la force des choses enchaine son deuxième projet. D'autres suivront jusqu'à cette fin d'année 2016 où le client historique de la boite souhaite refondre son site. Drupal 8 semble être le candidat idéal pour cette refonte mais Thomas ne connaît pas encore cette nouvelle version. L'esprit éclairé qu'est Marc lui propose alors de participer à la prochaine session de formation à Drupal 8 d'Happyculture.

La session de formation démarre, 4 participants ont répondu présent, Thomas est l'un d'eux et vient son tour de se présenter.

Thomas : Je suis Thomas, 29 ans, développeur Drupal, j'ai commencé Drupal en 2014 et j'ai uniquement fait du Drupal 7. Pour cette formation, j'attends de découvrir les nouveautés de Drupal 8 et de m'imprégner des bonnes pratiques du moment.

Nous y voilà, tous les participants nous racontent plus ou moins la même chose, tout le monde est impatient de découvrir Drupal 8. Lorsque l'on pose quelques questions, ils ont tous fait du développement avec Drupal. Et puis au fur et à mesure que la formation avance, lorsque l'on parle de paramètres de formateurs de champs, de types de champs personnalisés, de contrôleurs dédiés, de handlers de views, de types d'entités personnalisés, de cache etc on se rend compte que très rarement un participant a déjà fait tout (ou une partie de) cela. Alors on s'adapte car l'une des qualités les plus importantes dans la formation c'est la capacité à s'adapter faute de quoi on risquerait de s'emporter. Alors beaucoup de ces participants se présentent comme développeurs mais le sont-ils vraiment ?

Quels profils pour une équipe

Selon moi il y a 3 métiers dans l'écosystème Drupal. Je serai ravi d'en débattre avec vous si votre avis diffère.

Profil 1 : le thémeur

C'est à mon avis, le profil le plus rare sur le marché Drupal. Il s'agit d'une personne qui fait traditionnellement de l'intégration (ou du dév front-end si l'on veut être à la mode) et qui comprend le PHP pour extraire ses variables afin de les faire remonter dans ses .tpl.php si l'on parle de Drupal 7 ou dans les .html.twig si l'on parle de Drupal 8. Sa compétence première c'est l'intégration et le développement n'est pas sa priorité mais elle y porte un intérêt relatif pour comprendre ce qu'il est possible de faire. En cas de besoin, l'équipe aide cette personne à faire ce dont elle a besoin côté PHP.

Table avec des éléments créatifs éparpillés

Profil 2 : le développeur

Le vrai développeur est celui qui va s'appuyer sur les mécanismes d'extensibilité de Drupal pour créer des nouvelles briques si besoin, faire le modèle de données de son projet, concevoir l'application et faire les choix d'architecture. Il va tordre Drupal pour créer les nouveaux modules et modifier les existants afin de faire en sorte que Drupal s'adapte aux demandes du client, on parle aussi souvent de l'écriture de glue code. C'est lui qui est impliqué sur les composants "bas niveau" du site et qui maîtrise les APIs de Drupal.

Photo d'un clavier

Profil 3 : le site builder

Compétence peu répandue, peut être spécifique aux agences Drupal. Le profil de site builder est un profil qui connait extrêmement bien les options avancées, voire cachées, des modules contribués. Il sait quel module utiliser pour quelle situation, il s'appuie sur le travail du développeur pour mettre en oeuvre les nouvelles options exposées par les développeurs. Son arme principale : sa souris. Il clic à tout va à travers les nombreux écrans de Drupal. Si le développeur n'est pas disponible, il finira très souvent par trouver un module qui fait 80% de la fonctionnalité demandée.

Tour Jenga en gros plan

La complémentarité de ces trois profils vous donne une équipe technique robuste et capable de faire efficacement des sites avec Drupal. Hormis le développeur, les deux autres profils cités sont nécessaires et recherchés, n'ayez pas peur de vous revendiquer comme l'un d'entre eux si tel est le cas, vous vous ouvrirez certainement des portes. Beaucoup de personnes rentrent dans le monde de Drupal par le monde du site building (pour ne plus en sortir, rire machiavélique).

Et l'expert Drupal dans tout ça ?

Beaucoup de "développeurs Drupal" que l'on rencontre sont des personnes qui écrivent le glue code mais qui ne vont guère au-delà sans avoir trifouillé les entrailles de Drupal. C'est pour cela que le titre de "développeur drupal" paraît toujours ambitieux lorsque l'on creuse un peu plus. Concernant le titre d'expert Drupal, là... 

Que les choses soient claires, un expert, c'est quelqu'un qui maîtrise son sujet. S'il n'a pas une connaissance avancée du fonctionnement du coeur, de la gestion des performances et de la montée en charge, de comment faire un site multilingue, des mécanismes d'extensibilité, de l'inter-connexion avec des systèmes tiers, d'un peu de sécurité et qu'il n'a pas mélangé cela au cours de plusieurs dizaines de projets. Je pense que le titre d'expert Drupal est usurpé. L'Expert Drupal n'est pas un titre que l'on attribue à celui qui a le plus de projets dans les pattes et qui existe obligatoirement dans une société. Il est tout à fait possible que vous n'en ayez pas à la maison et par respect pour le poste, vous feriez mieux d'en avoir conscience. Si tout le monde s'autoproclame expert, qui l'est vraiment ? Et comment les clients peuvent-ils faire le tri ? Les certifications sont une piste de réponse possible. En attendant, essayons tous d'appeler un chat, un chat.

Par flocondetoile
Adhérent

Améliorer l'expérience utilisateur avec le module Paragraphs sur Drupal 8

Le module Paragraphs est une très bonne alternative à un éditeur WYSIWYG pour qui veut permettre aux utilisateurs d'un site Drupal de réaliser des agencements de pages complexes, mixant texte, images, vidéos, diaporamas, citation, blocs de présentation, ou toute autre composant évolué de mise en forme.

Par flocondetoile
Adhérent

Améliorer l'expérience utilisateur avec le module Paragraphs sur Drupal 8

Le module Paragraphs est une très bonne alternative à un éditeur WYSIWYG pour qui veut permettre aux utilisateurs d'un site Drupal de réaliser des agencements de pages complexes, mixant texte, images, vidéos, diaporamas, citation, blocs de présentation, ou toute autre composant évolué de mise en forme.

Par admin

Open Source Summit 2016

Open Source Summit est la fusion de 2 événements (Solutions linux et l'Open world forum) et se déroulera le 18 et 19 novembre 2015 au DOCK PULLMANN à La Plaine St-Denis (Paris)

logo open source summit

Ces 2 anciens événements, l'association Drupal France et Francophonie (DrupalFR) était présent et c'est dans la logique que nous serons présent.

Ce rendez-vous se découpe de différentes manières, avec des conférences, des ateliers, et une partie exposition. Le dernier espace sera coupé en 2 parties avec une partie professionnel et une autre partie village associatif.

Conférence :
Vous pourrez trouver 2 conférences de ces membres :

  • Léon Cros : Génie collaboratif - Organisation, enjeux et impacts - le 16 novembre - Salle Barcelone (Ingénie logiciel libre)
  • Christophe Villeneuve : Les tests de sécurité - le 17 Novembre - Salle Pay-Bas (DevOPS)

Stand :
L'Association Drupal France et Francophonie (DRUPALFR) sera dans la partie village associatif et recherche des bonnes volontés pour venir nous aider à tenir le stand pour parler de Drupal et aussi venir nous voir.

  • Si vous souhaitez venir nous rendre visite, vous serez les bienvenus.
  • Si vous voulez tenir le stand avec moi, nous mettons à disposition un Doodle si vous souhaitez venir nous aider (par demi journée)

Formulaire de présence :
http://doodle.com/poll/iz7veniub9wsdhw8

Horaire du salon

  • Mercredi 18 novembre : 8h30-19h00
  • Jeudi 19 novembre: 8h30-18h00

Lieu du salon

DOCK PULLMANN
50, av. du Président Wilson
93200 La Plaine St-Denis

Pour venir : http://www.opensourcesummit.paris/Informations+pratiques_154_160.html

Demander un badge pour entrée http://www.opensourcesummit.paris/preinscription_3559_p.html

Responsable et contact pour le stand : Christophe Villeneuve

Plus nous serons nombreux, moins de temps vous serez bloqué.

Par admin

Open Source Summit 2016

Open Source Summit est la fusion de 2 événements (Solutions linux et l'Open world forum) et se déroulera le 16 et 17 novembre 2016 au DOCK PULLMANN à La Plaine St-Denis (Paris)

logo open source summit

Ces 2 anciens événements, l'association Drupal France et Francophonie (DrupalFR) était présent et c'est dans la logique que nous serons présent.

Ce rendez-vous se découpe de différentes manières, avec des conférences, des ateliers, et une partie exposition. Le dernier espace sera coupé en 2 parties avec une partie professionnel et une autre partie village associatif.

Conférence :
Vous pourrez trouver 2 conférences de ces membres :

  • Léon Cros : Génie collaboratif - Organisation, enjeux et impacts - le 16 novembre - Salle Barcelone (Ingénie logiciel libre)
  • Christophe Villeneuve : Les tests de sécurité - le 17 Novembre - Salle Pay-Bas (DevOPS)

Stand :
L'Association Drupal France et Francophonie (DRUPALFR) sera dans la partie village associatif et recherche des bonnes volontés pour venir nous aider à tenir le stand pour parler de Drupal et aussi venir nous voir.

  • Si vous souhaitez venir nous rendre visite, vous serez les bienvenus.
  • Si vous voulez tenir le stand avec moi, nous mettons à disposition un Doodle si vous souhaitez venir nous aider (par demi journée)

Formulaire de présence :
http://doodle.com/poll/v3vm7e9qfuuk33en

Horaire du salon

  • Mercredi 18 novembre : 8h30-19h00
  • Jeudi 19 novembre: 8h30-18h00

Lieu du salon

DOCK PULLMANN
50, av. du Président Wilson
93200 La Plaine St-Denis

Pour venir : http://www.opensourcesummit.paris/Informations+pratiques_154_160.html

Demander un badge pour entrée http://www.opensourcesummit.paris/preinscription_3559_p.html

Responsable et contact pour le stand : Christophe Villeneuve

Plus nous serons nombreux, moins de temps vous serez bloqué.

Par admin

Soutenons Ismaeil

Bonjour ami.e.s Drupaliens

Un ami et ancien collègue, https://www.drupal.org/u/izus a subi une opération assez lourde, il est maintenant en convalescence pour un petit moment et il n'y a plus aucune inquiétude à avoir.
Nous connaissons son implication dans la communauté Drupal, autant française qu'internationale, il participe régulièrement à des évènements, co-anime des sprints de traduction et maintient Search API attachments entre autre de ces activités Drupal.
Autant dire que comme beaucoup d'entre vous c'est un passionné qui a voulu rendre à la communauté autant qu'elle lui avait apporté.

Aujourd'hui nous souhaiterions que cette communauté Drupal se montre formidable à nouveau et participe à sa manière au rétablissement d'Ismaeil.
Pour cela vous pouvez où que vous soyez, envoyer un message sous forme de mail ou une carte postale à Ismaeil pour lui souhaiter un bon rétablissement.

Nous nous tenons (https://twitter.com/Bes_fr or https://twitter.com/Florent_Torre) à votre disposition : https://twitter.com/ismaeil_ ou https://www.drupal.org/user/514568/contact

Pour lui envoyer un courrier postal, vous pouvez lui envoyer à l'adresse suivante :
Linagora, Ismaeil Abouljamal, Pôle Media de la Belle de Mai, 37 Rue Guibal, 13003 Marseille

Guillaume

En page d'accueil : 
Par admin

Soutenons Ismaeil

Bonjour ami.e.s Drupaliens

Un ami et ancien collègue, https://www.drupal.org/u/izus a subi une opération assez lourde, il est maintenant en convalescence pour un petit moment et il n'y a plus aucune inquiétude à avoir.
Nous connaissons son implication dans la communauté Drupal, autant française qu'internationale, il participe régulièrement à des évènements, co-anime des sprints de traduction et maintient Search API attachments entre autre de ces activités Drupal.
Autant dire que comme beaucoup d'entre vous c'est un passionné qui a voulu rendre à la communauté autant qu'elle lui avait apporté.

Aujourd'hui nous souhaiterions que cette communauté Drupal se montre formidable à nouveau et participe à sa manière au rétablissement d'Ismaeil.
Pour cela vous pouvez où que vous soyez, envoyer un message sous forme de mail ou une carte postale à Ismaeil pour lui souhaiter un bon rétablissement.

Nous nous tenons (https://twitter.com/Bes_fr or https://twitter.com/Florent_Torre) à votre disposition : https://twitter.com/ismaeil_ ou https://www.drupal.org/user/514568/contact

Pour lui envoyer un courrier postal, vous pouvez lui envoyer à l'adresse suivante :
Linagora, Ismaeil Abouljamal, Pôle Media de la Belle de Mai, 37 Rue Guibal, 13003 Marseille

Guillaume

En page d'accueil : 
Par Artusamak
Julien Dubois

Injecter une balise dans <head> avec Drupal 8

Injecter une balise dans avec Drupal 8
Artusamak
jeu 06/10/2016 - 21:18

Je vous partage une portion de code dont j'ai eu besoin de me servir à plusieurs reprises pour injecter des Google Fonts. J'avais tendance à l'injecter comme un goret dans le fichier de template html.html.twig mais ma conscience a fini par me rattraper pour faire cela proprement.

Si vous regardez html.html.twig, vous voyez que le contenu injecté dans <head></head> est généré de la façon suivante :

<!DOCTYPE html>
<html{{ html_attributes }}>
  <head>
    <head-placeholder token="{{ placeholder_token|raw }}">
    <title>{{ head_title|safe_join(' | ') }}</title>
    <css-placeholder token="{{ placeholder_token|raw }}">
    <js-placeholder token="{{ placeholder_token|raw }}">
  </head>

// Reste de la page.

Reste donc à comprendre comment le contenu de <head-placeholder> est généré. Mon réflexe dans ces cas là consiste à chercher dans le code du coeur si une portion de code significative (dans le sens "qui n'apparaît pas trop souvent comme résultat de recherche) m'aide à trouver comment ce bloc est créé. Pour cet exemple, je tente une recherche avec le mot-clé head-placeholder. Manque de bol, rien de significatif ne ressort.
Dans ce cas là, je change de tactique, je regarde le HTML final généré et tente une nouvelle recherche avec un autre élément significatif. Je relance cette fois ma recherche avec le mot-clé MobileOptimized. Bingo, je tombe sur le code de system_page_attachments() qui injecte cette balise. Je comprends dès lors que c'est le hook_page_attachments() qui se charge de la génération en injectant la balise qui m'intéresse.

<?php
/**
* Implements hook_page_attachments().
*/
function system_page_attachments(array &$page) {
  //...
  // Attach default meta tags.
  $meta_default = array(
    //...
    // Attach default mobile meta tags for responsive design.
    'MobileOptimized' => array(
      '#tag' => 'meta',
      '#attributes' => array(
        'name' => 'MobileOptimized',
        'content' => 'width',
      ),
    ),
    // ...
  );
  foreach ($meta_default as $key => $value) {
    $page['#attached']['html_head'][] = [$value, $key];
  }
  // ...
}

Il ne me reste alors plus qu'à adapter cela à mes besoins pour injecter une Google Font sur toutes mes pages. Cela donne le snippet suivant.

<?php

/**
* Implements hook_page_attachments().
*/
function monmodule_page_attachments(array &$attachments) {
  $google_font = array(
    '#tag' => 'link',
    '#attributes' => array(
      'rel' => 'stylesheet',
      'href' => 'https://fonts.googleapis.com/css?family=ABeeZee|Lora:400,700',
    ),
  );
  $attachments['#attached']['html_head'][] = [$google_font, 'google'];
}

 

Par flocondetoile
Adhérent

Traduire par le code avec Drupal 8

Drupal 8, nativement multilingue, propose une interface graphique pour pouvoir traduire aussi bien la configuration du site (les labels des champs, les titres des vues, etc.) que les contenus eux-même. Mais nous pouvons parfois avoir besoin de traduire de façon programmatique des contenus ou encore des configurations, notamment dans le cadre d'une usine à sites pour générer par exemple un site multilingue.

Par flocondetoile
Adhérent

Traduire par le code avec Drupal 8

Drupal 8, nativement multilingue, propose une interface graphique pour pouvoir traduire aussi bien la configuration du site (les labels des champs, les titres des vues, etc.) que les contenus eux-même. Mais nous pouvons parfois avoir besoin de traduire de façon programmatique des contenus ou encore des configurations, notamment dans le cadre d'une usine à sites pour générer par exemple un site multilingue.

Par ftorregrosa
Adhérent
Florent Torregrosa

Retour sur la DrupalCon Dublin 2016

Du 26 au 30 septembre 2016 (du 24 septembre au 2 octobre en comptant les sprints) a eu lieu la DrupalCon Dublin.

J'y étais présent les 27 et 28 septembre avec Smile (sponsor Gold).

Ma première DrupalCon. Un centre de conférences vraiment top, que ce soit au niveau du lieu, de l'équipement ou du personnel. Une autre échelle d'événement, je n'ai pas le nombre exact, mais de l'ordre de 2000 participants.

Tags: 
Par flocondetoile
Adhérent

Altérer le contrôle d'accès des entités de Drupal 8

Drupal 8 dispose nativement d'un contrôle d'accès très évolué pour les entités de type Node, autrement dit pour tous les contenus d'un site. Les autres entités disposent de contrôle d'accès plus sommaires, même si l'évolution fonctionnelle agile de Drupal 8 va nous permettre de voir évoluer cette situation très rapidement, notamment par exemple pour une gestion beaucoup plus fine des droits d'accès relatifs aux blocs de contenu. Découvrons comment personnaliser et prendre le contrôle sur les accès aux entités.

Par flocondetoile
Adhérent

Altérer le contrôle d'accès des entités de Drupal 8

Drupal 8 dispose nativement d'un contrôle d'accès très évolué pour les entités de type Node, autrement dit pour tous les contenus d'un site. Les autres entités disposent de contrôle d'accès plus sommaires, même si l'évolution fonctionnelle agile de Drupal 8 va nous permettre de voir évoluer cette situation très rapidement, notamment par exemple pour une gestion beaucoup plus fine des droits d'accès relatifs aux blocs de contenu. Découvrons comment personnaliser et prendre le contrôle sur les accès aux entités.

Par Artusamak
Julien Dubois

Nouvelle politique de gestion des versions

Nouvelle politique de gestion des versions

Artusamak
mar 27/09/2016 - 14:00

La semaine dernière est sortie la version 8.2.0-rc2 de Drupal, c'est l'occasion de revenir sur la nouvelle politique des cycles de release et ce que cela implique.

Bien avant la sortie de la version 8.0, la communauté s'est penchée sur les solutions qu'elle pouvait apporter au problème du manque de prédictibilité des dates de sortie. La politique depuis des années consiste à dire qu'une version majeure est publiée (une version majeure étant la 7.0 ou 8.0) lorsqu'elle est prête. L'adage consacré est le suivant : «Quand est ce que la version Drupal 8.0 sera prête ? Elle sera prête quand elle sera prête.». La définition de «prêt» étant liée au nombre de bugs critiques identifiés dans la listes des issues de Drupal. Tant que son total n'est pas égal à 0, une version majeure ne peut pas être envisagée. Plutôt aléatoire tout ça… autant dire que cela n'avance personne, et surtout pas le monde de l'entreprise.

Oui mais voilà, depuis la fin du cycle de Drupal 6 et l'avènement de Drupal 7, l'utilisation de Drupal a explosé, peu de sites qui nécessitaient un CMS et avec une taille de projet de plusieurs mois se lançaient avec autre chose que Drupal. Bonne nouvelle, me direz-vous, et vous aurez raison. Sauf que, comme le disait notre bon ami Spiderman : «avec de grands pouvoirs viennent de grandes responsabilités». Les années passant, l'usage de Drupal a continué de croître et la suite logique a été donc le lancement des développements de la branche 8.x.
Un cycle de développement d'une version majeure prenant plusieurs années, les choses ont démarré comme à l'époque de Drupal 7 : plusieurs mois ont passé puis l'impatience a monté en flèche dès les premières annonces de l'utilisation de composants de Symfony au sein de Drupal 8 braquant ainsi beaucoup de projecteurs notre CMS fétiche. Les mois passèrent et avec eux les dizaines de milliers de lignes de code se sont accumulées. Le problème avec Symfony étant qu'une fois que vous mettez le doigt dans l'engrenage, il fait sens d'utiliser toujours plus de ses composants, repoussant d'autant la ligne d'arrivée du travail de réécriture. Conscients du problème soulevé et déjà rencontré lors de la mise au monde de Drupal 7 (satané Overlay qui a repoussé la publication de Drupal 7 de plusieurs mois), Dries et quelques personnes clés de la communauté ont pris le problème à bras le corps. Fin 2013, le principe d'introduire des versions sémantiques pour Drupal a été acté, la première version de 8.x ne serait donc pas Drupal 8.0 mais Drupal 8.0.0.

Qu'est-ce que ça change concrètement ?

Le modèle de Drupal jusqu'à présent excluait tout ajout dans le cœur du système entre deux versions majeures. De fait, il a fallu attendre 5 ans la sortie de Drupal 8 pour que des fonctionnalités essentielles au web d'aujourd'hui soient intégrées. Or, le web évolue plus vite que jamais et les besoins et usage des clients progressent rapidement. Les versions sémantiques offrent une nouvelle souplesse en introduisant un nouvel échelon dans l'évolution du logiciel.

Une version sémantique est un code découpé en trois parties numériques, séparées par un point, par exemple 8.1.10. On appelle la première partie, celle de gauche, la version majeure. La partie centrale est appelée version mineure et la partie de droit version de patch. Pour faire le parallèle avec l'ancien système, nous n'avions que les versions majeures et les versions de patch.

En ce qui concerne le contenu de ces versions, les choses sont plus claires :

  • les versions majeures sont garantes de la compatibilité. Ainsi, quelle que soit la version mineure ou de patch de l'application, tant que vous conservez la même version majeure, le code que vous avez pu écrire doit toujours être compatible ;
  • les versions mineures représentent les évolutions fonctionnelles du cœur. Il est permis d'ajouter de nouvelles fonctionnalités, qu'elles soient expérimentales ou stables (nous en détaillerons quelques unes dans un prochain article) ;
  • les versions de patch corrigent des bugs ou des failles de sécurité a fil de l'eau.

La seule entorse acceptée à ce nouveau système est le cas où un correctif de sécurité venait à rompre la compatibilité avec les précédentes versions. Dans ce cas et uniquement dans celui-ci, une telle modification serait acceptée dans le cadre d'une version de patch mais tenterait d'être limitée au maximum en redoublant d'efforts de communication et en mettant en place des outils, lorsque cela est possible, pour amoindrir l'impact sur les sites existants.

À quelle fréquence les versions vont-elles évoluer ?

L'autre avantage majeur de cette décision est qu'il permet de mettre en place un calendrier de publication des versions plus ouvert. La communauté a donc décidé qu'une nouvelle version mineure (8.1.0, 8.2.0, 8.3.0, etc.) sortirait tous les 6 mois. Les versions de patch (8.2.1, 8.2.2, 8.2,3 etc.) sont publiées quant à elles chaque premier et troisième mercredi du mois pourra être publiée respectivement pour les versions liées à des correctifs de sécurité ou de bugs.

Diagramme illustrant le cycle des releases de Drupal
Diagramme illustrant le cycle des releases de Drupal

Pour chaque version mineure, le cycle de release reste le même que pour une version majeure : la première version est une alpha, puis suivent les statuts beta, Release Canditate (rc) et la release officielle. Les développeurs peuvent donc maintenant savoir à l'avance quand réserver du temps dans leur calendrier pour préparer les montées de versions.

Diagramme illustrant le cycle des releases mineures de Drupal
Diagramme illustrant le cycle des releases mineures de Drupal

 

 

Crédits :

Par Artusamak
Julien Dubois

Nouvelle politique de gestion des versions

Nouvelle politique de gestion des versions

Artusamak
mar 27/09/2016 - 14:00

La semaine dernière est sortie la version 8.2.0-rc2 de Drupal, c'est l'occasion de revenir sur la nouvelle politique des cycles de release et ce que cela implique.

Bien avant la sortie de la version 8.0, la communauté s'est penchée sur les solutions qu'elle pouvait apporter au problème du manque de prédictibilité des dates de sortie. La politique depuis des années consiste à dire qu'une version majeure est publiée (une version majeure étant la 7.0 ou 8.0) lorsqu'elle est prête. L'adage consacré est le suivant : «Quand est ce que la version Drupal 8.0 sera prête ? Elle sera prête quand elle sera prête.». La définition de «prêt» étant liée au nombre de bugs critiques identifiés dans la listes des issues de Drupal. Tant que son total n'est pas égal à 0, une version majeure ne peut pas être envisagée. Plutôt aléatoire tout ça… autant dire que cela n'avance personne, et surtout pas le monde de l'entreprise.

Oui mais voilà, depuis la fin du cycle de Drupal 6 et l'avènement de Drupal 7, l'utilisation de Drupal a explosé, peu de sites qui nécessitaient un CMS et avec une taille de projet de plusieurs mois se lançaient avec autre chose que Drupal. Bonne nouvelle, me direz-vous, et vous aurez raison. Sauf que, comme le disait notre bon ami Spiderman : «avec de grands pouvoirs viennent de grandes responsabilités». Les années passant, l'usage de Drupal a continué de croître et la suite logique a été donc le lancement des développements de la branche 8.x.
Un cycle de développement d'une version majeure prenant plusieurs années, les choses ont démarré comme à l'époque de Drupal 7 : plusieurs mois ont passé puis l'impatience a monté en flèche dès les premières annonces de l'utilisation de composants de Symfony au sein de Drupal 8 braquant ainsi beaucoup de projecteurs notre CMS fétiche. Les mois passèrent et avec eux les dizaines de milliers de lignes de code se sont accumulées. Le problème avec Symfony étant qu'une fois que vous mettez le doigt dans l'engrenage, il fait sens d'utiliser toujours plus de ses composants, repoussant d'autant la ligne d'arrivée du travail de réécriture. Conscients du problème soulevé et déjà rencontré lors de la mise au monde de Drupal 7 (satané Overlay qui a repoussé la publication de Drupal 7 de plusieurs mois), Dries et quelques personnes clés de la communauté ont pris le problème à bras le corps. Fin 2013, le principe d'introduire des versions sémantiques pour Drupal a été acté, la première version de 8.x ne serait donc pas Drupal 8.0 mais Drupal 8.0.0.

Qu'est-ce que ça change concrètement ?

Le modèle de Drupal jusqu'à présent excluait tout ajout dans le cœur du système entre deux versions majeures. De fait, il a fallu attendre 5 ans la sortie de Drupal 8 pour que des fonctionnalités essentielles au web d'aujourd'hui soient intégrées. Or, le web évolue plus vite que jamais et les besoins et usage des clients progressent rapidement. Les versions sémantiques offrent une nouvelle souplesse en introduisant un nouvel échelon dans l'évolution du logiciel.

Une version sémantique est un code découpé en trois parties numériques, séparées par un point, par exemple 8.1.10. On appelle la première partie, celle de gauche, la version majeure. La partie centrale est appelée version mineure et la partie de droit version de patch. Pour faire le parallèle avec l'ancien système, nous n'avions que les versions majeures et les versions de patch.

En ce qui concerne le contenu de ces versions, les choses sont plus claires :

  • les versions majeures sont garantes de la compatibilité. Ainsi, quelle que soit la version mineure ou de patch de l'application, tant que vous conservez la même version majeure, le code que vous avez pu écrire doit toujours être compatible ;
  • les versions mineures représentent les évolutions fonctionnelles du cœur. Il est permis d'ajouter de nouvelles fonctionnalités, qu'elles soient expérimentales ou stables (nous en détaillerons quelques unes dans un prochain article) ;
  • les versions de patch corrigent des bugs ou des failles de sécurité a fil de l'eau.

La seule entorse acceptée à ce nouveau système est le cas où un correctif de sécurité venait à rompre la compatibilité avec les précédentes versions. Dans ce cas et uniquement dans celui-ci, une telle modification serait acceptée dans le cadre d'une version de patch mais tenterait d'être limitée au maximum en redoublant d'efforts de communication et en mettant en place des outils, lorsque cela est possible, pour amoindrir l'impact sur les sites existants.

À quelle fréquence les versions vont-elles évoluer ?

L'autre avantage majeur de cette décision est qu'il permet de mettre en place un calendrier de publication des versions plus ouvert. La communauté a donc décidé qu'une nouvelle version mineure (8.1.0, 8.2.0, 8.3.0, etc.) sortirait tous les 6 mois. Les versions de patch (8.2.1, 8.2.2, 8.2,3 etc.) sont publiées quant à elles chaque premier et troisième mercredi du mois pourra être publiée respectivement pour les versions liées à des correctifs de sécurité ou de bugs.

Diagramme illustrant le cycle des releases de Drupal
Diagramme illustrant le cycle des releases de Drupal

Pour chaque version mineure, le cycle de release reste le même que pour une version majeure : la première version est une alpha, puis suivent les statuts beta, Release Canditate (rc) et la release officielle. Les développeurs peuvent donc maintenant savoir à l'avance quand réserver du temps dans leur calendrier pour préparer les montées de versions.

Diagramme illustrant le cycle des releases mineures de Drupal
Diagramme illustrant le cycle des releases mineures de Drupal

 

 

Crédits :

Par flocondetoile
Adhérent

Banalités de base sur le SEO

Le référencement naturel, ou le SEO pour Search Engine Optimization, est un ensemble de techniques et de recommandations visant à améliorer la visibilité d'un site Internet sur les moteurs de Recherche, en le positionnant sur les premiers résultats de recherches effectuées par les Internautes. Le référencement naturel peut être un sujet très complexe, surtout si on vise un positionnement sur des requêtes très concurrentielles, mais peut aussi relever parfois du respect de quelques bonnes pratiques, et d'un changement de perspective nécessaire. Abordons ici quelques banalités de base sur ce vaste sujet.

Par flocondetoile
Adhérent

Banalités de base sur le SEO

Le référencement naturel, ou le SEO pour Search Engine Optimization, est un ensemble de techniques et de recommandations visant à améliorer la visibilité d'un site Internet sur les moteurs de Recherche, en le positionnant sur les premiers résultats de recherches effectuées par les Internautes. Le référencement naturel peut être un sujet très complexe, surtout si on vise un positionnement sur des requêtes très concurrentielles, mais peut aussi relever parfois du respect de quelques bonnes pratiques, et d'un changement de perspective nécessaire. Abordons ici quelques banalités de base sur ce vaste sujet.

Par flocondetoile
Adhérent

Drupal 8 n'est pas parfait

Dix mois après la sortie d'une première version stable de Drupal 8, quel bilan peut-on en tirer ? Drupal 8 est-il prêt pour propulser votre projet ? Est-il temps de migrer votre site sur Drupal 8 ? Même si bien souvent une réponse, argumentée, à ces interrogations nécessitera une analyse plus approfondie de votre projet ou de votre site existant, nous vous proposons ici d'apporter quelques éclairages spécifiques à ces questions légitimes

Pages