Skip to content

Conversation

sitaowang1998
Copy link
Contributor

@sitaowang1998 sitaowang1998 commented Oct 13, 2025

Description

Root cause

As discussed in #1409 and later tracked in #1412, mariadb-connector-cpp rebuilds every time because the build modifies the source tree, so in every run we re-extract the directory and the files are updated so the build reruns.

Solution

This PR fixes #1412 by

  • Copies the extracted directory to src directory to avoid re-download and extraction of the library.
  • Uses checksum utils from yscope-dev-utils to avoid re-execute mariadb-connector-cpp.

Checklist

  • The PR satisfies the contribution guidelines.
  • This is a breaking change and that has been indicated in the PR title, OR this isn't a
    breaking change.
  • Necessary docs have been updated, OR no docs need to be updated.

Validation performed

  • Rerun task deps:spider does not rebuilt mariadb-connector-cpp and spider.
  • GitHub workflows pass.

Summary by CodeRabbit

  • Chores

    • Added a new download-and-validate workflow for the MariaDB C++ connector, including checksum verification and generation.
    • Enabled incremental rebuilds by generating and tracking a checksum for the installed artifact.
    • Updated build to copy extracted sources into a dedicated source directory and use source-based CMake configuration.
  • Refactor

    • Reworked dependency build flow and task orchestration for improved reliability and repeatability.

Copy link
Contributor

coderabbitai bot commented Oct 13, 2025

Walkthrough

Adds an internal task to download, extract and checksum-validate the MariaDB Connector/C++ tarball. Updates mariadb-connector-cpp to depend on that task, use an extracted SOURCE_DIR for CMake, copy sources, build/install, compute and emit a CHECKSUM_FILE, and declare TASKFILE and CHECKSUM_FILE as public sources.

Changes

Cohort / File(s) Summary
New internal download/validate task
taskfiles/deps/main.yaml
Adds mariadb-connector-cpp-download-and-validate-checksum to download the connector tarball, extract it, and validate its checksum.
mariadb-connector-cpp task updates
taskfiles/deps/main.yaml
mariadb-connector-cpp now depends on the new download task; adds CHECKSUM_FILE variable; declares public sources: TASKFILE, CHECKSUM_FILE; marks CHECKSUM_FILE as generates; build sequence changed to copy extracted sources to a dedicated SOURCE_DIR, generate CMake config with SOURCE_DIR, build and install, then compute and emit CHECKSUM_FILE using mariadb-cmake-include-patterns.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Runner as Task Runner
  participant D as mariadb-connector-cpp-download-and-validate-checksum
  participant M as mariadb-connector-cpp
  participant FS as Filesystem
  participant C as CMake/Build
  participant CS as Checksum Utility

  Runner->>D: invoke download & extract
  D->>FS: download tarball
  D->>FS: extract tarball
  D->>CS: validate checksum
  CS-->>D: OK / Fail
  alt checksum OK
    Runner->>M: run build (depends on D)
    M->>FS: copy extracted sources -> SOURCE_DIR
    M->>C: configure with SOURCE_DIR
    C->>C: build & install
    M->>CS: compute CHECKSUM_FILE (include-patterns)
    CS-->>M: write CHECKSUM_FILE
    M-->>Runner: expose CHECKSUM_FILE as source/generate
  else checksum fail
    D-->>Runner: abort with error
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title concisely describes the introduction of checksum-based rebuild skipping for mariadb-connector-cpp, directly reflecting the main change implemented in the changeset.
Linked Issues Check ✅ Passed The changes fully implement the solution proposed in issue #1412 by incorporating checksum utilities to detect unchanged mariadb-connector-cpp sources and skip redundant builds, and the updated task definitions and dependencies align with the linked issue’s objectives.
Out of Scope Changes Check ✅ Passed All modifications are focused on the mariadb-connector-cpp task workflow and checksum handling as required to prevent unnecessary rebuilds, with no unrelated or extraneous changes present in the pull request.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sitaowang1998 sitaowang1998 marked this pull request as ready for review October 13, 2025 03:50
@sitaowang1998 sitaowang1998 requested a review from a team as a code owner October 13, 2025 03:50
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
taskfiles/deps/main.yaml (1)

414-462: Align CMake args and validate up-to-date semantics

  • Add standard flags used elsewhere for consistency and quieter logs.
  • Optional: Set CMP0135 NEW to avoid timestamp-based rebuild surprises.
 - task: "yscope-dev-utils:cmake:generate"
   vars:
     BUILD_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-build"
     EXTRA_ARGS:
       - "-DUSE_SYSTEM_INSTALLED_LIB=ON"
       - "-DINSTALL_LAYOUT=DEB"
+      - "-DCMAKE_BUILD_TYPE=Release"
+      - "-DCMAKE_INSTALL_MESSAGE=LAZY"
+      - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW"
     SOURCE_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src"
 ...
-  - task: "yscope-dev-utils:checksum:compute"
+  # This command must be last
+  - task: "yscope-dev-utils:checksum:compute"
     vars:
       CHECKSUM_FILE: "{{.CHECKSUM_FILE}}"
       INCLUDE_PATTERNS: *mariadb-cmake-include-patterns

Also, you declared the checksum file as both a source and a generate (Lines 428-431). This is clever for leveraging Task’s built-in up-to-date checks, but can create edge cases if the compute step updates the file’s mtime without content changes. Please confirm locally that:

  • Re-running the parent flow after a no-op change truly skips this task, and
  • The checksum compute does not cause a flip-flop where the file’s mtime triggers a rebuild on subsequent runs.

If any flakiness is observed, consider adding an early yscope-dev-utils:checksum:validate in this task too (before the copy/generate/build) to short-circuit commands deterministically, mirroring patterns used by antlr-runtime.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a88bb9d and 7ddc3e8.

📒 Files selected for processing (1)
  • taskfiles/deps/main.yaml (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (12)
  • GitHub Check: package-image
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: ubuntu-jammy-dynamic-linked-bins
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: musllinux_1_2-x86_64-dynamic-linked-bins
  • GitHub Check: musllinux_1_2-x86_64-static-linked-bins
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: manylinux_2_28-x86_64-static-linked-bins
  • GitHub Check: manylinux_2_28-x86_64-dynamic-linked-bins
  • GitHub Check: rust-checks (ubuntu-22.04)
  • GitHub Check: rust-checks (ubuntu-24.04)

Comment on lines +438 to +441
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"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Copy step is fine; consider rsync for robustness (optional)

Current rm/cp works. If large trees or hidden files become an issue, rsync reduces risk and handles deletions:

-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"
+rsync -a --delete "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted/" \
+  "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src/"
🤖 Prompt for AI Agents
In taskfiles/deps/main.yaml around lines 438-441, the current remove-and-cp
sequence is fragile for large trees and hidden files; replace it with an
rsync-based copy so deletions and hidden files are handled robustly. Use rsync
in archive mode with delete semantics (preserve permissions, links, times, and
handle hidden files) from the extracted directory to the src directory, ensure
correct trailing-slash semantics on the source to copy contents not the parent
dir, and remove the preceding rm -rf so rsync alone manages updates and
deletions.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
taskfiles/deps/main.yaml (1)

439-445: Use rsync instead of rm -rf + cp for robustness and correctness on updates

rsync handles deletions, permissions, and hidden files and avoids a full delete each run.

-      - |-
-        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"
+      - |-
+        rsync -a --delete "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted/" \
+          "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src/"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7ddc3e8 and 61df0eb.

📒 Files selected for processing (1)
  • taskfiles/deps/main.yaml (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (13)
  • GitHub Check: ubuntu-jammy-dynamic-linked-bins
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: manylinux_2_28-x86_64-static-linked-bins
  • GitHub Check: manylinux_2_28-x86_64-dynamic-linked-bins
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: package-image
  • GitHub Check: musllinux_1_2-x86_64-dynamic-linked-bins
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: musllinux_1_2-x86_64-static-linked-bins
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: rust-checks (ubuntu-22.04)
  • GitHub Check: rust-checks (ubuntu-24.04)
  • GitHub Check: lint-check (ubuntu-24.04)
🔇 Additional comments (2)
taskfiles/deps/main.yaml (2)

426-433: Resolved: CHECKSUM_FILE is now defined and wired; incremental config looks sane

Defining CHECKSUM_FILE here and passing it to the subtask fixes the earlier undefined-var issue. sources/generates referencing the same file is acceptable for go-task’s up-to-date checks.


447-466: LGTM: CMake generate/build/install, and checksum compute referencing shared patterns

Build dirs, install prefix, and reuse of the include patterns via YAML anchor are consistent. No blocking issues.

Copy link
Member

@junhaoliao junhaoliao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the logic looks reasonable to me though the changes look a bit verbose. I vaguely remember discussing a similar approach with @davidlion though i don't know if there's any convention we should follow / any example we can refer to.

@davidlion / @Bill-hbrhbr would you mind guiding / completing this review as I observe?

@Bill-hbrhbr
Copy link
Contributor

I think the current checksum system is flawed and most libraries rebuild themselves even when nothing has changed.

The proper solution is to fix the checksum system used in deps:utils:install-remote-cmake-lib. The most glaring bug is that this task generates a checksum, but doesn't have a generates: section. The checksum is not being used for checking if the task is up-to-date.

There are also smaller problems such as I don't really get how the combined checksum file in deps:utils:combine-cpp-checksum-files is useful for preventing re-runs, since there's no way to validate this file. We might as well checksum the whole clp/build/deps/cpp directory. IMO we should remove this feature as properly checksuming individual libraries is enough for quick taskflow runs.

@Bill-hbrhbr
Copy link
Contributor

@junhaoliao Just to make sure I understand the problem root cause:
I ran mariadb-connector-cpp builds a couple times. The sha256sum of <lib>-extracted and <lib>-install didn't change over multiple runs. A proper solution just needs to checksum the <lib>-install directory to see if a re-run is necessary, so I don't think this lib is a special case scenario.

In summary, this PR seems to be too much effort to fix a single library while there's a more general and methodical solution.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (3)
taskfiles/deps/main.yaml (3)

416-466: Order task attributes per contribution guide (consistency)

Reorder attributes to match the documented convention (name, description, summary, dir, platforms, env, vars, requires, preconditions, sources, generates, run, deps, cmds, status).


398-404: Set TAR_FILE (+ pass CHECKSUM_FILE) so checksum tracks the tarball and skips download/extract

Without TAR_FILE, the tar path in INCLUDE_PATTERNS is never produced; passing CHECKSUM_FILE here aligns the helper’s caching.

       - task: "yscope-dev-utils:remote:download-and-extract-tar"
         vars:
           FILE_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9"
+          TAR_FILE: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted.tar.gz"
+          CHECKSUM_FILE: "{{.CHECKSUM_FILE}}"
           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"

442-444: Prefer rsync over rm/cp for robustness (handles deletions, hidden files)

Use rsync with trailing slash on source and --delete; drop the preceding rm.

-        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"
+        rsync -a --delete "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted/" \
+          "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src/"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 61df0eb and ab73f77.

📒 Files selected for processing (1)
  • taskfiles/deps/main.yaml (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (15)
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: musllinux_1_2-x86_64-dynamic-linked-bins
  • GitHub Check: musllinux_1_2-x86_64-static-linked-bins
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: package-image
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: manylinux_2_28-x86_64-dynamic-linked-bins
  • GitHub Check: manylinux_2_28-x86_64-static-linked-bins
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: ubuntu-jammy-dynamic-linked-bins
  • GitHub Check: build-macos (macos-15, false)
  • GitHub Check: lint-check (macos-15)
  • GitHub Check: rust-checks (ubuntu-24.04)
  • GitHub Check: rust-checks (ubuntu-22.04)
  • GitHub Check: rust-checks (macos-15)

@sitaowang1998
Copy link
Contributor Author

@Bill-hbrhbr makes some good points. I now switch to only checksum the install directory.
It is possible to use deps:utils:install-remote-cmake-lib, but the task need to support copying the extracted to another directory to avoid polluting the source tree and trigger a re-extract.
I also agree that the combined checksum seem to not work. Aside from the bug in it, the boost task currently only checksum the generate directory but not the final install directory. If we want to make use of the combined checksum, we need to fix the boost task first.

@davidlion
Copy link
Member

davidlion commented Oct 15, 2025

@Bill-hbrhbr makes some good points. I now switch to only checksum the install directory. It is possible to use deps:utils:install-remote-cmake-lib, but the task need to support copying the extracted to another directory to avoid polluting the source tree and trigger a re-extract. I also agree that the combined checksum seem to not work. Aside from the bug in it, the boost task currently only checksum the generate directory but not the final install directory. If we want to make use of the combined checksum, we need to fix the boost task first.

Fwiw y-scope/yscope-dev-utils#81 and y-scope/yscope-dev-utils#80 are directly what you're talking about, but have been needing reviewers for a while. Bill recently did a pass so hopefully we can land them soon.

Since this is an optimization, I think it makes sense to have those 2 PRs land and do this properly.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
taskfiles/deps/main.yaml (1)

435-441: Use rsync instead of rm/cp for robustness (optional)

Rsync handles deletions, permissions, and hidden files without a pre-emptive rm -rf.

-      - |-
-        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"
+      - |-
+        rsync -a --delete "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted/" \
+          "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-src/"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1733aee and 063316b.

📒 Files selected for processing (1)
  • taskfiles/deps/main.yaml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (14)
  • GitHub Check: musllinux_1_2-x86_64-static-linked-bins
  • GitHub Check: ubuntu-jammy-lint
  • GitHub Check: package-image
  • GitHub Check: ubuntu-jammy-static-linked-bins
  • GitHub Check: manylinux_2_28-x86_64-dynamic-linked-bins
  • GitHub Check: manylinux_2_28-x86_64-static-linked-bins
  • GitHub Check: centos-stream-9-dynamic-linked-bins
  • GitHub Check: centos-stream-9-static-linked-bins
  • GitHub Check: build (macos-15)
  • GitHub Check: lint-check (macos-15)
  • GitHub Check: rust-checks (ubuntu-24.04)
  • GitHub Check: rust-checks (ubuntu-22.04)
  • GitHub Check: lint-check (ubuntu-24.04)
  • GitHub Check: rust-checks (macos-15)
🔇 Additional comments (1)
taskfiles/deps/main.yaml (1)

458-461: Align compute with validate (looks good; keep it this way)

Using the same INCLUDE_PATTERNS anchor (install-only) for compute avoids false rebuilds. No change needed.

Comment on lines +393 to +401
mariadb-connector-cpp-download-and-validate-checksum:
internal: true
requires:
vars: ["CHECKSUM_FILE"]
cmds:
- task: "yscope-dev-utils:remote:download-and-extract-tar"
vars:
FILE_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9"
OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Validate before downloading; add run: once and stable TAR_FILE

Run checksum:validate first to bail out early and skip the whole download/extract when install is unchanged. Also mark the helper run: "once" and set a stable TAR_FILE (and forward CHECKSUM_FILE) to maximise caching.

   mariadb-connector-cpp-download-and-validate-checksum:
     internal: true
+    run: "once"
     requires:
       vars: ["CHECKSUM_FILE"]
     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-install"
+      - task: "yscope-dev-utils:remote:download-and-extract-tar"
+        vars:
+          CHECKSUM_FILE: "{{.CHECKSUM_FILE}}"
+          FILE_SHA256: "0e3dfe9f2bc3f7bb6f7c159009556290064a7c23402ea08019fa8aebfc3ff2c9"
+          OUTPUT_DIR: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted"
+          TAR_FILE: "{{.G_DEPS_CPP_DIR}}/mariadb-connector-cpp-extracted.tar.gz"
+          URL: "https://github.com/mariadb-corporation/mariadb-connector-cpp/archive/refs/tags/\
+            1.1.5.tar.gz"

Also applies to: 406-411

🤖 Prompt for AI Agents
In taskfiles/deps/main.yaml around lines 393 to 401 (and similarly lines 406 to
411), the download-and-extract helper is invoked unconditionally without running
checksum:validate first, without run: once, and without a stable TAR_FILE or
forwarding CHECKSUM_FILE; update the task entries to first run checksum:validate
to short-circuit when unchanged, add run: "once" to the helper invocation to
enable caching, set a stable TAR_FILE var pointing to the exact tarball name (so
cache keys remain stable), and forward the CHECKSUM_FILE variable into the
helper so it can validate against the provided checksum before
downloading/extracting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deps:spider task performs unnecessary rebuilds due to mariadb-connector-cpp

4 participants