التخطي إلى المحتوى الرئيسي

دليل المساهم

مرحبًا بك في Casdoor! هذا الوثيقة تعمل كدليل حول كيفية المساهمة في Casdoor.

إذا وجدت أي معلومات غير صحيحة أو مفقودة، يرجى ترك تعليقاتك أو اقتراحاتك.

المشاركة

هناك العديد من الطرق للمساهمة في Casdoor. إليك بعض الأفكار للبدء:

  • استخدم Casdoor وأبلغ عن المشاكل. عند استخدام Casdoor، أبلغ عن أي مشاكل - سواء كانت أخطاء أو اقتراحات - على مناقشات GitHub أو على Discord قبل تقديم مشكلة على GitHub.
معلومات

يرجى استخدام اللغة الإنجليزية لوصف تفاصيل مشكلتك عند الإبلاغ عن مشكلة.

  • المساعدة في التوثيق. البدء بالمساهمة في التوثيق هو خيار جيد.

  • المساعدة في حل المشاكل. لدينا جدول يحتوي على مهام سهلة مناسبة للمبتدئين تحت مهام Casdoor السهلة، مع مستويات مختلفة من التحديات مصنفة بعلامات مختلفة.

المساهمة

إذا كنت مستعدًا لإنشاء طلب سحب، إليك سير العمل للمساهمين:

  1. قم بالتفرع إلى مستودعك الخاص.

  2. استنسخ تفرعك إلى مستودع محلي.

  3. أنشئ فرعًا جديدًا واعمل عليه.

  4. حافظ على تزامن فرعك.

  5. قم بالالتزام بتغييراتك. تأكد من أن رسالة الالتزام الخاصة بك موجزة.

  6. ادفع التزاماتك إلى مستودعك المتفرع.

  7. قم بإنشاء طلب سحب من فرعك إلى فرع الماستر الخاص بنا.

طلبات السحب

قبل أن تبدأ

Casdoor تستخدم GitHub كمنصة تطوير، وطلبات السحب هي المصدر الرئيسي للمساهمات.

إليك بعض الأشياء التي تحتاج إلى معرفتها قبل فتح طلب سحب:

  • تحتاج إلى توقيع CLA عندما تقوم بإنشاء طلب سحب لأول مرة.

  • اشرح لماذا تقدم طلب السحب وماذا سيفعل بالمستودع.

  • يسمح بالتزام واحد فقط. إذا كان الطلب المقدم (PR) يقوم بأكثر من شيء واحد، يرجى تقسيمه.

  • إذا تم إضافة ملفات جديدة، يرجى تضمين ترخيص Casdoor في أعلى الملف(ات) الجديد.

// Copyright 2022 The Casdoor Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

طلبات السحب الدلالية

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

تحذير

يجب أن تكون عناوين الطلبات المقدمة (PR) بأحرف صغيرة.

  1. fix: التزام من النوع fix يصلح خطأ في قاعدة الكود الخاصة بك.

    fix: prevent racing of requests
  2. feat: التزام من النوع feat يقدم ميزة جديدة إلى قاعدة الكود.

    feat: allow provided config object to extend other configs
  3. docs: التزام من النوع docs يضيف أو يحسن التوثيق.

    docs: correct spelling of CHANGELOG

لمزيد من التفاصيل، يرجى الرجوع إلى صفحة الالتزامات التقليدية.

ربط الطلبات المقدمة (PRs) بالمشكلات (Issues)

يمكنك ربط طلب سحب بمشكلة لإظهار أن الإصلاح قيد التقدم ولإغلاق المشكلة تلقائيًا عند دمج طلب السحب.

ربط طلب سحب بمشكلة باستخدام كلمة مفتاحية

يمكنك ربط طلب سحب بمشكلة باستخدام كلمة مفتاحية مدعومة في وصف طلب السحب أو في رسالة الالتزام. يجب أن يكون طلب السحب على الفرع الافتراضي.

  • close
  • fix
  • resolve

مشكلة في نفس المستودع، على سبيل المثال:

Fix: #902

لمزيد من التفاصيل، يرجى الرجوع إلى ربط طلب سحب بمشكلة.

تعديل الطلبات المقدمة (PRs)

قد يحتاج طلبك المقدم (PR) إلى مراجعة. يرجى تعديل نفس الطلب المقدم (PR) عندما يحتاج الكود إلى تغييرات؛ لا تغلق الطلب وتفتح واحدًا جديدًا. إليك مثال:

  • عدل الكود على جهازك المحلي.

  • عدل التزامك (commit).

git commit --amend
  • ادفع إلى مستودعك البعيد.
git push --force

ثم، ستكون قد نجحت في تعديل الطلب المقدم (PR)!

المتعلقة بالكود

بعض المبادئ:

  • القابلية للقراءة: يجب توثيق الكود المهم جيدًا. يجب أن يتوافق أسلوب الكود مع الأسلوب القائم.

اتفاقية التسمية

على سبيل المثال، signupUrl لأسماء المتغيرات، Signup URL لواجهة المستخدم.

كيفية تحديث بيانات الترجمة الدولية (i18n)؟

يرجى ملاحظة أننا نستخدم Crowdin كمنصة للترجمة وi18next كأداة للترجمة. عندما تضيف سلاسل باستخدام i18next في دليل web/، يمكنك تشغيل i18n/generate_test.go لتوليد تلقائيًا web/src/locales/**/data.json.

تشغيل i18n/generate_test.go:

cd i18n && go test

جميع اللغات مملوءة باللغة الإنجليزية بشكل افتراضي. بعد دمج طلبك المقدم (PR)، نشجعك على المساعدة في ترجمة السلاسل الجديدة المضافة في web/src/locales/zh/data.json بواسطة Crowdin.

تحذير

إذا لم تكن ملمًا بلغة ما، يرجى عدم ترجمتها؛ احتفظ بالملف كما هو.

الترخيص

من خلال المساهمة في Casdoor، فإنك توافق على أن مساهماتك ستكون مرخصة تحت ترخيص Apache.