عن المشروع
يصف المؤلفون Gopad بأنه واجهة ويب بسيطة لكتابة وتحديث المستندات القائمة على markdown، وهو مشابه لـ Etherpad ولكن بتركيز على كتابة وتنسيق markdown. يحتوي هذا المستودع، gopad-api، على جانب الخادم من المشروع، والذي تم تنفيذه بلغة Go، بينما تم بناء واجهة المستخدم باستخدام VueJS. يشير القائمون على المشروع صراحةً إلى أن المشروع في مرحلة تطوير نشط، وأنه لا يوجد إصدار مستقر بعد، ويجب توقع حدوث تغييرات جذرية قبل الإصدار الحقيقي الأول.
التثبيت والتغليف: تتوفر ملفات ثنائية مسبقة البناء من خلال إصدارات GitHub وموقع تحميل مخصص. كما يجهز المشروع مستودعات حزم DEB و RPM المستضافة بواسطة Cloudsmith، وصور حاويات منشورة على GHCR و Docker Hub و Quay، وصيغة Homebrew لمستخدمي macOS، وتتوفر الوثائق على gopad.eu. ويُنسب الفضل إلى Cloudsmith كمزود استضافة لمستودعات الحزم.
عملية البناء: يتم إدارة إصدارات الأدوات باستخدام mise؛ داخل المستودع، تقوم بتشغيل mise trust و mise install لتنشيطه وتثبيت كل ما هو محدد في mise.toml. خطوات البناء نفسها هي جزء من ملف مهام go-task، لذا فإن التسلسل الموثق هو استنساخ المستودع، ثم تشغيل task fe:install fe:build be:build، وأخيرًا تشغيل الملف الثنائي الناتج. يتم تضمين جميع الأصول الثابتة في الملف الثنائي، لذا لا يلزم وجود خادم ويب إضافي بخلاف تشغيل الملف التنفيذي.
سير عمل التطوير: تتوفر تكوينات DevContainer، بحيث يمكن للمساهمين الذين يستخدمونها البدء دون تثبيت mise على أنظمتهم الخاصة. يستخدم التطوير النشط مهمتي مراقبة (watch tasks) يتم تشغيلهما في علامات تبويب أو نوافذ طرفية منفصلة: task watch:server و task watch:frontend. تم توثيق خادم تطوير الخلفية (backend) ليعمل على localhost:8080 والواجهة الأمامية (frontend) على localhost:5173، مع ميزة إعادة التحميل السريع بحيث تعيد الخدمات التشغيل أو التحميل تلقائيًا عند تغيير الكود.
المساهمة والإصدارات: يتبع المشروع نظام conventional commits حتى يمكن إنشاء سجلات التغييرات لكل إصدار، ويطلب دمج الوظائف الجديدة أو الإصلاحات من خلال طلبات السحب (pull requests). يتبع ترقيم الإصدارات نظام semantic versioning للإشارة إلى ما إذا كان الإصدار يصلح أخطاءً، أو يضيف ميزات، أو يقدم تغييرات جذرية. بعد تثبيت الأدوات عبر mise، يقوم المساهمون بإعداد خطافات pre-commit باستخدام prek (المدار بواسطة mise) لأنواع خطافات pre-commit و commit-msg. وبمجرد دمج طلب السحب ونجاح عمليات البناء، يتم إنشاء إصدار جديد تلقائيًا مرة واحدة على الأقل في الأسبوع.
يجب إرسال التقارير الأمنية أولاً إلى gopad@webhippie.de. المشروع مرخص بموجب Apache-2.0، مع إسناد حقوق الطبع والنشر إلى Thomas Boerger بدءًا من عام 2018.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.