From b1ddb960c93a22dd17445a80c10475fb98466a02 Mon Sep 17 00:00:00 2001 From: Pierre Narcisi Date: Tue, 26 Mar 2024 14:15:35 +0100 Subject: [PATCH 1/3] feat(CI) add ci for eval perf --- .github/workflows/eval.yml | 137 +++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 .github/workflows/eval.yml diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml new file mode 100644 index 0000000000..0089b4061d --- /dev/null +++ b/.github/workflows/eval.yml @@ -0,0 +1,137 @@ +name: Performance Evaluation +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + debian-version: ["11", "12"] + include: + - debian-version: "11" + python-version: "3.9" + postgres-version: "13" + postgis-version: "3.2" + - debian-version: "12" + python-version: "3.11" + postgres-version: "15" + postgis-version: "3.3" + + name: Debian ${{ matrix.debian-version }} + + services: + postgres: + image: postgis/postgis:${{ matrix.postgres-version }}-${{ matrix.postgis-version }} + env: + POSTGRES_DB: geonature2db + POSTGRES_PASSWORD: geonatpasswd + POSTGRES_USER: geonatadmin + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: Add database extensions + run: | + psql -h localhost -U geonatadmin -d geonature2db -f install/assets/db/add_pg_extensions.sql + env: + PGPASSWORD: geonatpasswd + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: "pip" + - name: Install GDAL + run: | + sudo apt update + sudo apt install -y libgdal-dev + - name: Install dependencies + if: github.base_ref == 'master' + run: | + echo 'Installation des requirements de prod' + python -m pip install --upgrade pip + python -m pip install \ + -e ..[tests] \ + -r requirements.txt + working-directory: ./backend + - name: Install dependencies + if: github.base_ref != 'master' + run: | + echo 'Installation des requirements de dev' + python -m pip install --upgrade pip + python -m pip install \ + -e ..[tests] \ + -r requirements-dev.in + working-directory: ./backend + - name: Show database branches and dependencies + run: | + geonature db status --dependencies + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + # - name: Restore database + # run: | + # # wget https://www.dropbox.com/scl/fi/17gsthsftfg59mxwmbbre/export_geonature_10000.zip?rlkey=33choleag4xw60wadm802c3oh&dl=1 -O 10kDump.zip + # # unzip 10kDump.zip + # wget https://www.dropbox.com/scl/fi/jjkxyg120bxc0dp8uy8kq/300KDump.sql?rlkey=tyuk2svitcb9nyshn7r09yo7b&dl=1 -O 300KDump.sql + # ls + # psql -h localhost -U geonatadmin -d geonature2db -f 300KDump.sql + # env: + # PGPASSWORD: geonatpasswd + - name: Install database + run: | + install/03b_populate_db.sh + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + srid_local: 2154 + install_bdc_statuts: true + add_sample_data: true + install_sig_layers: true + install_grid_layer_5: true + install_grid_layer_10: true + install_ref_sensitivity: true + - name: Show database status + run: | + geonature db status + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + + - name: Install core modules backend + run: | + pip install -e contrib/occtax + pip install -e contrib/gn_module_occhab + pip install -e contrib/gn_module_validation + - name: Show database status + run: | + geonature db status + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Install core modules database + run: | + geonature upgrade-modules-db + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Show database status + run: | + geonature db status --dependencies + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Load benchmark stable data + run: | + wget https://geonature.fr/data/benchmark_history/benchmark_stable.json -O benchmark_stable.json + + - name: Compare performance to stable data + run: | + pytest --benchmark-only --benchmark-compare-fail="mean:0.1" --benchmark-compare=benchmark_stable.json + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + # https://stackoverflow.com/a/64126737 For posting results on GitHub Pull Requests From 2108176e5a00ad8b904bcb24de3d8786ffbdf4ba Mon Sep 17 00:00:00 2001 From: Fred C Date: Thu, 11 Jul 2024 11:39:09 +0200 Subject: [PATCH 2/3] [doc] Fix table and fn name Fix table and function name in `gn_profiles` schema --- docs/admin-manual.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin-manual.rst b/docs/admin-manual.rst index 8b67bb9aad..44798af553 100644 --- a/docs/admin-manual.rst +++ b/docs/admin-manual.rst @@ -556,7 +556,7 @@ Les paramètres généraux dans la table ``gn_profiles.t_parameters`` : Les deux premiers paramètres permettent de filtrer les données dans la vue ``gn_profiles.v_synthese_for_profiles``. Cette vue comporte les données de la synthèse qui répondent aux paramètres et qui alimenteront les profils de taxons. Les clauses WHERE de cette vue peuvent être adaptées pour filtrer les données sur davantage de critères et répondre aux besoins plus spécifiques, mais sa structure doit rester inchangée. -Les paramètres définis par taxon le sont dans la table ``gn_profiles.cor_taxons_profiles_parameters`` : +Les paramètres définis par taxon le sont dans la table ``gn_profiles.cor_taxons_parameters`` : Les profils peuvent être calculés avec des règles différentes en fonction des taxons. Ceux-ci sont définis au niveau du cd_nom, à n'importe quel rang (espèce, famille, règne etc). Ils seront appliqués de manière récursive à tous les taxons situés "sous" le cd_ref paramétré. @@ -564,7 +564,7 @@ Dans le cas où un taxon hérite de plusieurs règles (une définie pour son ord Par exemple, s'il existe des paramètres pour le phylum "Animalia" (cd_nom 183716) et d'autres pour le renard (cd_nom 60585), les paramètres du renard seront appliqués en priorité pour cette espèce, mais les paramètres Animalia s'appliqueront à tous les autres animaux. -Les règles appliquables à chaque taxon sont récupérées par la fonction ``gn_profiles.get_profiles_parameters(cdnom)``. +Les règles appliquables à chaque taxon sont récupérées par la fonction ``gn_profiles.get_parameters(cdnom)``. Pour chaque cd_nom, il est ainsi possible de définir les paramètres suivants : From d971038fb4f24987a4cbceaca09f961e023cb0a9 Mon Sep 17 00:00:00 2001 From: blaisegeo <45764247+blaisegeo@users.noreply.github.com> Date: Fri, 23 Aug 2024 15:20:18 +0200 Subject: [PATCH 3/3] Update default_config.toml.example In a comment, change v_synthese_for_export to v_synthese_for_web_app for the list of fields available to display in synthese list. --- config/default_config.toml.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/default_config.toml.example b/config/default_config.toml.example index f9042684b9..cbb868acb2 100644 --- a/config/default_config.toml.example +++ b/config/default_config.toml.example @@ -268,10 +268,10 @@ MEDIA_CLEAN_CRONTAB = "0 1 * * *" ] # Colonne à afficher par défaut sur la liste des résultats de la synthese - # Choisir le champ 'prop' parmis les colonnes suivantes : + # Choisir le champ 'prop' parmi les colonnes suivantes : # id_synthese, date_min, cd_nom, lb_nom, nom_vern_or_lb_nom, # observers, dataset_name, url_source, count_min_max - # La liste des colonnes affichables est celle de la vue `gn_synthese.v_synthese_for_export`+ `nom_vern_or_lb_nom` et `count_min_max` + # La liste des colonnes affichables est celle de la vue `gn_synthese.v_synthese_for_web_app`+ `nom_vern_or_lb_nom` et `count_min_max` LIST_COLUMNS_FRONTEND = [ { prop = "nom_vern_or_lb_nom", name = "Taxon" }, { prop = "date_min", name = "Date début" },