contrib/ du dépôt ClickHouse.
Selon les options de compilation, il se peut que certaines de ces bibliothèques n’aient pas été compilées et que, par conséquent, leurs fonctionnalités ne soient pas disponibles à l’exécution.
Exemple
Ajout et maintenance de bibliothèques tierces
contrib/ du dépôt ClickHouse.
Évitez de copier simplement du code externe dans le répertoire de la bibliothèque.
Créez plutôt un sous-module Git pour récupérer le code tiers depuis un dépôt upstream externe.
Tous les sous-modules utilisés par ClickHouse sont répertoriés dans le fichier .gitmodule.
- Si la bibliothèque peut être utilisée telle quelle (cas par défaut), vous pouvez référencer directement le dépôt upstream.
- Si la bibliothèque doit être modifiée, créez un fork du dépôt upstream dans l’organisation ClickHouse sur GitHub.
ClickHouse/ à partir de la branche ou du tag que vous souhaitez intégrer, par exemple ClickHouse/2024_2 (pour la branche 2024_2) ou ClickHouse/release/vX.Y.Z (pour le tag release/vX.Y.Z).
Évitez de suivre les branches de développement upstream master/ main / dev (c’est-à-dire les branches préfixées ClickHouse/master / ClickHouse/main / ClickHouse/dev dans le dépôt forké).
Ce sont des cibles mouvantes, ce qui complique un versionnage correct.
Les « branches préfixées » garantissent que les pulls depuis le dépôt upstream vers le fork laisseront intactes les branches personnalisées ClickHouse/.
Les sous-modules dans contrib/ ne doivent suivre que les branches ClickHouse/ des dépôts tiers forkés.
Les correctifs ne sont appliqués que sur les branches ClickHouse/ des bibliothèques externes.
Il existe deux façons de procéder :
- vous souhaitez créer un nouveau correctif sur une branche préfixée
ClickHouse/dans le dépôt forké, par exemple un correctif sanitizer. Dans ce cas, poussez le correctif sous forme de branche avec le préfixeClickHouse/, par exempleClickHouse/fix-sanitizer-disaster. Créez ensuite une PR de la nouvelle branche vers la branche de suivi personnalisée, par exempleClickHouse/2024_2 <-- ClickHouse/fix-sanitizer-disaster, puis fusionnez la PR. - vous mettez à jour le sous-module et devez réappliquer d’anciens correctifs. Dans ce cas, recréer d’anciennes PR serait excessif. À la place, faites simplement un cherry-pick des anciens commits dans la nouvelle branche
ClickHouse/(correspondant à la nouvelle version). N’hésitez pas à squash les commits des PR qui en contenaient plusieurs. Dans le meilleur des cas, nous avons déjà contribué les correctifs personnalisés à upstream et pouvons omettre ces correctifs dans la nouvelle version.