MyPads : version admissible

Après deux semaines de tests sur la bêta 2, nous atteignons aujourd’hui un nouveau palier et n’avons jamais été aussi proches de la version stable : nous vous présentons aujourd’hui MyPads version admissible (release candidate).

Derniers travaux réalisés

Depuis le point du 30 juillet :

Comme prévu, la gestion de l’envoi de mails depuis MyPads avec

au souhait de l’administrateur, la vérification des adresses mails avant activation du nouvel inscrit ;

une procédure de recouvrement de mot de passe ;

la génération de jetons dont la validité est limitée dans le temps pour ces deux actions ;

côté administration la configuration du serveur SMTP qui sera employé pour l’envoi des mails.

La possibilité de fournir des paramètres propres à chaque pad. Par exemple, dans un groupe sur invitation, il est dorénavant possible d’y créer un pad public ou en lecture seule. Dans un groupe protégé par mot de passe, vous pouvez créer un pad qui aura son propre mot de passe etc. Par défaut le comportement reste le même, à savoir que les pads héritent des propriétés de leur groupe parent.

L’ajout d’un champ facultatif de description pour chaque groupe.

Un certain nombre de corrections concernant les visibilités publiques et par mot de passe, notamment lorsque les pads ont des options différentes des groupes auxquels ils sont rattachés.

Quelques améliorations concernant les traductions.

Plus récemment, une refonte conséquente de l’authentification a du être entreprise. L’un des plugins d’etherpad, dont nous avions parlé en semaine 17, a la fâcheuse tendance à empêcher le fonctionnement de MyPads. Ce comportement s’est avéré aléatoire en fonction de la base de données utilisée par l’instance et le temps que celle-ci mettait à répondre après le lancement d’etherpad. Il faut dire que les plugins etherpad sont lancés suite à un événement global et que nous ne pouvons à notre connaissance pas contrôler leur ordre de lancement. Pour passer outre, il a fallu initialiser MyPads plus tôt, ce qui a empêché ce dernier de se brancher sur le système de sessions utilisé d’etherpad. C’est pourquoi, afin de garantir un fonctionnement sans conflit, il a été nécessaire de passer d’un système d’authentification simple en local vers un système à jetons, JSON Web Token, mais toujours au travers de la bibliothèque passportjs.

L’aboutissement

Cela fait un peu plus d’un an que le projet MyPads a été financé. Le développement, dont le début était prévu pour novembre, a été reculé à février de cette année et la charge de travail initialement prévue a été largement dépassée, en partie en raison d’une mésestimation du travail nécessaire pour créer un tel plugin pour Etherpad (ce type d’extension étant rare) et de bonus vis à vis du cahier des charges initial, ajoutés gracieusement par le prestataire. Ce dernier s’étant engagé, le dépassement est resté à sa charge et le plugin ne coûtera pas davantage que ce qui était prévu. Notez que Framasoft n’a de son côté pas souhaité appliquer des pénalités pour les retards constatés (MyPads, une fois le développement repris en février, devait être publié avant la fin du mois d’avril).

Quelques chiffres : MyPads, c’est aujourd’hui un peu plus de 13.000 lignes pour 10.000 lignes de code. Les deux tiers de ce total sont consacrés aux tests unitaires et fonctionnels du plugin. En tout, le logiciel aura vu passer un peu moins de 80.000 lignes – ajouts et suppressions – dont une faible partie provient des dépendances et le reste de refactorisations du code.

De nouvelles tâches sont prévues pour les mois à venir mais il ne devrait plus y avoir d’ajout avant la version stable et la mise en production sur les serveurs de Framasoft.

Testez

Merci à ceux qui ont déjà fait l’effort de tester MyPads. Pour cette toute dernière ligne droite, nous avons à nouveau besoin de vous. MyPads a été installé sur notre instance bêta. Plus cette version sera utilisée et plus les anomalies rencontrées seront rapportées, moins il y aura de mauvaises surprises pour le déploiement et l’utilisation par tous. Ceci est prévu dans à peine quelques semaines.

MyPads : release candidate

After two weeks of beta 2, today we reach another step and we’ve never been so close to release : here we have MyPads RC – release candidate.

Last progress

Since our last point :

As planned, email sending management into MyPads with

as the administrator desires, email addresses checking before subscriber account activation ;

password recovery procedure ;

token generation with a time limited validity for both actions ;

on the plugin administration, SMTP server configuration.

The ability to opt for pad personal parameters. For example, in a restricted group, it is now possible to create a public pad or a readonly one. In a password-protected group, you can add a pad with its own password etc. By default, behavior stays as before : pads inherit their properties from their parent group.

An optional description field for each group had been added.

Some bugs around public and private visibility have been fixed, in particular when pads have their own properties.

Some enhancements on translations.

Recently, a substantial rewriting of the authentication system has been made. One of the etherpad plugins, which we talk about into week 17 point, has a nasty tendency to prevent MyPads to work. This behavior has been randomly experienced, depending on the database used by the instance and the time it needs to setup after etherpad launch. Etherpad plugins are called through a global event and we can not, as far as we know, control their order. To disregard, we had to setup MyPads sooner, what prevents it to correctly plug with the session system used by etherpad. That’s why we decide, to secure functioning, to migrate from a simple local authentication to a token system, JSON Web Token, but still with the help of the passportjs library.

Completion

MyPads crowdfunding campaign has ended more than a year ago. Development, which has been initially expected on November, has been delayed to February and the predictable workload has been overstepped to a great extent. Reasons include a wrong initial estimation of needed work to create such a plugin (this kind of extension is rare into etherpad ecosystem) and some bonus features regarding the specifications ; features added free of charge. The contractor has been engaged to complete the plugin, so the overload is on him and the plugin won’t cost more than expected. Note that Framasoft has not wanted to apply some fees for the delays (MyPads, once the development starts again in February, has been announced to be published before the end of April).

Some numbers : MyPads today represents a little more than 13,000 lines for 10,000 lines of code. Two thirds has been dedicated to unit and functional testing. In all, the plugin has regrouped a bit less than 80,000 lines – additions and deletions – including a little part from dependencies and mainly code refactorizations.

New features are planned next monthes but it won’t be any addition before stable version and deployment on the Framasoft and Framapad servers.

Tests

Thanks to all who have already took some time to test MyPads. For this last home straight, we need you, again. MyPads has been installed on our beta instance. More this version will be used and bugs will be reported, less we got bad surprises in a few weeks, when MyPads will be published and installed publicly.