Utilisant bibtex comme base de données bibliographiques, j'ai cherché une bibliothèque python permettant de traiter de tels fichiers. Je pensais que je trouverais facilement mon bonheur car python regorge de bibliothèques. Erreur... je n'ai rien trouvé de fonctionnel et documenté.
Pour ceux qui ne savent pas, bibtex est un format pour stocker des infos bibliographiques et ça ressemble à ça.
@book{Ben62,
title = "L'Oxydation des m\'etaux",
author = "J. B{\'e}nard and J. Bardolle and F. Bouillon and M. Cagnet%
and J. Moreau and G. Valensi",
publisher = "Gauthier-Villars",
year = "1962"
}
En fuinant dans des codes sources de logiciels, j'ai fini par trouver un projet de l'OKFN qui se nomme bibserver. Vu le nom, je devais bien trouver un bout de code qui s'arrange avec ces fichiers.
C'était effectivement le cas, et le parser était vraiment satisfaisant sur mes fichiers. J'ai alors décidé d'en faire un projet à part entière de manière à ce que tout le monde puisse avoir un parser en python pour ses besoins. La license de bibserver est la AGPLv3. Ce qui fait sens pour ce type de project. Le problème est que cela peut être un peu trop restrictif pour certains usages et un utilisateur m'a d'ailleurs demandé si je pouvais passer à une license de type LGPL.
Il s'en est suivi une pêche à l'autorisation. J'ai commencé l'été dernier par l'auteur principal de bibserver, mais je n'ai pas eu de réponse. Puis, je suis passé au second contributeur qui n'y voyait pas de problème, a mis le premier auteur en copie de son message. Le premier auteur m'a répondu dans la foulée pour me dire OK, mais les droits sont reversés à l'OKFN, il faut donc leur demander l'autorisation. Je suis passé par leur courriel de contact, deux fois, mais je n'ai pas eu de réponse. Ma dernière chance était la liste de discussion et tada ! j'ai eu la permission.
Le code est donc passé en LGPLv3. Ce fût une longue bataille, qui montre aussi l'importance de bien choisir la licence de départ. En effet, si l'AGPL est tout à fait approprié à bibserver, cette sous-partie peut très bien faire l'objet d'une bibliothèque à part entière et c'est dommage de ne pas étendre les possibilités de cette sous-partie. J'ai coutume de dire que l'on ne passe jamais à tous les usages possibles, ce qui est l'essence du hacking et qu'il faut essayer, autant que faire ce peu, d'ouvrir au maximum la réutilisation de ce que l'on écrit.
Un grand merci aux personnes de l'OKFN pour cette permission.