Contribuer à Publik

Pour démarrer

Publik est composé de différents modules, par ordre alphabétique :

À côté de ces modules applicatifs, d'autres modules participent à l'ensemble :

Tout cela peut fonctionner en s'appuyant sur ces projets majeurs que sont Python et Django, et bien sûr différents autres modules, ponctuellement utiles, sur des besoins particuliers.

Ce survol rapide des briques étant réalisé, avant de contribuer à l'un ou l'autre module, il est important de noter qu'une des forces de Publik est dans sa capacité d'interactions avec des applications tierces; ainsi, le développement de celles-ci, pour leur ajouter la prise en charge du protocole OpenID Connect pour le SSO, ou leur ajouter des API, contribue également de manière importante à Publik.

Pour explorer plus avant cet aspect:

Cela posé, ce document se concentre sur la contribution aux modules de Publik.

Pour faciliter le développement local de ces modules, le projet "publik-devinst" existe.

Périmètre de contribution

La contribution ne s'arrête pas au code de Publik et des modules satellites. Vous pouvez également contribuer au développement de connecteurs pour les logiciels métier ou à la rédaction de la documentation. La relecture de correctifs existants est également une contribution très utile.

Obtenir de l'aide

Le développement et le support autour de Publik est centralisé via l'outil redmine, https://dev.entrouvert.org, l'inscription est libre, la création d'un compte se fait à l'adresse https://dev.entrouvert.org/account/register et bien sûr jamais l'adresse électronique mentionnée ne sera utilisée à d'autres fins.

Code de conduite

Dans tous les échanges, une bienséance élémentaire est attendue, soyez poli·e, n'insultez personne.

Où démarrer

Publik en local

Le meilleur endroit pour développer Publik est son propre ordinateur; un projet et une documentation dédiée à l'installation d'un environnement de développpement local existe.

$ sudo apt install ansible postgresql
$ git clone git://git.entrouvert.org/publik-devinst
$ cd publik-devinst
$ ansible-playbook -i inventory.yml -K -e user=$(whoami) install.yml
$ ansible-playbook -i inventory.yml -e user=$(whoami) deploy-tenants.yml
$ firefox https://www.publik.local/

Exécuter les tests.

Découvrir Publik

Équipé d'une installation locale et du guide de l'administrateur fonctionnel, découvrir ce que Publik peut déjà faire, c'est important parce que beaucoup de choses existent déjà et que les connaitre permet d'ajouter une idée au meilleur endroit, et que cet ajout cadre au mieux avec son environnement.

Une première contribution

Important, scratch your own itch. (même si la réalité des contextes sera souvent différente, c'est important à rappeler).

S'il s'agit d'une nouvelle fonctionnalité, il est utile de commencer par ouvrir un ticket, pour qu'elle puisse être validée, guidée, etc.

Ensuite,

Modifier le code

Produire un patch

La première ligne du message d'un commit doit être de la forme : petite description du patch (#XXXXX) où XXXX est le numéro de ticket où le développement est suivi (on notera aussi l'absence d'une majuscule sur la première lettre).

Des indications supplémentaires sont possibles dans le message de commit sans formalisme particulier, laisser cependant une ligne vide entre la première ligne formelle et la suite du message.

Attacher un patch à un ticket

(et avant ça trouver/créer le ticket ?)

Attendre

On essaie de regarder rapidement mais pour autant on peut être occupés sur d'autres projets

Échanger

Une fois une contribution proposée vient le temps de la relecture.

Il n'y a pas de règles définissant précisément comment les relectures de code doivent se faire, la seule règle est qu'elles doivent se faire : une modification doit être validée par au moins une personne avant de pouvoir être intégrée.

Les relectures ont deux rôles importants :

Ressources / pour aller plus loin