DocAssiduites/docs/GuideDeveloppeurs.md
2021-01-28 09:47:27 +01:00

3.3 KiB

Documentation pour les développeurs ScoDoc

Informations pour les développeurs souhaitant étendre ou modifier ScoDoc.

Informations générales

Développer sur ScoDoc 7 et 8

Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 7.x et 8.

Style et formatage du code

L'ancienneté de la base de code a rendu le style peu cohérent.

Le code doit être formatté avec black avant tout commit (configurez votre éditeur pour appeler black à l'enregistrement).

Documentation

On adoptera le style "Google": https://google.github.io/styleguide/pyguide.html#383-functions-and-methods

Exemple: """Description résumée de la fonction

blah blah sur la fonction

Args:
    table_handle: An open smalltable.Table instance.
    keys: A sequence of strings representing the key of each table
      row to fetch.  String keys will be UTF-8 encoded.
    require_all_keys: Optional; If require_all_keys is True only
      rows with values set for all keys will be returned.

Returns:
    A dict mapping keys to the corresponding table row data
    fetched. Each row is represented as a tuple of strings. For
    example:

    {b'Serak': ('Rigel VII', 'Preparer'),
     b'Zim': ('Irk', 'Invader'),
     b'Lrrr': ('Omicron Persei 8', 'Emperor')}
"""

Git

Le dépot est https://scodoc.org/git/viennet/ScoDoc

La branche master est celle en production. La branche Scodoc8est expérimentale (nouvel installeur, refactoring...). ScoDoc9 sera avec Python 3.

Ci-dessous quelques pense-bête qui peuvent servir.

Hot fixes (internes)

Pour les développeurs internes (écriture sur le dépot master), un exemple basique:

# Créer une branche
#  si besoin (travail en cours), utiliser git stash avant
git checkout master
git branch hotfix
git checkout hotfix
... dev, test ...
git add ...
git commit -m "fixed ..."
git checkout master
git merge hotfix
git branch -d hotfix
# publication

# éventuellement: git stash pop

Mettre à jour votre branche

Vous travaillez dans votre branche ma_branche. Pour lui appliquer les mises à jour de master (remote):

git pull origin master

Commandes utiles, en vrac

  • git log -L:fonction_python:fichier.py

Refactoring

pylint --disable=all  -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \' 

Lint tous les fichiers modifiés:

git status | grep modified | grep .py | awk '{print $2}' | xargs pylint -E

Restore les modes au besoin (SAMBA les changent parfois):

git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply

Portail pour tests

TODO (voir scotests/fakeportal/).