Loading nixos/tests/clickhouse/ui.nix +36 −15 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.firefox.options import Options from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait options = Options() Loading @@ -41,33 +42,53 @@ wait = WebDriverWait(driver, 60) assert len(driver.find_elements( By.ID, "query_div")) == 1 wait.until(EC.presence_of_element_located( (By.ID, "query_div"))) version = "${lib.strings.replaceStrings [ "-stable" "-lts" ] [ "" "" ] package.version}" wait.until(EC.text_to_be_present_in_element( (By.XPATH, "//span[@id='server_info']"), version)) # Determine if a shadow DOM is used for query-result and # query-progress result_els = driver.find_elements(By.ID, "query-result") uses_shadow = len(result_els) > 0 if uses_shadow: result_shadow = result_els[0].shadow_root progress_shadow = driver.find_element( By.ID, "query-progress").shadow_root def find_rows(): root = result_shadow if uses_shadow else driver return root.find_elements( By.CSS_SELECTOR, ".row-number") def find_check_mark(): root = progress_shadow if uses_shadow else driver return root.find_elements( By.CSS_SELECTOR, "#check-mark") server_info_element = driver.find_element( By.XPATH, "//span[@id='server_info']") assert "${ lib.strings.replaceStrings [ "-stable" "-lts" ] [ "" "" ] package.version }" in server_info_element.text # Shouldn't show before query done assert len(driver.find_elements( By.CSS_SELECTOR, ".row-number")) == 0 assert len(find_rows()) == 0 query_box = driver.find_element( By.XPATH, "//textarea[@id='query']") query_box.click() query_box.send_keys("SELECT 1") query_run_button = driver.find_element( driver.find_element( By.XPATH, "//button[@id='run']").click() # Now verify results shown assert len(driver.find_elements( By.XPATH, "//div[@id='check-mark']")) == 1 # Wait for query to complete WebDriverWait(driver, 60).until( lambda d: len(find_check_mark()) > 0) assert len(driver.find_elements( By.CSS_SELECTOR, ".row-number")) == 2 # Wait for results to render WebDriverWait(driver, 60).until( lambda d: len(find_rows()) > 0) driver.close() ''; Loading pkgs/by-name/cl/clickhouse/generic.nix +10 −4 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ lib, stdenv, llvmPackages_19, llvmPackages_21, fetchFromGitHub, fetchpatch, cmake, Loading @@ -30,7 +31,8 @@ versionCheckHook, }: let llvmStdenv = llvmPackages_19.stdenv; llvmPackages = if lib.versionAtLeast version "26" then llvmPackages_21 else llvmPackages_19; llvmStdenv = llvmPackages.stdenv; in llvmStdenv.mkDerivation (finalAttrs: { pname = "clickhouse"; Loading Loading @@ -99,7 +101,7 @@ llvmStdenv.mkDerivation (finalAttrs: { ninja python3 perl llvmPackages_19.lld llvmPackages.lld removeReferencesTo ] ++ lib.optionals stdenv.hostPlatform.isx86_64 [ Loading @@ -107,7 +109,7 @@ llvmStdenv.mkDerivation (finalAttrs: { yasm ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages_19.bintools llvmPackages.bintools findutils darwin.bootstrap_cmds ] Loading Loading @@ -193,6 +195,7 @@ llvmStdenv.mkDerivation (finalAttrs: { "-DENABLE_CHDIG=OFF" "-DENABLE_TESTS=OFF" "-DENABLE_DELTA_KERNEL_RS=0" "-DENABLE_XRAY=OFF" "-DCOMPILER_CACHE=disabled" ] ++ lib.optional ( Loading @@ -212,7 +215,10 @@ llvmStdenv.mkDerivation (finalAttrs: { }; # https://github.com/ClickHouse/ClickHouse/issues/49988 hardeningDisable = [ "fortify" ]; hardeningDisable = [ "fortify" "libcxxhardeningfast" ]; nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; Loading pkgs/by-name/cl/clickhouse/lts.nix +3 −3 Original line number Diff line number Diff line import ./generic.nix { version = "25.8.15.35-lts"; rev = "7a0b36cf8934881236312e9fea094baaf5c709a4"; hash = "sha256-zCMqZaw+QO/MAdJhgyrZYvdFPO8o11EXbuGHS5++dZw="; version = "25.8.18.1-lts"; rev = "557fdf60f81c4370867dff464de7f4b1064d39a7"; hash = "sha256-6QBejA0GdhjHVcqHVqjZkiJ1tmPglvIaFffBWyseYX8="; lts = true; } pkgs/by-name/cl/clickhouse/package.nix +3 −3 Original line number Diff line number Diff line import ./generic.nix { version = "26.1.3.52-stable"; rev = "5549f2acae95c6d627654f50e212a85d059a55f9"; hash = "sha256-7Ww7vQNjvR65Ycw2jnetyy6s8KkHOylzFey+K2xBLjM="; version = "26.2.3.2-stable"; rev = "ba231782911b5f53713dc4a9ad6a7fcf5ac4bf89"; hash = "sha256-252cNixB1ca8m4AvtB2097+OhlSmG7Diz0MMyqxvExc="; lts = false; } pkgs/by-name/cl/clickhouse/update.sh +9 −3 Original line number Diff line number Diff line Loading @@ -15,9 +15,11 @@ echoerr "Working on $fname" shift # Fetch latest tags from the repo, leave only stable and lts, use version sort in reverse order. all_tags=$(curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} https://api.github.com/repos/ClickHouse/ClickHouse/tags \ all_tags=$({ for page in 1 2 3; do curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} "https://api.github.com/repos/ClickHouse/ClickHouse/tags?per_page=100&page=$page" done; } \ | jq -r '.[].name | select(test("-(stable|lts)$"))' \ | sort -Vr) | sort -Vr | uniq) # Fail if no tags found if [[ -z "$all_tags" ]]; then Loading @@ -27,7 +29,11 @@ fi pname="clickhouse" if [[ "$fname" == *lts.nix ]]; then all_tags=$(echo "$all_tags" | grep -- "-lts$") all_tags=$(echo "$all_tags" | grep -- "-lts$" || true) if [[ -z "$all_tags" ]]; then echoerr "Error: no LTS tags found in fetched tags" exit 1 fi pname="clickhouse-lts" fi Loading Loading
nixos/tests/clickhouse/ui.nix +36 −15 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.firefox.options import Options from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait options = Options() Loading @@ -41,33 +42,53 @@ wait = WebDriverWait(driver, 60) assert len(driver.find_elements( By.ID, "query_div")) == 1 wait.until(EC.presence_of_element_located( (By.ID, "query_div"))) version = "${lib.strings.replaceStrings [ "-stable" "-lts" ] [ "" "" ] package.version}" wait.until(EC.text_to_be_present_in_element( (By.XPATH, "//span[@id='server_info']"), version)) # Determine if a shadow DOM is used for query-result and # query-progress result_els = driver.find_elements(By.ID, "query-result") uses_shadow = len(result_els) > 0 if uses_shadow: result_shadow = result_els[0].shadow_root progress_shadow = driver.find_element( By.ID, "query-progress").shadow_root def find_rows(): root = result_shadow if uses_shadow else driver return root.find_elements( By.CSS_SELECTOR, ".row-number") def find_check_mark(): root = progress_shadow if uses_shadow else driver return root.find_elements( By.CSS_SELECTOR, "#check-mark") server_info_element = driver.find_element( By.XPATH, "//span[@id='server_info']") assert "${ lib.strings.replaceStrings [ "-stable" "-lts" ] [ "" "" ] package.version }" in server_info_element.text # Shouldn't show before query done assert len(driver.find_elements( By.CSS_SELECTOR, ".row-number")) == 0 assert len(find_rows()) == 0 query_box = driver.find_element( By.XPATH, "//textarea[@id='query']") query_box.click() query_box.send_keys("SELECT 1") query_run_button = driver.find_element( driver.find_element( By.XPATH, "//button[@id='run']").click() # Now verify results shown assert len(driver.find_elements( By.XPATH, "//div[@id='check-mark']")) == 1 # Wait for query to complete WebDriverWait(driver, 60).until( lambda d: len(find_check_mark()) > 0) assert len(driver.find_elements( By.CSS_SELECTOR, ".row-number")) == 2 # Wait for results to render WebDriverWait(driver, 60).until( lambda d: len(find_rows()) > 0) driver.close() ''; Loading
pkgs/by-name/cl/clickhouse/generic.nix +10 −4 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ lib, stdenv, llvmPackages_19, llvmPackages_21, fetchFromGitHub, fetchpatch, cmake, Loading @@ -30,7 +31,8 @@ versionCheckHook, }: let llvmStdenv = llvmPackages_19.stdenv; llvmPackages = if lib.versionAtLeast version "26" then llvmPackages_21 else llvmPackages_19; llvmStdenv = llvmPackages.stdenv; in llvmStdenv.mkDerivation (finalAttrs: { pname = "clickhouse"; Loading Loading @@ -99,7 +101,7 @@ llvmStdenv.mkDerivation (finalAttrs: { ninja python3 perl llvmPackages_19.lld llvmPackages.lld removeReferencesTo ] ++ lib.optionals stdenv.hostPlatform.isx86_64 [ Loading @@ -107,7 +109,7 @@ llvmStdenv.mkDerivation (finalAttrs: { yasm ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages_19.bintools llvmPackages.bintools findutils darwin.bootstrap_cmds ] Loading Loading @@ -193,6 +195,7 @@ llvmStdenv.mkDerivation (finalAttrs: { "-DENABLE_CHDIG=OFF" "-DENABLE_TESTS=OFF" "-DENABLE_DELTA_KERNEL_RS=0" "-DENABLE_XRAY=OFF" "-DCOMPILER_CACHE=disabled" ] ++ lib.optional ( Loading @@ -212,7 +215,10 @@ llvmStdenv.mkDerivation (finalAttrs: { }; # https://github.com/ClickHouse/ClickHouse/issues/49988 hardeningDisable = [ "fortify" ]; hardeningDisable = [ "fortify" "libcxxhardeningfast" ]; nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; Loading
pkgs/by-name/cl/clickhouse/lts.nix +3 −3 Original line number Diff line number Diff line import ./generic.nix { version = "25.8.15.35-lts"; rev = "7a0b36cf8934881236312e9fea094baaf5c709a4"; hash = "sha256-zCMqZaw+QO/MAdJhgyrZYvdFPO8o11EXbuGHS5++dZw="; version = "25.8.18.1-lts"; rev = "557fdf60f81c4370867dff464de7f4b1064d39a7"; hash = "sha256-6QBejA0GdhjHVcqHVqjZkiJ1tmPglvIaFffBWyseYX8="; lts = true; }
pkgs/by-name/cl/clickhouse/package.nix +3 −3 Original line number Diff line number Diff line import ./generic.nix { version = "26.1.3.52-stable"; rev = "5549f2acae95c6d627654f50e212a85d059a55f9"; hash = "sha256-7Ww7vQNjvR65Ycw2jnetyy6s8KkHOylzFey+K2xBLjM="; version = "26.2.3.2-stable"; rev = "ba231782911b5f53713dc4a9ad6a7fcf5ac4bf89"; hash = "sha256-252cNixB1ca8m4AvtB2097+OhlSmG7Diz0MMyqxvExc="; lts = false; }
pkgs/by-name/cl/clickhouse/update.sh +9 −3 Original line number Diff line number Diff line Loading @@ -15,9 +15,11 @@ echoerr "Working on $fname" shift # Fetch latest tags from the repo, leave only stable and lts, use version sort in reverse order. all_tags=$(curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} https://api.github.com/repos/ClickHouse/ClickHouse/tags \ all_tags=$({ for page in 1 2 3; do curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} "https://api.github.com/repos/ClickHouse/ClickHouse/tags?per_page=100&page=$page" done; } \ | jq -r '.[].name | select(test("-(stable|lts)$"))' \ | sort -Vr) | sort -Vr | uniq) # Fail if no tags found if [[ -z "$all_tags" ]]; then Loading @@ -27,7 +29,11 @@ fi pname="clickhouse" if [[ "$fname" == *lts.nix ]]; then all_tags=$(echo "$all_tags" | grep -- "-lts$") all_tags=$(echo "$all_tags" | grep -- "-lts$" || true) if [[ -z "$all_tags" ]]; then echoerr "Error: no LTS tags found in fetched tags" exit 1 fi pname="clickhouse-lts" fi Loading