Environnement de travail

Communication

  • Listes de diffusion
  • Site web ? Plus tard
  • IM : Jabber
  • Adresse contact(chez)ruche

Tests

Besoins :
  • Tests boîte noire
  • Tests de non-régression
  • Tests unitaires

Langage

  • Python version 2.6 et 2.7
  • Analyseur de code statique :
    • parmi Pyflakes, Pylint, Pep8 et PyChecker nous préferons Pylint
  • Conventions :
    • Lignes de 80 caractères
    • Indentation de 4 caractères
    • Pas de tabulation
    • Utf8

Documentation

L'idée d'une documentation versionnée est intéressante.

Technique

Utilisateur

Besoins
  • utilisable en web et en papier (pdf ?)
  • versionnée ?
Possibilités
  • Sphinx
  • Wiki redmine
  • wiki gitit

Langue

  • Code en anglais
  • Docstrings en français, car ** elles seront intégrées dans la doc technique, en français ; ** nous serons plus clairs, plus précis, en nous fatigant moins, en français.
  • Reste des commentaires en anglais ou français (s'il y a assez de docstrings, il devrait en rester assez peu)
  • Documentation technique (comment installer, etc) en français
  • Langue principale (avant traduction) en français

Licence

Code source

AGPL3 ou supérieurs

  • On met tous les noms des contributeurs significatifs
  • Mettre les noms de tous les auteurs dans les fichiers
  • Mettre le résumé de la licence dans chaque fichier

Documentation

GFDL

Inclure un texte du genre :

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Choix d'outils

Base de donnée

Se renseigner sur des outils pour :
  • Modélisation ? UML ?
  • Documentation de la base de donn
  • Comm base de donn
  • Base de données
    • agnostique : Ruche pourra fonctionner avec divers systèmes de gestion de base de données (MySQL, PostreSQL, etc) grâce à SQLAlchemy

Communication inter-logiciel

Nous utilisons Twisted. Un prototype est réalisé dans la branche "twisted" du dépôt. Il permet de définir un objet serveur, et d'utiliser ce serveur depuis le client, (presque) comme s'il s'agissait d'un objet local.

Framework web

Z3950, *MARC

Analyseur syntaxique et lexical (CLI)

I18n

Prévoir d'utiliser _("gettext") pour les textes qui apparaissent aux
utilisateurs (pas les textes techniques).

Serveur web

  • Agnostique
  • Tests avec apache

Outils de test

Besoins

Autant que possible, les tests doivent être automatisables, et constituent
aussi des tests de non-régression.

  • Serveur
    • Unitaires
    • Boîte noire (inclus dans le tests d'intégration)
  • Client texte (CLI)
    • Unitaires
    • Boîte noire (inclus dans le tests d'intégration)
  • Client Web
    • Unitaires ?
    • Interface graphique et ergonomie
  • Tests d'intégration
    • Serveur et client texte
    • Serveur et client web

Outils

  • Tests unitaires
  • Boîte noire
    • Un peu ce qu'on veut, donc atheist
  • Interface graphique (web) : pas encore décidé. Des solutions sont :
  • Intégration : pas d'outil particulier. Fait avec :
    • Atheist pour la boîte noire CLI
    • ?? pour la boîte noire web