Перейти к основному содержанию

Руководство для участников

Добро пожаловать в Casdoor! Этот документ служит руководством о том, как внести свой вклад в Casdoor.

Если вы нашли какую-либо неверную или отсутствующую информацию, пожалуйста, оставьте свои комментарии или предложения.

Присоединяйтесь

Есть много способов внести свой вклад в Casdoor. Вот несколько идей для начала:

  • Используйте Casdoor и сообщайте о проблемах. При использовании Casdoor сообщайте о любых проблемах - будь то ошибки или предложения - на GitHub Discussions или на Discord перед тем, как подавать проблему на GitHub.
информация

Пожалуйста, используйте английский язык для описания деталей вашей проблемы при сообщении о проблеме.

  • Помощь с документацией. Начать свой вклад с документации - хороший выбор.

  • Помощь в решении проблем. У нас есть таблица, содержащая простые задачи, подходящие для начинающих, на Casdoor Easy Tasks, с разными уровнями сложности, обозначенными разными тегами.

Участие в разработке

Если вы готовы создать PR, вот рабочий процесс для участников:

  1. Сделайте fork в свой собственный репозиторий.

  2. Клонируйте ваш fork в локальный репозиторий.

  3. Создайте новую ветку и работайте в ней.

  4. Синхронизируйте вашу ветку.

  5. Зафиксируйте ваши изменения. Убедитесь, что ваше сообщение коммита краткое.

  6. Отправьте ваши коммиты в ваш forked репозиторий.

  7. Создайте pull request из вашей ветки в нашу master ветку.

Pull Requests

Прежде чем начать

Casdoor использует GitHub в качестве платформы разработки, и pull request'ы являются основным источником вклада.

Вот что вам нужно знать, прежде чем открывать pull request:

  • Вам нужно подписать CLA, когда вы впервые создаете pull request.

  • Объясните, почему вы отправляете pull request и что он сделает с репозиторием.

  • Разрешен только один коммит. Если 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

Ваши pull request'ы должны следовать спецификации 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 с задачами

Вы можете связать pull request с задачей, чтобы показать, что исправление в процессе, и автоматически закрыть задачу, когда pull request будет смержен.

Связывание Pull Request с задачей с использованием ключевого слова

Вы можете связать pull request с задачей, используя поддерживаемое ключевое слово в описании pull request'а или в сообщении коммита. Pull request должен быть в ветке по умолчанию.

  • 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 для пользовательского интерфейса.

Как обновить данные 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.