A modern CLI for managing QGIS plugin development, deployment, and packaging.
Project description
QGIS Plugin Manager
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
uvorpip, 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.txtto 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
.qrcresources,.tstranslations, 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
- CHANGELOG.md: History of changes and releases.
- RULES.md: Coding standards and project rules.
📄 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8763692aaf3fc4867c814b5dd2d84a902d18c0cb2ae3710f9f3a1f35ca48f66
|
|
| MD5 |
2f995c89dec54a6b552e9e0c306cd20c
|
|
| BLAKE2b-256 |
06bf3ec709c4ff1a634c750a5a1c5e6dfbb162839b49953a82b9a371cfe220a5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45ad2a8dce9adf9faa8490974ff601d5921f6e537a649a58123e91ee3165590d
|
|
| MD5 |
b72569ed24db65ec1646c7a1deb1fd04
|
|
| BLAKE2b-256 |
2f83c20abf7b9e7f8a2cfdf5ad132d50a3f9b9dbef264413b93f8ccf374804e9
|