From 0ca023cfc16ee79f112a5a4a8ef88a1e7d15d7e6 Mon Sep 17 00:00:00 2001 From: Continuous integration Date: Fri, 29 Nov 2024 11:15:04 +0000 Subject: [PATCH 1/3] Interrupted upgrade to 2.9.rc.17 --- .UPGRADE_INSTRUCTIONS | 6 + .upgrade.yaml | 67 ++++++++ CONST_CHANGELOG.txt | 5 +- CONST_create_template/env.default | 2 +- .../geoportal/webpack.apps.js | 2 +- .../mapserver/mapserver.map.tmpl | 9 +- create.diff | 21 +++ env.default | 2 +- geoportal/webpack.apps.js | 2 +- mapserver/mapserver.map.tmpl | 8 + upgrade | 143 ++++++++++++++++++ 11 files changed, 257 insertions(+), 10 deletions(-) create mode 100644 .UPGRADE_INSTRUCTIONS create mode 100644 .upgrade.yaml create mode 100644 create.diff create mode 100755 upgrade diff --git a/.UPGRADE_INSTRUCTIONS b/.UPGRADE_INSTRUCTIONS new file mode 100644 index 000000000..0dc46bcaa --- /dev/null +++ b/.UPGRADE_INSTRUCTIONS @@ -0,0 +1,6 @@ +The `create.diff` file is a recommendation of the changes that you should apply to your project. +You should apply the changes shown in the diff file on `CONST_create_template/` on your project's ``. +Some advice to be more efficient: if the changes on a file concern a file that you never customize, you can simply copy the new file from `CONST_create_template` (`cp CONST_create_template/ `).You can furthermore add this file to the `unmanaged_files` section of the `project.yaml` file, to avoid its contents appearing in the diff file for the next upgrade. +Note that you can also apply them using: git apply --3way create.diff +To continue, type: +./upgrade 2.9.rc.17 11 diff --git a/.upgrade.yaml b/.upgrade.yaml new file mode 100644 index 000000000..2620cdf4d --- /dev/null +++ b/.upgrade.yaml @@ -0,0 +1,67 @@ +--- +# The list (by include, exclude) of default files that will not be overwritten by the upgrade. +# That that can be extended with managed_files or reduced with unmanaged_files from the +# project.yaml file in the project root directory. +default_project_file: + include: + - geoportal/setup\.py + - geoportal/vars\.yaml + - geoportal/Makefile + - geoportal/geomapfish_geoportal/__init__\.py + - geoportal/geomapfish_geoportal/templates/.* + - geoportal/geomapfish_geoportal/locale/.* + - geoportal/geomapfish_geoportal/static/.* + - geoportal/geomapfish_geoportal/static-ngeo/.* + - print/print-apps/.* + - mapserver/.* + - tilegeneration/config\.yaml\.tmpl + - project\.yaml + - docker-compose\.yaml + - env\.project + - README\.rst + - \.github/workflows/main\.yaml + - \.github/workflows/rebuild\.yaml + exclude: + - mapserver/demo\.map\.tmpl + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/image/favicon\.ico + +# Files ignored when creating the diff files => will just be left untouched. +no_diff: + - .*\.po + - CONST_.+ + - .*/CONST_.+ + +# Files that will be present in the CONST_create_template but will not be considered in the upgrade. +# Used to provide the alt applications => does not disturb the user during upgrade. +extra: + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/mobile_alt\.html\.ejs + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/oeedit\.html\.ejs + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/Controllermobile_alt\.js + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/Controlleroeedit\.js + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/mobile_alt\.scss + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/vars_mobile_alt\.scss + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/oeedit\.scss + - geoportal/geomapfish_geoportal/static-ngeo/js/apps/sass/vars_oeedit\.scss + - geoportal/interfaces/desktop_alt\.html\.mako + - geoportal/geomapfish_geoportal/static/images/background-layer-button\.png + - tests/test_testapp.py + +# Automated file system operations: +# Remove some files or directories: +# - action: remove +# paths: +# - +# Move a file: +# - action: move +# from: +# to: +upgrade_files: + - action: remove + paths: + - geoportal/tools/extract-messages.js + - action: move + from: geoportal/lingua-server.cfg + to: geoportal/lingva-server.cfg + - action: move + from: geoportal/lingua-client.cfg + to: geoportal/lingva-client.cfg diff --git a/CONST_CHANGELOG.txt b/CONST_CHANGELOG.txt index 1544b6c80..41280ba84 100644 --- a/CONST_CHANGELOG.txt +++ b/CONST_CHANGELOG.txt @@ -23,7 +23,10 @@ Information to know before starting the upgrade - Update Webpack to version 5 and remove Babel transpilation to ES05, See the related pull request: https://github.com/camptocamp/ngeo/pull/9463. - Update FontAwesome to version 6, - See the related pull request: https://github.com/camptocamp/ngeo/pull/9470 + See the related pull request: https://github.com/camptocamp/ngeo/pull/9470. + +3. For the OGC API, the MapServer configuration changes, now multi map files are supported by default and the URL in + the admin interface should be updated, see the OGC APT - Features documentation for more information. Information =========== diff --git a/CONST_create_template/env.default b/CONST_create_template/env.default index e1657bc28..0c4f07c9b 100644 --- a/CONST_create_template/env.default +++ b/CONST_create_template/env.default @@ -1,5 +1,5 @@ # Default values for c2cgeoportal -GEOMAPFISH_VERSION=2.9.rc.16 +GEOMAPFISH_VERSION=2.9.rc.17 GEOMAPFISH_MAIN_VERSION=2.9 GEOMAPFISH_MAIN_MINOR_VERSION=2.9.0 COMPOSE_PROJECT_NAME=geomapfish diff --git a/CONST_create_template/geoportal/webpack.apps.js b/CONST_create_template/geoportal/webpack.apps.js index c0c37d700..fa757df47 100644 --- a/CONST_create_template/geoportal/webpack.apps.js +++ b/CONST_create_template/geoportal/webpack.apps.js @@ -23,7 +23,7 @@ for (const filename of ls( chunks: [name], vars: { entry_point: '${VISIBLE_ENTRY_POINT}', - version: '2.9.rc.15', + version: '2.9.rc.17', cache_version: '${CACHE_VERSION}', }, }) diff --git a/CONST_create_template/mapserver/mapserver.map.tmpl b/CONST_create_template/mapserver/mapserver.map.tmpl index c0edf87f9..e2481e724 100644 --- a/CONST_create_template/mapserver/mapserver.map.tmpl +++ b/CONST_create_template/mapserver/mapserver.map.tmpl @@ -66,12 +66,11 @@ MAP END WEB METADATA - "wms_title" "changeme" - "wms_abstract" "changeme" + "ows_enable_request" "*" + "ows_title" "changeme" + "ows_abstract" "changeme" "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" - "wms_srs" "EPSG:2056" - "wms_enable_request" "*" - "wfs_enable_request" "!*" + "ows_srs" "EPSG:2056" "wms_allow_getmap_without_styles" "true" END END diff --git a/create.diff b/create.diff new file mode 100644 index 000000000..d86cd0f48 --- /dev/null +++ b/create.diff @@ -0,0 +1,21 @@ +diff --git a/mapserver/mapserver.map.tmpl b/mapserver/mapserver.map.tmpl +index c0edf87..e2481e7 100644 +--- a/mapserver/mapserver.map.tmpl ++++ b/mapserver/mapserver.map.tmpl +@@ -66,12 +66,11 @@ MAP + END + WEB + METADATA +- "wms_title" "changeme" +- "wms_abstract" "changeme" ++ "ows_enable_request" "*" ++ "ows_title" "changeme" ++ "ows_abstract" "changeme" + "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" +- "wms_srs" "EPSG:2056" +- "wms_enable_request" "*" +- "wfs_enable_request" "!*" ++ "ows_srs" "EPSG:2056" + "wms_allow_getmap_without_styles" "true" + END + END diff --git a/env.default b/env.default index e1657bc28..0c4f07c9b 100644 --- a/env.default +++ b/env.default @@ -1,5 +1,5 @@ # Default values for c2cgeoportal -GEOMAPFISH_VERSION=2.9.rc.16 +GEOMAPFISH_VERSION=2.9.rc.17 GEOMAPFISH_MAIN_VERSION=2.9 GEOMAPFISH_MAIN_MINOR_VERSION=2.9.0 COMPOSE_PROJECT_NAME=geomapfish diff --git a/geoportal/webpack.apps.js b/geoportal/webpack.apps.js index c0c37d700..fa757df47 100644 --- a/geoportal/webpack.apps.js +++ b/geoportal/webpack.apps.js @@ -23,7 +23,7 @@ for (const filename of ls( chunks: [name], vars: { entry_point: '${VISIBLE_ENTRY_POINT}', - version: '2.9.rc.15', + version: '2.9.rc.17', cache_version: '${CACHE_VERSION}', }, }) diff --git a/mapserver/mapserver.map.tmpl b/mapserver/mapserver.map.tmpl index ca987219f..18f49f4a9 100644 --- a/mapserver/mapserver.map.tmpl +++ b/mapserver/mapserver.map.tmpl @@ -69,12 +69,20 @@ MAP END WEB METADATA +<<<<<<< ours "wms_title" "GeoMapFish demo" "wms_abstract" "Some example layers" "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" "ows_srs" "EPSG:2056" "wms_enable_request" "*" "wfs_enable_request" "*" +======= + "ows_enable_request" "*" + "ows_title" "changeme" + "ows_abstract" "changeme" + "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" + "ows_srs" "EPSG:2056" +>>>>>>> theirs "wms_allow_getmap_without_styles" "true" END END diff --git a/upgrade b/upgrade new file mode 100755 index 000000000..c52341095 --- /dev/null +++ b/upgrade @@ -0,0 +1,143 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2019-2023, Camptocamp SA +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: + +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. + +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# The views and conclusions contained in the software and documentation are those +# of the authors and should not be interpreted as representing official policies, +# either expressed or implied, of the FreeBSD Project. + + +import argparse +import os +import platform +import re +import subprocess +import sys + +parser = argparse.ArgumentParser(description="Upgrade the project") +parser.add_argument( + "--debug", help="Path to c2cgeoportal source folder to be able to debug the upgrade procedure" +) +parser.add_argument("version", help="the version to upgrade to (master or x.y.z)") +parser.add_argument("step", nargs="?", help="the step to run") +parser_finalize = argparse.ArgumentParser(description="Upgrade the project", add_help=False) +parser_finalize.add_argument("--finalize", action="store_true", help="finalize the upgrade") +parser_finalize.add_argument("--help", action="help", help="show this help message and exit") +parser_finalize.add_argument("build_arg", nargs="*", help="build arguments") + +if len(sys.argv) >= 2 and sys.argv[1] == "--finalize": + args = parser_finalize.parse_args() + + if platform.system() == "Windows": + code = subprocess.call(["python", "build"] + args.build_arg) + else: + code = subprocess.call(["./build"] + args.build_arg) + if code != 0: + sys.exit(code) + + subprocess.call(["docker", "compose", "down", "--remove-orphans"]) + subprocess.call( + ["docker", "compose", "pull", "--ignore-pull-failures"], + env={**os.environ, "DOCKER_TAG": "unexisting"}, + ) + subprocess.check_call(["docker", "compose", "up", "-d"]) + subprocess.check_call( + [ + "docker", + "compose", + "exec", + "geoportal", + "alembic", + "--name=main", + "--config=alembic.ini", + "upgrade", + "head", + ] + ) + +else: + args = parser.parse_args() + + c2cupgrade_args = ["--step", args.step] if args.step is not None else [] + + if os.environ.get("CI") != "true" and args.step is None: + major_version = args.version + match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9]+$", args.version) + if match is not None: + major_version = match.group(1) + match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9a-z]+\.[0-9]+$", args.version) + if match is not None: + major_version = match.group(1) + if not args.debug: + subprocess.check_call( + [ + "docker", + "pull", + f"camptocamp/geomapfish:{major_version}", + ] + ) + subprocess.check_call(["docker", "pull", f"camptocamp/geomapfish-tools:{args.version}"]) + subprocess.check_call( + [ + "docker", + "pull", + f"camptocamp/geomapfish-config:{major_version}", + ] + ) + + debug_volumes = ( + [ + "--volume={debug}/geoportal/c2cgeoportal_geoportal/scripts/c2cupgrade.py:".format( + debug=args.debug + ), + "/opt/c2cgeoportal/geoportal/c2cgeoportal_geoportal/scripts/c2cupgrade.py", + ] + if args.debug + else [] + ) + + win = platform.system() == "Windows" + sys.exit( + subprocess.call( + [ + "docker", + "run", + "--rm", + "--env=CI", + f"--volume={os.getcwd()}:/src", + ] + + debug_volumes + + [ + f"camptocamp/geomapfish-tools:{args.version}", + "run-git", + subprocess.check_output(["git", "config", "--get", "user.name"]).decode().strip(), + subprocess.check_output(["git", "config", "--get", "user.email"]).decode().strip(), + "" if win else subprocess.check_output(["id", "-u"]).decode().strip(), + "" if win else subprocess.check_output(["id", "-g"]).decode().strip(), + "/src", + "c2cupgrade", + ] + + c2cupgrade_args + ) + ) From 5c0e4655a11ba157d7637699dfe56f27d115f9f5 Mon Sep 17 00:00:00 2001 From: "geo-ghci-int[bot]" <146321879+geo-ghci-int[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 11:17:14 +0000 Subject: [PATCH 2/3] Update from base branch From the artifact of the previous workflow run --- create.diff | 21 --------------------- env.default | 2 +- mapserver/mapserver.map.tmpl | 13 ++----------- 3 files changed, 3 insertions(+), 33 deletions(-) delete mode 100644 create.diff diff --git a/create.diff b/create.diff deleted file mode 100644 index d86cd0f48..000000000 --- a/create.diff +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/mapserver/mapserver.map.tmpl b/mapserver/mapserver.map.tmpl -index c0edf87..e2481e7 100644 ---- a/mapserver/mapserver.map.tmpl -+++ b/mapserver/mapserver.map.tmpl -@@ -66,12 +66,11 @@ MAP - END - WEB - METADATA -- "wms_title" "changeme" -- "wms_abstract" "changeme" -+ "ows_enable_request" "*" -+ "ows_title" "changeme" -+ "ows_abstract" "changeme" - "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" -- "wms_srs" "EPSG:2056" -- "wms_enable_request" "*" -- "wfs_enable_request" "!*" -+ "ows_srs" "EPSG:2056" - "wms_allow_getmap_without_styles" "true" - END - END diff --git a/env.default b/env.default index 0c4f07c9b..e1657bc28 100644 --- a/env.default +++ b/env.default @@ -1,5 +1,5 @@ # Default values for c2cgeoportal -GEOMAPFISH_VERSION=2.9.rc.17 +GEOMAPFISH_VERSION=2.9.rc.16 GEOMAPFISH_MAIN_VERSION=2.9 GEOMAPFISH_MAIN_MINOR_VERSION=2.9.0 COMPOSE_PROJECT_NAME=geomapfish diff --git a/mapserver/mapserver.map.tmpl b/mapserver/mapserver.map.tmpl index 18f49f4a9..b5d43f617 100644 --- a/mapserver/mapserver.map.tmpl +++ b/mapserver/mapserver.map.tmpl @@ -69,20 +69,11 @@ MAP END WEB METADATA -<<<<<<< ours - "wms_title" "GeoMapFish demo" - "wms_abstract" "Some example layers" - "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" - "ows_srs" "EPSG:2056" - "wms_enable_request" "*" - "wfs_enable_request" "*" -======= "ows_enable_request" "*" - "ows_title" "changeme" - "ows_abstract" "changeme" + "ows_title" "GeoMapFish demo" + "ows_abstract" "Some example layers" "ows_onlineresource" "${VISIBLE_WEB_PROTOCOL}://${VISIBLE_WEB_HOST}${VISIBLE_ENTRY_POINT}mapserv_proxy?ogcserver=MapServer" "ows_srs" "EPSG:2056" ->>>>>>> theirs "wms_allow_getmap_without_styles" "true" END END From 07d8fdb5623984eec4294be79a1463ba0692cae0 Mon Sep 17 00:00:00 2001 From: "geo-ghci-int[bot]" <146321879+geo-ghci-int[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 11:17:34 +0000 Subject: [PATCH 3/3] Apply pre-commit fix From the artifact of the previous workflow run --- upgrade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upgrade b/upgrade index c52341095..eb846c313 100755 --- a/upgrade +++ b/upgrade @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# Copyright (c) 2019-2023, Camptocamp SA +# Copyright (c) 2019-2024, Camptocamp SA # All rights reserved. # Redistribution and use in source and binary forms, with or without