فرق أرقام الإصدار للبيانات الجديدة في الملفات المرتبطة (الوثائق)

StackOverflow https://stackoverflow.com/questions/986521

سؤال

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

كيف تتعامل مع رقم الإصدار في الملفات المرتبطة مثل صفحات الإنسان، إلخ.

يتم بناء البرنامج باستخدام سلسلة أداة GNU حتى تتوفر Autoconf، Automake، إلخ وتستخدم لعدد إصدار التطبيق. بحيث يمكن إعادة استخدام المعلومات.

يستخدم git كأداة VCS.

يمكن أن يكون أحد الاحتمالات اضافية، جديدة الهدف في makefile.am الذي يقوم به SED / AWK لاستبدال رقم الإصدار والتواريخ في جميع الملفات المرتبطة. يمكن استدعاء هذا الهدف مرة واحدة في البداية (بعد التفرع) لتطوير إصدار جديد.

ثم يمكن للمشروع أن يبني بالمعلومات الصحيحة عندما يفعل الناس بوابة استنساخ من المشروع أو عند إجراء Tarball الإصدار. بالطبع يجب أن نتذكر المرء تشغيل هذا الهدف عند بدء تطوير إصدار جديد.

سيكون هناك خيار آخر هو القيام بديل SED / AWK مع خطاف للمستهدف Dist. ولكن هذا من شأنه أن يضع مستودع GIT للمشروع في حالة لم يكن هناك رقم إصدار صحيح مرتبط بالملفات المرتبطة بها.

أفضل القيام الحل الأول لأنه يسجل أيضا صيح رقم الإصدار داخل تاريخ GIT.

عند القيام بديل SED / AWK هل تفضل القيام بذلك "في الملف" أو مع قالب في ملف Liek Liek Autoconf / Automake. أرى كل من المزايا والعيوب في كلتا الطريقتين.

كيف تتعامل مع النسخة من الملفات المرتبطة. هل تغيرها في بداية مرحلة التطوير، هل تغيرها عندما قبل الشحن, ، هل تفعل بديل infile أو هل تفضل استخدام قالب؟

شكرًا.

هل كانت مفيدة؟

المحلول

أعتقد أن الطريقة القياسية للقيام بذلك هي استخدام نظام ربط GIT و M4 أو SED / AWK للقيام بالبحث / استبدال كما تقترح. تحتاج فقط إلى رمز خاص مع تعليق في كل ملف (ربما في الرأس).

هنا هو المرجع على githooks. وهنا عدد قليل من الصفحات التي كتبها أشخاص حل نفس المشكلة:

كل من هذه الاعتماد على تخزين رقم الإصدار في ملف في مكان ما في شجرة المصدر الخاصة بك.

لقد مرت أيضا باستدعاء 0 يدعي أن أتمتة إنشاء الإصدار (وإعداد أرقام الإصدار).

أخيرا، فيما يتعلق بأرقام الإصدار، يتم تناول هذا في العديد من الأسئلة الأخرى:

نصائح أخرى

الحل الشائع في الوقت الحاضر هو استدعاء AC_INIT مع حجة M4_esyscmd لتوليد الإصدار من GIT. على سبيل المثال، يحتوي تكوين Autoconf على الأسطر:

AC_INIT ([gnu autoconf]، m4_esyscmd ([build-aux / git-version-gen .tarball-version])، [bug-autoconf@gnu.org])

حيث يعد Build-Aux / Git-Version-Gen برنامج نصي بسيط يستدعي "وصف GIT" لتوليد رقم الإصدار. (انظر gnulib)

هناك عيوب لهذا النهج، ولكن يمكن أن تكون فعالة.

نحن نستخدم نظام Classic Major.minor.patch، الذي يتم تطبيقه على الإفراج عن المرشحين ك "علامة"، لدينا برنامج نصي يلتزم ارتكاب رقم الإصدار، بدلا من استخدام كائن علامة GIT ". تتم جميع ترقيم الإصدار "باليد". يعمل بشكل جيد بشكل معقول، لأن رقم الإصدار يتم إنشاؤه بواسطة البرامج النصية "الإصدار على التدريج"، والتي هي في وقت لاحق بكثير في عملية التطوير. نحن لا نزعج باستخدام أي من السنانير GIT، لأننا لا نحتاج حقا، إذا لم يغادر الالتزام بيئة التطوير، فلا يحتاج إلى معرف بخلاف رمز Sha الداخلي.

نحاول إنفاذ أن يكون كل إصدار "التصحيح" متوافقا مع إصدارات أخرى مع نفس العلامة الرئيسية الطفيفة.

بهذه الطريقة، يجب على أي شيء به علامة بناء على الأقل، لكن من الممكن أو من المحتمل جدا أن يعمل على المواصفات.

سيكون الصقل هو الحصول على قسم ضمان الجودة لإنشاء كائن علامة موقعة على أي شيء "معتمد من QA" ولكن الآن نحن نعتمد الآن على الأوراق الأخرى لذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top