6. Règles de programmation#
6.1. Fortran#
Le suffixe des fichiers Fortran est nécessairement .F90.
Les règles de programmation impose l’écriture en minuscules, une indentation des
blocs de 4 caractères (idem en Python et C++).
implicit none est obligatoire.
Autres règles de programmation générale :
une seule routine par fichier,
les types dérivés doivent être définis dans des fichiers suffixés
_type.F90et les modules nommésx_module.F90,une routine ne peut dépasser 500 lignes, 20 arguments au maximum,
utiliser des noms de routines (on n’est plus limité à 6 caractères) et de variables explicites,
ne pas passer d’arguments bidons, utiliser
optional,commenter le rôle de chaque argument,
commenter le code (en anglais),
utiliser
do/enddo(pas dedo/continue, pas degoto),ranger intelligemment les nouvelles routines dans un des répertoires de
bibfor/le code est systématiquement remis en forme avec fprettify.
Certaines de ces règles (et d’autres) sont vérifiées au moment de la soumission par l’utilitaire aslint.
6.2. Python#
L’essentiel des règles de programmation sont celles de la PEP8 (Style Guide for Python Code). L’historique du code fait que les anciennes fonctions ne respectent pas encore toutes les règles. Chacun doit contribuer dans ce sens.
Le code est systématiquement remis en forme avec black.
Certaines de ces règles (et d’autres) sont vérifiées au moment de la soumission par l’utilitaire aslint.
6.3. aslint#
Vous pouvez, à tout moment vérifier ces règles en lançant aslint en ligne de commande.
Pour que aslint soit accessible, ajouter source $HOME/dev/codeaster/devtools/etc/env.sh
dans le fichier $HOME/.bashrc ou équivalent.
Voir aslint --help pour les détails.
En particulier, vérifier les fichiers suivis par Git actuellement modifiés (liste
retournée par git status):
aslint --git
Pour vérifier tous les fichiers suivis par Git modifiés depuis la branche main:
aslint --git origin/main
aslint peut corriger certains manques (absence de la licence, mise à jour du copyright…) :
aslint --fix --git
# ou
aslint --fix --git origin/main
# ou encore
aslint --fix bibfor/op/op0190.F90
aslint est lancé lors de chaque commit grace aux hooks
(mis en place par install_env, voir Compilation de la version de référence).
Remarque
Si votre branche n’a pas démarré depuis
origin/main, il faut changer avec le nom de la branche de départ du développement ou l’identifiant de révision (point de bifurcation).