mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
9.7 KiB
9.7 KiB
toc_priority | toc_title |
---|---|
70 | Используемые сторонние библиотеки |
Используемые сторонние библиотеки
Библиотека | Лицензия |
---|---|
base64 | BSD 2-Clause License |
boost | Boost Software License 1.0 |
brotli | MIT |
capnproto | MIT |
cctz | Apache License 2.0 |
double-conversion | BSD 3-Clause License |
FastMemcpy | MIT |
googletest | BSD 3-Clause License |
h3 | Apache License 2.0 |
hyperscan | BSD 3-Clause License |
libcxxabi | BSD + MIT |
libdivide | Zlib License |
libgsasl | LGPL v2.1 |
libhdfs3 | Apache License 2.0 |
libmetrohash | Apache License 2.0 |
libpcg-random | Apache License 2.0 |
libressl | OpenSSL License |
librdkafka | BSD 2-Clause License |
libwidechar_width | CC0 1.0 Universal |
llvm | BSD 3-Clause License |
lz4 | BSD 2-Clause License |
mariadb-connector-c | LGPL v2.1 |
murmurhash | Public Domain |
pdqsort | Zlib License |
poco | Boost Software License - Version 1.0 |
protobuf | BSD 3-Clause License |
re2 | BSD 3-Clause License |
UnixODBC | LGPL v2.1 |
zlib-ng | Zlib License |
zstd | BSD 3-Clause License |
Рекомендации по добавлению сторонних библиотек и поддержанию в них пользовательских изменений
- Весь внешний сторонний код должен находиться в отдельных папках внутри папки
contrib
репозитория ClickHouse. По возможности, используйте сабмодули Git. - Клонируйте официальный репозиторий Clickhouse-extras. Используйте официальные репозитории GitHub, если они доступны.
- Создавайте новую ветку на основе той ветки, которую вы хотите интегрировать: например,
master
->clickhouse/master
илиrelease/vX.Y.Z
->clickhouse/release/vX.Y.Z
. - Все копии Clickhouse-extras можно автоматически синхронизировать с удаленными репозиториями. Ветки
clickhouse/...
останутся незатронутыми, поскольку скорее всего никто не будет использовать этот шаблон именования в своих репозиториях. - Добавьте сабмодули в папку
contrib
репозитория ClickHouse, на который ссылаются клонированные репозитории. Настройте сабмодули для отслеживания изменений в соответствующих веткахclickhouse/...
. - Каждый раз, когда необходимо внести изменения в код библиотеки, следует создавать отдельную ветку, например
clickhouse/my-fix
. Затем эта ветка должна быть слита (merge
) в ветку, отслеживаемую сабмодулем, например, вclickhouse/master
илиclickhouse/release/vX.Y.Z
. - Не добавляйте код в клоны репозитория Clickhouse-extras, если имя ветки не соответствует шаблону
clickhouse/...
. - Всегда вносите изменения с учетом того, что они попадут в официальный репозиторий. После того как PR будет влит из (ветки разработки/исправлений) вашего личного клона репозитория в Clickhouse-extras, и сабмодуль будет добавлен в репозиторий ClickHouse, рекомендуется сделать еще один PR из (ветки разработки/исправлений) репозитория Clickhouse-extras в официальный репозиторий библиотеки. Таким образом будут решены следующие задачи: 1) публикуемый код может быть использован многократно и будет иметь более высокую ценность; 2) другие пользователи также смогут использовать его в своих целях; 3) поддержкой кода будут заниматься не только разработчики ClickHouse.
- Чтобы сабмодуль начал использовать новый код из исходной ветки (например,
master
), сначала следует аккуратно выполнить слияние (master
->clickhouse/master
), и только после этого изменения могут быть добавлены в основной репозиторий ClickHouse. Это связано с тем, что в отслеживаемую ветку (например,clickhouse/master
) могут быть внесены изменения, и поэтому ветка может отличаться от первоисточника (master
).