Skip to main content

A modern CLI for managing QGIS plugin development, deployment, and packaging.

Project description

QGIS Plugin Manager

CI License: GPL v2+ Code Quality Ruff Python 3.10+

A professional CLI for managing QGIS plugin development, deployment, and packaging. Modernized for Python 3.10+ and uv.

[!IMPORTANT] This is a CLI tool, not a QGIS plugin

This project is a command-line tool for managing QGIS plugin development. It should be installed as a Python package using uv or pip, not as a plugin in QGIS.

  • ✅ Use it to develop and deploy QGIS plugins
  • ❌ Do NOT install it as a plugin in QGIS

🚀 Features

  • Dynamic Deployment: Automatically detects your QGIS profile directory (Linux, Windows, macOS).
  • Smart Discovery: Reads metadata.txt to identify your plugin and automatically selects source files.
  • Safety First: Automatically creates timestamped backups of your plugin folder before every deployment.
  • Qt & Documentation Integration: Compiles .qrc resources, .ts translations, and Sphinx documentation automatically.
  • Clean Workflow: Removes __pycache__ and artifacts recursively.
  • Interactive Mode: Option for step-by-step confirmation of critical steps.
  • Customizable Hooks: Support for shell commands before and after deployment.
  • Persistent Config: Global and project-level settings management.

📦 Installation

Install system-wide as a tool using uv:

uv tool install git+https://github.com/geociencio/qgis-plugin-manager.git

Or add it to your project's development dependencies:

uv add --group dev qgis-plugin-manager @ git+https://github.com/geociencio/qgis-plugin-manager.git

🛠️ Usage

From your plugin project root:

# Initialize a new plugin project scaffolding
qgis-manage init "My Plugin" --author "Juan" --email "juan@example.com" --template processing

# Install external dependencies to local libs/ folder
qgis-manage install-deps

# Deploy to QGIS profile (with automatic backup and compilation)
qgis-manage deploy

# Deploy to a specific profile
qgis-manage deploy --profile production

# Deploy with interactive step-by-step confirmation
qgis-manage deploy --interactive

# Create distributable ZIP package (automatically installs dependencies)
qgis-manage package

# Create package without dev files
qgis-manage package --output ./releases

# Run QGIS Plugin Analyzer on the project
qgis-manage analyze

# Validate metadata.txt compliance
qgis-manage validate --strict

# Compile all resources, translations, and documentation
qgis-manage compile

# Compile only documentation
qgis-manage compile --type docs

# Clean Python artifacts and build files
qgis-manage clean

⚙️ Configuration

Robust Exclusions (.qgisignore)

You can control which files are excluded from deployment and packaging by creating a .qgisignore file in your project root. It supports gitignore-style patterns:

# Exclude CSV data files
data/*.csv

# Exclude specific folders
temp/
tests/data/

# Recursive match (anywhere in the project)
debug.log

Dependency Management

Define your plugin's external Python dependencies in pyproject.toml:

[tool.qgis-manager]
dependencies = [
    "requests",
    "six",
    "pandas"
]

Running qgis-manage install-deps will install these into a local libs/ folder. Remember to add this folder to sys.path in your plugin's __init__.py.

📖 Documentation

📄 License

GPL-2.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qgis_manage-0.6.0.tar.gz (78.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qgis_manage-0.6.0-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file qgis_manage-0.6.0.tar.gz.

File metadata

  • Download URL: qgis_manage-0.6.0.tar.gz
  • Upload date:
  • Size: 78.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for qgis_manage-0.6.0.tar.gz
Algorithm Hash digest
SHA256 c8763692aaf3fc4867c814b5dd2d84a902d18c0cb2ae3710f9f3a1f35ca48f66
MD5 2f995c89dec54a6b552e9e0c306cd20c
BLAKE2b-256 06bf3ec709c4ff1a634c750a5a1c5e6dfbb162839b49953a82b9a371cfe220a5

See more details on using hashes here.

File details

Details for the file qgis_manage-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: qgis_manage-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Manjaro Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for qgis_manage-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45ad2a8dce9adf9faa8490974ff601d5921f6e537a649a58123e91ee3165590d
MD5 b72569ed24db65ec1646c7a1deb1fd04
BLAKE2b-256 2f83c20abf7b9e7f8a2cfdf5ad132d50a3f9b9dbef264413b93f8ccf374804e9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page