Во-первых, вам необходим исходный код 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.
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).
Если ваш вклад исправляет ошибку, пожалуйста, создайте новый тестовый случай, который будет проваливаться до вашего исправления, чтобы продемонстрировать наличие ошибки и гарантировать её отсутствие в будущем. Тестовый случай, демонстрирующий наличие ошибки, также является хорошим вкладом сам по себе.
Используйте набор инструментов в 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
является текущей веткой.
GITHUB#XXX
, который затем следует описание изменений и имя автора. Пожалуйста, обратитесь к существующим записям для примера.Пожалуйста, проводите обсуждение вопросов Lucene через список рассылки, чтобы все могли воспользоваться полученными знаниями. Отправка отдельным коммитерам вопросов относительно конкретных проблем Lucene не рекомендуется.
Новичкам в Lucene? Хотите найти проблемы, над которыми можно поработать, не беря на себя весь мир?
Основные критерии выбора первой задачи следующие:
Для получения более подробных руководств и советов по вкладу см. DeveloperTips.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )