هذا هو أمر guestfs-hacking الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
guestfs-hacking - التوسع والمساهمة في libguestfs
الوصف
صفحة الدليل هذه مخصصة للمتسللين الذين يريدون توسيع libguestfs نفسه.
نبذة عامة OF ال مصدر CODE
يقع مصدر Libguestfs في مستودع جيثب
https://github.com/libguestfs/libguestfs
كميات كبيرة من التعليمات البرمجية المعيارية في libguestfs (RPC ، الارتباطات ، التوثيق) هي
ولدت. هذا يعني أن العديد من ملفات المصدر ستبدو مفقودة من ملف
بوابة الخروج مباشرة. يجب عليك تشغيل المولد ("./autogen.sh && make -C
منشئ ") من أجل إنشاء تلك الملفات.
يستخدم Libguestfs نظام بناء قائم على الأدوات الآلية ، مع وجود الملفات الرئيسية تكوين
Makefile.am. مولد كهربائي يحتوي الدليل الفرعي على المولد ، بالإضافة إلى الملفات التي تصف
API. ال SRC يحتوي الدليل الفرعي على مصدر للمكتبة. ال جهاز الخفي
تحتوي الدلائل الفرعية على مصدر الكود الذي ينشئ الجهاز ، والرمز
الذي يعمل في الجهاز على التوالي. يتم تناول الدلائل الأخرى في القسم
"SOURCE CODE SUBDIRECTORIES" أدناه.
بصرف النظر عن حقيقة أن جميع نقاط دخول واجهة برمجة التطبيقات تمر عبر بعض الأكواد التي تم إنشاؤها ، فإن المكتبة
صريح. (في الواقع ، حتى الكود الذي تم إنشاؤه مصمم ليكون قابلاً للقراءة ، ويجب أن يكون كذلك
أن تقرأ كرمز عادي). تعمل بعض الإجراءات بالكامل في المكتبة ، وتتم كتابتها كـ C
وظائف في الملفات تحت SRC. يتم توجيه البعض الآخر إلى البرنامج الخفي حيث (بعد بعض
إنشاء تنظيم RPC) تظهر كوظائف C في الملفات الموجودة ضمن الخفي.
للبناء من المصدر ، اقرأ أولاً ملف "README".
محلي* FILES
الملفات الموجودة في دليل المصدر الأعلى والتي تبدأ بالبادئة محلي* يتم تجاهلها بواسطة git.
يمكن أن تحتوي هذه الملفات على تكوين محلي أو نصوص برمجية تحتاجها لبناء libguestfs.
حسب الاصطلاح ، لدي ملف يسمى محلي وهو عبارة عن غلاف بسيط حوله
autogen.sh تحتوي على تخصيصات التهيئة المحلية التي أحتاجها:
. لوكالينف
./autogen.sh \
- مع الخلفية الافتراضية = libvirt \
--enable-gcc-warnings \
--تمكين- gtk-doc \
-ج
"$ @"
لذا يمكنني استخدام هذا لبناء libguestfs:
./localconfigure && make
إذا كان هناك ملف في دليل البناء العلوي يسمى لوكالينف، ثم سيتم الحصول عليها من قبل
"يصنع". يمكن أن يحتوي هذا الملف على أي متغيرات البيئة المحلية المطلوبة ، على سبيل المثال. للقفز
الاختبارات:
# استخدم ثنائي بيثون بديل.
تصدير PYTHON = python3
# تخطي هذا الاختبار ، إنه مكسور.
تصدير SKIP_TEST_BTRFS_FSCK = 1
نلاحظ أن لوكالينف تم تضمينه بواسطة Makefile العلوي (لذا فهو جزء Makefile). لكن اذا
يتم الحصول عليها أيضًا من خلال محلي ثم يتم استخدامه كبرنامج نصي للقذيفة.
ADDING A جديد API ACTION
نظرًا لإنشاء كميات كبيرة من التعليمات البرمجية المعيارية في libguestfs ، فإن هذا يجعل الأمر سهلاً
لتوسيع واجهة برمجة تطبيقات libguestfs.
لإضافة إجراء جديد لواجهة برمجة التطبيقات ، هناك تغييران:
1. تحتاج إلى إضافة وصف للمكالمة (الاسم ، المعلمات ، نوع الإرجاع ، الاختبارات ،
وثائق) إلى المولد / Actions.ml.
هناك نوعان من إجراءات واجهة برمجة التطبيقات ، بناءً على ما إذا كانت المكالمة تنتقل إلى ملف
البرنامج الخفي في الجهاز ، أو تتم خدمته بالكامل بواسطة المكتبة (انظر "الهندسة المعمارية" في
Guestfs-internals(3)). "guestfs_sync" في Guestfs(3) مثال على السابق ،
منذ إجراء المزامنة في الجهاز. "guestfs_set_trace" في Guestfs(3) هو
مثال على الأخير ، حيث يتم الاحتفاظ بعلامة التتبع في المقبض وجميع عمليات التتبع
على جانب المكتبة.
معظم الإجراءات الجديدة من النوع الأول ، وتتم إضافتها إلى قائمة "daemon_functions".
كل وظيفة لها رقم إجراء فريد مستخدم في بروتوكول RPC الذي تم تعيينه
لهذا الإجراء عندما ننشر libguestfs ولا يمكن إعادة استخدامها. خذ الأحدث
رقم الإجراء وزيادته.
بالنسبة للإجراءات الخاصة بالمكتبة فقط من النوع الثاني ، أضف إلى قائمة "non_daemon_functions".
نظرًا لأن المكتبة تخدم هذه الوظائف ولا تنتقل عبر RPC
آلية إلى الخفي ، فهذه الوظائف لا تحتاج إلى رقم إجراء ، وبالتالي فإن
تم ضبط رقم الإجراء على "-1".
2. تنفيذ الإجراء (في ج):
بالنسبة لإجراءات البرنامج الخفي ، قم بتنفيذ الوظيفة "do_ "في دليل" daemon / ".
بالنسبة لإجراءات المكتبة ، قم بتنفيذ الوظيفة "guestfs_impl_ "في" src / "
الدليل.
في كلتا الحالتين ، استخدم وظيفة أخرى كمثال لما يجب القيام به.
بعد إجراء هذه التغييرات ، استخدم "إجراء" للترجمة.
لاحظ أنك لست بحاجة إلى تنفيذ RPC أو روابط اللغة أو صفحات الدليل أو أي شيء
آخر. كل ذلك يتم إنشاؤه تلقائيًا من وصف OCaml.
ADDING اختبارات لأي AN API ACTION
يمكنك توفير صفر أو العديد من الاختبارات كما تريد لكل استدعاء API. يمكن أن تكون الاختبارات
تمت إضافته كجزء من وصف API (المولد / Actions.ml) ، أو في بعض الحالات النادرة
قد ترغب في إسقاط نص برمجي في "الاختبارات / * /". لاحظ أن إضافة برنامج نصي إلى "الاختبارات / * /" هو
أبطأ ، لذا استخدم الطريقة الأولى إن أمكن.
فيما يلي وصف لبيئة الاختبار المستخدمة عند إضافة اختبار API في الإجراءات.
تحتوي بيئة الاختبار على 4 أجهزة كتلة:
/ ديف / حزب العمل الديمقراطي 500MB
جهاز كتلة عام للاختبار.
/ ديف / زنة 500MB
/ ديف / sdb1 هو نظام ملفات ext2 يستخدم لاختبار عمليات كتابة نظام الملفات.
/ ديف / مركز إيداع الأوراق المالية 10MB
تُستخدم في بعض الاختبارات حيث يلزم وجود جهازي كتلة.
/ ديف / SDD
ISO مع محتوى ثابت (انظر الصور / test.iso).
لتكون قادرًا على إجراء الاختبارات في فترة زمنية معقولة ، فإن جهاز libguestfs و
يتم إعادة استخدام أجهزة الحظر بين الاختبارات. لذلك لا تحاول اختبار "guestfs_kill_subprocess" في
Guestfs(3): -x
يبدأ كل اختبار بسيناريو أولي ، يتم تحديده باستخدام أحد تعبيرات "التهيئة *" ،
موضح في مولد / أنواع. هذه تهيئة الأقراص المذكورة أعلاه في ملف
بطريقة خاصة كما هو موثق في type.ml. يجب ألا تفترض أي شيء عن
المحتويات السابقة للأقراص الأخرى التي لم تتم تهيئتها.
يمكنك إضافة شرط أساسي إلى أي اختبار فردي. هذا فحص وقت التشغيل ،
والذي ، إذا فشل ، يؤدي إلى تخطي الاختبار. مفيد إذا كان اختبار الأمر الذي
قد لا يعمل على جميع الأشكال المختلفة لبناءات libguestfs. اختبار له متطلبات مسبقة
تعني كلمة "دائمًا" الجري دون قيد أو شرط.
بالإضافة إلى ذلك ، يمكن للرازم تخطي الاختبارات الفردية عن طريق تعيين متغيرات البيئة من قبل
تشغيل "تحقق".
SKIP_TEST_ _ = 1
على سبيل المثال: "SKIP_TEST_COMMAND_3 = 1" يتخطى الاختبار رقم 3 لـ "guestfs_command" في Guestfs(3).
أو:
SKIP_TEST_ = 1
على سبيل المثال: "SKIP_TEST_ZEROFREE = 1" يتخطى الكل "guestfs_zerofree" في Guestfs(3) اختبارات.
يمكن للرازم تشغيل اختبارات معينة فقط من خلال ضبط على سبيل المثال:
TEST_ONLY = "vfs_type zerofree"
يرى الاختبارات / c-api / tests.c لمزيد من التفاصيل حول كيفية عمل متغيرات البيئة هذه.
تفكيك جديد API الإجراءات
اختبار عمل الإجراءات الجديدة قبل إرسالها.
يمكنك استخدام guestfish لتجربة أوامر جديدة.
يعد تصحيح أخطاء البرنامج الخفي مشكلة لأنه يعمل داخل بيئة صغيرة. لكن
يمكنك fprintf الرسائل في البرنامج الخفي إلى stderr ، وستظهر إذا كنت تستخدم ملفات
"guestfish -v".
ADDING A جديد لغة ربط
يجب إنشاء جميع روابط اللغة بواسطة المولد (انظر ملف مولد كهربائي دليل فرعي).
لا توجد وثائق لهذا حتى الآن. نقترح عليك إلقاء نظرة على ارتباط موجود ، على سبيل المثال.
مولد / ocaml.ml or المولد / perl.ml.
ADDING اختبارات لأي لغة ملزمة
يجب أن تأتي ارتباطات اللغة مع الاختبارات. اختبار الروابط اللغوية سابقًا كان
إلى حد ما مخصصة ، لكننا نحاول إضفاء الطابع الرسمي على مجموعة الاختبارات لكل لغة
يجب استخدام الربط.
حاليًا فقط روابط OCaml و Perl هي التي تنفذ بالفعل مجموعة كاملة من الاختبارات ، و
روابط OCaml متعارف عليها ، لذا يجب عليك محاكاة ما تفعله اختبارات OCaml.
هذا هو نظام الترقيم المستخدم في الاختبارات:
- 000+ الاختبارات الأساسية:
010 تحميل المكتبة
020 خلق
030 إنشاء الأعلام
040 إنشاء مقابض متعددة
050 اختبار الإعداد والحصول على خصائص التكوين
060 إغلاق صريح
065 إغلاق ضمني (في لغات GC'd)
070 أوبتارج
- 100 إطلاق وإنشاء أقسام و LVs وأنظمة ملفات
- أكثر من 400 حدث:
410 حدث وثيق
420 رسالة سجل
430 رسالة تقدم
- 800+ اختبار انحدار (خاص باللغة)
- 900+ أي اختبارات أخرى مخصصة للغة
لتوفير الوقت عند إجراء الاختبارات ، يجب فقط تشغيل المقبض 100 ، 430 ، 800+ ، 900+.
التنسيق CODE
تلتزم شفرة مصدر C الخاصة بنا عمومًا ببعض اصطلاحات تنسيق التعليمات البرمجية الأساسية. ال
قاعدة الشفرة الحالية ليست متسقة تمامًا في هذه الجبهة ، لكننا نفضل ذلك
يتم تنسيق التعليمات البرمجية المساهمة بالمثل. باختصار ، استخدم مسافات وليس علامات تبويب للمسافات البادئة ،
استخدم مسافتين لكل مستوى مسافة بادئة ، وبخلاف ذلك ، اتبع أسلوب K&R.
إذا كنت تستخدم Emacs ، فأضف ما يلي إلى أحد ملفات بدء التشغيل (على سبيل المثال ، ~ / .emacs),
للمساعدة في ضمان حصولك على المسافة البادئة الصحيحة:
؛؛؛ في libguestfs ، ضع مسافة بادئة بمسافات في كل مكان (وليس علامات تبويب).
؛؛؛ الاستثناءات: أوضاع Makefile و ChangeLog.
(إضافة ربط 'ربط ملف
(lambda () (if (واسم ملف المخزن المؤقت
(سلسلة مطابقة "/ libguestfs \\>"
(اسم ملف المخزن المؤقت))
(ليس (اسم وضع سلسلة يساوي "تغيير السجل"))
(ليس (اسم وضع سلسلة - يساوي "Makefile")))
(setq مسافة بادئة-علامات تبويب-وضع لا شيء))))
؛؛؛ عند تحرير مصادر C في libguestfs ، استخدم هذا النمط.
(إلغاء تشغيل libguestfs-c-mode ()
"الوضع C مع الإعدادات الافتراضية المعدلة للاستخدام مع libguestfs."
(تفاعلي)
(c-set-style "K&R")
(setq c- المسافة البادئة-المستوى 2)
(setq c-basic-offset 2))
(إضافة هوك 'c-mode-hook
'(lambda () (if (string-match "/ libguestfs \\>"
(اسم ملف المخزن المؤقت))
(libguestfs-c-الوضع))))
اختبارات الدخول بتحديث التغيرات
قم بتمكين التحذيرات عند التجميع (وأصلح أي مشاكل يعثر عليها):
./configure --enable-gcc-warnings
الأهداف المفيدة هي:
"تحقق"
يدير مجموعة الاختبار العادية.
يتم تنفيذ ذلك باستخدام هدف التشغيل التلقائي "TESTS". رؤية automake
وثائق للحصول على التفاصيل.
"جعل الاختيار valgrind"
يدير مجموعة فرعية من مجموعة الاختبار تحت valgrind.
اي Makefile.am في الشجرة التي تحتوي على "check-valgrind:" سيتم تشغيل الهدف بواسطة هذا
قاعدة.
"قم بفحص valgrind-local-guest"
يشغل مجموعة فرعية من مجموعة الاختبار تحت valgrind باستخدام ضيوف libvirt المثبتين محليًا
(يقرأ فقط).
"جعل الاختيار المباشر"
يجري جميع الاختبارات باستخدام الجهاز الافتراضي الخلفي. هذا فقط له أي تأثير إذا كان غير-
تم تحديد الخلفية الافتراضية باستخدام "./configure --with-default-backend = ..."
"جعل الاختيار valgrind مباشرًا"
قم بتشغيل مجموعة فرعية من مجموعة الاختبار تحت valgrind باستخدام الواجهة الخلفية للجهاز الافتراضي.
"جعل الاختيار uml"
يقوم بتشغيل جميع الاختبارات باستخدام الواجهة الخلفية لـ Linux وضع المستخدم.
نظرًا لعدم وجود موقع قياسي لنواة Linux-Mode Linux ، فأنت لديك لتعيين
"LIBGUESTFS_HV" للإشارة إلى صورة kernel ، على سبيل المثال:
جعل check-uml LIBGUESTFS_HV =~ / د / لينكس أوم / vmlinux
"جعل check-valgrind-uml"
يقوم بتشغيل جميع الاختبارات باستخدام الواجهة الخلفية لـ Linux وضع المستخدم ، ضمن valgrind.
كما هو مذكور أعلاه ، يجب عليك ضبط "LIBGUESTFS_HV" للإشارة إلى النواة.
"إجراء فحص مع-upstream-qemu"
يجري جميع الاختبارات باستخدام ثنائي qemu محلي. إنه يبحث عن ثنائي qemu في QEMUDIR
(الافتراضي إلى $ HOME / d / qemu) ، ولكن يمكنك ضبط هذا على دليل آخر في الأمر
الخط ، على سبيل المثال:
قم بالتحقق من خلال-upstream-qemu QEMUDIR = / usr / src / qemu
"إجراء فحص مع-upstream-libvirt"
يجري جميع الاختبارات باستخدام libvirt المحلي. هذا فقط له أي تأثير إذا كان libvirt الخلفية
تم تحديده باستخدام "./configure --with-default-backend = libvirt"
إنه يبحث عن libvirt في LIBVIRTDIR (الافتراضي إلى $ HOME / d / libvirt) ، ولكن يمكنك ضبط هذا
إلى دليل آخر في سطر الأوامر ، على سبيل المثال:
إجراء فحص باستخدام-upstream-libvirt LIBVIRTDIR = / usr / src / libvirt
"جعل عملية التحقق بطيئة"
يقوم بإجراء بعض الاختبارات البطيئة / الطويلة التي لا يتم تشغيلها افتراضيًا.
اي Makefile.am في الشجرة التي تحتوي على "تحقق بطيء:" سيتم تشغيل الهدف وفقًا لهذه القاعدة.
"تحقق من الكل"
يعادل تشغيل جميع قواعد "إجراء الاختيار *".
"جعل الشيك الإفراج"
يقوم بتشغيل مجموعة فرعية من قواعد "make check *" المطلوبة لتمريرها قبل أن تصبح كرة tarball
مطلق سراحه. حاليا هذا:
· يفحص
تحقق من valgrind
· الاختيار المباشر
تحقق من valgrind المباشر
· تحقق بطيء
"قم بفحص التثبيت"
قم بتشغيل "check check" على النسخة المثبتة من libguestfs.
إصدار libguestfs المثبت قيد الاختبار وإصدار libguestfs
يجب أن تكون شجرة المصدر هي نفسها.
القيام به:
./autogen.sh
اجعلها نظيفة ||:
جعل
جعل التثبيت تحقق
شيطان CUSTOM طباعة الأشكال
في الكود الخفي ، أنشأنا مُنسِّقات printf مخصصة٪ Q و٪ R ، والتي تُستخدم في
هل شل الاقتباس.
٪ Q سلسلة مقتبسة عن قذيفة بسيطة. يتم الهروب من أي مسافات أو أحرف قذيفة أخرى من أجلك.
٪ R مثل٪ Q فيما عدا أن السلسلة تعامل كمسار مسبوق بواسطة sysroot.
فمثلا:
asprintf (& cmd، "cat٪ R"، مسار)؛
سينتج "cat / sysroot / some \ path \ with \ space"
ملحوظة: Do ليس استخدمها عند تمرير المعلمات إلى "الأمر {، r، v، rv} ()"
المهام. لا يلزم ذكر هذه المعلمات لأنه لم يتم تمريرها عبر
قذيفة (بدلاً من ذلك ، مباشرة إلى exec). ربما تريد استخدام وظيفة "sysroot_path ()"
ومع ذلك.
تقديم بتحديث جديد API الإجراءات
إرسال التصحيحات إلى القائمة البريدية: http://www.redhat.com/mailman/listinfo/libguestfs
CC إلى [البريد الإلكتروني محمي].
تدويل (I18N) الدعم
نحن ندعم i18n (gettext على أي حال) في المكتبة.
ومع ذلك ، تأتي العديد من الرسائل من البرنامج الخفي ، ولا نقوم بترجمتها في الوقت الحالي.
أحد الأسباب هو أن الجهاز بشكل عام يحتوي على جميع الملفات المحلية التي تمت إزالتها منه ، لأن
يشغلون مساحة كبيرة. لذلك علينا أن نقرأ بعضًا منها ، بالإضافة إلى نسخ ملفات
ملفات PO في الجهاز.
رسائل التصحيح لا تُترجم أبدًا ، لأنها مخصصة للمبرمجين.
مصدر CODE الأقسام الفرعية
محاذاة
فضيلة محاذاة المسح(1) القيادة والتوثيق.
جهاز
يقوم جهاز libguestfs ببناء البرامج النصية وما إلى ذلك.
سحق
البرامج النصية لإكمال علامة التبويب Bash.
بناء aux
برامج نصية مختلفة للبناء تستخدمها الأدوات الآلية.
باني
باني الفضيلة(1) القيادة والتوثيق.
قط إنّ فضيلة القط(1) نظم ملفات Virt-files(1) Virt-log(1) و الفضيلة ل(1) أوامر و
كابل بيانات.
contrib
مساهمات خارجية ، أجزاء تجريبية.
تصميم
Virt-تخصيص(1) القيادة والتوثيق.
الخفي
البرنامج الخفي الذي يعمل داخل جهاز libguestfs وينفذ الإجراءات.
df الفضيلة df(1) القيادة والتوثيق.
بنك دبي الإسلامي الفضيلة ديب(1) القيادة والتوثيق.
فرق
فضيلة فرق(1) القيادة والتوثيق.
الوثيقة صفحات دليل متنوعة.
تحرير
فضيلة تحرير(1) القيادة والتوثيق.
أمثلة
مثال على كود API.
سمك
Guestfish(1) ، وقذيفة سطر الأوامر ، ونصوص شل المختلفة المبنية في الأعلى مثل
Virt-Copy-in(1) فضيلة النسخ(1) فيرت-تار-إن(1) فضيلة القطران(1).
شكل
شكل الفضيلة(1) القيادة والتوثيق.
فتيل
Guestmount(1) ، FUSE (نظام ملفات userpace) مبني على قمة libguestfs.
مولد كهربائي
المولد المهم للغاية ، المستخدم لتوليد كميات كبيرة تلقائيًا من
رمز C المعياري لأشياء مثل RPC والربط.
الحصول على نواة
Virt-get-kernel(1) القيادة والتوثيق.
جنوليب
يستخدم Gnulib كمكتبة قابلية للنقل. يتم تضمين نسخة من gnulib أدناه.
مفتش
المفتش الفضيلة(1) ، مفتش صورة الآلة الافتراضية.
شعار
الشعار المستخدم في الموقع. بالمناسبة ، تسمى السمكة آرثر.
m4 وحدات الماكرو M4 المستخدمة بواسطة autoconf.
جعل FS
Virt-Make-FS(1) القيادة والتوثيق.
مليب
مكتبات مختلفة ورمز مشترك يستخدمه Virt-resize(1) والأدوات الأخرى التي هي
مكتوب في OCaml.
p2v Virt-p2v(1) الأمر والتوثيق والبرامج النصية لبناء أو قرص Virt-p2v ISO
صورة.
po ترجمات سلاسل gettext بسيطة.
مستندات po
البنية التحتية للإنشاء وملفات PO لترجمات manpages وملفات POD.
في النهاية سيتم دمج هذا مع po الدليل ، ولكن هذا بالأحرى
معقد.
إنقاذ
فضيلة الإنقاذ(1) القيادة والتوثيق.
تغيير حجم
Virt-resize(1) القيادة والتوثيق.
تناثر
فضيلة متناثرة(1) القيادة والتوثيق.
SRC رمز المصدر إلى مكتبة C.
SYSPREP
Virt-sysprep(1) القيادة والتوثيق.
اختبارات
الاختبارات.
بيانات الاختبار
الملفات وبيانات الاختبار الأخرى المستخدمة في الاختبارات.
أداة الاختبار
أداة اختبار للمستخدمين النهائيين لاختبار ما إذا كانت تركيبة qemu / kernel الخاصة بهم ستعمل مع
libguestfs.
TMP يُستخدم للملفات المؤقتة عند تشغيل الاختبارات (بدلاً من / تمة إلخ). السبب هو
حتى تتمكن من إجراء عدة اختبارات متوازية لـ libguestfs دون الحصول على مجموعة واحدة من
اختبارات الكتابة فوق الجهاز الذي تم إنشاؤه بواسطة جهاز آخر.
أدوات
أدوات سطر الأوامر مكتوبة بلغة Perl (Virt-win-reg(1) وغيرها الكثير).
v2v الفضيلة v2v(1) القيادة والتوثيق.
موقع الكتروني
إنّ http://libguestfs.org ملفات الموقع.
CSHARP
إرلانغ
كائن
golang
هاسكل
جافا
هلال
لغة كامل الموضوعية
فب
بيرل
الثعبان
ياقوت
ارتباطات اللغة.
صناعة A مستقرة RELEASE
عندما نقوم بإصدار مستقر ، هناك عدة خطوات موثقة هنا. انظر "LIBGUESTFS
أرقام الإصدار "في Guestfs(3) للحصول على معلومات عامة حول سياسة الفرع المستقر.
· تحقق من عمل "make && make check" على الأقل في Fedora و Debian و Ubuntu.
تحقق من ". / تكوين - بدون libvirt" يعمل.
· وضع اللمسات الأخيرة Guestfs-release-notes.pod
· ادفع واسحب من زناتة.
تشغيل:
دفع zanata
لدفع أحدث ملفات POT إلى Zanata. ثم اركض:
./زاناتا-pull.sh
وهو عبارة عن غلاف لسحب أحدث ترجمة * .po الملفات.
* النظر في تحديث gnulib لأحدث إصدار المنبع.
· إنشاء أدلة جديدة مستقرة وتطوير تحت http://libguestfs.org/download.
· يحرر الموقع / index.html.in.
· اضبط الإصدار (بتنسيق تكوين) إلى الجديد مستقر الإصدار ، أي. 1.XX.0 ، والالتزام
ذلك:
./localconfigure
جعل distclean -k
./localconfigure
جعل && توزيع التوزيع
اجعل التزام المشرف
جعل علامة المشرف
· إنشاء فرع مستقر في git:
فرع بوابة مستقر -1.XX
أصل بوابة دفع مستقر -1.XX
· قم بالإفراج الكامل عن الفرع المستقر.
· قم بتعيين الإصدار إلى الإصدار التطويري التالي والالتزام بذلك. اختياريا القيام بكامل
الافراج عن فرع التنمية.
استخدم Guestfs-hacking عبر الإنترنت باستخدام خدمات onworks.net