إنشاء مستودع مكونات QGIS الخاص بك

يتم استضافة معظم مكونات QGIS المتاحة للجمهور في المستودع الرسمي . ومع ذلك ، في بعض الحالات يصبح من الضروري إنشاء مستودع الإضافات الخاص بك ، على سبيل المثال ، لتوزيع المكون الإضافي في دائرة ضيقة من الزملاء في منظمة معينة. في هذه المقالة ، سنلقي نظرة على كيفية تنفيذ مستودع الإضافات الخاص بنا ، وسنناقش أيضًا الحد الأدنى من المتطلبات التي يجب أن يفي بها المكون الإضافي لوضعه في مستودعه الخاص.


ملاحظة 2
, , QGIS 3.10.5 LTR.

مدير المساعد


يحتوي QGIS على أداة خاصة للعمل مع المكونات الإضافية - مدير المكونات الإضافية. يسمح لك بالبحث عن الإضافات ، وتثبيتها وإزالتها ، وتتبع ظهور الإصدارات الجديدة من المكونات الإضافية المثبتة ، وربط مستودعات الجهات الخارجية ، إلخ. لكل مكون إضافي ، يوفر مدير المكونات الإضافية نافذة تحتوي على معلومات حول المكون الإضافي. هناك ثلاثة سيناريوهات لملء هذه المعلومات:

  1. المكون الإضافي موجود في المستودع ، ولكنه غير مثبت على جهاز الكمبيوتر الخاص بك. في هذه الحالة ، يتم استخراج جميع المعلومات لمدير البرنامج المساعد من وصف البرنامج المساعد في ملف plugins.xml.
  2. تم تثبيت المكون الإضافي على جهاز الكمبيوتر الخاص بك وهناك اتصال بالمستودع. في هذه الحالة ، لا يزال يتم استخراج جزء من المعلومات من وصف المكون الإضافي في ملف plugins.xml ، وجزء من ملف البيانات الوصفية metadata.txt
  3. تم تثبيت المكون الإضافي على جهاز الكمبيوتر الخاص بك وليس هناك اتصال بالمستودع. في هذه الحالة ، يتم استخراج جميع المعلومات الخاصة بمدير البرنامج المساعد من ملف metadata.txt الخاص ببيانات التعريف.

يصف الجدول أدناه مصدر المعلمات في النافذة مع معلومات حول المكون الإضافي ، في كل حالة من الحالات الثلاث:
معلمة في نافذة معلومات المكوِّن الإضافي في مدير مكون QGIS الإضافي
المصدر الذي يتم اخذ المعامل منه قبل التركيب من المستودع
المصدر الذي يتم من خلاله اخذ المعامل عند تركيب البرنامج المساعد على الحاسب الخاص بك ووجود اتصال مع المستودع
المصدر الذي تؤخذ منه المعلمة عند تثبيت المكون الإضافي على جهاز الكمبيوتر الخاص بك ولا يوجد اتصال بالمستودع
اسم
plugins.xml (خاصية اسم علامة pyqgis_plugin)
plugins.xml (خاصية اسم علامة pyqgis_plugin)
metadata.txt
وصف
plugins.xml
metadata.txt
metadata.txt
حول
plugins.xml
metadata.txt
metadata.txt
الإصدار المثبت
metadata.txt  (معلمة الإصدار)
metadata.txt  (معلمة الإصدار)
الإصدار المتاح
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.



يجب أن يتم حزم كل مكون إضافي في المستودع في أرشيف مضغوط منفصل ، حيث يجب أن يكون المجلد الجذر موجودًا ، وفيه ملفات المكون الإضافي مع ملف metadata.txt. باستخدام اسم المجلد الجذر ، سيطابق مدير المكون الإضافي QGIS الإضافات المثبتة محليًا بالمكونات الإضافية المتاحة في المستودع. سيتم مناقشة ميزات هذه المقارنة أدناه في قسم الاتصال بين المكون الإضافي المحلي والمكون الإضافي في المستودع .

يجب أن يحتوي المكوّن الإضافي QGIS العملي على ملفين مطلوبين فقط في الدليل الخاص به:
 
  • __init__.py هو نقطة بداية المكوّن الإضافي. يجب أن يحتوي الملف على طريقة classFactory ().
  • metadata.txt - يحتوي على معلومات عامة حول المكون الإضافي.

يمكن العثور على مثال للمكوِّن الإضافي مع الحد الأدنى من الملفات هنا .

يمكنك دراسة هيكل المكونات الإضافية بمزيد من التفصيل في الوثائق الرسمية .

ملف البيانات الوصفية


كما ذكرنا من قبل ، يجب أن يكون في دليل كل مكون إضافي ملف metadata.txt يحتوي على معلومات عامة حول المكون الإضافي. يتم استخدام المعلومات منه لعرضه في مدير مكون QGIS ، والبحث عن مكون إضافي ، وما إلى ذلك.

يجب أن يكون هيكل ملف البيانات الوصفية على النحو التالي:

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

أو:

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

يمكنك استخدام النقطتين أو الرمز "=" كفاصل لاسم المعلمة وقيمتها. ليس من الضروري وجود نوع محدد فقط في ملف بيانات تعريف واحد. لا تؤثر المسافات قبل وبعد الفاصل على قراءة البيانات من metadata.txt ، وبالتالي يمكن أن تكون بأي كمية أو غائبة تمامًا. لاحظ أيضًا أن الكلمة الرئيسية "[عام]" في بداية ملف البيانات الوصفية مطلوبة.

المعلمات المطلوبة ، والتي بدونها قد يتم مقاطعة البرنامج المساعد ، هي كما يلي:

  • الاسم - اسم المكون الإضافي ،
  • الإصدار - إصدار المكون الإضافي ،
  • qgisMinimumVersion هو الحد الأدنى من إصدار QGIS المناسب للعمل مع هذا البرنامج المساعد.

يمكنك العثور على معلومات حول المعلمات الأخرى هنا .

plugins.xml


يجب أن يحتوي كل مستودع على ملف plugins.xml يوفر معلومات عامة لمدير البرنامج المساعد عن كل الملحقات المتاحة في المستودع.

ملحوظة
, .

يجب أن يكون هيكل plugins.xml كما يلي:

<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>

المعلمات المطلوبة التي بدونها يمكن مقاطعة المستودع هي التالية:

  • name - اسم المكون الإضافي (يشار إليه كمعلمة لعلامة pyqgis_plugin)
  • الإصدار - إصدار المكون الإضافي (محدد كمعلمة لعلامة pyqgis_plugin) ،
  • qgis_minimum_version - الحد الأدنى من إصدار QGIS المناسب للعمل مع هذا البرنامج المساعد ،
  • download_url - url حيث يوجد الأرشيف المضغوط مع المكون الإضافي الخاص بك.

يوصى بدراسة مثال ملف plugins.xml من مستودع QGIS الرسمي ( استبدل الأرقام الموجودة في نهاية الرابط بإصدار QGIS المثبت على جهاز الكمبيوتر الخاص بك).

تلميح
plugins.xml, . xml.

العلاقة بين المكوّن الإضافي المحلي والمكوِّن الإضافي في المستودع


كيف يفهم مدير المكوّن الإضافي أن مكونًا إضافيًا معينًا مثبتًا على جهاز الكمبيوتر ومكوِّنًا إضافيًا في المستودع المتصل هو نفس المكون الإضافي ، على سبيل المثال ، للتحقق مما إذا كان هناك إصدار جديد من المكوّن الإضافي قد ظهر في المستودع؟

بدون الدخول في التفاصيل الفنية ، فإن قاعدة توصيل المكونات الإضافية هي كما يلي: يعتبر مدير المكون الإضافي QGIS المكون الإضافي المحلي والمكون الإضافي في المستودع هو نفس المكون الإضافي إذا تطابق اسم المجلد الجذر للمكون الإضافي إما مع النص حتى النقطة الأولى من علامة file_name ، أو إذا كانت علامة file_name مفقودة ، بنص إلى النقطة الأولى من عنصر المسار الأخير من علامة download_url.

بمعنى آخر ، إذا كانت علامة file_name موجودة في وصف المكوّن الإضافي من plugins.xml ، فسيتم استخراج الجزء إلى النقطة الأولى (المظلل بخط غامق) منه ، والذي يجب أن يكون بالضبط اسم المجلد الجذر للمكوِّن الإضافي المثبت بحيث يعتبره مدير المكوّن الإضافي QGIS واحدًا و نفس البرنامج المساعد. إذا كانت علامة file_name مفقودة ، فسيتم تحليل عنصر المسار الأخير من علامة download_url بنفس الطريقة. يجب أيضًا أن يكون الجزء الذي تم استخراجه منه إلى النقطة الأولى (مظللة بخط غامق) هو بالضبط اسم المجلد الجذر للمكون الإضافي المثبت بحيث يعتبره مدير المكون الإضافي QGIS نفس المكون الإضافي. إذا لم يكن هناك تطابق بين اسم المجلد الجذر والجزء المستخرج من file_name ، أو (إذا كان file_name مفقودًا) من download_url ، فإن المكونات الإضافية تعتبر مكونات إضافية مختلفة.

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



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



بالنظر إلى هذه القاعدة ، يوصى بإضافة علامة file_name في وصف الإضافات في ملف plugins.xml ، والذي لا يشير إلى اسم أرشيف zip الخاص بك ، ولكن اسم المجلد الجذر للمكون الإضافي الخاص بك ، والذي يمكنك إضافة إصدار أو معلومات أخرى إليه اختياريًا ، مع فصلها بنقطة. في هذه الحالة ، يمكنك تسمية الأرشيف المضغوط مع المكون الإضافي كما تريد ، بما في ذلك عن طريق فصل اسم المكون الإضافي وإصداره بواصلة ، كما هو معتاد في المستودع الرسمي.

ملحوظة
QGIS file_name .

أمثلة للمكونات الإضافية المصممة بشكل صحيح


مثال 1


هيكل ملف البرنامج المساعد


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


ملف Metadata.txt


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


ملف plugins.xml


<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>

في هذا المثال ، يتم الاتصال بين المكون الإضافي المثبت محليًا على جهاز الكمبيوتر الخاص بك والمكون الإضافي في المستودع من خلال اسم المجلد الجذر وعلامة download_url. لذلك ، يجب أن يتطابق تمامًا جزء اسم أرشيف مضغوط إلى النقطة الأولى واسم المجلد الجذر للمكون الإضافي.

مثال 2


هيكل ملف البرنامج المساعد


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


ملف Metadata.txt


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


ملف plugins.xml


<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>

في هذا المثال ، يتم الاتصال بين المكون الإضافي المثبت محليًا على جهاز الكمبيوتر الخاص بك والمكون الإضافي في المستودع من خلال اسم المجلد الجذر وعلامة file_name. في هذه الحالة ، قد يختلف جزء اسم الأرشيف المضغوط إلى النقطة الأولى واسم المجلد الجذر.

إنشاء مستودع


يجب أن يتكون مستودع المكونات الإضافية QGIS من ملف plugins.xml يوفر معلومات عامة لمدير المكونات الإضافية حول جميع المكونات الإضافية المتاحة في المستودع والمحفوظات المضغوطة التي تحتوي على المكونات الإضافية نفسها. يمكن استضافة المستودع على خدمات الويب مثل GitHub أو Bitbucket.

أحد المتطلبات الهامة لـ QGIS للتعرف على مثل هذا المستودع هو الوصول إلى الملفات من خلال رابط مباشر. يمكن القيام بذلك ، على سبيل المثال ، باستخدام صفحات Github أو صفحات Bitbucket. لن يعمل Google Drive أو DropBox لهذه الأغراض. لا يسمحون برابط مباشر لملف من النموذج ... / filename.extension.

توجد تعليمات لاستخدام GitHub لاستضافة موقع ويب ثابت هنا .

وتقع على تعليمات حول كيفية استخدام Bitbucket لاستضافة موقع على شبكة الانترنت ساكنة هنا .

كقاعدة ، تحتاج فقط إلى إعادة تسمية المستودع الخاص بك وفقًا للقالب:

username.imtqy.com (لـ GitHub)
أو
username.bitbucket.io (لـ Bitbucket)

بعد الإعدادات الضرورية ، سيبدو الرابط إلى مستودع QGIS كما يلي:

username.imtqy.com/plugins.xml (لـ GitHub)
أو
username.bitbucket.io/plugins.xml(لـ Bitbucket)

يجب تحديد هذا الرابط في حقل URL في مدير مكون QGIS عند توصيل مستودع جديد. إذا كان الاتصال بالمستودع ناجحًا ، فسيتم تعيين حالة المستودع على "متصل" ، وستظهر المكونات الإضافية الموضحة في ملف plugins.xml في قائمة المكونات الإضافية المتاحة.

All Articles