Sortie de jUpgrade 1.2.1

jUpgrade est sortie fin août en prenant la migration vers la version finale de Joomla ! 1.7.0. jUpgrade permet désormais la migration de nouveaux composants en plus de Kunena ajouté dans la version 1.1.x, les nouveaux composants supportés sont : K2, Virtuemart, CompoJoomComment et BreezingForms. Cette version 1.2.1 se voit doté d’un correctif pour la prise en charge des caractères non-latin pour le contenu. Des nouvelles traductions ont été ajoutées : pour le français, le russe…

La version 1.2.0 avait améliorée le support des extensions tierces, le répertoire cible est désormais variable, on peut passer l’étape de copie des templates et extensions tierces.

 

Télécharger jUpgrade 1.2.1

L’histoire qui se cache derrière la sortie de Joomla ! 1.7.0

Chaque sortie de Joomla! a ses moments de drame, tension, et transcendance. Dans l’équipe du Joomla! Bug Squad (JBS) lors de la préparation de la sortie d’une nouvelle version de Joomla!, il y a toujours une agitation soudaine. Avec la 1.7 ce n’était pas différent de cela.

Tandis que la plupart des utilisateurs savent que la sortie de Joomla! 1.7 était une première car sa date de sortie a été définie à une date précise: retour en janvier, il a été annoncé que la sortie de la version 1.7 sera faite en juillet, et la meilleure chose que l’équipe de développement a faite est de sortir cette version 1.7 à la date qui a été définie fin juin. Ceci ne veut pas dire qu’il n’y a pas eu des cheveux qui se dressés par moments!

Le samedi avant la sortie, Mark Dexter et Jean-Marie Simonet ont passés en revu leur liste finale juste 4 jours avant la sortie et il restait seulement 4 éléments. Un était une faille de sécurité de dernière minute qui est apparu le vendredi, et un autre élément était de revenir à un état précédant un commit, ce dernier avait fait émané un rapport de bug, aussi à la dernière minute. Donc après avoir trouvé et corrigé la faille de sécurité, Mark a supprimer le commit et le Joomla! Bug Squad, pour la première fois, a obtenu les paquets de la version finale à des fins de test à une date précoce. Et la chose bien était que le 17 Mark a lancé une requête pour faire des tests  sur la liste de diffusion du JBS. Une requête pour tester des paquets 2 jours en avance?

Incroyable!

Lire la suite

Votez pour la dénomination des futures versions de Joomla !

Ceci est un rapport du Joomla Leadership Summit qui se tient en ce moment à San Jose, CA. Les membres du Community Leadership Team (CLT), Production Leadership Team (PLT) et d’Open Source Matters (OSM) sont occupés à discuter des meilleures choses pour la suite dans tous les aspects du projet.

Le PLT avait son sommet dans les jours précédents le sommet global de la direction. Les résultats de ce sommet arriveront sous peu, mais des retours de la communauté sont nécessaires sur un problème qui va affecter beaucoup de monde.

L’image suivante résume la situation actuelle au niveau des versions :

L’équipe de direction de Joomla ! A décidée de faire un petit changement dans la façon dont sont numérotées les versions de Joomla !. Si vous avez lu les choses à propos du nouveau cycle de développement de Joomla !, vous devriez savoir que chaque nouvelle version de Joomla ! Sort tous les six mois et une version majeure supportée sur le long terme (LTS) tous les 18 mois. Les versions 1.6 et 1.7 sont des versions mineures espacées de six mois et la prochaine version qui verra le jour en janvier 2012 sera une version LTS. De cette façon, les utilisateurs ont le choix. Ils peuvent utiliser la dernière et meilleure version en mettant à jour avec des améliorations tous les six mois, ou ils peuvent obtenir une version stable tous les 8 mois. Les versions de maintenance et de sécurité seront faites si nécessaires pour les versions LTS et STS durant leur période de support.

Pour essayer d’être aussi clair que possible pour les utilisateurs, l’équipe de direction de Joomla ! A décidée que les versions au support à long terme serait toujours nommées en version x.5. Par exemple, les versions 3.0 et 3.1 seront des versions régulières, au support à court terme de six mois. La version suivante sera, la 3.5, indiquant que c’est une version LTS. La version 3.5 sera supportée pendant 18 mois. Dans le même temps, les versions 4.0 et 4.1 verront le jour. La version LTS de remplacement pour la 3.5 sera la 4.5, 18 mois plus tard.

L’équipe de direction présente deux options à la communauté pour décider comment procéder dans le versionnage de Joomla !.

 

La première option (Option #1) dans le diagramme est d’appeler la version LTS de janvier 2012, la 1.8. Les versions suivantes au support à court terme seront les 2.0 et 2.1 (ex : les versions de maintenance seront 2.0.1 ou 2.1.1, etc.) et la version suivante sera 2.5 (utilisant la version x.5 pour l’identifier en tant que LTS). Ceci serait une anomalie dans la stratégie de version car ce serait la seule version à ne pas suivre la numérotation x.5, mais la version 1.8 suivrait naturellement la 1.6 et 1.7.

La seconde option (Option #2) dans le diagramme est d’appeler la version LTS de janvier 2012, la 2.5. Les versions suivantes au support à court terme seront les 3.0 et 3.1 ( ex : les versions de maintenance seront 3.0.1 ou 3.1.1, etc.) et la version suivante sera 3.5 ( utilisant la version x.5 pour l’identifier en tant que LTS). Ceci serait une anomalie dans la stratégie de version car il n’y aura aucune version intermédiaire entre la 1.7 et la 2.5, mais cette numérotation suit la stratégie de développement future (aussi il y a une rétro-compatibilité avec Joomla 1.5).

Votez pour l’option qui a le plus de sens:

http://tinyurl.com/jversion

Lire la suite

Découvrez plus de fonctionnalités de Joomla ! 1.7

Si vous avez essayé la version Bêta de Joomla ! 1.7 qui a été rendue publique récemment, vous voudriez savoir ou trouver les nouvelles fonctionnalités. Dans la version 1.7, la plupart des changements sont réellement des améliorations de fonctionnalités existantes, les rendant meilleures pour les utilisateurs, administrateurs de site et développeurs. Vous avez pu en apercevoir quelque une , mais il y en a d’autres, qui ne sont pas forcément évidentes.

 

Jacob Thrane Lund a amélioré la fonction d’envoi de mail en masse en autorisant ceci à exclure optionnellement les utilisateurs désactivés de l’envoi de mail en masse. Ceci est vraiment utile, et je peux facilement pourquoi ceci à de l’importance. Premièrement, personne ne veut être accusé de spammer quelqu’un qui a quitté l’un de nos sites. Deuxièmement, si vous avez suspendu des utilisateurs pour quelque raison que ce soit, vous ne voulez pas lui communiquer des informations. D’un autre côté, peut-être que vous devriez. Mais c’est utile d’avoir cette fonctionnalité.

 

Jonathan Cameron a fournit un code sympathique qui permet aux boutons de l’éditeur par défaut (plugin editor-xtd ) d’avoir des infobulles imposants. C’est sympathique d’avoir des bulles qui vous indique comment fonctionne telle ou telle fonction.

 

Rouven Weßling a ajouté un autre élément intéressant, qui est le support d’opensearch et d’avoir mis en place dans l’éditeur Code Mirror de la coloration syntaxique pour l’HTML ou le PHP.

Lire la suite

11 choses que j’ai apprises au sujet de Git

Maintenant que j’ai passé quelques semaines à utiliser Git, j’ai décider d’écrire noir sur blanc certaines choses que j’ai apprises en migrant de SVN (un système de contrôle de version centralisé) vers Git (un système de contrôle de version distribué) .

 

1°) Committer tôt, committer souvent

 

Git, contrairement aux systèmes de contrôle de version centralisé, autorise chaque développeur à posséder sa propre copie (“clone”) du dépôt, ce qui signifie que vous pouvez committer aussi souvent que vous le voulez sans affecter les autres — même si les changements sont incomplets, qu’ils cassent l’API, ou cause l’échec de la génération de la build.  Ceci vous autorise à structurer vos commits comme des parties logiques de votre travail, au contraire du commit unique monolithique qui représente la fonctionnalité complète.

Une fois que vous avez votre fonctionnalité complète, vous pouvez allez de l’avant et partager vos commits avec les autres.

 

2°) Que la force du fork soit avec vous

 

Les services d’hébergements de projet comme GitHub sont une façon fantastique de partager les projets avec les autres.  GitHub fournit une jolie interface web pour Git et est gratuit pour les projets open-source public, et pour quelques dollars il peut être utilisé en tant que dépôt privé. Git rend facile le fork de dépôt, les laissant évoluer indépendamment, et rend le processus de merge plus souple. Vous pouvez même prendre un des commits en particulier et les garder en tant que changements locaux. (J’aime laisser mon dépôt en local être propre ou comme je veux. Quand il devient trop large, il y a toujours git stash or git clean -f.) Avec Subversion, c’est tout ou rien.

Dans le passé, les forks n’étaient pas souvent appréciés car cela causait de la fragmentation et posaient des challenges pour le processus de merge.  Un système de contrôle de version distribué a amélioré cela. Git enregistre les relation entre les commits, merger les forks au tronc principal est relativement facile.

Les forks peuvent être encouragés parmi les membres de l’équipe sans se casser la tête avec le processus de merge.

 

3°) Vérifier le tronc principal

 

Si vous arrivez dans la mauvaise branche, ou si par accident vous remettez à zero votre pointeur du tronc principal, votre l’arborescence de votre branche ne sera pas comme vous l’attendiez. Comprendre la façon dont Git représente les commits était le gros challenge dont j’ai eu à faire face. De bons articles se trouvent ici et . Assurez-vous de ne pas perdre la tête : http://sitaramc.github.com/concepts/detached-head.html

 

4°) RTFL: Lire ce put*in de (ref)Log

 

Si vous faites face à des erreurs, ou que vous perdez des commits, ou que vous remarquez que vous avez cassé presque, allez voir le reflog. Cela vous montrera tous vos activités récentes sur les dépôts. A partir de là, vous pouvez remettre à zéro votre dépôt vers n’importe quel commit récent.

 

5°) Tirer ou récupérer (Pull or Fetch) ?

Dans la plupart des systèmes de contrôle de version centralisé, mettre à jour l’arborescence locale (pour correspondre au dépôt) ne peut pas être fait à la légère.  Si vous avez fait des changements importants, mettre à jour depuis “HEAD” peut causer un énorme mal de tête.  Ceci vient du fait que vous faites essentiellement “récupérer la nouvelle révision” et “merger celle-ci avec votre arborescence.”

Dans Git, le concept de “fetching” et “merging” peut actuellement être appliqué séparément.  Si vous voulez simplement mettre à jour votre copie locale d’une branche distante, vous faites un fetch. Vous pouvez reporter le processus actuel de merger à une date ultérieure. Si vous voulez combiner ces 2 opérations (fetch et merge), vous pouvez ensuite faire effectuer une requête pull .

 

6°) Rebase et revenir à un état précédent

 

Gérer des branches et des merges dans les systèmes de contrôle de version centralisé requiert souvent beaucoup d’effort et de temps.  En fait, tant que le code n’est pas proprement mergé et commité dans le “HEAD”, je ne considère pas cela comme complet.  Git, d’un autre côté, enregistre les relations entre les commits, ce qui fournit un support pour le merge bien meilleur.  Merger dans Git est souvent une opération sans efforts.  Vous pourriez essayer de créer une branche dés que vous commencez à travailler sur une nouvelle fonctionnalité.

A n’importe quel moment, vous pouvez “merger” ou « rebase » vers la branche principale, ainsi que partager votre branche avec d’autres pour une collaboration facile. (Quand j’avais quelques commits locaux d’une branche mais j’avais besoin de récupérer les changements des autres mis dans cette branche, je peux simplement rebase mes commits locaux sur ces changements  avec git pull --rebase.)  Des branches séparées rendent très facile le travail entre différentes taches sans efforts. J’aime le fait que Git n’encourage pas la structure de code comme ceci : “branches/ tags/ trunk/ ”.

Quand un problème survient, c’est revenir en arrière dans Git (git checkout original_branch), ou simplement en allant dans chaque fichier qui possède un conflit. Je pense aussi “merge fait par toto” ferait une légende intéressant sur un tableau.

Revenir à un état précédent dans Git est assez simple quand vous avez juste besoin d’effacer une erreur. Faites juste un nouveau comit avec git revert commit_sha1 ce qui contrecarre le commit spécifique.

Lire la suite

Quelques nouveautés de Joomla ! 1.7

Cela fait bientôt un mois que Joomla ! 1.7 est sortie en version alpha, les développeurs sont occupés à écrire, corriger et committer des nouvelles fonctionnalités, ou encore à travailler sur la plate-forme Joomla ! … Donc, quelles sont ces nouvelles fonctionnalités ? Il y a en pour tout le monde : utilisateur, développeurs, webmasters et concepteurs de template. Regardons de près ces fonctionnalités.

 

Lors de l’installation de cette version 1.7, vous verrez un changement notable : l’apparition de l’ajax pour la partie installation, ceci a été fait par Rouven Weßling. Plus de rechargement de page ! Rouven a aussi mis à jour TinyMCE vers la version 3.4 pendant qu’il faisait d’autres travaux un peu partout dans le CMS.

 

Un autre changement notable fait par Michael Babker est l’implantation du processus de traitement par lot dans les composants dans la partie administration. Ceci a été demandé fréquemment et le travail avait commencé avant la sortie de la version 1.6. Ce type de fonctionnalités prennent un peu de temps à être implémentée d’un façon cohérente. Michael a aussi complété la classe JHtmlBatch en ajoutant des fonctions de batch à JControllerForm et JmodelAdmin. Vous pouvez voir ceci en action les gestionnaires d’articles et de liens web. Ceci est prêt à être intégré dans les extensions et fournit une expérience utilisateur consistante.

Traitement par lot

Lire la suite

Amélioration du profil utilisateur dans Joomla!

Une des remarques souvent adressée à Joomla ! est son processus d’enregistrement qui ne permet de rassembler beaucoup de données. Le processus d’enregistrement par défaut demande juste le nom, l’adresse email ce qui beaucoup de gens n’est pas suffisant.

 

C’est pourquoi beaucoup d’utilisateurs installent Community Builder juste pour ajouter des champs supplémentaires au processus d’enregistrement alors que Community Builder peut faire bien d’autres choses (comme la gestion de la partie sociale d’un site).

 

Il existe un petit plugin bien connu pour Joomla ! 1.5 nommé usermeta qui permet donc, de définir des nouveaux champs de votre choix pour la processus d’enregistrement. Un tutoriel dans la langue de shakespeare est disponible, expliquant comment se servir de se plugin.

 

Joomla ! 1.6 quand à lui facilite la tâche car tout ce dont vous avez besoin est déjà intégré dans le core du CMS. Cette fonctionnalité est cachée et beaucoup de gens ne l’ont pas trouvée et utilisent encore Community Builder pour résoudre le problème.

 

Le plugin « profil utilisateur » est incroyablement simple, une fois activé il ajoutera de nombreux champs additionnels à votre formulaire qui s’occupe du processus d’enregistrement et vous n’êtes pas limité aux champs : noms, email et mot de passe.

 

Vous pouvez par exemple forcé l’utilisateur à accepter vos conditions et règles d’utilisation avant de s’inscrire et à valider sa date de naissance.

 

Si les champs proposés par le plugin ne vous suffisent pas, faites un tour du côté de la documentation de Joomla ! Qui vous donnera les instructions pour créer des champs additionnels pour le plugin « profil utilisateur » de Joomla ! Qui permettra d’ajouter encore plus de puissance et de possibilités à vos formulaires d’enregistrement de Joomla !.

KDE 4.7 débarque en version beta

L’équipe de développement de KDE vient d’annoncer la sortie de la première beta pour KDE en version 4.7, dont la version finale est prévue pour le 27 juillet prochain. Comme l’API, toutes les fonctionnalités sont présentes ainsi que les dépendances, l’équipe de développement se concentre sur la correction des bugs.

La version 4.7 apporte quelques fonctionnalités intéressantes :

 

  • Kwin, le gestionnaire de fenêtre de Plasma prend en charge maintenant OpenGL ES 2.0, ce qui améliore les performances et le déploiement sur les périphériques mobiles
  • Dolphin, le gestionnaire flexible de fichiers de KDE se voit doté d’amélioration au niveau de son interface et apport une nouvelle expérience utilisateur pour ce qui concerne la recherche des metadatas dans les fichiers
  • KDM, qui est le gestionnaire de login de KDE  s’interface maintenant avec le bootloader Grub2
  • Marble, le globe virtuel supporte maintenant la recherche hors-ligne, ce qui permet à la version mobile d’être utilisée sur les routes
KDE 4.7

KDE 4.7

 

Les prochaines étapes dans le développement de la version 4.7 sont les suivantes :

 

  • Beta 2 pour le 8 juin 2011
  • RC1 pour le 22 juin 2011
  • RC2 pour le 6 juillet 2011
  • Version finale pour le 27 juillet 2011

Pour télécharger les paquets adéquats de KDE 4.7 ça se trouve ici : KDE 4.7 Beta

Les événements avec Mootools : Element, Class, Delegation et Pseudos

Une des fonctions la plus utile et courante utilisée avec Mootools est le type Événement. On peut utiliser de deux façons ce type : Element et Class. Element.Events est probablement le plus connu car c’est ce que vous utilisé en premier lorsque vous avez commencez à utiliser Mootools. De plus, MooTools More 1.3 Events.Pseudos a été introduit pour donner plus de puissance et contrôle aux événements et avec la délégation d’événement vous pouvez augmenter les performances de votre page. Vous verrez par la suite plus en détails ces fonctions.

 

Element.Events


Element.Events représente l’abstraction des événements des nœuds du DOM. L’exemple, le plus simple est bien sur d’ajouter un événement clic sur un élément du DOM :

document.id('clickme').addEvent('click', function(event){
    event.stop();
    this.highlight();
});

Pour la compréhension de ces lignes de code, nous allons voir en détails ce que cela veut dire. Tout d’abord on récupère l’élément avec la méthode document.id, ensuite on appelle la méthode Element.Event. AddEvent accepte deux arguments : le nom de l’événement qui est une chaîne de caractère sans la dénomination ‘on’ (click, keydown, mouseover) et l’appel qui est une fonction. Cette fonction sera appelée quand l’utilisateur déclenche l’événement dans l’exemple ci-dessus ce sera sur un clic.

Il y a deux choses intéressantes que vous voyez ici : en premier, l’argument de l’événement pour la fonction d’appel. C’est une instance du Type Événement. Ceci est un encapsuleur de l’événement natif de l’objet, donc vous n’avez pas à vous souciez des problèmes d’incompatibilités avec les navigateurs. Dans l’exemple, la méthode stop est appelée pour arrêter le comportement par défaut de l’objet qui est de suivre le lien. La seconde chose intéressante est que nous pouvons utiliser la variable dans tous les appels de l’événement qui se référence à l’objet clickme.

Lire la suite

Sortie de jUpgrade 1.0.2

jUpgrade est une extension pour Joomla! permettant de migrer un site depuis la version 1.5 vers la toute nouvelle version 1.6, le processus de migration ne prend en charge que les données de base de Joomla! (articles, catégories…) et pas encore celles des composants tiers. La version 1.1.0 de jUpgrade supportera la migration des données pour le composant Kunena qui est le premier composant a être pris en charge par jUpgrade, ce qui permet à jUpgrade d’ouvrir la porte pour le support de la migration des données pour d’autres extensions de Joomla!.
Si vous rencontrez un bug avec jUpgrade vous pouvez le signaler ici, si il n’existe pas encore : http://forge.joomla.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&tracker_id=10539

Pour utiliser convenablement jUpgrade vous devez activez le plugin System – Mootools Upgrade disponible depuis Joomla! 1.5.19, si vous avez d’autres questions : http://matware.com.ar/forum/projects/jupgrade/jupgrade-f-a-q.html

La version 1.0.2 de jUpgrade corrige quelques bugs, met à jour le package de Joomla! vers la révision 21117, le javascript a été mis à jour pour internet explorer.

Voici en détails les données que jUpgrade peut migrer :

  • Bannières
  • Catégories
  • Contacts
  • Contenu
  • Menus
  • Modules
  • Flux de nouvelle
  • Utilisateurs
  • Liens web