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

Install visual studio code

Install python extension

Install chrome extension

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.

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.