بناء إضافة لمنصة Discourse تنشر محتوى من ملفات محددة داخل مستودع مباشرة إلى موضوع معين
حالة الاستخدام المقصودة لإضافة من هذا النوع هي إدارة المحتوى أولاً على GitHub (مع التحكم في الإصدارات، وقضايا، وطلبات السحب، وما إلى ذلك)، مع الحفاظ على الرأس دائمًا متزامنًا مع موضوع محدد
تشمل حالات الاستخدام أشياء مثل الكتيبات، وقاعدة المعرفة، ومستودع الأفكار
على وجه التحديد، حالة الاستخدام الداخلية لدينا هي أننا نستخدم Discourse كمركز للمعرفة، لكننا نرغب في تحكم أكثر دقة في تحديث المحتوى وتعديله، وهنا يأتي دور تدفق Git
ملاحظات إضافية
يجب أن تعمل فقط مع ملفات .md
نود أن يكون هذا المشروع مفتوح المصدر (سنغطي تكاليف التطوير الأولية)
متى تحتاج إلى إنجازه؟
الجدول الزمني ليس عاجلاً، ولكن خلال الأشهر القليلة القادمة
ما هو الميزانية، بالدولار الأمريكي، التي يمكنك تقديمها لهذه المهمة؟
ليس واضحًا تمامًا نطاق العمل، لذا سنحتاج إلى تحديده أولاً.
ما الذي ينقص Discourse في هذا الصدد؟ هل يمكن تحسين Discourse لتلبية احتياجاتك بحيث لا تحتاج إلى استخدام GitHub على الإطلاق؟
أنت تذكر طلبات السحب (pull requests)، لذا ربما تكون الحاجة هي القدرة على طلب تغييرات تُراجع وتُوافق عليها من قبل شخص آخر قبل اعتماد التغيير النهائي؟ أعتقد أنه يمكن القيام بذلك بطريقة “Discourse” من خلال الرد على المنشور لطلب مراجعة، أو بتعيينه لشخص ما بعد إجراء التغيير. لقد حققت بعض النجاح في ضبط مؤقت للموضوع لحذف الردود تلقائياً، بحيث لا يتعثر الموضوع بسيل من الردود الصغيرة.
فكرة أخرى هي استخدام إضافة السياسة (policy plugin). يمكن إشعار مجموعة بأن موضوعاً ما قد تم تغييره وطلب تأكيد من أفرادها أنهم قرأوا التغيير ووافقوا عليه.
ومع ذلك، أعتقد أن هذه فكرة رائعة جداً وأود رؤية تنفيذها. أرى أنها قد تكون مفيدة حتى في قسم Meta! لدينا العديد من المواضيع هنا حول مستودعات GitHub، وسيكون من الجيد رؤية تحديثات ملفات readme.md الخاصة بتلك المستودعات في المنشور الأصلي (OP) حتى لا نضطر إلى صيانتها في مكانين.
بالنسبة لـ Discourse for Teams، قد تكون هذه الميزة مفيدة أيضاً، بحيث يمكن للفرق التي تستخدم GitHub بكثافة أن تستمر في استخدام Teams كمصدر وحيد للحقيقة المرجعي، دون الحاجة إلى تسجيل الدخول إلى GitHub في كل مرة. أعتقد أنه يمكن أن يكون جزءاً من إضافة مراجعة الكود أو مكملاً لها.
أهم شيء هنا هو التفرع (Branching). الدافع الأساسي هنا هو وجود آلية تسمح بتفرع شيء ما، ثم تحسينه ومراجعته، وأخيراً دمجه. وبالمثل، تتيح هذه الآلية للمراجع اتباع عملية مماثلة، حيث يقوم بإجراء تعديلات طفيفة على الفرع نفسه، مما يمنحه تحكماً أدق في التغييرات.
بينما أود لو كان ذلك هو الحال، فإن الأجزاء المفقودة ليست بسيطة:
التفرع (Branching)
دمج التغييرات بنقرة واحدة
هذه حيلة رائعة لأي شخص لا يهتم بجانب التفرع بقدر ما أهتم به في هذه الحالة.
يبدو أن هذا يمكن أن يكون مفيداً بشكل هائل بطرق عديدة. كلما وجدت الشخص المناسب لتوظيفه لهذا الغرض، سأود التعاون قليلاً. ربما يجد هذا الأداة طريقه في النهاية ليصبح إضافة “رسمية”! (لا أحد يستطيع إلا أن يأمل).
إذا كانت حالة الاستخدام المركزية هي ملفات .md واللغة الشائعة، فإنني ما زلت أعتقد أن Discourse يتمتع بميزة كبيرة كونه منصة محادثة تدعم التفاعل الحقيقي بين الأشخاص بلغة بسيطة. كما ذكرت، عادةً ما ترغب في أن تحدث هذه المناقشة المتعلقة بالمعرفة على Discourse. لذا أعتقد أنه يستحق النظر في كيفية إبقاء معظمها هناك، وإلا فإنك ستصرف الانتباه والتركيز بعيدًا عن ما تريد أن يكون منصتك الرئيسية.
يمكنني تخيل إعداد مثل:
ملف Readme.md كموضوع ويكي على Discourse، متزامن مع GitHub
مناقشة هذا Readme كمنشورات متابعة على Discourse، يتم حذفها بانتظام (مشابهة للإعداد الحالي على meta)
ملفات ومجلدات إضافية في مستودع يتم إدارتها على GitHub مع فروع. يمكن مزامنة هيكل المستودع الحالي مع Discourse، بحيث يظهر مع منشور الويكي كجدول محتويات.