Installation¶
Cette page décrit les moyens techniques et collaboratifs de développement du site [http://flux-biomasse.fr/](http://flux-biomasse.fr/) et les outils associés. Pour tout problème (question, bug requête) envoyer un mail à l’adresse incoming+greel/flux-biomasse@gitlab.com qui sera directement enregistré comme une « Issue ». Ou aller directement sur l’interface des [Issues](https://gitlab.com/greel/flux-biomasse/issues)
Cette documentation contient les éléments suivants: * Installer un environnement python virtuel avec anaconda. * Installer et travailler sur le code du site en local * Description des technologies utilisés (Langage Python et Javascript, Framework Flask) pour le développement du site * Description de l’environnement de programmation: contrôle de source(Git)+ la forge (GitLab) * Description du processus de développement * Les aspects de Sécurité * Utilisation des modules complémentaires de su-model-optimisation (module datain.py et proxyin.py) * Table de correspondance entre les code géographiques utilisés par AURA-EE et la base de donnée « flux-biomasse »
Prérequis¶
Ouvrir un compte sur Gitlab¶
S’inscrire sur le site¶
Générer une clé SSH et la mettre sur gitlab¶
In powershell * ssh-keygen -o -t rsa -b 4096 -C julien.alapetite@gmail.com * cat ^/.ssh/id_rsa.pub | clip * paste in https://gitlab.com/profile/keys
Installer Node ( A mettre à jour)¶
source ^/nvm/nvm.sh
echo “source ^/nvm/nvm.sh” >> ^/.bashrc
nvm install v6.14.2
nvm alias default v6.14.2
Pour utiliser npm
npm install npm@latest -g
npm install (will install packages specified in package.json)
npm run build
Python¶
Installation¶
conda doit être préalablement installé sur la machine: * télécharger depuis https://conda.io/miniconda.html) * Modifier la variable d’environnment PATH(ex C:UsersalapetiteAppDataLocalContinuumminiconda3;C:UsersalapetiteAppDataLocalContinuumminiconda3Scripts) Créer un environnement virtuel ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Dans un terminal, lancer la commande suivante en remplaçant « my_env » par le nom souhaité conda create -n my_env python=3.6 Sélectionner l’environnement virtuel ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * in visual studio code appeler commande palette ctrl shit p et taper python : select interpreter (![image](/uploads/a5abb10c8458dc7793b29b9b979dcaa0/image.png) * in command prompt with virtual environment selected (activate my_env)
Installer Postgres¶
Configuration PostGre¶
Ouvrir console postgre
CREATE DATABASE affiliere;
CREATE USER affiliere_user WITH PASSWORD “xxxx” (nous demander)
GRANT ALL PRIVILEGES ON DATABASE affiliere TO affiliere_user ;
Ajouter utilisateur¶
python manage.py shell db.create_all() toto = User(username=”tutu”,password=”tutupaswd”) db.session.add(toto) db.session.commit()
Créer un utilisateur pour les outils partenaires¶
se placer dans le répertoire flux-biomasse
python manage.py shell
>>> toto = User(username=”tutu”,password=”tutupaswd”)
>>> db.session.add(toto)
>>> db.session.commit()
>>> quit()
Configuration flask¶
install private.py (nous demander) à la racine
Fini!
Installer les modules et applications en local ou sur PythonAnywhere¶
https://help.pythonanywhere.com/pages/Node/ Récupérer les repository. ~~~~~~~~~~~~~~~~~~~~~~~~~ Créer un répertoire « su-model » (ou autre nom) et placer dedans les 4 modules suivants.
git clone git@gitlab.com:su-model/flux-biomasse.git
git clone git@gitlab.com:su-model/su-model-app.git
git clone git@gitlab.com:su-model/su-model-sankey.git
git clone git@gitlab.com:su-model/su-model-optimisation.git
Installer le module sumoptimisation¶
cd su-model-optimisation
se placer dans virtual environment
conda install -r requirements.txt (ou pip)
pip install .
Installer le module su-model-sankey¶
cd su-model_sankey/sankeytools/client
npm install (crée node_modules)
npm run build
cd ../.. (se placer à la racine)
pip install . (bien se placer dans virtual environment)
Installer le module su-model-app¶
cd su-model-app/sumapp/client
npm install (crée node_modules)
npm run build
cd ../.. (se placer à la racine)
pip install . (bien se placer dans virtual environment)
Installer le module flux-biomasse¶
copier le fichier private.py.example et le modifier en private.py (champs password, debug=True et local_machine)
Magouilles restantes¶
Dans l’environnement virtuel où sont installés les modules (https://www.pythonanywhere.com/user/greel/files/home/greel/.virtualenvs/myvirtualenv/lib/python3.6/site-packages) * Editer [sankeytools/client/build/index.html](https://www.pythonanywhere.com/user/greel/files/home/greel/.virtualenvs/myvirtualenv/lib/python3.6/site-packages/sankeytools/client/build/index.html) (ou fichier equivalent en local) et remplacer les deux /static/ par /sankey-diagrams/static/sankeytools/ puis sauver en tant que index2.html * Editer [sankeytools/server/views.py](https://www.pythonanywhere.com/user/greel/files/home/greel/.virtualenvs/myvirtualenv/lib/python3.6/site-packages/sankeytools/server/views.py) et remplacer à la fin render_template(“index.html”) par render_template(“index2.html”) cela pour éviter les conflits avec su-model-app * Editer [sumodelapp/client/build/index.html](https://www.pythonanywhere.com/user/greel/files/home/greel/.virtualenvs/myvirtualenv/lib/python3.6/site-packages/sumodelapp/client/build/index.html) et remplacer les deux /static/ par /scmfa/static/sumodelapp
Sur pythonanywhere.com¶
Sur l’onglet web¶
Create custom web app
edit greel_pythonanywhere_com_wsgi.py (or any sitename_wsgi.py) and replace by our wsgi.py
Dans une console Bash¶
Ouvrir Bash
git clone git@gitlab.com:greel/flux-biomasse.git (For a specific branch: git clone -b my-branch git@gitlab.com:greel/flux-biomasse.git)
cd flux-biomasse
mkvirtualenv myvirtualenv ~~python=/usr/bin/python3.6 (source activate automatically done)
pip install -r requirements.txt
git clone https://github.com/creationix/nvm.git
Description du processus de développement¶
A chaque nouvelle release¶
Pour chaque projet pour la version x.y: * mettre à jour le numero de version dans app_emplois_resources.html * faire le git add, commit et push sur le master * git tag vx.y (ex v0.2) * git checkout -b release_v0.2 * git push origin release_v0.2 * git pull sur pythonanywhere => NB : le fichier app.py est modifié à la main sur pythonanywhere pour remplacer « from .siteweb » par « from siteweb » etc.