Crear su propio repositorio de complementos QGIS

La mayoría de los complementos QGIS disponibles públicamente están alojados en el repositorio oficial . Sin embargo, en algunos casos se hace necesario crear su propio repositorio de complementos, por ejemplo, para distribuir su complemento en un círculo estrecho de colegas de una determinada organización. En este artículo, veremos cómo implementar nuestro propio repositorio de complementos y también discutiremos los requisitos mínimos que debe cumplir un complemento para colocarlo en su propio repositorio.


Nota 2
, , QGIS 3.10.5 LTR.

Plugin Manager


QGIS tiene una herramienta especial para trabajar con complementos: el administrador de complementos. Le permite buscar complementos, instalarlos y eliminarlos, rastrear la aparición de nuevas versiones de complementos instalados, conectar repositorios de terceros, etc. Para cada complemento, el administrador de complementos proporciona una ventana con información sobre el complemento. Hay tres escenarios para completar esta información:

  1. El complemento está en el repositorio, pero no está instalado en su computadora. En este caso, toda la información para el administrador de complementos se extrae de la descripción del complemento en el archivo plugins.xml.
  2. El complemento está instalado en su computadora y hay una conexión con el repositorio. En este caso, parte de la información aún se extrae de la descripción del complemento en el archivo plugins.xml, y parte del archivo de metadatos metadata.txt
  3. El complemento está instalado en su computadora y no hay conexión con el repositorio. En este caso, toda la información para el administrador de complementos se extrae del archivo de metadatos metadata.txt.

La tabla a continuación describe de dónde provienen los parámetros en la ventana con información sobre el complemento, en cada uno de los tres casos:
Parámetro en la ventana de información del complemento en el administrador de complementos QGIS
La fuente de donde se toma el parámetro antes de la instalación desde el repositorio
La fuente de la cual se toma el parámetro cuando el complemento está instalado en su computadora y hay una conexión con el repositorio
La fuente de donde se toma el parámetro cuando el complemento está instalado en su computadora y no hay conexión con el repositorio
Nombre
plugins.xml (propiedad de nombre de la etiqueta pyqgis_plugin)
plugins.xml (propiedad de nombre de la etiqueta pyqgis_plugin)
metadata.txt
Descripción
plugins.xml
metadata.txt
metadata.txt
Acerca de
plugins.xml
metadata.txt
metadata.txt
Versión instalada
metadata.txt  (parámetro de versión)
metadata.txt  (parámetro de versión)
Versión disponible
plugins.xml ( version pyqgis_plugin)
plugins.xml ( version pyqgis_plugin)
Download url
plugins.xml
plugins.xml
Changelog
metadata.txt
metadata.txt
Tags
plugins.xml
metadata.txt
metadata.txt
Author
plugins.xml
plugins.xml
metadata.txt
Email
metadata.txt
metadata.txt
Homepage
plugins.xml
plugins.xml
metadata.txt
Bug tracker
plugins.xml
plugins.xml
metadata.txt
Code repository
plugins.xml
plugins.xml
metadata.txt
QgisMinimumVersion
plugins.xml
metadata.txt
metadata.txt
QgisMaximumVersion
plugins.xml
metadata.txt
metadata.txt
Experimental
plugins.xml
metadata.txt
metadata.txt
Deprecated
plugins.xml
metadata.txt
metadata.txt
Icon
plugins.xml
metadata.txt
metadata.txt
Category
plugins.xml
plugins.xml
metadata.txt
  • , QGIS, metadata.txt plugins.xml . initGui() .
  • Installed version Available version, QGIS . Installed version Available version, QGIS «Installed version of this plugin is higher than any version found in repository». , , .
  • , metadata.txt plugins.xml . .
  • Available version plugins.xml version pyqgis_plugin, version.
  • metadata.txt plugins.xml Experimental Deprecated, .
  • QGIS (QgisMinimumVersion) (QgisMaximumVersion) , metadata.txt plugins.xml.
  • , . , QgisMinimumVersion + 0.99.



Cada complemento en el repositorio debe estar empaquetado en un archivo zip separado, en el que la carpeta raíz debe estar presente, y en él están los archivos de su complemento junto con el archivo metadata.txt. Por el nombre de la carpeta raíz, el administrador de complementos QGIS hará coincidir los complementos instalados localmente con los complementos disponibles en el repositorio. Las características de dicha comparación se analizarán a continuación en la sección Comunicación entre el complemento local y el complemento en el repositorio .

Un complemento QGIS viable debe contener solo dos archivos necesarios en su directorio:
 
  • __init__.py es el punto de partida del complemento. El archivo debe contener el método classFactory ().
  • metadata.txt: contiene información general sobre el complemento.

Aquí puede encontrar un ejemplo de un complemento con un conjunto mínimo de archivos .

Puede estudiar la estructura de los complementos con más detalle en la documentación oficial .

Archivo de metadatos


Como ya se señaló, en el directorio de cada complemento debe haber un archivo metadata.txt que contenga información general sobre el complemento. La información que contiene se utiliza para mostrar en el administrador de complementos de QGIS, buscar un complemento, etc.

La estructura del archivo de metadatos debe ser la siguiente:

[general]
Parameter1_Name: Parameter1_Value
Parameter2_Name: Parameter2_Value
ParameterN_Name: ParameterN_Value

O:

[general]
Parameter1_Name= Parameter1_Value
Parameter2_Name= Parameter2_Value
ParameterN_Name= ParameterN_Value

Puede usar dos puntos o el símbolo "=" como separador para el nombre del parámetro y su valor. Sin embargo, no es necesario que solo haya un tipo de delimitador en un único archivo de metadatos. Los espacios antes y después del separador no afectan la lectura de datos de metadata.txt, por lo tanto, pueden estar en cualquier cantidad o ausentes por completo. Tenga en cuenta también que se requiere la palabra clave "[general]" al comienzo del archivo de metadatos.

Los parámetros necesarios, sin los cuales se puede interrumpir el complemento, son los siguientes:

  • nombre: nombre del complemento,
  • version - versión del complemento,
  • qgisMinimumVersion es la versión mínima de QGIS adecuada para trabajar con este complemento.

Puede encontrar información sobre otros parámetros aquí .

plugins.xml


Cada repositorio debe contener un archivo plugins.xml que proporciona información general para el administrador de complementos sobre todos los complementos disponibles en el repositorio.

Nota
, .

La estructura de plugins.xml debe ser la siguiente:

<plugins>
    <pyqgis_plugin name="Plugin1_Name" version="Plugin1_Version">                 
        <Plugin1_Parameter1_Name>Plugin1_Parameter1_Value</Plugin1_Parameter1_Name>
        <Plugin1_Parameter2_Name>Plugin1_Parameter2_Value</Plugin1_Parameter2_Name>
        ....
        <Plugin1_ParameterN_Name>Plugin1_ParameterN_Value</Plugin1_ParameterN_Name>
    </pyqgis_plugin>
    ...
    <pyqgis_plugin name="PluginN_Name" version="PluginN_Version">
       <PluginN_Parameter1_Name>PluginN_Parameter1_Value</PluginN_Parameter1_Name>
       <PluginN_Parameter2_Name>PluginN_Parameter2_Value</PluginN_Parameter2_Name>
        ....
       <PluginN_ParameterN_Name>PluginN_ParameterN_Value</PluginN_ParameterN_Name>
    </pyqgis_plugin>
</plugins>

Los parámetros requeridos sin los cuales se puede interrumpir el repositorio son los siguientes:

  • nombre: el nombre del complemento (indicado como un parámetro de la etiqueta pyqgis_plugin)
  • version: versión del complemento (especificado como un parámetro de la etiqueta pyqgis_plugin),
  • qgis_minimum_version: la versión mínima de QGIS adecuada para trabajar con este complemento,
  • download_url: url donde se encuentra el archivo zip con su complemento.

Se recomienda estudiar el archivo plugins.xml de ejemplo del repositorio oficial de QGIS (reemplace los números al final del enlace con la versión de QGIS instalada en su computadora).

Propina
plugins.xml, . xml.

La relación entre el complemento local y el complemento en el repositorio


¿Cómo entiende el administrador de complementos que cierto complemento instalado en su computadora y un complemento en el repositorio conectado son el mismo complemento, por ejemplo, para verificar si una nueva versión del complemento ha aparecido en el repositorio?

Sin entrar en detalles técnicos, la regla para conectar complementos es la siguiente: el complemento de QGIS considera que el complemento local y el complemento en el repositorio son el mismo complemento si el nombre de la carpeta raíz del complemento coincide con el texto hasta el primer punto de la etiqueta file_name, o si falta la etiqueta file_name, con texto al primer punto del último elemento de ruta de la etiqueta download_url.

En otras palabras, si la etiqueta file_name está presente en la descripción del complemento de plugins.xml, entonces se extraerá la parte del primer punto (resaltada en negrita), que debe ser exactamente el nombre de la carpeta raíz del complemento instalado para que el administrador de complementos QGIS los considere uno y El mismo complemento. Si falta la etiqueta file_name, el último elemento de ruta de la etiqueta download_url se analizará de la misma manera. La parte extraída de ella hasta el primer punto (resaltada en negrita) también debe ser exactamente el nombre de la carpeta raíz del complemento instalado para que el administrador de complementos QGIS los considere como el mismo complemento. Si no hay coincidencia entre el nombre de la carpeta raíz y la parte extraída de file_name, o (si falta file_name) de download_url, los complementos se consideran complementos diferentes.

<file_name>PluginName.2.1.0.zip</file_name>



<download_url>YourRepositoryURL/PluginName.2.1.0.zip</download_url>



Teniendo en cuenta esta regla, se recomienda agregar la etiqueta file_name en la descripción de los complementos en el archivo plugins.xml, que no indica el nombre de su archivo zip, sino el nombre de la carpeta raíz de su complemento, a la que opcionalmente puede agregar una versión u otra información, separándolos con un punto. En este caso, puede nombrar el archivo zip con el complemento como desee, incluso separando el nombre del complemento y su versión con un guión, como es habitual en el repositorio oficial.

Nota
QGIS file_name .

Ejemplos de complementos diseñados correctamente


Ejemplo 1


Estructura de archivo de complemento


FolderName.SomeInfo.zip
---FolderName
------__init__.py
------metadata.txt


Archivo Metadata.txt


[general]
name: PluginName
version: 2.1.0
qgisMinimumVersion: 3.0


Plugins.xml archivo


<plugins> 
   <pyqgis_plugin name="PluginName" version="2.1.0">
       <qgis_minimum_version>3.0.0</qgis_minimum_version>
        <download_url>YourRepositoryURL/FolderName.SomeInfo.zip</download_url>
   </pyqgis_plugin>
</plugins>

En este ejemplo, la conexión entre el complemento instalado localmente en su computadora y el complemento en el repositorio se realiza a través del nombre de la carpeta raíz y la etiqueta download_url. Por lo tanto, la parte del nombre del archivo zip en el primer punto y el nombre de la carpeta raíz del complemento deben coincidir exactamente.

Ejemplo 2


Estructura de archivo de complemento


ArchiveName.SomeInfo.zip
---FolderName
------__init__.py
------metadata.txt


Archivo Metadata.txt


[general]
name: PluginName
version: 2.1.0
qgisMinimumVersion: 3.0


Plugins.xml archivo


<plugins>
   <pyqgis_plugin name="PluginName" version="2.1.0">
       <qgis_minimum_version>3.0.0</qgis_minimum_version>
        <file_name>FolderName.SomeInfo</file_name>
        <download_url>YourRepositoryURL/ArchiveName.SomeInfo.zip</download_url>
   </pyqgis_plugin>
</plugins>

En este ejemplo, la conexión entre el complemento instalado localmente en su computadora y el complemento en el repositorio es a través del nombre de la carpeta raíz y la etiqueta file_name. En este caso, la parte del nombre del archivo zip en el primer punto y el nombre de la carpeta raíz pueden diferir.

Crear repositorio


El repositorio de complementos QGIS debe constar de un archivo plugins.xml que proporciona información general para el administrador de complementos sobre todos los complementos disponibles en el repositorio y los archivos zip que contienen los complementos mismos. El repositorio se puede alojar en servicios web como GitHub o Bitbucket.

Un requisito importante para que QGIS reconozca dicho repositorio es acceder a los archivos a través de un enlace directo. Esto se puede hacer, por ejemplo, usando páginas Github o páginas Bitbucket. Google Drive o DropBox no funcionarán para estos fines. no permiten un enlace directo a un archivo de la forma ... / filename.extension.

Las instrucciones para usar GitHub para alojar un sitio web estático se encuentran aquí .

Las instrucciones sobre cómo usar Bitbucket para alojar un sitio web estático se encuentran aquí .

Como regla general, solo necesita cambiar el nombre de su repositorio de acuerdo con la plantilla:

username.imtqy.com (para GitHub)
o
username.bitbucket.io (para Bitbucket)

Después de las configuraciones necesarias, el enlace a su repositorio QGIS se verá así:

username.imtqy.com/plugins.xml (para GitHub)
o
username.bitbucket.io/plugins.xml(para Bitbucket)

Este enlace debe especificarse en el campo URL en el administrador de complementos QGIS al conectar un nuevo repositorio. Si la conexión al repositorio es exitosa, el estado del repositorio se establecerá en "conectado", y los complementos descritos en el archivo plugins.xml aparecerán en la lista de complementos disponibles.

All Articles