Crie um repositório no GitHub
Clone o repositório na sua máquina de desenvolvimento
ClickHouse/ contendo o código-fonte, os testes e outros arquivos.
Você pode especificar um diretório personalizado para o checkout após a URL, mas é importante que esse caminho não contenha espaços em branco, pois isso pode quebrar a build mais adiante.
O repositório Git do ClickHouse usa submódulos para incluir bibliotecas de terceiros.
Os submódulos não são incluídos no checkout por padrão.
Você pode
-
executar
git clonecom a opção--recurse-submodules, -
se
git clonefor executado sem--recurse-submodules, executegit submodule update --init --jobs <N>para fazer explicitamente o checkout de todos os submódulos. (<N>pode ser definido, por exemplo, como12para paralelizar o download.) -
se
git clonefor executado sem--recurse-submodulese você quiser usar shallow checkout de submódulos para omitir o histórico nos submódulos e economizar espaço, execute./contrib/update-submodules.sh. Essa alternativa é usada pela CI, mas não é recomendada para desenvolvimento local, pois torna o trabalho com submódulos menos prático e mais lento.
git submodule status.
Se você receber a seguinte mensagem de erro
~/.ssh.
Para que as chaves SSH sejam aceitas, você precisa adicioná-las nas configurações do GitHub.
Você também pode clonar o repositório via HTTPS:
git remote.
Você também pode adicionar o endereço do repositório original do ClickHouse ao seu repositório local para obter atualizações de lá:
git pull upstream master.
Escrevendo código
- Arquitetura do ClickHouse.
- Guia de estilo de código.
- Bibliotecas de terceiros
- Como escrever testes
- Issues abertas
IDE
- O CLion cria um caminho
buildpor conta própria e seleciona automaticamentedebugcomo tipo de build - Ele usa uma versão do CMake definida no CLion, e não a que você instalou
- O CLion usa
makepara executar tarefas de build em vez deninja(isso é normal)
Crie um pull request
Escreva a documentação
mint dev a partir de docs/).
Ao adicionar uma nova função ao ClickHouse, você pode usar o modelo abaixo como guia: