ข้ามไปยังเนื้อหาหลัก

คู่มือผู้ร่วมให้ข้อมูล

ยินดีต้อนรับสู่ 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.

การมีส่วนร่วม

หากคุณพร้อมที่จะสร้าง PR นี่คือกระบวนการทำงานสำหรับผู้ร่วมให้ข้อมูล:

  1. Fork ไปยัง repository ของคุณเอง

  2. Clone fork ของคุณไปยัง repository ในเครื่อง

  3. สร้าง branch ใหม่และทำงานบนนั้น

  4. รักษา branch ของคุณให้ตรงกัน

  5. Commit การเปลี่ยนแปลงของคุณ ตรวจสอบให้แน่ใจว่าข้อความ commit ของคุณกระชับ

  6. Push commits ของคุณไปยัง repository ที่คุณ fork

  7. สร้าง pull request จาก branch ของคุณไปยัง branch master ของเรา

Pull Requests

ก่อนที่คุณจะเริ่มต้น

Casdoor ใช้ GitHub เป็นแพลตฟอร์มการพัฒนา และ pull requests เป็นแหล่งของการมีส่วนร่วมหลัก

นี่คือสิ่งที่คุณต้องรู้ก่อนที่จะเปิด pull request:

  • คุณต้องลงนามใน CLA เมื่อคุณสร้าง pull request ครั้งแรก

  • อธิบายว่าทำไมคุณถึงส่ง pull request และมันจะทำอะไรกับ repo

  • 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.

Semantic PRs

Pull requests ของคุณควรตามมาตรฐาน Conventional Commits ข้อกำหนดพื้นฐานคือเฉพาะชื่อ PR หรืออย่างน้อยหนึ่งข้อความ commit ตัวอย่างเช่น มีชื่อ PR ที่ใช้กันทั่วไปสามชื่อด้านล่างนี้:

คำเตือน

ชื่อ PR ต้องเป็นตัวพิมพ์เล็ก

  1. fix: commit ประเภท type fix แก้ไขบั๊กในฐานโค้ดของคุณ

    fix: prevent racing of requests
  2. feat: commit ประเภท type feat นำเสนอฟีเจอร์ใหม่ในฐานโค้ด

    feat: allow provided config object to extend other configs
  3. docs: commit ประเภท type docs เพิ่มหรือปรับปรุงเอกสาร

    docs: correct spelling of CHANGELOG

สำหรับรายละเอียดเพิ่มเติม กรุณาดูที่หน้า Conventional Commits

การเชื่อมโยง PRs กับ Issues

คุณสามารถเชื่อมโยง pull request กับ issue เพื่อแสดงว่ามีการแก้ไขที่กำลังดำเนินการ และเพื่อปิด issue โดยอัตโนมัติเมื่อ pull request ถูกผสาน

การเชื่อมโยง Pull Request กับ Issue โดยใช้คำสำคัญ

คุณสามารถเชื่อมโยง pull request กับ issue โดยใช้คำสำคัญที่รองรับในคำอธิบายของ pull request หรือในข้อความ commit Pull request ต้องอยู่บน branch หลัก

  • close
  • fix
  • resolve

Issue ใน repository เดียวกัน ตัวอย่างเช่น:

Fix: #902

สำหรับรายละเอียดเพิ่มเติม กรุณาดูที่ Linking a Pull Request to an Issue

การแก้ไข PRs

PR ของคุณอาจต้องการการแก้ไข กรุณาแก้ไข PR เดียวกันเมื่อโค้ดต้องการการเปลี่ยนแปลง อย่าปิด PR และเปิดใหม่ นี่คือตัวอย่าง:

  • แก้ไขโค้ดบนเครื่องของคุณ

  • แก้ไข commit ของคุณ

git commit --amend
  • Push ไปยัง repository ระยะไกลของคุณ
git push --force

จากนั้น คุณจะได้แก้ไข PR อย่างสำเร็จ!

เกี่ยวกับโค้ด

หลักการบางประการ:

  • การอ่าน: โค้ดที่สำคัญควรมีเอกสารอย่างดี สไตล์โค้ดควรสอดคล้องกับที่มีอยู่

การตั้งชื่อ

ตัวอย่างเช่น signupUrl สำหรับชื่อตัวแปร Signup URL สำหรับ UI

วิธีการอัปเดตข้อมูล 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