[general]
name=Garmin Export
qgisMinimumVersion=3.22
qgisMaximumVersion=4.99
hasProcessingProvider=yes
description=Professional Garmin IMG export for QGIS 3.22+ with Qt5/Qt6 dual support, modern localized UI, 12 languages and reliable mkgmap workflows
version=1.3.1
author=Alex Kobyakov
email=kobyakov@lesburo.ru
about=Professional Garmin Export tool with a Processing Toolbox provider for QGIS Modeler and batch workflows, converting QGIS vector layers to Garmin IMG format using the mkgmap compiler. Supports QGIS 3.44/Qt5 and QGIS 4.2/Qt6 through a shared compatibility boundary. The UI provides live/restart-safe translation, SVG language flags, RTL Arabic, readable combo/check controls, retranslate-safe dialogs, tooltips and actions. Features: one-click download of the full mkgmap/splitter distributions (zip archives with all dependency libraries; QGIS forbids bundling jars), automatic TYP styling generated from QGIS layer symbology, JSON-based type mapping, multi-level map support, advanced mkgmap tuning and logging options, comprehensive label code-page support (UTF-8 plus Windows/DOS/CJK pages), batch processing of all project layers, and a 12-language interface (EN, RU, DE, ES, FR, PT, ZH, HI, AR, ID, TH, VI). Requires Java (JRE 8+) which the plugin can auto-detect.
tracker=https://github.com/AlexKobyakov/garmin_export/issues
repository=https://github.com/AlexKobyakov/garmin_export
changelog=1.3.1 - QGIS repository security cleanup
    - Replaced the empty metadata-refresh exception handler with a
      diagnostic fallback accepted by Bandit and the QGIS checker.
    1.3.0 - Processing Toolbox and release hardening
    - Added the QGIS Processing Provider with seven stable algorithms for
      environment, TYP, MP, mapping JSON, dependency and IMG workflows.
    - Added typed mkgmap tuning, project-layer batch export, TYP modes,
      code-page validation and explicit redacted run_manifest output.
    - Added opt-in dependency diagnostics/download with auto-discovery and
      the same transactional, language-aware fallback order as the UI.
    - Added Processing Toolbox, Modeler and batch documentation for QGIS
      3.44/Qt5 and 4.2/Qt6, including parallel-task output isolation.
    - Added plugin-only release packaging with archive validation and a
      GitHub workflow that uploads garmin_export-X.Y.Z.zip assets.
    - Added the Qt6 checker rewrite/diff guard and 167 offline regression
      tests; owner smoke confirmed QGIS 3.44 and QGIS 4.2.
    1.2.1 - G4/G5 reliability release
    - Added transactional mkgmap/splitter ZIP installation with staging, lock,
      cancellation cleanup, last-good preservation and required lib/ validation
    - Added language-aware fallback sources: Russian Yandex.Disk -> GitHub ->
      Dropbox -> official site; other languages official site -> GitHub ->
      Dropbox -> Yandex.Disk
    - Added stable download error taxonomy and translated UI presentation
    - Added Java compatibility/heap diagnostics and export lifecycle states
    - Added redacted atomic run_manifest.json with success-only output metadata
    - Added duplicate-run guards, stale-worker signal isolation and cancellation
      correctness in the export worker
    - Added offline G0-G5 regression coverage; release archive excludes plan,
      tests and wheels while retaining wheels in the public source repository
    1.2.0 (scope delivered in 1.2.1) - Qt5/Qt6, UI and localization modernization
    - Added the shared QGIS 3/4 and Qt5/Qt6 compatibility boundary with scoped
      enum fallbacks and static/official checker guards.
    - Reworked the UI contract: composite retranslateUi passes, retained form/table
      references, translated tooltips/placeholders/actions, stable combo data and
      readable Qt5/Qt6 popup/check controls.
    - Completed bounded GUI decomposition under the <=500-line production-file rule.
    - Added the 12-language registry, SVG flags, Arabic RTL, live switching,
      restart persistence and translation key/placeholder parity guards.

    1.1.4 - Security scan fix (QGIS plugin repository)
    - Restrict downloads to http/https via a dedicated URL opener without
      file/ftp/data handlers, resolving the Bandit B310 critical finding (CWE-22)
    - Remove hardcoded /tmp paths from tests (Bandit B108) and add URL-scheme tests
    - Code quality: clear all Flake8 findings reported by the scanner (unused
      imports, blank-line whitespace, blank lines, binary-operator line breaks)
    1.1.3 - Full distribution download and language selector fix
    - Download now fetches the full mkgmap/splitter ZIP distributions and unpacks
      them with all dependency libraries (lib/), fixing NoClassDefFoundError
      (crosby.binary...) when reading OSM data
    - Fixed language selector: option names were invisible (white-on-white) on
      some Qt/Windows builds; item colors are now set at the model level
    - Extended offline tests for archive validation, safe extraction and download
    1.1.2 - More languages and code pages
    - Added 3 more UI languages: Indonesian, Thai, Vietnamese (12 total)
    - Comprehensive label code-page support (18 options): UTF-8/Unicode plus Windows
      1250-1258, Thai 874, CJK 932/936/949/950, and DOS 850/852/866
    - Expanded offline tests: UI translation consistency and code-page encoding round-trips
    1.1.1 - Localization fix
    - Fixed empty language selector (white box); language names now display correctly
    - Added 7 more UI languages: German, Spanish, French, Portuguese, Chinese, Hindi, Arabic (9 total)
    - Right-to-left layout for Arabic; selected language is remembered between sessions
    1.1.0 - Major rework
    - Download mkgmap/splitter from mkgmap.org.uk (variable link) or Yandex.Disk (permanent), or add local jar
    - Automatic Java detection; runs mkgmap without console popups on Windows
    - TYP styling generated from QGIS layer symbology (colors, line widths, POI icons)
    - Correct Polish MP format (proper [END] markers, code-page aware, multipart geometry)
    - mkgmap command builder follows official documentation (java opts before -jar)
    - Advanced tuning tab: heap size, threads, generalization, draw priority, logging
    - Persistent settings between sessions
    - Author/Support dialogs identical to reference plugin
    - Offline unit tests for core logic
    1.0.0 - Initial release
tags=garmin, export, img, mkgmap, gps, qgis, vector, typ, batch, multilingual, navigation, custom-maps, qt5, qt6, processing, openstreetmap
homepage=https://github.com/AlexKobyakov/garmin_export
category=Vector
icon=icon.png
experimental=False
deprecated=False
