Существует множество способов внести вклад в Quickwit. Приемлемы как вклады в код, так и отчеты о багах, запросы на новые функции и продвижение проекта.
Проверьте, нет ли вашего вопроса в списке на GitHub. Если нет, создайте свой собственный вопрос.
Добавьте следующее выражение в конце вашего коммита Закрывает #<Номер вопроса>
.
Это автоматически создаст ссылку на ваш PR в странице вопроса. Также, после того как ваш PR будет включен, вопрос будет закрыт. Если ваш PR частично решает вопрос и вы хотите оставить его открытым, просто напишите См. #<Номер вопроса>
.
Не стесняйтесь отправлять свой вклад в незавершенном состоянии для получения ранней обратной связи. В этом случае просто пометьте PR тегом [WIP] (что означает работу в процессе).
Когда вы отправляете pull request в проект, система CI выполняет несколько проверок. После того как ваш PR будет включен, будет выполнена более полная проверка.Вы будете уведомлены по электронной почте от системы CI, если будут обнаружены какие-либо проблемы, но если вы хотите выполнить эти проверки локально перед отправкой PR или для проверки изменений, вы можете использовать следующие команды в корневом каталоге:
make test-all
.make fix
. В качестве альтернативы выполните make -k test-all docker-compose-down
, чтобы завершить Docker-сервисы после выполнения всех тестов.make build-rustdoc
.# Разработкаnpm install -g yarn
GitHub Codespaces предоставляет полностью настроенную среду разработки в облаке, что делает начало работы с разработкой Quickwit простым. Нажав на значок выше, вы можете создать codespace с установленными и настроенными всеми необходимыми инструментами.
Запустите make test-all
, чтобы запустить все тесты.## Полезные команды
make test-all
- запускает необходимые Docker службы и выполняет все тесты.make -k test-all docker-compose-down
- то же самое, но завершает Docker службы после выполнения всех тестов.make fmt
- запускает форматтер, эта команда требует установки nightly toolchain с помощью команды rustup toolchain install nightly
.make fix
- запускает форматтер и проверки clippy.make typos
- запускает инструмент проверки орфографии по всему коду. (Установите с помощью команды cargo install typos-cli
)make doc
- создаёт документацию.make docker-compose-up
- запускает Docker службы.make docker-compose-down
- останавливает Docker службы.make docker-compose-logs
- показывает логи Docker.## Запуск UIquickwit
проекта и создайте каталог данных qwdata
там, если он ещё не существует.cargo r run --config ../config/quickwit.yaml
.yarn --cwd quickwit-ui install
и yarn --cwd quickwit-ui start
.http://localhost:3000/ui
, если он не откроется автоматически.yarn --cwd quickwit-ui install
и yarn --cwd quickwit-ui test
в каталоге quickwit
.cargo r run --service searcher --config ../config/quickwit.yaml
.yarn --cwd quickwit-ui e2e-test
.make docker-compose-up
для запуска всех служб или make docker-compose-up DOCKER_SERVICES=kafka,postgres
для запуска подмножества служб.make docker-compose-up DOCKER_SERVICES=jaeger
.OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
QW_ENABLE_OPENTELEMETRY_OTLP_EXPORTER=true
cargo install tokio-console
.RUSTFLAGS="--cfg tokio_unstable" cargo install --path . --features tokio-console
.QW_ENABLE_TOKIO_CONSOLE=1 quickwit index ...
.tokio-console
.## Сборка бинарниковВ настоящее время мы используем cross для сборки бинарников Quickwit для различных архитектур. Для этого нам пришлось настроить docker-образы, используемые cross. Эти настройки можно найти в файлах Docker, расположенных в папке ./cross-images
. Чтобы заставить cross учитывать любые изменения в этих файлах Docker, вам нужно будет собрать и отправить образы на Docker Hub, запустив make cross-images
.
У нас также есть ночное сборочное окно, которое отправляет образы на Docker Hub. Это помогает постоянно проверять, что наши бинарники все еще собираются даже при обновлениях внешних зависимостей. Успешные сборки позволяют получить доступ к артефактам в течение следующих трёх дней. Бинарники релизов всегда имеют прикрепленные к ним артефакты.
Каждое слияние в ветке main
запускает сборку нового Docker-образа, доступного на DockerHub по адресу quickwit/quickwit:edge
. Тегирование коммита также создает новый образ quickwit/quickwit:<tag name>
, если имя тега начинается с v*
или qw*
. Docker-образы основаны на Debian.
Так как react-UI встроен в бинарник Rust, нам нужно собрать react-приложение перед сборкой бинарника. Поэтому make cross-image
зависит от команды build-ui
.
curl -L https://install.quickwit.io | sh
всегда устанавливает последнюю стабильную версию Quickwit. Чтобы облегчить установку и тестирование новых (альфа, бета, rc) релизов, вы можете вручную вытянуть и выполнить скрипт как ./install.sh --allow-any-latest-version
. Это заставит скрипт установить любую последнюю доступную версию пакета.## Отслеживание лицензийМы отслеживаем лицензии, используемые открытыми исходными crate'ами, используемыми этим проектом, с помощью
rust-license-tool
. Список проверяется каждый раз, когда запускается CI. Чтобы обновить список, установите инструмент с помощью cargo install --git https://github.com/DataDog/rust-license-tool
и затем выполните dd-rust-license-tool write
. Если возникли ошибки, возможно, вам потребуется обновить список исключений в license-tool.toml
.
Документация Quickwit находится в директории docs
.
Страница документации CLI частично генерируется с помощью скрипта. Чтобы обновить её, сначала запустите скрипт:
cargo run --bin generate_markdown > ../docs/reference/cli_insert.md
Затем вручную отредактируйте страницу документации, чтобы обновить её и удалите сгенерированный файл. Существуют два комментария, чтобы указать, где вы хотите вставить новые документы и где они заканчиваются:
[comment]: <> (Insert auto generated CLI docs from here.)
...docs to insert...
[comment]: <> (End of auto generated CLI docs.)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )