Version: [5407] GEE GPR Phenology 1.5.18

# Changelog

## 1.5.18 — Qt6 and QGIS 4 compatibility scanner fixes

* Fixed the 16 Qt6 compatibility issues reported by the QGIS Plugin
Repository scanner.
* Updated polygon geometry references to use
`QgsWkbTypes.GeometryType.PolygonGeometry` in Qt6 and QGIS 4.
* Updated raster contrast enhancement references to use
`QgsContrastEnhancement.ContrastEnhancementAlgorithm.StretchToMinimumMaximum`.
* Updated color ramp shader references to use
`QgsColorRampShader.Type.Interpolated`.
* Updated integer Processing parameters to use
`QgsProcessingParameterNumber.Type.Integer`.
* Updated floating-point Processing parameters to use
`QgsProcessingParameterNumber.Type.Double`.
* Updated file Processing parameters to use
`QgsProcessingParameterFile.Behavior.File`.
* Updated folder Processing parameters to use
`QgsProcessingParameterFile.Behavior.Folder`.
* Replaced the deprecated Qt5 dialog member `exec_()` with
Qt6-compatible `exec()` handling while preserving compatibility with
QGIS 3 and Qt5.
* Applied compatibility fallbacks so the plugin remains usable in both
QGIS 3 and QGIS 4 environments.
* Retained `[email protected]` as the official confirmation and
contact email.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* The plugin remains stable and non-experimental.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, model data, or Processing algorithm logic was changed.

## 1.5.17 — Security scanner compliance

* Removed all `subprocess`-based execution of `pip` and `ensurepip`
from the plugin.
* Converted the dependency assistant into manual installation guidance
that never launches external processes.
* Replaced silent `try/except/pass` and `try/except/continue` handling
identified by Bandit with explicit debug logging or safe fallback
behavior.
* Retained `[email protected]` as the official confirmation and
contact email.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* The plugin remains stable and non-experimental.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, model data, or Processing algorithm logic was changed.

## 1.5.16 — Unique repository version

* Assigned a new unique version number because version 1.5.15 was
already registered in the QGIS Plugin Repository.
* Retained `[email protected]` as the official confirmation and
contact email.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* The plugin remains stable and non-experimental.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, dependency launcher, model data, or Processing algorithm logic
was changed.

## 1.5.15 — Official contact email update

* Updated the official QGIS Plugin Repository confirmation and contact
email to `[email protected]`.
* Confirmed that the plugin interface and email actions consistently
use `[email protected]`.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* The plugin remains stable and non-experimental.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, dependency launcher, model data, or Processing algorithm logic
was changed.

## 1.5.14 — Final code-quality cleanup

* Completed the final code-quality cleanup for the QGIS Plugin
Repository scanner.
* Fixed the remaining Flake8 `E302` warning in `plugin.py` by adding
the required two blank lines before the top-level `AOIPolygonMapTool`
class.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* The plugin remains stable and non-experimental.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, dependency launcher, model data, or Processing algorithm logic
was changed.

## 1.5.13 — QGIS repository scanner cleanup

* Completed a code-quality cleanup for the QGIS Plugin Repository
scanner.
* Fixed non-critical Flake8 `W503` warnings in `installer.py` by
avoiding line breaks before binary operators.
* Fixed non-critical Flake8 `E402` warnings in `plugin.py` by moving
module-level imports to the top of the file.
* Maintained QGIS 3.x and QGIS 4.x availability through
`qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* The plugin remains stable and non-experimental.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, dependency launcher, model data, or Processing algorithm logic
was changed.

## 1.5.12 — Dependency launcher fix for QGIS 4 on Windows

* 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`.
* Prevented QGIS from reopening and interpreting package names such as
`rasterio>=1.3.0` as invalid data sources.
* The dependency assistant now searches for a valid `python.exe` or
`python3` executable associated with QGIS.
* Dependency installation commands are executed from the user home
directory.
* The installer writes a dependency installation log and fails safely
with manual instructions when no valid Python executable is found.
* Maintained QGIS 3.x and QGIS 4.x availability through
`qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, model data, or Processing algorithm logic was changed.

## 1.5.11 — QGIS 4 dependency note

* Added a clear dependency note for QGIS 4.0.x and Python 3.12.
* Clarified that some QGIS 4 installations may not include `rasterio`
in the QGIS Python environment by default.
* 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.
* Kept the assisted dependency tools available from the plugin Info
tab and plugin menu.
* Kept manual dependency installation instructions as a fallback.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`,
allowing the plugin to remain listed for QGIS 3.x and QGIS 4.x.
* Kept `experimental=False` and `deprecated=False`.
* No mathematical, modelling, GPR, gap-filling, phenology, Sentinel-2
index, or Processing algorithm logic was changed.

## 1.5.10 — Assisted dependency installer

* Added an intuitive dependency assistant for installing and updating
functional Python dependencies from QGIS without opening a terminal.
* Added dependency actions to the plugin menu and Info tab.
* The user can install or update `rasterio`, `requests`,
`earthengine-api`, and `matplotlib` using the Python environment
associated with QGIS.
* Added automatic dependency recovery inside Processing algorithms.
* 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.
* Fixed the QGIS 4 and Python 3.12 execution failure caused by
`ModuleNotFoundError: No module named rasterio`.
* Added installation logging to `GEEGPRPheno_dependency_install.log`
in the user home directory.
* Preserved manual installation instructions as a fallback.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* Kept `experimental=False` and `deprecated=False`.
* No functional Processing algorithms, GEE/GPR/LSP modules, model
data, translations, icon files, security fixes, or documentation
resources were removed.

## 1.5.9 — Extended Qt5 and Qt6 compatibility

* Fixed the QGIS 4 panel-opening error caused by
`QSizePolicy.Expanding` moving to `QSizePolicy.Policy.Expanding` in
Qt6.
* Added compatibility handling for additional Qt6 enum namespace
changes used by the floating panel.
* Added compatibility handling for `QFrame.Shape.HLine`.
* Added compatibility handling for `QMessageBox.StandardButton.Yes`,
`QMessageBox.StandardButton.No`, and
`QMessageBox.StandardButton.Cancel`.
* Added compatibility handling for `QLineEdit.EchoMode.Normal`.
* Preserved QGIS 3 and Qt5 compatibility by keeping fallback access to
the original Qt5 enum names.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* Kept `experimental=False` and `deprecated=False`.
* No functional Processing algorithms, GEE/GPR/LSP modules, model
data, translations, icon files, dependency declarations, security
fixes, or documentation resources were removed.

## 1.5.8 — Qt5 and Qt6 compatibility fix

* Fixed the QGIS 4 panel-opening error caused by Qt enum namespace
changes.
* Added compatibility handling for `Qt.Window`, `Qt.WindowTitleHint`,
alignment flags, cursor shapes, and mouse button enums.
* Added a compatibility helper so the same plugin code can resolve Qt
enum values in both Qt5/QGIS 3 and Qt6/QGIS 4.
* Kept `qgisMinimumVersion=3.0` and `qgisMaximumVersion=4.99`.
* Kept `experimental=False` and `deprecated=False`.
* No functional Processing algorithms, GEE/GPR/LSP modules, model
data, translations, icon files, dependency declarations, security
fixes, or documentation resources were removed.

## 1.5.7 — QGIS 3.x and QGIS 4.x compatibility metadata

* Updated `qgisMinimumVersion` from `3.16` to `3.0` so the plugin can
be listed as available throughout the QGIS 3.x series.
* Updated `qgisMaximumVersion` from `3.99` to `4.99` so the plugin can
be listed as available for QGIS 4.x.
* Kept `experimental=False` and `deprecated=False`.
* No functional Python modules, Processing algorithms, model data,
translations, icon files, dependency declarations, security fixes, or
documentation resources were removed.
* This release was a metadata and documentation compatibility update.
* Functional validation in each target QGIS version remains
recommended before publication.

## 1.5.5 — Metadata normalization

* Changed `hasProcessingProvider` from `yes` to `True`, following the
Boolean metadata format expected by QGIS.
* Removed the optional `deprecated` metadata line because the plugin
is not deprecated by default.
* Kept the optimized lightweight icon.
* Preserved all security fixes introduced in versions 1.5.3 and 1.5.4.
* No functional algorithmic code was removed.

## 1.5.4 — New repository upload with optimized icon

* Increased the plugin version because the QGIS Plugin Repository does
not allow uploading a ZIP package with a version number that already
exists.
* Preserved the validated HTTPS Google endpoint downloader introduced
for the security scan.
* Preserved the renamed optional GEE authentication JSON parameter to
avoid false-positive secret detection.
* Kept the optimized lightweight icon to reduce package size without
removing functional Python modules.

## 1.5.3 — QGIS security scanner fixes

* Replaced generic `urllib.request.urlretrieve()` download calls with
a validated HTTPS downloader restricted to Google and Earth Engine
endpoints.
* Renamed the optional GEE JSON authentication-file parameter to avoid
false-positive secret detection.
* Updated the plugin icon while preserving the Processing algorithms
and functional code.
* Kept the MIT license and public-repository metadata required for
QGIS submission.

## 1.5.2 — QGIS Plugin Repository submission package

* Prepared a clean package for submission to the official QGIS Plugin
Repository.
* Added `LICENSE` inside the plugin directory.
* Aligned `metadata.txt` with `license=MIT`.
* Consolidated the documentation to avoid multiple loose
version-specific notes in the plugin root directory.
* Preserved all functional Python modules and model data, including
`s2boa_models.py`.
* Preserved the original JavaScript color palettes and fixed
visualization ranges for QGIS layers and PDF outputs.
* Kept dependency installation as manual instructions only.
* This public plugin package did not execute `pip` or shell commands
from QGIS.

## 1.5.1 — Internal development version

* Internal development version used as the base for the version 1.5.2
publication package.
* Included improvements related to GEE/GPR phenology workflows and
QGIS interface integration.

yes

jf-floresriera

2026-08-03T17:46:04.833731+00:00

3.0.0

4.99.0

None

no

Version management

Plugin details