Aller au contenu

Publier sur DoliNews

De l'ouverture du compte au premier article publié.

Ici, l'information est toujours datée : votre annonce indique la compatibilité et la maturité du module au jour où vous la publiez. DoliNews ne prétend pas décrire l'état actuel d'un module, seulement ce que vous en avez annoncé, et quand. La fiche de votre projet, elle, est permanente : elle ne porte ni compatibilité ni maturité.

Deux choses à savoir avant de commencer. Écrire demande un compte contributeur, c'est-à-dire une preuve que vous avez réellement contribué à l'écosystème : lire et s'abonner n'en demandent pas. Et toute annonce passe par la revue : un jeton d'API donne le droit de soumettre, jamais celui de publier. Seules ses traductions y échappent, le texte qu'elles traduisent ayant déjà été relu.

1. Ouvrir le compte

L'inscription est libre et donne un compte lecteur. Un courriel de vérification part aussitôt : le lien qu'il contient est à usage unique et active le compte.

Utilisez de préférence l'adresse avec laquelle vous signez vos commits. Si cette adresse est déjà connue de l'index des auteurs, votre compte devient contributeur au moment même où vous vérifiez le courriel, et l'étape suivante ne vous concerne pas.

Créer un compte - J'ai déjà un compte

2. Prouver votre contribution

La qualification est distincte de l'authentification : le compte existe d'abord, la preuve vient ensuite. Le service cherche votre adresse d'auteur de commits dans un index moissonné sur des clones git des dépôts de référence - jamais sur l'API d'une forge, pour que la vérification survive à la disparition d'un hébergeur.

Votre adresse n'est jamais conservée en clair, ni dans l'index, ni sur la preuve : seule son empreinte poivrée est stockée.

Une fois l'adresse reconnue, il reste à prouver qu'elle est bien à vous. Deux niveaux :

  • Simple : un code à usage unique est envoyé à l'adresse de commit, valable une heure, cinq tentatives.
  • Fort : le service vous donne une phrase à signer avec la clé GPG qui signe vos commits ; vous collez votre clé publique et la signature.

Trois cas où la voie simple ne s'applique pas :

  • Votre adresse de commit est une redirection anonymisée, du type fournie par les forges : elle ne reçoit pas de courriel, il reste la signature GPG ou la validation manuelle.
  • Votre adresse n'apparaît dans aucun dépôt de référence : demandez la validation manuelle à l'équipe depuis la même page, en expliquant votre situation. C'est la voie prévue pour les éditeurs sans dépôt public.
  • Cette adresse est déjà rattachée à un autre compte : une empreinte ne qualifie qu'un compte, et une preuve révoquée par la modération n'est jamais rendue par un automatisme.

3. Déclarer votre éditeur

L'éditeur est l'organisation ou la personne qui publie ; vos fiches projet et vos annonces lui appartiennent. On ne publie jamais en son nom propre : sans éditeur, rien ne peut être soumis. Le formulaire de création vous est proposé dès que votre preuve de contribution est acceptée, et il reste accessible en bas de la page de vos articles. Une intégration qui part de zéro crée plutôt son éditeur par POST /editors. Vous êtes propriétaire de l'éditeur que vous créez, et vous pouvez y rattacher d'autres comptes contributeurs, qui publieront sous le même nom.

Un éditeur possédé par compte : le crédit de publication et le plafond de file se comptent par éditeur. On rejoint les autres sur invitation de leur propriétaire.

4. Créer un jeton d'API

Le jeton sert à publier depuis votre chaîne d'intégration, et il est nécessaire à l'étape suivante. Nommez-le d'après son usage : le secret ne s'affiche qu'une fois, à la création, et se révoque à tout moment.

Il s'utilise en en-tête sur chaque appel. Commencez par vérifier qu'il répond :

TOKEN="12|..."

curl -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" \
     https://dolinews.com/api/v1/profile

La réponse porte les deux valeurs dont dépend toute écriture : is_contributor, et la liste de vos éditeurs avec leur identifiant. Notez cet identifiant, les appels suivants le demandent.

Débit : 120 lectures et 10 écritures par minute. Un script qui dépose plusieurs images à la suite doit tenir compte de la seconde limite.

5. Créer la fiche de votre projet

La fiche décrit le projet de façon permanente : nom, résumé, description, licence, liens typés vers le dépôt, la documentation, la boutique ou le support. Elle ne porte aucune compatibilité Dolibarr, et c'est délibéré : une fiche reste en place des années, donc toute information datée qu'elle contiendrait deviendrait fausse sans que personne ne la corrige.

La fiche se crée depuis votre compte, ou par l'API si vous partez d'une chaîne d'intégration. Un article peut se passer de fiche - ce sera alors une annonce d'éditeur - mais une sortie de version mérite la sienne.

# Créer la fiche
curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"editor_id":3,"name":"Mon module",
          "summary":"Ce que fait le module, en une phrase.",
          "license":"GPL-3.0-or-later"}' \
     https://dolinews.com/api/v1/projects

# Ajouter un lien typé : dolistore, shop, demo, doc, repo, support, other
curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"type":"repo","url":"https://example.org/mon-module","label":"Dépôt git"}' \
     https://dolinews.com/api/v1/projects/mon-module/links

Les raccourcisseurs d'URL sont refusés, et une fiche Dolistore déjà revendiquée par un autre éditeur déclenche un conflit que la modération tranche.

6. Soumettre votre annonce

Par le site depuis la page de vos articles, ou par l'API. Dans les deux cas le contenu est le même, et le résumé est obligatoire : c'est lui que le lecteur parcourt dans le fil, et son absence est ce qui rend illisibles la plupart des journaux de sortie.

  • Le type distingue la sortie de version de l'annonce d'éditeur ; la nature de la publication - sécurité, correctif, fonctionnalité, compatibilité, fin de vie - ne vaut que pour une version.
  • La maturité va d'alpha à obsolète. Seules les versions stables apparaissent dans le fil par défaut : le lecteur demande le reste explicitement.
  • La compatibilité Dolibarr est une plage de versions majeures, et se déclare simplement ou comme réellement éprouvée. Ne déclarez pas éprouvé ce que vous n'avez pas essayé : le filtre par version en dépend.
  • Le corps est en Markdown. Les liens sortants sont tous marqués nofollow, et seules les images déposées sur le service peuvent illustrer un article.

Une annonce illustrée se publie en deux temps : déposer les images, puis créer l'article en citant leurs adresses dans le corps et leurs identifiants dans media_ids. Sans ces identifiants, les images restent orphelines et sont effacées au bout de vingt-quatre heures.

# 1. Déposer une capture. Elle est ré-encodée, ses métadonnées disparaissent.
curl -H "Authorization: Bearer $TOKEN" \
     -F file=@capture.png -F editor_id=3 -F alt="Écran de configuration" \
     https://dolinews.com/api/v1/media

# 2. Créer l'article et le soumettre dans le même appel
curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"editor_id":3,"project_id":7,"type":"release",
          "title":"Mon module 2.1","version":"2.1.0","locale":"fr_FR",
          "focus":"bugfix_major","maturity":"stable","dolibarr_min":20,
          "summary":"Ce que cette version change, en quelques lignes.",
          "body":"## Corrections\n\n![Écran](URL_RENVOYEE_A_L_ETAPE_1)",
          "media_ids":[42],"submit":true}' \
     https://dolinews.com/api/v1/articles

Une capture d'un Dolibarr en service contient presque toujours des données réelles - tiers, montants, adresses. Nettoyez-la avant de l'envoyer.

L'image à la une est celle que le fil, la carte de partage et les flux montrent pour votre annonce : désignez-la par featured_media_id parmi les images de votre éditeur, ou par la ligne image: de l'en-tête avec l'outil de publication. Elle est relue avec l'annonce, et la changer après publication passe par une révision. Sans elle, la première image du corps est montrée ; une traduction montre celle de l'original.

Deux limites protègent la file : un rythme de publication par projet, et un plafond d'annonces du même éditeur simultanément en revue. Une annonce et ses traductions comptent pour une.

Documentation complète de l'API

7. La revue, puis la suite

Votre article entre dans la file et trois modérateurs doivent l'accepter pour qu'il paraisse. Les échanges se font dans un fil privé entre vous et l'équipe : vous y répondez, vous corrigez, vous resoumettez. Modifier un article en attente rouvre un tour de revue, car un accord porte sur un texte précis.

Aucun délai n'est annoncé, et ce n'est pas une omission : s'engager sur le temps libre de bénévoles transformerait chaque retard en manquement. La page de la revue affiche le délai réellement observé et l'attente la plus ancienne. Une annonce de sécurité passe devant.

Une fois publié, un article ne se modifie plus en place : vous proposez une révision, qui repasse par la revue, l'article porte la mention de sa correction et la version d'origine reste consultable. Une traduction est un article à part entière, liée à son original : celle que vous déposez vous-même paraît sans revue, celle d'un traducteur que vous avez mandaté passe devant un relecteur ; une annonce non traduite n'est jamais désavantagée dans la diffusion.

Comment fonctionne la revue - Règles d'utilisation