1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/apache-lucene

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 07:36 2b7d7de

Вклад в руководство Lucene

Работа с кодом

Получение исходного кода

Во-первых, вам необходим исходный код Lucene.

Получите исходный код, используя следующую команду: git clone https://github.com/apache/luceneОбратите внимание, что важно сохранять оригинальные переносы строк в файлах — некоторые из них проверяются по контрольной сумме во время сборки. Если вы работаете под Windows, возможно, захотите переопределить стандартную конфигурацию Git при клонировании репозитория: git clone --config core.autocrlf=false https://github.com/apache/lucene### Предварительные требования

Убедитесь, что вы используете подходящую версию JDK. Проверьте README для получения информации о требуемой версии JDK для текущего основного ветвления.

Некоторые задачи сборки (в частности ./gradlew check) требуют Perl и Python 3.

Сборка с использованием Gradle

Lucene использует Gradle для управления сборкой. Gradle сам является Java-приложением и может быть несовместимым с новыми версиями Java; всё же можно собирать и тестировать Lucene с этими версиями Java, см. jvms.txt для получения дополнительной информации.

Примечание: НЕ используйте команду gradle, которая может быть установлена на вашем компьютере. Это может привести к использованию другой версии Gradle, чем требуется проектом, что известно как причина возникновения очень запутанных ошибок. Скрипт "gradle wrapper" (gradlew) выполняет все действия, необходимые для сборки проекта с нуля: он скачивает правильную версию Gradle, устанавливает локальные конфигурации и протестирован на нескольких средах. Первый раз запустив gradlew, он создаст файл gradle.properties, содержащий настройки, специфичные для машины. Обычно этот файл можно использовать как есть, но его можно модифицировать при необходимости.

Введите ./gradlew helpWorkflow, чтобы показать типичные задачи рабочего процесса (help/workflow.txt).Также выполните команду ./gradlew help, это выведет список руководств по помощи, которые вводят и объясняют различные части системы сборки, включая типичные задачи рабочего процесса.

Форматирование кода и проверки

Если вы изменили какие-либо источники, выполните команду ./gradlew tidy, чтобы автоматически применить правила форматирования кода (см. help/formatting.txt).

Пожалуйста, убедитесь, что все юнит-тесты и проверки проходят успешно перед тем, как создать патч: ./gradlew check. Это соберёт Lucene и выполнит все проверочные задачи (включая тесты). Есть различные команды для проверки кода; введите ./gradlew helpTest, чтобы получить более подробную информацию (help/tests.txt).

Если ваш вклад исправляет ошибку, пожалуйста, создайте новый тестовый случай, который будет проваливаться до вашего исправления, чтобы продемонстрировать наличие ошибки и гарантировать её отсутствие в будущем. Тестовый случай, демонстрирующий наличие ошибки, также является хорошим вкладом сам по себе.

Поддержка сред разработки- IntelliJ — IntelliJ IDEA может импортировать и собирать проекты на основе Gradle прямо из коробки. По умолчанию она будет выполнять тесты, вызывая обёртку Gradle, и хотя это работает, это может быть немного медленно. Вместо этого вы можете настроить IntelliJ, чтобы использовать свой собственный встроенный тестовый запускатель (в версии 2024 года навигируйте до настроек для Build Execution & Deployment/Build Tools/Gradle (под File/Settings меню на некоторых платформах) и выберите "Build and Run using: IntelliJ IDEA" и "Run Tests using: IntelliJ IDEA"), тогда некоторые тесты будут выполняться быстрее. Однако некоторые другие тесты не будут работать с этой конфигурацией.

  • Eclipse — Базовая поддержка (help/IDEs.txt).
  • NetBeans — Не тестировалось.## Противопоставление производительности

Используйте набор инструментов в luceneutil, чтобы протестировать изменения производительности вашего кода, если вы считаете, что ваши изменения могут заметно повлиять на производительность задачи. Apache Lucene также содержит готовый к использованию бенчмарк-модуль module. Это тот же набор тестов, который выполняется в ежедневных бенчмарках.

Инструкции по запуску бенчмарков можно найти в README файла luceneutil README.

Комьюнити Lucene также заинтересовано в других реализациях этих задач бенчмарка. Не стесняйтесь делиться своими результатами (особенно если ваша реализация работает лучше!) через почтовые списки Lucene или открывайте PRs, issues непосредственно в проекте luceneutil.

Вклад в работу

Вы можете открыть запрос на вытягивание (pull request) по адресу https://github.com/apache/lucene.

Пожалуйста, будьте терпеливы. Коммитеры тоже заняты. Если никто не ответил на ваш патч после нескольких дней, пожалуйста, отправьте доброжелательные напоминания. Пожалуйста, внедряйте предложения других людей в свой патч, если считаете их разумными. Наконец, помните, что даже патч, который не был принят, полезен для сообщества.### Открытие запроса на вытягивание

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

Вы должны открыть запрос на вытягивание против основной ветки main. Коммитеры будут переносить изменения на поддерживающие ветки после того, как они были внесены в основную ветку (в той мере, в которой это возможно).

Создание патча

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

Патчи следует прикреплять к задаче. Поскольку GitHub не принимает вложения с расширением .patch, пожалуйста, переименуйте свой файл патча XXX.patch в XXX.patch.txt или что-то подобное.

Пожалуйста, обратитесь к документации git diff для получения информации о том, как создать патч.

Перед тем как создать ваш патч, вы можете обновить main до последней версии из источника. Это поможет избежать возможных конфликтов слияния другими пользователями при применении вашего патча. Это можно сделать с помощью команды git pull, если main является текущей веткой.

Добавление записи в CHANGESВы можете захотеть добавить запись в CHANGES в CHANGES.txt. Запись в CHANGES должна начинаться с номера задачи или запроса на вытягивание GITHUB#XXX, который затем следует описание изменений и имя автора. Пожалуйста, обратитесь к существующим записям для примера.

Оставайтесь в курсеКонтрибуторы должны присоединиться к мейллистам проекта Lucene. В частности, к списку коммитов (чтобы видеть изменения по мере их выполнения), список разработчиков (чтобы участвовать в обсуждении изменений) и список пользователей (чтобы помогать другим).

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

Начальный этап: с чего начать?

Новичкам в Lucene? Хотите найти проблемы, над которыми можно поработать, не беря на себя весь мир?

Основные критерии выбора первой задачи следующие:

  • Никто ещё не работал над этой проблемой.
  • Проблема, вероятно, не вызовет споров.
  • Проблема, вероятно, самодостаточна с ограниченным объёмом работы.

Советы разработчикам

Для получения более подробных руководств и советов по вкладу см. DeveloperTips.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/apache-lucene.git
git@api.gitlife.ru:oschina-mirror/apache-lucene.git
oschina-mirror
apache-lucene
apache-lucene
main