From b079f4e00a77d329ea05e3e73217c224d5257e6e Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Sun, 12 Oct 2025 23:37:37 -0400 Subject: [PATCH 1/8] Use checksum to skip the mariadb rebuild --- taskfiles/deps/main.yaml | 60 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 9a6b0ab478..4aa61d63e4 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -390,6 +390,27 @@ tasks: TARBALL_SHA256: "537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b" TARBALL_URL: "https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz" + mariadb-connector-cpp-download-and-validate-checksum: + internal: true + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-tar" + vars: + FILE_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" + OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted" + URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/tags/\ + 1.1.5.tar.gz" + # Uses checksum to skip mariadb-connector-cpp installation because the build updates the + # source directory and will always rebuild. + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: &mariadb-cmake-include-patterns + - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-build" + - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted" + - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted.tar.gz" + - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-install" + - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src" + mariadb-connector-cpp: platforms: ["linux"] preconditions: @@ -400,17 +421,44 @@ tasks: - >- source /etc/os-release && [[ "$ID" == "ubuntu" ]] internal: true + vars: + # Cannot use dependency checksum directory because it is cleaned up in `utils:init`. + CHECKSUM_FILE: "{{.G_BUILD_DIR}}/mariadb-connector-cpp.md5" + sources: + - "{{.TASKFILE}}" + - "{{.CHECKSUM_FILE}}" + generates: ["{{.CHECKSUM_FILE}}"] run: "once" + deps: + - task: "mariadb-connector-cpp-download-and-validate-checksum" cmds: - - task: "utils:install-remote-cmake-lib" + # Copy extracted files so that the build won't pollute the extracted files and cause + # unnecessary rebuilds. + - |- + rm -rf "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src" + cp -r "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted" \ + "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src" + - task: "yscope-dev-utils:cmake:generate" vars: - CMAKE_GEN_ARGS: + BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-build" + EXTRA_ARGS: - "-DUSE_SYSTEM_INSTALLED_LIB=ON" - "-DINSTALL_LAYOUT=DEB" - LIB_NAME: "mariadb-connector-cpp" - TARBALL_URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/\ - tags/1.1.5.tar.gz" - TARBALL_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9" + SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src" + - task: "yscope-dev-utils:cmake:build" + vars: + BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-build" + JOBS: "{{.G_CPP_MAX_PARALLELISM_PER_BUILD_TASK}}" + - task: "yscope-dev-utils:cmake:install" + vars: + BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-build" + CMAKE_PACKAGE_NAME: "mariadb-connector-cpp" + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CPP_CMAKE_SETTINGS_DIR}}" + INSTALL_PREFIX: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-install" + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: *mariadb-cmake-include-patterns microsoft.gsl: internal: true From 7ddc3e83973f9a66c70a96157d859da3c769384f Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Sun, 12 Oct 2025 23:46:27 -0400 Subject: [PATCH 2/8] Fix docstring --- taskfiles/deps/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 4aa61d63e4..08dd77b774 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -432,7 +432,7 @@ tasks: deps: - task: "mariadb-connector-cpp-download-and-validate-checksum" cmds: - # Copy extracted files so that the build won't pollute the extracted files and cause + # Copies extracted files so that the build won't pollute the extracted files and cause # unnecessary rebuilds. - |- rm -rf "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src" From 61df0ebc7ec8423291c90af6fff250b3547fa59c Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Mon, 13 Oct 2025 00:03:44 -0400 Subject: [PATCH 3/8] Fix the subtask variable --- taskfiles/deps/main.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 08dd77b774..6e0109f4ee 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -392,6 +392,8 @@ tasks: mariadb-connector-cpp-download-and-validate-checksum: internal: true + requires: + vars: ["CHECKSUM_FILE"] cmds: - task: "yscope-dev-utils:remote:download-and-extract-tar" vars: @@ -431,6 +433,8 @@ tasks: run: "once" deps: - task: "mariadb-connector-cpp-download-and-validate-checksum" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" cmds: # Copies extracted files so that the build won't pollute the extracted files and cause # unnecessary rebuilds. From d6437080564e7a4f5773423d34e33d54db04321b Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Tue, 14 Oct 2025 10:22:32 -0400 Subject: [PATCH 4/8] Fix checksum dir --- taskfiles/deps/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 6e0109f4ee..0af0d89b6b 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -425,7 +425,7 @@ tasks: internal: true vars: # Cannot use dependency checksum directory because it is cleaned up in `utils:init`. - CHECKSUM_FILE: "{{.G_BUILD_DIR}}/mariadb-connector-cpp.md5" + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUM_DIR}}/mariadb-connector-cpp.md5" sources: - "{{.TASKFILE}}" - "{{.CHECKSUM_FILE}}" From 61bbdb3ef320c67a91f8b40cd54d322f22169a86 Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Tue, 14 Oct 2025 10:41:15 -0400 Subject: [PATCH 5/8] Fix checksum directory --- taskfiles/deps/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 0af0d89b6b..a963a05ed0 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -425,7 +425,7 @@ tasks: internal: true vars: # Cannot use dependency checksum directory because it is cleaned up in `utils:init`. - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUM_DIR}}/mariadb-connector-cpp.md5" + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/mariadb-connector-cpp.md5" sources: - "{{.TASKFILE}}" - "{{.CHECKSUM_FILE}}" From 82cfa32ee5e362f6b905412fb7cfc5cf3b41a4d4 Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Tue, 14 Oct 2025 10:51:57 -0400 Subject: [PATCH 6/8] Only checksum the install directory --- taskfiles/deps/main.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index a963a05ed0..69303abff1 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -407,11 +407,7 @@ tasks: vars: CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: &mariadb-cmake-include-patterns - - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-build" - - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted" - - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted.tar.gz" - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-install" - - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src" mariadb-connector-cpp: platforms: ["linux"] From 1733aee46cd3e37f75d32666e46a4c1d554e4fd0 Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Tue, 14 Oct 2025 11:02:03 -0400 Subject: [PATCH 7/8] Reorder task parameters --- taskfiles/deps/main.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 69303abff1..64e2a99543 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -410,6 +410,12 @@ tasks: - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-install" mariadb-connector-cpp: + vars: + # Cannot use dependency checksum directory because it is cleaned up in `utils:init`. + CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/mariadb-connector-cpp.md5" + sources: + - "{{.TASKFILE}}" + - "{{.CHECKSUM_FILE}}" platforms: ["linux"] preconditions: # NOTE: The MariaDB connector is only required for building Spider, which is only supported on @@ -419,12 +425,6 @@ tasks: - >- source /etc/os-release && [[ "$ID" == "ubuntu" ]] internal: true - vars: - # Cannot use dependency checksum directory because it is cleaned up in `utils:init`. - CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/mariadb-connector-cpp.md5" - sources: - - "{{.TASKFILE}}" - - "{{.CHECKSUM_FILE}}" generates: ["{{.CHECKSUM_FILE}}"] run: "once" deps: From 063316bbc7b014339d48bf563842fd90a09b1651 Mon Sep 17 00:00:00 2001 From: sitaowang1998 Date: Wed, 15 Oct 2025 10:27:28 -0400 Subject: [PATCH 8/8] Reorder task attributes --- taskfiles/deps/main.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 64e2a99543..06ca69bfc2 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -410,6 +410,7 @@ tasks: - "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-install" mariadb-connector-cpp: + internal: true vars: # Cannot use dependency checksum directory because it is cleaned up in `utils:init`. CHECKSUM_FILE: "{{.G_DEPS_CPP_CHECKSUMS_DIR}}/mariadb-connector-cpp.md5" @@ -417,6 +418,12 @@ tasks: - "{{.TASKFILE}}" - "{{.CHECKSUM_FILE}}" platforms: ["linux"] + generates: ["{{.CHECKSUM_FILE}}"] + run: "once" + deps: + - task: "mariadb-connector-cpp-download-and-validate-checksum" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" preconditions: # NOTE: The MariaDB connector is only required for building Spider, which is only supported on # Ubuntu. `INSTALL_LAYOUT` is currently hardcoded to "DEB". To support other Linux distros: @@ -424,13 +431,6 @@ tasks: # - Make `INSTALL_LAYOUT` configurable. - >- source /etc/os-release && [[ "$ID" == "ubuntu" ]] - internal: true - generates: ["{{.CHECKSUM_FILE}}"] - run: "once" - deps: - - task: "mariadb-connector-cpp-download-and-validate-checksum" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" cmds: # Copies extracted files so that the build won't pollute the extracted files and cause # unnecessary rebuilds.