Skip to content

Commit ffeeb6c

Browse files
authored
Merge pull request #871 from MerginMaps/shutdown_pygeodiff
Shutdown pygeodiff when unloading plugin
2 parents f7734a6 + e8cd564 commit ffeeb6c

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

.github/workflows/packages.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ on:
1010
type: string
1111
REQUESTED_GEODIFF_VER:
1212
description: 'Geodiff version'
13-
default: '2.1.2'
13+
default: '2.2.0'
1414
type: string
1515
env:
1616
PYTHON_API_CLIENT_VER: ${{ inputs.REQUESTED_PYTHON_API_CLIENT_VER || '0.12.2' }}
17-
GEODIFF_VER: ${{ inputs.REQUESTED_GEODIFF_VER || '2.1.2' }}
17+
GEODIFF_VER: ${{ inputs.REQUESTED_GEODIFF_VER || '2.2.0' }}
1818
PYTHON_VER: "38"
1919
jobs:
2020
build_linux_binary:
@@ -61,17 +61,11 @@ jobs:
6161
run: |
6262
choco install unzip
6363
64-
- name: Download pygeodiff 32 binaries
65-
run: |
66-
pip3 download --only-binary=:all: --no-deps --platform "win32" --python-version $env:PYTHON_VER pygeodiff==$env:GEODIFF_VER
67-
unzip -o pygeodiff-$env:GEODIFF_VER-cp$env:PYTHON_VER-cp$env:PYTHON_VER-win32.whl -d tmp32
68-
mkdir pygeodiff-binaries
69-
copy tmp32\pygeodiff\*.pyd pygeodiff-binaries\
70-
7164
- name: Download pygeodiff 64 binaries
7265
run: |
7366
pip3 download --only-binary=:all: --no-deps --platform "win_amd64" --python-version $env:PYTHON_VER pygeodiff==$env:GEODIFF_VER
7467
unzip -o pygeodiff-$env:GEODIFF_VER-cp$env:PYTHON_VER-cp$env:PYTHON_VER-win_amd64.whl -d tmp64
68+
mkdir pygeodiff-binaries
7569
copy tmp64\pygeodiff\*.pyd pygeodiff-binaries\
7670
7771
- uses: actions/upload-artifact@v4

Mergin/plugin.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,8 @@ def add_context_menu_actions(self, layers):
552552
self.iface.addCustomActionForLayer(self.action_export_mbtiles, l)
553553

554554
def unload(self):
555+
from .utils import pygeodiff
556+
555557
if self.iface is not None:
556558
# Disconnect Mergin related signals
557559
self.iface.projectRead.disconnect(self.on_qgis_project_changed)
@@ -577,6 +579,8 @@ def unload(self):
577579
QgsExpressionContextUtils.removeGlobalVariable("mm_user_email")
578580
QgsApplication.instance().dataItemProviderRegistry().removeProvider(self.data_item_provider)
579581
self.data_item_provider = None
582+
# unload pygeodiff to avoid .pyd to be write-protected and thus impossible to delete on Windows
583+
pygeodiff.shutdown()
580584
# this is crashing qgis on exit
581585
# self.iface.browserModel().reload()
582586

0 commit comments

Comments
 (0)