Mettre à jour notre fork de GeoNature et d’autres dépendances #40

Closed
opened 2023-03-02 08:02:24 +00:00 by juminet · 6 comments
Owner

Pour des raisons de maintenance et de sécurité informatique, nous devons mettre à jour notre fork de GeoNature-citizen. Cela permettra aussi de profiter d’améliorations apportés dans GeoNature-citizen et qui peuvent être très utiles.

Pour des raisons de maintenance et de sécurité informatique, nous devons mettre à jour notre fork de GeoNature-citizen. Cela permettra aussi de profiter d’améliorations apportés dans GeoNature-citizen et qui peuvent être très utiles. - Merger la branche master de GeoNature-citizen dans notre branche, évaluer les conflits à gérer et résoudre ces conflits. - Analyser la branche “dev” de GeoNature-citizen pour évaluer si cette branche devrait être mergée. - Faire un petit topo des nouveautés dont on pourra profiter: https://gitea.champs-libres.be/champs-libres/biommap/wiki/Liste-modifications-GnC
Author
Owner

Quel était notre fork ?

https://github.com/Champs-Libres/GeoNature-citizen/tree/champs-libres-dev

• soit plusieurs dizaines de commits en 2021 et 2022 : https://github.com/PnX-SI/GeoNature-citizen/compare/master...Champs-Libres:GeoNature-citizen:champs-libres-dev 
• au départ de master 


• le 23/08/21, je merge master dans notre branche : https://github.com/PnX-SI/GeoNature-citizen/commit/8834fd1698edfab482d913957ef9079b7629887f 
• mais il y avait d’autres commit plus anciens pas encore mergés dans master à ce moment : le plus ancien date du 09/06/21 : https://github.com/PnX-SI/GeoNature-citizen/commit/7e4dfea919542e3ed3d95399d4592ee298579333
• En plus, il y a peu de diff entre dev et master sur GnC actuellement

Solution : il faut merger la branche de GnC master dans notre branche

git checkout -b champs-libres-dev-merge-master 
git push --set-upstream origin champs-libres-dev-merge-master 

Il y a des conflits qui empeche l’interface github de faire le merge… Comment faire en ligne de commande :

Dans github.com, je mets à jour notre branche master qui est forkée : https://github.com/Champs-Libres/GeoNature-citizen/tree/master (sync fork)

Ensuite, je peux merger/rebase cette master sur notre dépôt:

Je le teste avec la branche champs-libres-dev-merge-master…

git merge master

• l’appli est cassée bien sûr (erreur back : <HaltServer 'Worker failed to boot.' 3>
• il y a 17 files en conflicts
    ◦ les conflits dans frontend sont nombreux, voire très nombreux. Certains sont faciles à résoudre
    ◦ les conflits dans backend sont surtout liés aux imports : plus facile

j’ai terminé le test avec git merge --abort

Quel était notre fork ? https://github.com/Champs-Libres/GeoNature-citizen/tree/champs-libres-dev • soit plusieurs dizaines de commits en 2021 et 2022 : https://github.com/PnX-SI/GeoNature-citizen/compare/master...Champs-Libres:GeoNature-citizen:champs-libres-dev • au départ de master • le 23/08/21, je merge master dans notre branche : https://github.com/PnX-SI/GeoNature-citizen/commit/8834fd1698edfab482d913957ef9079b7629887f • mais il y avait d’autres commit plus anciens pas encore mergés dans master à ce moment : le plus ancien date du 09/06/21 : https://github.com/PnX-SI/GeoNature-citizen/commit/7e4dfea919542e3ed3d95399d4592ee298579333 • En plus, il y a peu de diff entre dev et master sur GnC actuellement Solution : il faut merger la branche de GnC master dans notre branche ``` git checkout -b champs-libres-dev-merge-master git push --set-upstream origin champs-libres-dev-merge-master ``` Il y a des conflits qui empeche l’interface github de faire le merge… Comment faire en ligne de commande : Dans github.com, je mets à jour notre branche master qui est forkée : https://github.com/Champs-Libres/GeoNature-citizen/tree/master (sync fork) Ensuite, je peux merger/rebase cette master sur notre dépôt: Je le teste avec la branche champs-libres-dev-merge-master… `git merge master` • l’appli est cassée bien sûr (erreur back : <HaltServer 'Worker failed to boot.' 3> • il y a 17 files en conflicts ◦ les conflits dans frontend sont nombreux, voire très nombreux. Certains sont faciles à résoudre ◦ les conflits dans backend sont surtout liés aux imports : plus facile j’ai terminé le test avec git merge --abort
Author
Owner

\estimate 24h
/estimate 24h

\estimate 24h /estimate 24h
Author
Owner

Logs des changements

Conflits

Conflits backend:

• backend/gncitizen/core/badges/routes.py: 
    ◦ résolu, import (accept incoming changes + from gncitizen.core.sites.models import SiteModel, VisitModel
• backend/gncitizen/core/commons/admin.py: 
    ◦ résolu, import
• backend/gncitizen/core/commons/models.py
    ◦ résolu, import
• backend/gncitizen/core/commons/routes.py
    ◦ résolu, import
• backend/gncitizen/core/sites/routes.py
    ◦ résolu
• deleted by them: backend/gncitizen/core/taxonomy/models.py
    ◦ fichier supprimé
• backend/gncitizen/core/users/routes.py
    ◦ résolu, ATTENTION check fonction reset_user_password!!!
• backend/gncitizen/utils/mail_check.py

Conflit dans install/install_app.sh

Conflits frontend
• frontend/src/app/auth/user-dashboard/user-dashboard.component.ts
◦ small fix, should not be an issue
• frontend/src/app/home/home.component.html
◦ some fixes, to be checked on the home page afterwards
• frontend/src/app/programs/base/detail/detail.component.html
◦ ok, mais à vérifier après coup
• frontend/src/app/programs/base/map/map.component.ts
◦ devrait aller, chgt de nom MainConfig
• frontend/src/app/programs/sites/detail/detail.component.ts
◦ quite fucked up. A revoir
• frontend/src/app/programs/sites/form/form.component.ts
◦ small fixes
• frontend/src/app/programs/sites/sites.component.html
◦ gros changement: ajout d’une partie mobile?
• frontend/src/app/programs/sites/sites.component.ts

Modifications à faire dans les patches:

backend:
• settings.ini: aussi chargé dans backend/config, où il ne remplace rien. ?
• default_config.toml: changement de nom en config.toml
• start_gunicorn: pas de chgts
• wsgi.py: devrait être ok
• server.py: pas de nouveautés depuis 14/12/2021
◦ les 2 lignes sur geo_api devrait etre retirées
◦ bcp de chgts en fait, dont certains avaient déjà été faits!!!

frontend:
• settings.ini: aucun changement. 2 lignes ajoutées dans le patch par christophe
• assets: devrait être OK
• custom: OK
• conf: donc on dirait que AppConfig va être ajouté dans un nouvel object MainConfig. En espérant que tout fonctionne!!!
• server.ts: Ouf, fichier non touché depuis le 2/5/2021. Donc devrait être OK...

Rebuild des containers

docker-compose build --no-cache citizen-back

Fix problems

Logs des changements ==================== ### Conflits Conflits backend: • backend/gncitizen/core/badges/routes.py: ◦ résolu, import (accept incoming changes + from gncitizen.core.sites.models import SiteModel, VisitModel • backend/gncitizen/core/commons/admin.py: ◦ résolu, import • backend/gncitizen/core/commons/models.py ◦ résolu, import • backend/gncitizen/core/commons/routes.py ◦ résolu, import • backend/gncitizen/core/sites/routes.py ◦ résolu • deleted by them: backend/gncitizen/core/taxonomy/models.py ◦ fichier supprimé • backend/gncitizen/core/users/routes.py ◦ résolu, ATTENTION check fonction reset_user_password!!! • backend/gncitizen/utils/mail_check.py Conflit dans install/install_app.sh Conflits frontend • frontend/src/app/auth/user-dashboard/user-dashboard.component.ts ◦ small fix, should not be an issue • frontend/src/app/home/home.component.html ◦ some fixes, to be checked on the home page afterwards • frontend/src/app/programs/base/detail/detail.component.html ◦ ok, mais à vérifier après coup • frontend/src/app/programs/base/map/map.component.ts ◦ devrait aller, chgt de nom MainConfig • frontend/src/app/programs/sites/detail/detail.component.ts ◦ quite fucked up. A revoir • frontend/src/app/programs/sites/form/form.component.ts ◦ small fixes • frontend/src/app/programs/sites/sites.component.html ◦ gros changement: ajout d’une partie mobile? • frontend/src/app/programs/sites/sites.component.ts ### Modifications à faire dans les patches: backend: • settings.ini: aussi chargé dans backend/config, où il ne remplace rien. ? • default_config.toml: changement de nom en config.toml • start_gunicorn: pas de chgts • wsgi.py: devrait être ok • server.py: pas de nouveautés depuis 14/12/2021 ◦ les 2 lignes sur geo_api devrait etre retirées ◦ bcp de chgts en fait, dont certains avaient déjà été faits!!! frontend: • settings.ini: aucun changement. 2 lignes ajoutées dans le patch par christophe • assets: devrait être OK • custom: OK • conf: donc on dirait que AppConfig va être ajouté dans un nouvel object MainConfig. En espérant que tout fonctionne!!! • server.ts: Ouf, fichier non touché depuis le 2/5/2021. Donc devrait être OK... ### Rebuild des containers ```bash docker-compose build --no-cache citizen-back ``` ### Fix problems - cannot pip install https://github.com/PnX-SI/Utils-Flask-SQLAlchemy-Geo because fiona cannot install because GDAL error: https://github.com/Champs-Libres/GeoNature-citizen/commit/c68507e57706f164f05d269db67fcfb770a8f288 - comment field and exclude in get_programs: C'est une conséquence de la librairie manquante ci-dessus. - need to execute the "migrations" - missing media folder in container (https://gitea.champs-libres.be/champs-libres/biommap/commit/43e480daab3b644284a3b123610c1943521f617b) - why it only appear now?
Author
Owner

The dependency problem

  • git clone git@github.com:PnX-SI/GeoNature-citizen.git
  • cd GeoNature-citizen
  • mkdir venv
  • python3 -m venv venv
  • source venv/bin/activate
  • pip install -r backend/requirements.txt

Cela marche, sauf

Building wheel for flask-admin (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /mnt/tera/ChampsLibres/Projets/BiomMap/work/test-requirement-issue/GeoNature-citizen/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-39tq0zad/flask-admin/setup.py'"'"'; file='"'"'/tmp/pip-install-39tq0zad/flask-admin/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-x5b4ukus
cwd: /tmp/pip-install-39tq0zad/flask-admin/
Complete output (6 lines):
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help

error: invalid command 'bdist_wheel'

ERROR: Failed building wheel for flask-admin
Running setup.py clean for flask-admin
Building wheel for geog (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /mnt/tera/ChampsLibres/Projets/BiomMap/work/test-requirement-issue/GeoNature-citizen/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-39tq0zad/geog/setup.py'"'"'; file='"'"'/tmp/pip-install-39tq0zad/geog/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-pnn9u3a5
cwd: /tmp/pip-install-39tq0zad/geog/
Complete output (6 lines):
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help

error: invalid command 'bdist_wheel'

ERROR: Failed building wheel for geog

=> CCL: comme ça a marché, on travaille avec une nouvelle image python 3.8

## The dependency problem - git clone git@github.com:PnX-SI/GeoNature-citizen.git - cd GeoNature-citizen - mkdir venv - python3 -m venv venv - source venv/bin/activate - pip install -r backend/requirements.txt Cela marche, sauf Building wheel for flask-admin (setup.py) ... error ERROR: Command errored out with exit status 1: command: /mnt/tera/ChampsLibres/Projets/BiomMap/work/test-requirement-issue/GeoNature-citizen/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-39tq0zad/flask-admin/setup.py'"'"'; __file__='"'"'/tmp/pip-install-39tq0zad/flask-admin/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-x5b4ukus cwd: /tmp/pip-install-39tq0zad/flask-admin/ Complete output (6 lines): usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help error: invalid command 'bdist_wheel' ---------------------------------------- ERROR: Failed building wheel for flask-admin Running setup.py clean for flask-admin Building wheel for geog (setup.py) ... error ERROR: Command errored out with exit status 1: command: /mnt/tera/ChampsLibres/Projets/BiomMap/work/test-requirement-issue/GeoNature-citizen/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-39tq0zad/geog/setup.py'"'"'; __file__='"'"'/tmp/pip-install-39tq0zad/geog/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-pnn9u3a5 cwd: /tmp/pip-install-39tq0zad/geog/ Complete output (6 lines): usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: setup.py --help [cmd1 cmd2 ...] or: setup.py --help-commands or: setup.py cmd --help error: invalid command 'bdist_wheel' ---------------------------------------- ERROR: Failed building wheel for geog => CCL: comme ça a marché, on travaille avec une nouvelle image python 3.8
Author
Owner

/spent 13h

/spent 13h
juminet started working 2023-07-19 07:55:46 +00:00
juminet stopped working 2023-07-19 07:55:54 +00:00
8 seconds
Author
Owner

Modifications en production sur liveche

  • suivi la procédure de MAJ du README
  • ai dû modifié le chemin de config.toml dans le docker-compose.yml sur liveche:

- ./back/default_config.toml:/home/appuser/citizen/config/default_config.toml -> - ./back/default_config.toml:/home/appuser/citizen/config/config.toml

Modifications en production sur liveche ====================================== - suivi la procédure de MAJ du README - ai dû modifié le chemin de config.toml dans le docker-compose.yml sur liveche: `- ./back/default_config.toml:/home/appuser/citizen/config/default_config.toml` -> `- ./back/default_config.toml:/home/appuser/citizen/config/config.toml`
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Total Time Spent: 8 seconds
juminet
8 seconds
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: champs-libres/biommap#40
No description provided.