{"name": "GEE GPR Phenology", "package_name": "GEEGPRPheno", "version": "1.5.18", "experimental": false, "qgis_min": "3.0.0", "qgis_max": "4.99.0", "downloads": 115, "uploaded_by": "jf-floresriera", "upload_datetime": "2026-08-03T12:46:04.833731", "changelog": "# Changelog\r\n\r\n## 1.5.18 \u2014 Qt6 and QGIS 4 compatibility scanner fixes\r\n\r\n* Fixed the 16 Qt6 compatibility issues reported by the QGIS Plugin Repository scanner.\r\n* Updated polygon geometry references to use `QgsWkbTypes.GeometryType.PolygonGeometry` in Qt6 and QGIS 4.\r\n* Updated raster contrast enhancement references to use `QgsContrastEnhancement.ContrastEnhancementAlgorithm.StretchToMinimumMaximum`.\r\n* Updated color ramp shader references to use `QgsColorRampShader.Type.Interpolated`.\r\n* Updated integer Processing parameters to use `QgsProcessingParameterNumber.Type.Integer`.\r\n* Updated floating-point Processing parameters to use `QgsProcessingParameterNumber.Type.Double`.\r\n* Updated file Processing parameters to use `QgsProcessingParameterFile.Behavior.File`.\r\n* Updated folder Processing parameters to use `QgsProcessingParameterFile.Behavior.Folder`.\r\n* Replaced the deprecated Qt5 dialog member `exec_()` with Qt6-compatible `exec()` handling while preserving compatibility with QGIS 3 and Qt5.\r\n* Applied compatibility fallbacks so the plugin remains usable in both QGIS 3 and QGIS 4 environments.\r\n* Retained `jfloresr@unal.edu.co` as the official confirmation and contact email.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* The plugin remains stable and non-experimental.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.17 \u2014 Security scanner compliance\r\n\r\n* Removed all `subprocess`-based execution of `pip` and `ensurepip` from the plugin.\r\n* Converted the dependency assistant into manual installation guidance that never launches external processes.\r\n* Replaced silent `try/except/pass` and `try/except/continue` handling identified by Bandit with explicit debug logging or safe fallback behavior.\r\n* Retained `jfloresr@unal.edu.co` as the official confirmation and contact email.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* The plugin remains stable and non-experimental.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.16 \u2014 Unique repository version\r\n\r\n* Assigned a new unique version number because version 1.5.15 was already registered in the QGIS Plugin Repository.\r\n* Retained `jfloresr@unal.edu.co` as the official confirmation and contact email.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* The plugin remains stable and non-experimental.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, dependency launcher, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.15 \u2014 Official contact email update\r\n\r\n* Updated the official QGIS Plugin Repository confirmation and contact email to `jfloresr@unal.edu.co`.\r\n* Confirmed that the plugin interface and email actions consistently use `jfloresr@unal.edu.co`.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* The plugin remains stable and non-experimental.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, dependency launcher, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.14 \u2014 Final code-quality cleanup\r\n\r\n* Completed the final code-quality cleanup for the QGIS Plugin Repository scanner.\r\n* Fixed the remaining Flake8 `E302` warning in `plugin.py` by adding the required two blank lines before the top-level `AOIPolygonMapTool` class.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* The plugin remains stable and non-experimental.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, dependency launcher, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.13 \u2014 QGIS repository scanner cleanup\r\n\r\n* Completed a code-quality cleanup for the QGIS Plugin Repository scanner.\r\n* Fixed non-critical Flake8 `W503` warnings in `installer.py` by avoiding line breaks before binary operators.\r\n* Fixed non-critical Flake8 `E402` warnings in `plugin.py` by moving module-level imports to the top of the file.\r\n* Maintained QGIS 3.x and QGIS 4.x availability through `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* The plugin remains stable and non-experimental.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, dependency launcher, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.12 \u2014 Dependency launcher fix for QGIS 4 on Windows\r\n\r\n* Fixed the assisted dependency launcher for QGIS 4 on Windows so that `qgis.exe` or `qgis-bin.exe` is never used as the Python executable for `pip`.\r\n* Prevented QGIS from reopening and interpreting package names such as `rasterio>=1.3.0` as invalid data sources.\r\n* The dependency assistant now searches for a valid `python.exe` or `python3` executable associated with QGIS.\r\n* Dependency installation commands are executed from the user home directory.\r\n* The installer writes a dependency installation log and fails safely with manual instructions when no valid Python executable is found.\r\n* Maintained QGIS 3.x and QGIS 4.x availability through `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, model data, or Processing algorithm logic was changed.\r\n\r\n## 1.5.11 \u2014 QGIS 4 dependency note\r\n\r\n* Added a clear dependency note for QGIS 4.0.x and Python 3.12.\r\n* Clarified that some QGIS 4 installations may not include `rasterio` in the QGIS Python environment by default.\r\n* Clarified that when `rasterio` is missing, Earth Engine image search and download may start correctly, but raster harmonization, gap filling, GPR raster prediction, and LSP workflows may fail until the dependency is installed.\r\n* Kept the assisted dependency tools available from the plugin Info tab and plugin menu.\r\n* Kept manual dependency installation instructions as a fallback.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`, allowing the plugin to remain listed for QGIS 3.x and QGIS 4.x.\r\n* Kept `experimental=False` and `deprecated=False`.\r\n* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2 index, or Processing algorithm logic was changed.\r\n\r\n## 1.5.10 \u2014 Assisted dependency installer\r\n\r\n* Added an intuitive dependency assistant for installing and updating functional Python dependencies from QGIS without opening a terminal.\r\n* Added dependency actions to the plugin menu and Info tab.\r\n* The user can install or update `rasterio`, `requests`, `earthengine-api`, and `matplotlib` using the Python environment associated with QGIS.\r\n* Added automatic dependency recovery inside Processing algorithms.\r\n* When a required module such as `rasterio`, `requests`, or `earthengine-api` is missing, the corresponding algorithm can attempt installation and reload the Python paths before continuing.\r\n* Fixed the QGIS 4 and Python 3.12 execution failure caused by `ModuleNotFoundError: No module named rasterio`.\r\n* Added installation logging to `GEEGPRPheno_dependency_install.log` in the user home directory.\r\n* Preserved manual installation instructions as a fallback.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* Kept `experimental=False` and `deprecated=False`.\r\n* No functional Processing algorithms, GEE/GPR/LSP modules, model data, translations, icon files, security fixes, or documentation resources were removed.\r\n\r\n## 1.5.9 \u2014 Extended Qt5 and Qt6 compatibility\r\n\r\n* Fixed the QGIS 4 panel-opening error caused by `QSizePolicy.Expanding` moving to `QSizePolicy.Policy.Expanding` in Qt6.\r\n* Added compatibility handling for additional Qt6 enum namespace changes used by the floating panel.\r\n* Added compatibility handling for `QFrame.Shape.HLine`.\r\n* Added compatibility handling for `QMessageBox.StandardButton.Yes`, `QMessageBox.StandardButton.No`, and `QMessageBox.StandardButton.Cancel`.\r\n* Added compatibility handling for `QLineEdit.EchoMode.Normal`.\r\n* Preserved QGIS 3 and Qt5 compatibility by keeping fallback access to the original Qt5 enum names.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* Kept `experimental=False` and `deprecated=False`.\r\n* No functional Processing algorithms, GEE/GPR/LSP modules, model data, translations, icon files, dependency declarations, security fixes, or documentation resources were removed.\r\n\r\n## 1.5.8 \u2014 Qt5 and Qt6 compatibility fix\r\n\r\n* Fixed the QGIS 4 panel-opening error caused by Qt enum namespace changes.\r\n* Added compatibility handling for `Qt.Window`, `Qt.WindowTitleHint`, alignment flags, cursor shapes, and mouse button enums.\r\n* Added a compatibility helper so the same plugin code can resolve Qt enum values in both Qt5/QGIS 3 and Qt6/QGIS 4.\r\n* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.\r\n* Kept `experimental=False` and `deprecated=False`.\r\n* No functional Processing algorithms, GEE/GPR/LSP modules, model data, translations, icon files, dependency declarations, security fixes, or documentation resources were removed.\r\n\r\n## 1.5.7 \u2014 QGIS 3.x and QGIS 4.x compatibility metadata\r\n\r\n* Updated `qgisMinimumVersion` from `3.16` to `3.0` so the plugin can be listed as available throughout the QGIS 3.x series.\r\n* Updated `qgisMaximumVersion` from `3.99` to `4.99` so the plugin can be listed as available for QGIS 4.x.\r\n* Kept `experimental=False` and `deprecated=False`.\r\n* No functional Python modules, Processing algorithms, model data, translations, icon files, dependency declarations, security fixes, or documentation resources were removed.\r\n* This release was a metadata and documentation compatibility update.\r\n* Functional validation in each target QGIS version remains recommended before publication.\r\n\r\n## 1.5.5 \u2014 Metadata normalization\r\n\r\n* Changed `hasProcessingProvider` from `yes` to `True`, following the Boolean metadata format expected by QGIS.\r\n* Removed the optional `deprecated` metadata line because the plugin is not deprecated by default.\r\n* Kept the optimized lightweight icon.\r\n* Preserved all security fixes introduced in versions 1.5.3 and 1.5.4.\r\n* No functional algorithmic code was removed.\r\n\r\n## 1.5.4 \u2014 New repository upload with optimized icon\r\n\r\n* Increased the plugin version because the QGIS Plugin Repository does not allow uploading a ZIP package with a version number that already exists.\r\n* Preserved the validated HTTPS Google endpoint downloader introduced for the security scan.\r\n* Preserved the renamed optional GEE authentication JSON parameter to avoid false-positive secret detection.\r\n* Kept the optimized lightweight icon to reduce package size without removing functional Python modules.\r\n\r\n## 1.5.3 \u2014 QGIS security scanner fixes\r\n\r\n* Replaced generic `urllib.request.urlretrieve()` download calls with a validated HTTPS downloader restricted to Google and Earth Engine endpoints.\r\n* Renamed the optional GEE JSON authentication-file parameter to avoid false-positive secret detection.\r\n* Updated the plugin icon while preserving the Processing algorithms and functional code.\r\n* Kept the MIT license and public-repository metadata required for QGIS submission.\r\n\r\n## 1.5.2 \u2014 QGIS Plugin Repository submission package\r\n\r\n* Prepared a clean package for submission to the official QGIS Plugin Repository.\r\n* Added `LICENSE` inside the plugin directory.\r\n* Aligned `metadata.txt` with `license=MIT`.\r\n* Consolidated the documentation to avoid multiple loose version-specific notes in the plugin root directory.\r\n* Preserved all functional Python modules and model data, including `s2boa_models.py`.\r\n* Preserved the original JavaScript color palettes and fixed visualization ranges for QGIS layers and PDF outputs.\r\n* Kept dependency installation as manual instructions only.\r\n* This public plugin package did not execute `pip` or shell commands from QGIS.\r\n\r\n## 1.5.1 \u2014 Internal development version\r\n\r\n* Internal development version used as the base for the version 1.5.2 publication package.\r\n* Included improvements related to GEE/GPR phenology workflows and QGIS interface integration.", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/GEEGPRPheno/version/1.5.18/download/"}