Перейти до основного вмісту

Посібник для учасників

Ласкаво просимо до 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. Зробіть форк до вашого власного репозиторію.

  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

Ваші запити на витягнення повинні відповідати специфікації Conventional Commits. Основна вимога полягає в тому, що тільки назва PR або принаймні одне повідомлення коміту. Наприклад, нижче наведено три поширені назви PR:

обережно

Назви 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

Для отримання додаткової інформації, будь ласка, зверніться до сторінки Conventional Commits.

Зв'язування PR з проблемами

Ви можете пов'язати запит на витягнення з проблемою, щоб показати, що виправлення в процесі та автоматично закрити проблему, коли запит на витягнення буде злитий.

Зв'язування запиту на витягнення з проблемою за допомогою ключового слова

Ви можете пов'язати запит на витягнення з проблемою, використовуючи підтримуване ключове слово в описі запиту на витягнення або в повідомленні коміту. Запит на витягнення повинен бути на гілці за замовчуванням.

  • close
  • fix
  • resolve

Проблема в тому ж репозиторії, наприклад:

Fix: #902

Для отримання додаткової інформації, будь ласка, зверніться до Linking a Pull Request to an Issue.

Модифікація PR

Ваш PR може потребувати ревізії. Будь ласка, модифікуйте той самий PR, коли код потребує змін; не закривайте PR та не відкривайте новий. Ось приклад:

  • Модифікуйте код на вашому локальному.

  • Модифікуйте ваш коміт.

git commit --amend
  • Запуште до вашого віддаленого репозиторію.
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 License.