Skip to content

Latest commit

 

History

History
817 lines (492 loc) · 37.7 KB

CHANGELOG.md

File metadata and controls

817 lines (492 loc) · 37.7 KB

CHANGELOG

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.36.0 - 2024-10-08

Bugs fixes 🐛

  • fix(scenario): qgis-installation-finder accept if_not_found value warning and not warn. by @florentfgrs in #566
  • feat(pypac): add tldextract cache directory in pyinstaller by @jmkerloch in #564

Features and enhancements 🎉

  • feat(pac): add file for tests by @jmkerloch in #562
  • feat(proxies): use pypac to use PAC file by @jmkerloch in #560

0.35.3 - 2024-09-06

Bugs fixes 🐛

  • fix(profile sync): force copy if sync_mode is overwirte by @jmkerloch in #555

Features and enhancements 🎉

  • Feature: support search_paths option in QGIS finder job by @Guts in #535

Documentation 📖

  • update(docs): add how to use autogenerated release notes from GitHub by @Guts in #557

0.35.2 - 2024-09-03

Bugs fixes 🐛

  • fix(downloader): stream option was not propagated to get args by @Guts in #550
  • fix(downloader): qdt_plugins_to_copy was not created in force mode by @Guts in #551

Features and enhancements 🎉

  • add(tooling): helper script to convert png to ico by @Guts in #548
  • improve(downloader): use a custom HTTP transport adapter instead of rough injection by @Guts in #549
  • improve(tests): add scenario to test against plugins downloader in monothread and forced by @Guts in #552

0.35.1 - 2024-09-02

Features and enhancements 🎉

  • feature(downloader): add option to disable SSL verification by @Guts in #544

0.35.0 - 2024-09-02

Features and enhancements 🎉

  • refacto(cleanup): fix some type hints and relative imports by @Guts in #540
  • feature(downloader): add option to control over stream mode by @Guts in #541
  • Enhancement: rename shortcut module and improve docstring/type hints consistency by @Guts in #543

Tooling 🔧

  • update(packaging): use Python 3.12 to build packages by @Guts in #542

Documentation 📖

  • fix(docs): value must be quoted in PowerShell command to set env vars by @Guts in #536

0.34.5 - 2024-06-06

Bugs fixes 🐛

  • fix(io): explicitly declare UTF-8 encoding in IO operations by @Guts in #520

Documentation 📖

  • improve(docs): restore linkify (MyST parser extension) by @Guts in #516

0.34.4 - 2024-05-30

Bugs fixes 🐛

  • Improve: qdt files reliability by @Guts in #514

0.34.3 - 2024-05-29

Bugs fixes 🐛

  • Fix: rules context crash on certain Windows configuration by @Guts in #507

Features and enhancements 🎉

  • improve(user_groups): enforces user domain groups retrieval using user guid by @Guts in #508

Tooling 🔧

  • CI: test export rules context in different supported environments by @Guts in #512

0.34.2 - 2024-04-25

Bugs fixes 🐛

  • fix(profiles): profiles listing was returning the unfiltered list by @Guts in #497

Documentation 📖

  • Documentation: improve download section by @Guts in #496

0.34.1 - 2024-04-24

Features and enhancements 🎉

  • feature(rules): on Windows, retrieve user extended data using win32 API by @Guts in #494

0.34.0 - 2024-04-23

Killer feature introduced: rules engine. Funded by Métropole du Grand Lyon.

Bugs fixes 🐛

  • fix(logs): unreachable profile-attributes in logs by @Guts in #486

Features and enhancements 🎉

  • Feature: add rules engine by @Guts in #481
  • Feature: add datetime to rules context by @Guts in #484
  • Feature: retrieve win32 user groups by @Guts in #393
  • feature(rules): add user name and groups to rules context by @Guts in #489
  • tests(usergroups): add unit tests against user groups module and update tests by @Guts in #490
  • Refacto: move profiles rules filter to generic class and use it systematically in jobs by @Guts in #487
  • Refacto: move rules context into a structured object by @Guts in #491
  • feature(cli): add command to export rules context in current environment by @Guts in #492

Tooling 🔧

  • enhancement: improve reliability of version templater making sure that a SemVer compliant version number is passed by @Guts in #483

Documentation 📖

  • Docs: add local test qdt by @Guts in #488
  • Docs: add rules context dynamically by @Guts in #485

0.33.0 - 2024-04-05

Features and enhancements 🎉

  • feat(installed qgis): add qgis-installation-finder job by @jmkerloch in #464

0.32.1 - 2024-04-02

Bugs fixes 🐛

  • fix(env variable): update local environment by @jmkerloch in #455

Tooling 🔧

  • Tooling: add config for markdown files in VS Code by @Guts in #461

Documentation 📖

  • docs: fix autobuild command by @Guts in #462
  • docs: minor fixes by @Guts in #467
  • docs: complete validation tooling by @Guts in #463
  • docs: add quickstart by @Guts in #468
  • docs: remove pattern from JSON schemas by @Guts in #456
  • docs: add how to check using git hooks by @Guts in #457
  • docs: add robots.txt for SEO engines by @Guts in #458
  • docs: enable zoom in mermaid diagrams by @Guts in #459
  • docs: autodoc init functions by @Guts in #460
  • docs: add a page referencing QDT projects by @Guts in #465
  • docs: move how to publish to an HTTP server in a specific guide page by @Guts in #466

0.32.0 - 2024-03-22

Bugs fixes 🐛

  • fix: remove deprecated job and fix minor confusing refs in JSON schemas by @Guts in #449

Features and enhancements 🎉

  • feat(env variable): add write of environnement variable in .ini files from QDT profile by @jmkerloch in #452

Tooling 🔧

  • packaging: set Python min/max versions by @Guts in #447

Documentation 📖

  • demo: renew shortcuts profiles icons and add versions compatible with QGIS profiles list by @sylvainbeo and @Guts in #453

Other Changes

  • deps: bump minimal versions for git sync by @Guts in #443

New Contributors

  • @jmkerloch and @sylvainbeo made their first contribution

0.31.2 - 2024-03-01

Bugs fixes 🐛

  • Fix: shortcut template was bundled to the wrong path by @Guts in #442

Features and enhancements 🎉

  • refacto: rm typing_extensions from deps replacing by future.annotations by @Guts in #441
  • Feature: network use native system stores by @Guts in #444

0.31.1 - 2024-02-23

Bugs fixes 🐛

  • fix: restore refresh_environment by @Guts in #438

0.31.0 - 2024-02-23

Features and enhancements 🎉

  • refacto: remove unused methods and improve doctsrings by @Guts in #429
  • Refacto: split profiles sync job by @Guts in #432
  • Feature: job environment variables support linux by @Guts in #435

Tooling 🔧

  • ci: use codecov upload token by @Guts in #430
  • ci: tag codecov uploads with CI matrix vars by @Guts in #431
  • tooling: ignore dev scripts and fixtures from Sonar analisis by @Guts in #433
  • ci: disable matrix fail fast by @Guts in #434
  • tooling: make sonar ignore tests for duplication by @Guts in #436

0.30.2 - 2024-02-22

Features and enhancements 🎉

  • Improve: cleanup OSConfig and refacto CLI's tests to run outside real QGIS profiles folder by @Guts in #427

0.30.1 - 2024-02-20

Bugs fixes 🐛

  • fix: undefined variable on Windows if scope != user by @Guts in #392
  • fix: change refs to menu_from_projects to match new versioning scheme by @Guts in #424

Features and enhancements 🎉

  • Refacto: factorize logs folders retrieval by @Guts in #398
  • fix: tests were failing because of upstream URL change by @Guts in #409
  • Feature: log details about Certificates Authority bundle by @Guts in #397
  • tests: improve downloader testing by @Guts in #412
  • Improve: testing ini files against untracked files by @Guts in #416
  • Improve: refacto operating system constants retrieval by @Guts in #421

Tooling 🔧

  • CI: update autolabeler to v5 by @Guts in #411
  • tooling: enable import autocompletion in VSCode by @Guts in #422

Documentation 📖

  • docs: clean up and fix some syntax errors by @Guts in #420
  • docs: add custom qgis profiles folderpath with QGIS_CUSTOM_CONFIG_PATH by @Guts in #423
  • docs: add example on run QDT behind a proxy with PowerShell by @Guts in #394
  • docs: fix typo spotted by @sylvainbeo by @Guts in #395
  • docs: release upper pins of dependencies to reduce dependabot noise by @Guts in #417
  • docs: enable social cards by @Guts in #418
  • docs: add sitemap by @Guts in #419
  • docs: add new plugin's id retrieval method and reorganize the table of contents by @Guts in #425

Other Changes

  • security: bump pillow to 10.2 to fix CVE-2022-22817 by @Guts in #400

0.30.0 - 2023-12-29

Bugs fixes 🐛

  • Fix: splash screen removal by @Guts in #381

Features and enhancements 🎉

  • Security: increase security scans and improve related documentation by @Guts in #352
  • Feature: download from http (part 1) by @Guts in #351
  • feature: add util to get ProxyHandler and cache some recurring functions by @Guts in #358
  • feature: use proxy handler in file downloader by @Guts in #359
  • feature: add simple http client by @Guts in #360
  • improvement: use proxy handle in upgrade sub-command by @Guts in #362
  • log: on Linux, add distribution name and version by @Guts in #363
  • log: add details about how QDT working folder is determined by @Guts in #364
  • Change: move QDT subfolders to generic job by @Guts in #347
  • Refacto: use requests to download files by @Guts in #367
  • Refacto: remove dead code by @Guts in #368
  • Feature: add file size to downloader log by @Guts in #369
  • Feature: add log filepath on exit error by @Guts in #370
  • feature: HTTP downloader refacto part 2 by @Guts in #372
  • feature: add function name to log by @Guts in #380
  • tests: add more scenarii and factorize test by @Guts in #382
  • feature: QdtProfile has now shortcuts to access to ini files and its installed alter-ego by @Guts in #383
  • Feature: improve splash screen manager logic by using ini helper intensively by @Guts in #384

Tooling 🔧

  • tooling: add SonarCloud configuration file by @Guts in #378

Documentation 📖

  • docs: improve development guide by @Guts in #357
  • docs: update qprofiles-manager with deprecated 'git' value by @Guts in #361
  • tooling: add SonarCloud badge by @Guts in #371

0.30.0-beta2 - 2023-12-29

Features and enhancements 🎉

  • Refacto: use requests to download files by @Guts in #367
  • Refacto: remove dead code by @Guts in #368
  • Feature: add file size to downloader log by @Guts in #369
  • Feature: add log filepath on exit error by @Guts in #370
  • feature: HTTP downloader refacto part 2 by @Guts in #372

Tooling 🔧

  • tooling: add SonarCloud configuration file by @Guts in #378

Documentation 📖

  • tooling: add SonarCloud badge by @Guts in #371

0.30.0-beta1 - 2023-12-26

Features and enhancements 🎉

  • Security: increase security scans and improve related documentation by @Guts in #352
  • Feature: download from http (part 1) by @Guts in #351
  • feature: add util to get ProxyHandler and cache some recurring functions by @Guts in #358
  • feature: add simple http client by @Guts in #360
  • improvement: use proxy handle in upgrade sub-command by @Guts in #362
  • log: on Linux, add distribution name and version by @Guts in #363
  • log: add details about how QDT working folder is determined by @Guts in #364
  • Change: move QDT subfolders to generic job by @Guts in #347
  • feature: use proxy handler in file downloader by @Guts in #359

Documentation 📖

  • docs: improve development guide by @Guts in #357
  • docs: update qprofiles-manager with deprecated 'git' value by @Guts in #361

0.29.0 - 2023-11-16

Bugs fixes 🐛

  • Fix: local Git repository were not recognized anymore as valid git repository #344
  • Fix: surround profile name with quotes to prevent space by @Guts in #348 (#320)

Features and enhancements 🎉

  • Git synchronization: global improvements by @Guts in #346

Tooling 🔧

  • CI: fix packages-dir path for PyPi upload by @Guts in #339
  • Packaging: add operating system name to build report by @Guts in #340
  • CI: avoid uploading build reports by @Guts in #341

Documentation 📖

  • Docs: how to manually deploy to PyPi by @Guts in #342

0.28.0 - 2023-11-14

Bugs fixes 🐛

  • Disable ConfigParser strict mode to better handling of heterogeneity of QGIS config files by @Guts in #334

Features and enhancements 🎉

  • Add util to format octets size into human-readable format by @Guts in #331
  • Refacto: add a Git handler base class to inherit from and avoid duplicate code by @Guts in #333
  • Jobs: make downloaded and installed profiles listing more generic by @Guts in #336
  • Enhancement: add a module to read and write QGIS ini files by @Guts in #337

Tooling 🔧

  • Packaging: renamed license to match Pypi classifier by @Guts in #326
  • Publishing to PyPi: switch to trusted publisher by @Guts in #327
  • Add python 3.12 to tests and supported versions by @Guts in #328
  • Packaging: restore operating system name in final executables by @Guts in #329
  • CI: add discussion category name to link to a GitHub Release by @Guts in #330

Documentation 📖

  • Add demonstration profile viewer mode by @Guts in #332

0.27.0 - 2023-11-08

Bugs fixes 🐛

  • Fix missing shortcut template in packaging by @Guts in #319

Features and enhancements 🎉

  • Support custom HTTP proxy setting: QDT_PROXY_HTTP by @Guts in #293
  • Refacto: move shortcuts related code into specific subpkg by @Guts in #324
  • Quality: global project improvements and clean up by @Guts in #325

Tooling 🔧

  • Improve setup: add extras and factorize requirements loading by @Guts in #302
  • Switch license from LGPL3 to Apache License 2 by @Guts in #314
  • Packaging: improve output name and PyInstaller options by @Guts in #321
  • Tooling: update VS Code config by @Guts in #323

Documentation 📖

  • Mise à jour documentation by @sigeal in #315

Other Changes

  • Update Pillow to fix CVE related to libwebp by @Guts in #313

New Contributors

  • @sigeal made their first contribution in #315

Full Changelog: https://github.com/Guts/qgis-deployment-cli/compare/0.26.0...0.27.0

0.26.0 - 2023-06-11

Bugs fixes 🐛

  • Fix: accept different types (URLs or str) as environment variables values by @Guts in #291

0.25.0 - 2023-06-13

Bugs fixes 🐛

  • Set download as default action by @Guts in #281

Features and enhancements 🎉

  • Improve: if icon not found, use default QGIS icon (only Linux Free Desktop) by @Guts in #282

Tooling 🔧

  • Packaging: add icon to exe by @Guts in #285

Documentation 📖

  • Add demo profile by @Guts in #276
  • Documentation: add typical project structure section by @Guts in #280

0.24.0 - 2023-05-30

Features and enhancements 🎉

  • Upgrade: download new release binary only in frozen mode by @Guts in #266

Tooling 🔧

  • Docs: deploy only on tags or main by @Guts in #265
  • Add feature request issue form by @Guts in #272
  • Packaging: publish QDT as Docker image in GHCR by @Guts in #274

Documentation 📖

  • Add job to generate dependencies graph by @Guts in #267
  • Complete user manual by @Guts in #268

0.23.1 - 2023-05-07

Bugs fixes 🐛

Features and enhancements 🎉

  • Improve log message during plugin version comparison by @Guts in #257

0.23.0 - 2023-04-14

Features and enhancements 🎉

  • Quality: extends tests against file downloader util by @florentfgrs in #245
  • Feature: handle local Git repository by @Guts in #255
  • Feature: handle "local" plugins by @Guts in #253

Documentation 📖

  • Docs: use glob to automatically include jobs docs in toctree by @Guts in #254

New Contributors

  • @florentfgrs made their first contribution in #245

0.22.3 - 2023-03-12

  • Use QGIS LTR 3.28.4 path as default by @Guts in #243

0.22.2 - 2023-03-12

Features and enhancements 🎉

  • Refacto: jobs splash screen and some mutualized methods by @Guts in #242

0.22.1 - 2023-03-11

Bugs fixes 🐛

  • Fix: env var obfuscated by lru cache by @Guts in #236
  • Fix missing return profile object in shortcut job by @Guts in #239
  • Fix and refactoring get_qgis_path which was failing because of bad type passed to ast.literal_eval by @Guts in #241

Features and enhancements 🎉

  • Improvement: make remote scenario downloaded a separate func by @Guts in #238
  • Feature: check path now try to expand user vars by @Guts in #240

0.22.0 - 2023-03-10

Features and enhancements 🎉

  • Refacto: job shortcuts now use mutualized objects and tools by @Guts in #230
  • Feature: add line number to log to make debug easier by @Guts in #231
  • Feature: better logging by @Guts in #233
  • Improve how invalid YAML files are handled by @Guts in #234
  • Improvement: extract name and path from URL of remote scenario and store it properly in QDT work dir by @Guts in #235

0.21.3 - 2023-03-09

Bugs fixes 🐛

  • Add default subparser to allow direct run of deployment by @Guts in #229

0.21.2 - 2023-03-09

Bugs fixes 🐛

  • Fix unexpected keyword argument 'profiles_folder_to_copy' by @Guts in #227

Features and enhancements 🎉

  • Improve reliability of profiles sync with only_missing by @Guts in #228

0.21.1 - 2023-03-09

Bugs fixes 🐛

  • Hotfix crash when some profiles have a lesser version by @Guts in #226

0.21.0 - 2023-03-09

Bugs fixes 🐛

  • Fix: outdated profiles should also be copied when sync_mode=only_different by @Guts in #225

Features and enhancements 🎉

  • Improve upgrade subcommand by handling GitHub Token by @Guts in #219
  • Tooling: complete JSON schemas and job documentation by @Guts in #224

Tooling 🔧

  • Add bug report issue form by @Guts in #222

Documentation 📖

  • Documentation: improve download page by @Guts in #220

0.20.0 - 2023-03-07

Features and enhancements 🎉

  • Tooling: add pyupgrade as git hook by @Guts in #218
  • Profiles synchronization: add sync_mode option by @Guts in #97

Documentation 📖

  • Add funding page by @Guts in #217

0.19.0 - 2023-03-03

Features and enhancements 🎉

  • Refacto: remove unused modules (dead code) by @Guts in #207
  • Improve: test coverage bouncer by @Guts in #209
  • Switch to a generic Job object with inheritance by @Guts in #208
  • Clean up: rm former validations methods by @Guts in #210
  • Tooling: add ruff to git hooks by @Guts in #211
  • Feature: use environment variables to set arguments values by @Guts in #215
  • Feature: support remote scenario path by @Guts in #216

Documentation 📖

  • Documentation: add how to grab a plugin_id by @Guts in #214

0.18.0 - 2023-03-02

Bugs fixes 🐛

  • Fix message when there is no newer version by @Guts in #205

Features and enhancements 🎉

  • Add helper to handle common error on exe name by @Guts in #206
  • Feature: job to manage environment variables now handles remove action by @Guts in #199

Documentation 📖

  • Add doc page about environment variable job by @Guts in #198

0.17.0 - 2023-02-28

A version focused on refacto to reduce external dependencies.

Features and enhancements 🎉

  • Refacto: clean up rm unused subcmd by @Guts in #192
  • Refacto: replace click by argparse by @Guts in #194
  • Refacto: remove dependency to py-setenv by @Guts in #196
  • Refacto: remove rich dependency by @Guts in #197

Tooling 🔧

  • Packaging: build and package for MacOS (experimental) by @Guts in #195

0.16.2 - 2023-02-23

Bugs fixes 🐛

  • Fix QGIS bin path retriever by @Guts in #191

Features and enhancements 🎉

  • Tooling and documentation: JSON schema for profile editing by @Guts in #187

Documentation 📖

  • Documentation: fix build and switch to Furo theme by @Guts in #188

0.16.1 - 2023-01-30

Bugs fixes 🐛

  • Embed shortcut template into packages by @Guts in #181

Features and enhancements 🎉

  • Tooling: upgrade JSON schemas by @Guts in #180
  • Feature: upgrade show changelog by @Guts in #179

0.16.0 - 2023-01-27

Features and enhancements 🎉

  • Dependencies: replace semver by packaging to compare versions by @Guts in #177
  • Feature: improve shortcut manager to create shortcuts on Linux (FreeDesktop) by @Guts in #178

0.15.0 - 2023-01-26

Features and enhancements 🎉

  • Feature: plugins synchronization part 3 - Upgrade older plugins by @Guts in #176

0.14.1 - 2023-01-21

Bugs fixes 🐛

  • Fix: download URL should use folder_name when exists instead of name by @Guts in #175

0.14.0 - 2023-01-21

Features and enhancements 🎉

  • Feature: add a subcommand to upgrade the CLI by @Guts in #169
  • Feature: plugins downloader by @Guts in #168
  • Feature: plugins synchronization - part 1 by @Guts in #172
  • Feature: plugins synchronization part 2 by @Guts in #174

Tooling 🔧

  • CI: build Python wheel using build package by @Guts in #170
  • Use GE to deploy to GH Pages instead of branch gh-pages by @Guts in #171
  • Set minimal Python to 3.10 by @Guts in #173

0.13.0 - 2023-01-16

Features and enhancements 🎉

  • Add module to check image size by @Guts in #151
  • Add test for utils.slugifier by @Guts in #165
  • Improve test coverage on check image by @Guts in #166
  • Increase test coverage by @vicente23 in #157
  • Feature: add option to check splash screen dimensions by @Guts in #167

0.12.0 - 2022-11-26

Bugs fixes 🐛

  • Replace the variable scenario by scenario_filepath by @vicente23 in #148
  • Check the validity of the scenario file by @vicente23 in #149
  • Make the remote git handler much more robust to by @Guts in #154

Features and enhancements 🎉

  • Allow to specify branch to clone/pull by @Guts in #152
  • Make logging binary : warning or debug by @Guts in #155
  • Add utils module to check paths in a centralized way by @Guts in #156

Tooling 🔧

  • Fix documentation build on CI by @Guts in #144
  • Packaging: Add Python 3.11 to supported versions by @Guts in #153

0.11.0 - 2022-11-16

  • Add new job to manage custom splash screen
  • Fix: job shortcut-manager was failing when icon is not defined
  • Bump dependencies

0.10.0 - 2022-05-25

  • Minor bug fixes
  • Extends unit tests (65%)

0.9.0 - 2022-05-18

  • handle ~ char in scenario files to represent the end-user home folder
  • add utils.str2bool to convert str to bool. Useful to process environment variables which are always stored/retrieved as strings.
  • add utils.win32utils.get_environment_variable to retrieve environment variable directly from Windows registry, because os.getenv uses the configuration at the run moment
  • Documentation: add an auto-generated table of dependencies and their license within the Credits page
  • Fix a bug when the icon path was not set for a shortcut
  • Extend unit tests to reach 60% of coverage

See the GitHub Release for a detailed changelog.

0.8.0 - 2022-05-16

  • Pin dulwich version to avoid recurring connection errors
  • Add support for environment variable QGIS_CUSTOM_CONFIG_PATH
  • Make clone/pull more robust
  • Extend unit tests

See the GitHub Release for a detailed changelog.

0.7.0 - 2022-05-16

  • Add module to create and delete application shortcuts
  • Add job to use the new module to automatically create shortcuts for QGIS profiles
  • Promote constants module to a dataclass (Python 3.7+)
  • Remove subcommand to set environment variables
  • Rename environment_variables section to settings in scenario files
  • Handle situation where the QGIS profiles folder doesn't exist
  • Fix the default QGIS profiles path on Windows
  • Fix environment variables manager
  • Fix and improve clean command
  • Run unit tests on multiple operating systems: MacOS, Ubuntu LTS and Windows 10

See the GitHub Release for a detailed changelog.

0.6.0 - 2022-05-10

  • Profiles synchronization now handle the mixed case where some of downloaded profiles are already installed, and some are not.
  • Extend unit tests
  • Minor clean up

See the GitHub Release for a detailed changelog.

0.5.0 - 2022-05-09

  • Improve profiles synchronization logic by filtering on folders which are (or seem to be) QGIS profiles
  • Minor changes

See the GitHub Release for a detailed changelog.

0.4.0 - 2022-05-06

  • Deploy: install downloaded profiles into a fresh QGIS install
  • Check: operaing system compatibility
  • Improve isort and codecov configurations

See the GitHub Release for a detailed changelog.

0.3.0 - 2022-05-05

  • Add Python Wheel as packaging option
  • Deploy release to Python Package Index
  • Complete and improve documentation

See the GitHub Release for a detailed changelog.

0.2.0 - 2022-05-04

  • Real start of development!
  • Implement pseudo-CI behavior
  • Add job to set persistent environment variables on Windows
  • Add job to download profiles from a public remote git repository
  • Complete CI to automatically build and publish executable for Ubuntu LTS and Windows
  • Upgrade every dependencies

See the GitHub Release for a detailed changelog.

0.1.0 - 2021-05-20

  • First version, really minimalist