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

دليل المساهم

مرحبًا بك في Casdoor! This document serves as a guide on how to contribute to Casdoor.

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

المشاركة

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

  • استخدم Casdoor وأبلغ عن المشاكل. When using Casdoor, report any issues—whether they're bugs or proposals—on GitHub Discussions or on Discord before filing an issue on GitHub.
معلومات

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

  • المساعدة في التوثيق. Starting your contribution with documentation is a good choice.

  • المساعدة في حل المشاكل. We have a table containing easy tasks suitable for beginners under Casdoor Easy Tasks, with different levels of challenges labeled with different tags.

المساهمة

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

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

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

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

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

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

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

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

طلبات السحب

قبل أن تبدأ

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

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

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

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

  • Only one commit is allowed per pull request. If the PR does more than one thing, please split it into multiple PRs.

  • إذا تم إضافة ملفات جديدة، يرجى تضمين ترخيص 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.