كيفية الإعلان عن التغييرات غير المتوافقة مع الخلف في مشروع OSS؟

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

سؤال

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

لذلك السؤال هو: كيفية الإعلان عن التغييرات غير المتوافقة مع المستقبل إلى المشروع للخيط (المصدر المفتوح), ، بحيث يمكن للمستخدمين الاستعداد لهم، وإما تغيير استخدامهم، أو تكوين البرنامج لاستخدام السلوك القديم.

لأنه مشروع OSS، يتم تعبئتها من خلال توزيعات مختلفة بشكل مستقل، وقد يتم ترقيتها تلقائيا دون تدخل المستخدم. ثم التغيير غير المتوافق مع الخلف قد يفسد أحداث سير العمل (نصوص الطرف الثالث على سبيل المثال).

تعتبر الأفنيوز حاليا (وتستخدم):

  • قائمة البريد الإلكتروني للمشروع
  • الصفحة الرئيسية للمشروع
  • ملاحظات الإصدار (تحذير أولا، ثم الإعلان)
  • المشرفون بلوق

تحرير 1: سيحدث هذا التغيير (غير متوافق مع الوراء) في بعض رائد إفراج.

تتغير جميع التغييرات إما إضافة ضمانات (رفض الأوامر التي يمكن أن تخلط بين مستخدمي مبتدئين)، أو تغيير الإعدادات الافتراضية إلى قيم أكثر عقلانية.

تحرير 2: في الفترة الانتقالية، يتم تغيير التكوين الافتراضي (المقصود أن يتم تغييره إلى رفض / رفض الافتراضي) إلى حذر, مع وصف كيفية تشغيل تحذير، والتي ستحمي أيضا من التغيير غير المؤهل للخلف في السلوك الافتراضي.

ولكن إذا كان النظام الآلي الذي قد لا يساعد ...


المشروع في السؤال هو شخص سخيف, ، نظام التحكم في الإصدار الموزع؛
يرى إعطاء التحذير المبكر للمستخدمين في مجلة جيتر (جونيو جيمانو بلوق)

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

المحلول

  • تغيير تخصص رقم الإصدار
  • أعلن ذلك من خلال جميع الأفنامات تحت تصرفكم
  • أضف إعلان بارز في README
  • أضف التعليمات البرمجية التي يتحول بين القديم والجديد إذا كانت DB أو تغييرات أخرى مطلوبة
  • إضافة رمز يكتشف استخدام الأساليب المستهلكة وتخزين البيانات وغيرها وتنبيه المستخدم قبل إجراء التغييرات المدمرة
  • اسأل أسئلة الأسئلة الشائعة ذات الصلة على مواقع الويب الرئيسية ل Q / A عندما يكون لدى الأشخاص استفسارات الإجابة فورية وواضحة باستخدام بحث بسيط

لكن رقم الإصدار الرئيسي هو الهدف الأساسي - يتوقع الناس 1.x إلى 2.x التحولات للتسبب في مشكلات، وأكثر حذرا عند الترقية.

-Adam.

نصائح أخرى

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

الحصول على تحذيرات من القادمة incompatibilites عندما أكون فعليا استخدام الأوامر التي ستتغير مفيدة بشكل خاص، خاصة مع التغييرات في الإعدادات الافتراضية. شيء مثل:

 $ git foo  
 Note: git foo currently defaults to HEAD. Starting with
 version 2.0, git foo will instead default to master.

يمكنني الذهاب ل RSS (إذا كان موجودا)، Twitter (إذا كان موجودا)، القائمة البريدية (البريد لا يقل عن 3 مرات مثل التحديث يغلق)، أو الصفحة الرئيسية (جعلها يتناقض جدا، لذلك من السهل أن نرى) ومدونة، بالطبع وبعد يتم قراءة ملاحظات الإصدار بالكاد، لذا اعتبرها نقطة المعلومات الأخيرة.

(لقد نشرت هذا كإجابة الأولى، ولكن لم تظهر)

كل ما سبق زائد.

إذا كان لديك تغيير حيث:

سيتغير بناء الجملة الدقيق لأمر غير مدمر ليكون أمر مدمر

لا أرى أي خيار ولكن جعل التغيير بدلا من ذلك أكثر التخريبية لتقديم الأمر القديم غير صالح تماما بحيث إذا ترقيات المستخدم والمحاولات (أو ربما محاولات البرنامج النصي) الأمر القديم يتم إنهاء رسالة خطأ وصفية على Stderr. باستخدام Stderr للرسائل التحذيرية على الأوامر ذات التغييرات الدقيقة (أو غير الدقيقة للغاية) وهي غير مدمرة هي أيضا فكرة جيدة. تعريف المدمرة هو أكثر تعقيدا إلى حد ما في مستودع مصدر

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

نظرا لأن التغيير المحدد الذي تشير إليه هو إزالة المؤسسات الإضافية المبنية، يجب أن يكون هذا جيدا، ربما لن أفرج عن نسخة واحدة مع المدمجات الإضافية في وضع غير وظيفي ولكني لا أعرف المشروع جيدا بما يكفي ليقوله بالتأكيد وبعد

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

فقط 0.02 دولار. تقدم بيئات التطوير الحديثة (على وجه التحديد، .NET) وسيلة للإبلاغ عن المطور التي تم إعلان بعض واجهات برمجة التطبيقات عفا عليها الزمن / إهمالها وسيتم إزالتها في الإصدارات المستقبلية. يحتوي Microsoft C / C ++ Compiler #pragma مهملة.

إذا لم يتم دعم أي من هذا في بيئتك، تعتمد على النسخة لتوفير ملاحظات compat.

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