Skip to content

build(deps): Update yscope-dev-utils and migrate dependencies from submodules to task-based installations. - #108

Merged
sitaowang1998 merged 27 commits into
y-scope:mainfrom
sitaowang1998:task_dep
Apr 23, 2025
Merged

build(deps): Update yscope-dev-utils and migrate dependencies from submodules to task-based installations.#108
sitaowang1998 merged 27 commits into
y-scope:mainfrom
sitaowang1998:task_dep

Conversation

@sitaowang1998

@sitaowang1998 sitaowang1998 commented Apr 15, 2025

Copy link
Copy Markdown
Collaborator

Description

Spider now uses git submodule to include dependencies, i.e. abseil and catch2. Adding dependencies uses add_subdirectory is not ideal, and it make build longer.

This pr uses tasks in yscope-dev-utils to install these dependencies.

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

  • Running task:dep_install installs the dependencies.
  • Spider builds and pass all unit tests and integration tests with new dependencies.

Summary by CodeRabbit

  • Chores
    • Updated dependency management to use automated installation tasks instead of git submodules.
    • Removed abseil-cpp and Catch2 as submodules; dependencies are now handled via a new installation workflow.
    • Updated setup instructions in the documentation to reflect the new dependency installation process.
    • Added new dependency variables and settings for improved build configuration.
  • Style
    • Updated code formatting rules to recognize ystdlib headers.
  • New Features
    • Added ystdlib as a linked dependency for the core library.

@sitaowang1998
sitaowang1998 requested a review from a team as a code owner April 15, 2025 19:08
@coderabbitai

coderabbitai Bot commented Apr 15, 2025

Copy link
Copy Markdown
Contributor
## Walkthrough

This change removes the Catch2 and abseil-cpp submodules from the project and updates the dependency management workflow. Instead of using submodules, dependencies are now installed and configured through a new automated task-based system. The build configuration is updated to use `find_package` for locating dependencies, and dependency paths are managed via generated CMake settings. The README is updated to instruct users to run a task for dependency installation rather than initializing submodules. Additionally, a new dependency on `ystdlib::error_handling` is added to the `spider_core` target.

## Changes

| File(s)                                              | Change Summary                                                                                  |
|-----------------------------------------------------|------------------------------------------------------------------------------------------------|
| .gitmodules, submodules/Catch2, submodules/abseil-cpp | Removed Catch2 and abseil-cpp submodules and their references.                                 |
| CMakeLists.txt, src/spider/CMakeLists.txt           | Replaced submodule-based dependency inclusion with `find_package` calls for dependencies; added `ystdlib::error_handling` as a public dependency to `spider_core`. |
| dep-tasks.yaml                                      | Introduced a structured, automated workflow for installing and configuring third-party dependencies, including new tasks and variables for dependency handling. |
| taskfile.yaml                                       | Added variables for dependency and CMake settings directories/files to support the new installation workflow. |
| README.md                                           | Updated setup instructions to use the new dependency installation task instead of submodule commands. |
| src/spider/.clang-format                            | Added `ystdlib` to the regex pattern for library header grouping in formatting rules.           |
| lint-tasks.yaml                                     | Split clang-tidy linting into two subtasks to separately lint example code and main/test code. |
| src/spider/worker/DllLoader.cpp, src/spider/worker/FunctionManager.cpp, src/spider/worker/FunctionNameManager.cpp | Renamed the exported aliases for `FunctionManager::get_instance` and `FunctionNameManager::get_instance` by prefixing with `g_`. |
| tools/yscope-dev-utils                              | Updated subproject commit reference for `tools/yscope-dev-utils`.                              |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant User
    participant TaskRunner
    participant DependencyInstaller
    participant CMake
    participant BuildSystem

    User->>TaskRunner: Run deps:dep_install
    TaskRunner->>DependencyInstaller: Install Abseil, Catch2, Outcome, QuickCPPLib, ystdlib
    DependencyInstaller->>DependencyInstaller: Download & extract archives, configure CMake settings
    DependencyInstaller->>CMake: Write settings.cmake with dependency paths
    User->>CMake: Configure project
    CMake->>BuildSystem: Locate dependencies via find_package using settings.cmake
    BuildSystem->>User: Build with external dependencies

Possibly related PRs

  • test: Add tests for data storage #21: Removes Catch2 and abseil-cpp submodules and replaces them with find_package and automated dependency installation; directly related as it modifies the same dependencies but in the opposite direction.
  • build: Add CMake config and libraries #13: Adds Catch2 submodule and initial CMake configuration for dependencies; related by modifying dependency management for Catch2 and others, but in an opposite context.
  • fix: Move function definitions from headers to sources #55: Changes the exported alias name for FunctionManager::get_instance from function_manager_get_instance to g_function_manager_get_instance; directly related to alias renaming in this PR.

Suggested reviewers

  • kirkrodrigues
  • davidlion


<!-- walkthrough_end -->


---

<details>
<summary>📜 Recent review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between bfd54d51ff66e47d072347c2dd854abeae91604f and 69d106eb4e93ea232aa16469857bd05a702435c2.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `examples/quick-start/CMakeLists.txt` (1 hunks)

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (1)</summary>

* examples/quick-start/CMakeLists.txt

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (3)</summary>

* GitHub Check: non-storage-unit-tests (ubuntu-22.04)
* GitHub Check: non-storage-unit-tests (ubuntu-24.04)
* GitHub Check: lint

</details>

</details>
<!-- internal state start -->


<!-- DwQgtGAEAqAWCWBnSTIEMB26CuAXA9mAOYCmGJATmriQCaQDG+Ats2bgFyQAOFk+AIwBWJBrngA3EsgEBPRvlqU0AgfFwA6NPEgQAfACgjoCEYDEZyAAUASpETZWaCrKNwSPbABsvkCiQBHbGlcSHFcLzpIACIBbHgvWgAKJW5EAEouAFVuWmoPWUQmbhIwJQkwPATkTHpmeCIqGkhUsiUMBnhpSAAzChZ7bAFmRW9ugjC0RABrMAEpqPgMRFw0H2p4fGWNaMg5SGxESnt1NHwAd0wiAEYATluADh5+7nwjmsZYK48lsNgPS7yXD/SAAZW48CUfF4+BEYkgzEwaFIyHUyFaGHanWkGms/gkm0OXlkABowRCoSgOl5sEp6BisV1kA4GLB0DUBEcEuhMYxqKyAEwHRBLIiQIjqQbDUaRGq84EeAAGaFotAA+g4BLR4P4xPgXIqESRgYpcXBUGhuDC0KzIJdUe1xD0uvQplL8NxxIjfAJRGhDj9QoilH8PHEEvQYQxpMgvFtSBQNG4QbY/CRuF4beMQQH+D1xZLNSNaGNkOd1GzVjNkH0BgrIIrCsVSuVKuIvIhDf5XiKCC4wvgqSs1r4FUcWum2mRsYgzQhkKzvuh4MxkBMVv40MwvEsPPWGdP5Eth+txFtnvho4g5fQVzCpHt4olICQes7sR1ZEmDAA1NaQjZzx6fU/lQRcMFIKkGBpJRmWwBgr0QHpvGJPxsAwDBRVDBsq2mDhUjVY9Vh8Q0mCceVByIkcJxKTFpyZMlagUDBnQoeoIL+ahyUhY5w0SBd9V1CJ5CY7gpnedAfAOTDQiYpYaEaQCsBoFYywrbDyHOGip0/BEkVINgMFkq1+htWBv3caw7DWRBByYFidVXdBaH+fwOj3OytlwCh4DiM8sCIeIlB3chEDJJZtQYfI1y+UJgVQVAMHwWS9k3aYsPA0hGN5JKVM40JyEQ5x5FoS9HHYJSDlyaLIC+B9fTIPSlG/CxIAAYRYQzcDgpwXGTDwtlQsiuv4ZSUzsVBa2YbD/RNCgyV7M5Lggu5HjJaDnHgHpZCw0qGHKozKuwaqVLnEh5FyvdYuwxU9sQAB6GwAFEAEEABEAFknsNZ1IhQVEjKnehbMiVDgL4PjtQ4pi9oO1Z/M8Cge2kbL6GBLj6wIbgwEiKRfGe96vtqt0GqwY68hoehy2BDSSC0o5cGOodvPg/zkH8TNKYHbCD10qjT02LBMu6eT+hLaN6H2eLkFsM7/HQeWkv4BU+GG9hkBA7UikOEUtnZ0R9Tpb99GMcAoDaPMcAIYgyGULm1aMrheH4YRRHEKQZHkJgoRUNRNG0XQwEMEwoHNVE5StwhSHIJoogdzg/DQenHERft9m95RVHULQdBN03TAMDQJVwYtSw4AxokrgxWpegBJG2Y/yYGU+Ky3hcQfqGyL9RS9lH6EgBN1iy2l1uf8EYH3rIsZQ8dgfO6cGYmnktZXutr+VgAVdiY6Jl9Le6VC5LwwAYK0SV2JZoNpLCFR1HhqFgG80xGZoshsAAZWcYBBPe/uiAh8Adnuk2D0LYSAVCqB2XY49tDLGksLWgLVLAvS8DQJogs1yDn3KITM6C9aWxIAAD1eBQLmIFuBDB3AwF8Rl1BMiMAAOS2CQJMldohGAgGAIwbUPpoGmCQd+SBuoaFwIQzgFcq413rtHO2UQHC9XkPgfM7cjAvWYtqfyawoI0l1lgJRPNJx0V0gzcQEEawDxiJDe6qQHoMERPwsAJjRQPRHBoOxfCSC7HtM5OkZIiGiDwFEQaR58z1hhHCUIqBMYehxuAkgvhwluzOsTTEIUxT6KOFIKgvheYzjtG6BBvR+jTRVFDMUt8+C2WwBQaMUptRCX1EybmhwsKKmdJiNUYkGDTGRCQUiI41I0yIRmeAnRQj+CCDqKIWTdFP0oP0PgXxUmii4IqfAeAyJ9P+pAJKWlgLoXoASNADZ2nqi6T00gSR1m4E2ZAZ6ABFLItdnpvXSIaambJjk9GoFo+ZIEto7OSr0dZmIADcDZ143M3oaSaIKqbqWOexFcjhIAzMFpbAAzBoB4GgAAMPJgYrgSM4Ia/xul0HBcqTkJAEgnytDC/WGYsyS3kG0iKnSbQXJIEkQ++MnqPOeU9V57z1J/MWbUNJzMSAqktqUrCaI6lTL1C4XEL1VR0K2COUk6Adl00VQ0/si9GwrFoDuAQdLuAMp8VEFpHF6wSE2ioP6ipQRWFrm9J6Ng1QAE1QTQDeu/WuAAhNUoIADyb82pPTVG9QVbVoBhpsN6xUyT/ArEttg2iWJ5AM2OuFak18OJBvwG8XAZIejMDLfYXIcYiBkl4T5NAb0g1tR3OwNqZ8ESICIOck+hDCGo2/puWgYVn6wOQOhBB35zDINQXbDB3NsEbTwXA/Rwz9RkOhJQ0ZNDwj0IMEwz43wyyUA8MGDyBjl1KQ1vmddpCglboEFQ3ddCRZjVQNqN8rCq4GE4UYVIYBcKzlkFuLw5c2HV2QdI22sdm4KLbkslEnd24+J1ZpBsBF+ZeENLhKkEh8D8JZXsZKbJFRmsIssYiXg1SIgYIaJiZHfIUZPNRkK2BCE4amNML+llbrpmY1RzjMw0JwOOZA9QQIuMNg4JAxAHB3H8I4Fhso6ZEBgFqA3WRjjjSmKIJ2O06kHWNqfd0RAJROjbRviCHhHj7A6ecS0JVfYRK8mObzOKUm+NpCU5Rkc6mfBgAoOhFN38lTKb80FjAQnpjbNFqMCW7IeRUjQRgLRuGGRYSAusvgQHVnhepQkRUZJFTKchYKIrDZlPXM2RVhjpVzgYDjCqMAhRcCmt8imowT0zKQDNVQfsWHKq4aSCV3zAXD40uw8V0rG8BQVdGyxsA1WWB9Om2N4+kzumnxGQIRU6RYuAwoKlrwZJIsa3coOpY+H+ExQ8OJ3AknhOKhk+2OTCmSA+cW+PZKpRVgUBFTTIz8AnVvqvmU7CfXW6pbYGSc4+p0ocXqW7fU2rQQAAkXoCgAKwADZPiiG444Mk9XGv4BlW/d+ZIbP8Ls7gXT6InMo8HdTjwMiV0K0Cl1HjIIFtUaWxslb0XtKYnO5V9bYBNvTG22a+jvIxLXm6HKzRvgWd8lZB4JikN+Cegwck26FxSfNda+13bkxhMk6ayOglL4xFUDELdyAxuzX2Gy7U5wrJJB3ZFBxZ7smODfZoPhA3lv1OYjAEQ7yNpcCAecLL10Vo2gfFV4qBmSQ3kKHIvSV8SwrMeCqTUjwSPlXyDEjTCYbm6CjKbl3d7/c/q/HrKrpxZjHMGq/EYMNWSRxknrChkITqkCfPsCzMQ1Soi5KPOtyqcOKDTB6HGLS8kSCKV0wibw4gMxXR1LQMAYlSHyEh/PJ+xz8+1It2T+gi8ne+WS1gkEWvECtZINNI54oYPV6b/Zlvv0cRGBnZAFBNBa9RdEEJQK9NmAhYhDdB9TwJ9HddgV9DuX9AA1UKIdDXDLzATEcGFLALzGPasDQEDbcRUZAtVOkXVRfQ7Y7M3GLXnPzCLYLKkDDdMfA7jQg0DEgqAMgtAvVJfI7NLTzfLI+HA5g7GIDdg4g0g1A+gdDPg6gjAmbKFObJgvA8Qog7DKQ8g2QqggQp7KrAXNgEQ1QrjYDDgzQngyglLXQ2g5TSXaXDrFQgDNQswrg6Qig5LSgeQzzc/I3E1GXRwlg5wyQqAD6RQEeKIDA8jLDGjG0IwpwkwiQ7DbmUpHVYaOSDAa7VpTDdbTgyAUIz9UeSIpjaItjDjAIsQhI9QnDQcFI45NI3kK7AjLI/jLDEgiDX9AuX+aQNeWbcDSRKDTTWDQYeDfRFRAwSyBA+WLoiFWbQ0L4GQEgRqb7KQS/YpbCRJMQOcVAaY3gcBQkRAVCV4JfNGGo6tUQEeahYaSUEbNAHHRYgAdhIAFFxQYFoAABZcVrgviBRHhrgcdaAeh7j7gBQGBrg0BbhaABABRXw3iBAscHgeg9tcQg15BlirNtihhe4PB/AehT0LtJJfBxJLxgcuYf9R17JnRAoV1R0YZDFGRugOZq8JhFQytoUFYPAlY4wIJjg99Qh9Ewl+gIk5YfhkAlYM5et8AJQGA/EKAFkUl2sIIyQQJ7JvJAFegF8x0c8OIppQI4JpQV4fgxoPANjZIeg0FdTn58AHUvBp1IMAC51qSQDC8cFnBgC10oD716ByFt1qEEDxBpAOFQspQsSZilCuxXw8TalvFliKVAUbcSFN1YDn0/SmkYFfgdTpZgyZ4mCBTYQkkJF2EOiuEDAuiXECtj5ts+j2EpFBjq95FU5FFlFEMAzxiQRJi89MTsyU9OyDSyyj4LU5iSZFisAYzEFv5UBlitFgpjRsxsSIy3JakJgp5zMLiM96hQhFRcV7i3xAS7jaAcc7gcd7iBRVB7iBAehcVcVbgMVbgBQMVrh5g3isc0BXwTzcU3iMVDR+SecJtaVttDRNQTTcQOplhAhggjJiRGIpIM5y1J1lcJNB1ckml7weIiNMzpjnAOTBwuSEx75SEM0QQgK/87TAD518ElzQCXTHT3SEyYCKE4DfTaF/SkCmFyBv1Cy/0DBcIf9EiqySLoNG4uZ6zW5RjmykDLJhYfFRS9UgcQcJx2kNU4EDljh6xFQjN9MjgxB0UG8eduKB5EiQtwRzj3wtVwpIkjIxZ4JuhFQABxGNJ6KwUEGNZ5ejD4TUIvZzUQ/TY8HibCIhIRLCLXDylHBsOyoNJ5d+N6ZymwELMgxS0ysIOHBEfUDwWSkzGoeWJQdpCIwcbsNNdge+YEfWTmHK9qXhGnZvPTAzeKd9dEOk+iboYKlwVZOyj1RytUHhF6AAaWjVBCemgGgFrgYRsqctjRip4HwHkkwR1UVHe20zp2cQAqGCasnxFBDFsvsvarGtq15A2raqcs6p6tDX6sGuGqcoADFa535voJqprkiGxKrZxa9egLEfKQx0ZQgVrVU1yCqLQ3CJgIoq9mgPrQxxw0rZR7BYB1lnxfRIB+FPR7BZAOhYB+hMIAAvKID5UMO+Q4XpHMnnFnQRVSERMROvHESAQ9FDTCpqC9TAR7bjfgVWTqWoWcYimuB04Aii508AhdGi6Ar0x9ZMpi/dKAP8YzP6UpOgFqza0alylQ9SgCt2dFfRRUPSyIAy5AsW4HEza1WgaW/ajqj6bq3qk6oaka6KowhWuzLS88FWtWlhKozWx1HWyWvW0KmWw24246gas2i6q6m634NS5wDSpW22/MVWrjHix29ozigmT6J6DQZgPWgs/i2soSlufsUS49TuOOr6AAcmZGNCZiIiCxtrgXOFPWSoKNKu7EzEXMIvxH2NbyVsnkohkmBx3Axut3JnyALFCFLMgBG2LizINKqgpg8AgBz1CAgF1GqRFCkD22qqH20I3FZnRQmEix1Qn2ZhHCGykxG3S1U3whaJyPSC2IXDEuwl1E6iBiNBNEv3IW7E2jtQbrzPhCQoXjWLcycz7pHrGDXKYnLxoLmAWCzyzUPB3oFnPHqMQTZtnSAIgK5onB5vwT5s9MZqTPgOFpbNYpYRTqLKMEQBqXujMx4goHujcUzAgjAHBkRHEQgxrLZzrIzsbKPW5PEpBEktKQd0PyPEdHCL4GNTa38KQf8pWCwn8FIEIUKpS3yj0ihW6F4dqmlShABhukoauBof1DodIi2EpOqUqh/2kkpEVFrgLSUEhWX0aWkBCzDirvCId0aHWQhA4l4E2B8ge2BUWRUcoGZD+1XyxsVGAGv1NwmFhqni3A1w1hVl6yESiEPyaRuM5CmwbAEBLRWHmyijDOKwrVwHm1TmB0hPye7XOXmzM1NUlL20YmvAaEwhfufx1TccaU8f0SxQpsHBI2OFrR3RAloeoFXyCwhuprWDQToFtPZoQYXSQbANwTdNvQ9MTPoqFr3RweYXYo4U6OIdIahDXnKoESEVnFEXof6IAIEtkTgwbIQ2ztbI8C4dVA+HQyWZ3W3qEZNw4A4DFTVCWQVKIGqJum2coDVCYH8ENF4YLsmAoFIFCBChiwSfJrsbYEwBii4hTwpEBeBa2XLCkl2ViYwBi2RHHTih5xCfec+e+bSVBd8n60nx8UUu5gVTEdXw/q/kPU6b4GHhMsQcHFPw8DJLJH+BVF8aVL4DZYhahYyrPUFfGfgbIrgWmaormfjP5owaecYpWZYrWfwc4pCmjyCLAxTsYff3TpGKbOuYkubPsedFnIbG20cXhlGRPjJWmCF32DMx3AWvqcYCoaIEA0hAP3knlSMiwSSqOD317s1HELxD2PWQOO1UxikyoCFm9d9doEUUazTZd2qVqTJOMeOA2tBBsDalDTdQ9S9W2utw2ugCej9Qtr8WISoXUFQiITB1aTsqegAA0XoPorBrrZaYrkke7mgYyHdm2dF0V0iVgVGRMFxk3xBU3ErRkPtRpalzx6xERfgeXrcVJPrGcj9B783C3i33VPULaK27Kq2a3tr0hB1jl0MldBYtFGisn0UzNjKq8fBJNIXjRc93aO2u2e3q3T2saFUDcM8IQ/oYH0Qfl5hxwRs23O3u3e2Oqw1u3/bkOPojaGE3pRqg0kTIBi0aYI2TDIbqaIm2B+A8AKEd229TsS1QhS9H5B0CRSFsBfkMidQtgRovrxyL6lxXxcStK8Yc10xXS8odXMt5mtxN8FAQwMyQR12sBN3AGQgZOSA/EetgPup0ATIPRG1mgyJwPbnmaRcWhoOFhpX7TJnyK79ubZmIC0HFmfSX1mLAzKbL6Jg71HOGLnOSoFWICK75Zz18aP0toeh1mCGuKS0gEQESgVMIFXs+LDXBK5EWGrn2HO5ALBS3Y1zJQcTIzeWQJVaouHoYuwF4vqhByFjGpB2ogdTboBQBRrgHgMU3w0AWuBBbgsd7inyBBPjoSBAMUHhbiSBrgMUBBHiscLyccegoo/nFQSAMVLzaAHyVA3iGABQegMUMUGBzyISATbgLyGBcUHgmvJu0ALyMUsctzcUQtWWYmUMJhxTem4KH33WRJ5ZdijgjILPSLHT5WUHV15naKBbMG1XEDGFNWY7NmGASG0XyGZ9+FyG3ofB34L9KA3ErREuBimHjXLms70ubnEbmA0nfBodugAwTiUBmAEzsJkIOgEZERUtcKmI6ey6dlIm9ImfjgqJ3Iaw1j9wkatwd0lGAvbnmzViBhFRohWf/IYiueKA1QoWsD3Jog5vogiA1QZfBY5fekFeleefoxVfrc6vpeXutg1QyedeExFfjRlfDe1eNetfzfLfGfdebfcA7fPEKs01zN3Z4kvxQtxwUMOWgQ2zCEo8lX0HH9ifAFkWiWjOQx+nn9PRprLdUVgd8P0nNAA135wWStqeN01R/wphbuOmYnunpSXxZSQJyXRRhXmJVTfB58Lh8kagHSxm4HLPZXpql07PeagflXvTvOUzVm2KtXofYeyH7oEfKB7pzqzeMBeF5eMfuAsfTm06UuTW2GkNCfglt+RSdU3IheOJvzZ4Fmohi+awQJVL5/6fBYl/df3n9ffN3IfoF/8aPBi1S1IAc/JJgdkBaM/QZJJf3Z7kdvEhSOrk7wwBW9AWz/YcK/25iKhHeC/GAXr1t4G8+kuIO7q5AlJSl1oXkfoE3wXz18xU8pSVN4g5YugfuHNLlpej76oMB+6DIfss3B7IEno5/V0DuDdBk99+t4XAkQxh4At4e8OWfrfzLoP8EwK/H6IVyEHvMMW7zMQf5AkGUAn+6Al/tGB+hrE2kKA13tbzgGrAEBzJZAXf3N66DYBag+ARoPC6cUBBk/HZjP3IaKDBYDCSJsoMTCVkDW2PI1pvzx6msCelkEATwMXj1hPOciWQDH18Aq1ZB8mFKgoIX4uC2Abg1QR7wwHvICk4vIpJLygEW9ImqA93p7zm7GCy6OQtgHkP0GYANBH/BsEGjDRhpL278d+GqBeiBoXooIQ0IAPwDn1LWTSEIWIk8JaIYWeNHgRTy8YtBBe9QahJbkyyVJwhJPNMCDCqDngPk1ySSGgh/bKUKAxILCFAIwYKpfQdUdxtQKs5ysbOyDegYD0j5ecWBLnZAm52PTcwdhypTMNeDOGicME4KPfvWECEc9ghYfYHkTzmHgCMhkAlAS730jmCUh6grZEYM16gjchZgtAZCMsFbJA6tgoQdPxEGOD4hrg8Ee4PpTWCC4RCKTqvElx2tnAuAXZh4iJrCIjma/OuBvwuYiU/BO/NRPZA0Svc9gcYbpK311pOkyqVIg5iTVCBGMQa6ubpKiFCSv0Ik2yaJNjFxjxILw0opILajFCKhbAYaAAFJPR40aoWuE5QTRWA1Q11H8E9Hfh4da4oSILGpxQDmUwciuLABHn6Eq49mtOenC9T+hcjq8KLDQBoAoa+irENie6HNUeoHwfAbiexJgJ47aIWk54L4AnjgS+hwYGudVJ63BBkNYmAgalvqmRwqogyaaPkpKN5YDx80LbaGCmPKQgg0xlIXhj3mI41jrc0ELoEZBtwBJVgLtHCkvWxp8AYWdfTUkpWRrfBYGf+CZt3z5EzM3hDAy4XRSc4j8NWY/KHoYAMAhwaEXpfMLNCjjeD6A8cLgFQGTjwZ04igTOH7BziBxg4ZsHLikJHRqhG6dMOgBqH8anj84UADrm8XO49BccbxW4G8W/Fncsc2OLHGCQeADccc15fcj8V24CgjytAe4o+OXEvEsct5OEmgFxyiALytwEbg8FxRbdDu9xaCdcEWJY4ASx5B4AwB6A448cJsZcW8RxxvElAJAE7g8HuLbl3iPQB4DjjQBsShu3XNAN1zYltc2uDwEgLcBxwMB7ysE88Rig25rcAS+E2gBCXO5wlrgPQd4tN2lTjcnyjXFCQ1zeLHlsc4kiAJAC64cTRuO3DFG8TYnfJ9u0JB4PcB6AfkgJgkhgB+VvJ/izJekyieeKxxvE7JhE+8ljhG6TcBuuKISTjjYlKAviZ5J4jjixyXcGAnXAUCxP0lQA8gi3WgBijSnwSscvoXHF5NuBMSspIJDFDjgEAMB7iUUBbkVJxzQlqEHkgydcFKk2SccWE47gwF8mkTQSzXOKdNxIn3l/iAgJSfeVuBoAdJME2qVAGGllSBACJaCa+PMlnk0ASk3CepPfGXdaJ/xWgA8A27XAfx+YMaZAD+LoTcUPEu4jaE2mCTvxrxJqYsU+JHTPiJASaT0GEl3lbg+KPaR8SOm44VJjxZCTjha7pT6J1wAULCSQmviuubxOgJtLW7vkkpewZSV5NoAAS3w5EkgDpNoBbk7yOk9bqqAeBeSVA0qISX8XfK7Sg4S488SBOW64o7iAgcGdeWlR3kBQaABaTRJAk4yzyaM58vcVxRAzYpQoPOMuKuKXjEA14vYrePVAWx9AQAA=== -->

<!-- internal state end -->
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=y-scope/spider&utm_content=108):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

@sitaowang1998
sitaowang1998 requested review from davidlion and removed request for davidlion April 15, 2025 19:09
Comment thread CMakeLists.txt

@davidlion davidlion left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Update building/setup parts of docs/README.

@sitaowang1998

Copy link
Copy Markdown
Collaborator Author

docs/README is solely for building and docs. I've updated the top level README with new setup.

@sitaowang1998
sitaowang1998 requested a review from davidlion April 17, 2025 15:55

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
README.md (1)

13-16: Clarify dependency installation context
The new instructions correctly guide contributors to install dependencies via the Taskfile. For improved clarity, consider noting that task deps:dep_install must be run from the project’s root directory and relies on Task CLI v3.40.0 or newer (as specified in the requirements).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b94aff5 and 0c592b5.

📒 Files selected for processing (1)
  • README.md (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
  • GitHub Check: lint

@davidlion davidlion left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's my fault this PR dragged on, but can we update it to use the new helper from y-scope/yscope-dev-utils#41? The change should mostly just be removing some of the new tasks as they are now in dev-utils.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
dep-tasks.yaml (3)

6-15: Evaluate and centralize dependency variables
The repeated pattern of G_<LIB>_LIB_NAME and G_<LIB>_WORK_DIR could be abstracted (e.g., loop over a list of libs) to reduce duplication and simplify future additions. Also verify that G_DEPS_DIR and G_DEPS_CMAKE_SETTINGS_DIR are defined elsewhere to avoid task failures.


44-49: Ensure safe directory cleanup and creation
Using rm -rf and mkdir -p is standard, but consider adding a guard to validate G_DEPS_CMAKE_SETTINGS_DIR isn’t empty or / to prevent accidental deletions.


159-171: Reuse add-package-root-to-cmake-settings for ystdlib
Instead of a manual echo block, you can invoke the existing helper to keep code DRY and ensure consistent quoting:

 download-ystdlib:
     internal: true
     run: "once"
     cmds:
       - task: ":utils:remote:download-and-extract-tar"
         vars:
           FILE_SHA256: "d3fc9804eacb3ee4f156ae0ca37151cb04847580"
           OUTPUT_DIR: "{{.G_YSTDLIB_WORK_DIR}}/{{.G_YSTDLIB_LIB_NAME}}-src"
           URL: "https://github.com/y-scope/ystdlib-cpp/archive/d3fc980.tar.gz"
-      - >-
-        echo "set(
-        SPIDER_YSTDLIB_SOURCE_DIRECTORY \"{{.G_YSTDLIB_WORK_DIR}}/{{.G_YSTDLIB_LIB_NAME}}-src\"
-        )" >> "{{.G_DEPS_CMAKE_SETTINGS_DIR}}/{{.G_YSTDLIB_LIB_NAME}}.cmake"
+      - task: "add-package-root-to-cmake-settings"
+        vars:
+          NAME: "SPIDER_YSTDLIB_SOURCE_DIRECTORY"
+          INSTALL_PREFIX: "{{.G_YSTDLIB_WORK_DIR}}/{{.G_YSTDLIB_LIB_NAME}}-src"
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0c592b5 and 464dee8.

📒 Files selected for processing (4)
  • CMakeLists.txt (1 hunks)
  • dep-tasks.yaml (2 hunks)
  • src/spider/.clang-format (1 hunks)
  • src/spider/CMakeLists.txt (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • src/spider/.clang-format
  • src/spider/CMakeLists.txt
🚧 Files skipped from review as they are similar to previous changes (1)
  • CMakeLists.txt
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: lint
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
🔇 Additional comments (8)
dep-tasks.yaml (8)

28-29: Confirm proper sequencing of dep_install invocation
Adding - task: "dep_install" to both lib_install_mac and lib_install_linux ensures the new workflow runs after platform‐specific scripts. Verify on each OS that only one dep_install executes and there are no unintended repeats.

Also applies to: 36-37


38-42: Encapsulate dependency installation steps
The dep_install task cleanly sequences install-all-init, install-all-run, and install-all-finish. This modular breakdown is clear and maintainable.


50-57: Verify installation task dependencies order
install-all-run properly declares its sub‐tasks (install-abseil, install-Catch2, install-outcome, download-ystdlib). With install-outcome depending on install-quickcpplib, the overall order is correct.


83-99: Use consistent task naming conventions
The install-abseil task leverages :utils:cmake:install-remote-tar correctly. Ensure the lowercase absl value for G_ABSEIL_LIB_NAME matches your CMake find_package(absl ...) calls for consistency.


100-116: Validate Catch2 version and naming
The Catch2 URL, checksum, and CMake options look correct. Note that G_CATCH2_LIB_NAME is Catch2 (capitalized)—confirm this aligns with the find_package(Catch2 ...) usage in your CMake scripts.


117-139: Ensure correct CMake policy and ordering
Including -DCMAKE_POLICY_DEFAULT_CMP0074=NEW allows <Package>_ROOT support. The install-outcome dependency on install-quickcpplib is explicit and ideal.


140-158: Confirm QuickCPPLib installation parameters
The QuickCPPLib task uses the same install-remote-tar helper with appropriate flags. It aligns well with the other install-xxx patterns.


58-67: ⚠️ Potential issue

Escape quotes in the shell loop
The current block injects template paths inside double‐quoted strings, which can break shell parsing. Use single quotes around the YAML block or escape inner quotes to ensure the loop runs reliably.

Apply this diff to fix quoting:

 install-all-finish:
   internal: true
   cmds:
-    - >-
-      for file in {{.G_DEPS_CMAKE_SETTINGS_DIR}}/*.cmake; do
-        if [ "$file" != "{{.G_DEPS_CMAKE_SETTINGS_FILE}}" ]; then
-          echo "include(\"$file\")" >> "{{.G_DEPS_CMAKE_SETTINGS_FILE}}";
-        fi
-      done
+    - >-
+      for file in '{{.G_DEPS_CMAKE_SETTINGS_DIR}}'/*.cmake; do
+        if [ "$file" != '{{.G_DEPS_CMAKE_SETTINGS_FILE}}' ]; then
+          echo 'include("'$file'")' >> '{{.G_DEPS_CMAKE_SETTINGS_FILE}}';
+        fi
+      done

Likely an incorrect or invalid review comment.

Comment thread dep-tasks.yaml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
lint-tasks.yaml (1)

96-105: Separate report outputs for main vs. examples
Both clang-tidy-find calls write to the same OUTPUT_DIR ({{.G_LINT_CLANG_TIDY_DIR}}), which will merge diagnostics from src/tests and examples into one place. Consider directing the examples scan into its own subdirectory (e.g., {{.G_LINT_CLANG_TIDY_DIR}}/examples) or use a distinct variable so you can review findings for production code and examples independently.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 54f45d3 and da30d3d.

📒 Files selected for processing (1)
  • lint-tasks.yaml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
  • GitHub Check: lint
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)
🔇 Additional comments (1)
lint-tasks.yaml (1)

96-105:

Details

✅ Verification successful

Verify definition of G_EXAMPLES_COMPILE_COMMANDS_DB
The new clang-tidy-find invocation references {{.G_EXAMPLES_COMPILE_COMMANDS_DB}}, but I don’t see it declared in this YAML. Ensure that this variable is defined (for example in your top‑level taskfile.yaml or a shared vars block) so the examples compile‑commands database can be located.


🏁 Script executed:

#!/bin/bash
# Check that G_EXAMPLES_COMPILE_COMMANDS_DB is actually defined in the repo
rg -n 'G_EXAMPLES_COMPILE_COMMANDS_DB' .

Length of output: 287


No action required: G_EXAMPLES_COMPILE_COMMANDS_DB is defined
Confirmed that G_EXAMPLES_COMPILE_COMMANDS_DB is declared in taskfile.yaml (line 18), so the clang-tidy-find invocation will resolve the compile‑commands database as expected.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
dep-tasks.yaml (1)

53-67: Refactor multi-line echo to a here‑doc for clarity
The complex quoting in add-package-root-to-cmake-settings can be simplified using a here‑doc, reducing the risk of syntax errors and improving readability.

 add-package-root-to-cmake-settings:
     internal: true
     requires:
       vars:
         - "NAME"
         - "INSTALL_PREFIX"
     cmds:
-      - >-
-        echo "set(
-          {{.NAME}}_ROOT
-          \"{{.INSTALL_PREFIX}}\"
-          CACHE PATH
-          \"Path to {{.NAME}} settings\"
-        )" >> "{{.G_DEPS_CMAKE_SETTINGS_DIR}}/{{.NAME}}.cmake"
+      - |
+        cat <<EOF >> "{{.G_DEPS_CMAKE_SETTINGS_DIR}}/{{.NAME}}.cmake"
+        set({{.NAME}}_ROOT "{{.INSTALL_PREFIX}}" CACHE PATH "Path to {{.NAME}} settings")
+        EOF
🧹 Nitpick comments (2)
dep-tasks.yaml (2)

68-81: Consolidate remote‑tar tasks with a YAML anchor for DRYness
The install-abseil task is nearly identical to other install-*-tar tasks. Consider defining a reusable anchor:

  x-install-remote-tar: &install-remote-tar
    internal: true
    run: "once"
    cmds:
      - task: ":utils:cmake:install-remote-tar"
        vars: {}
...
  install-abseil:
    <<: *install-remote-tar
    vars:
      NAME: "{{.G_ABSEIL_LIB_NAME}}"
      WORK_DIR: "{{.G_ABSEIL_WORK_DIR}}"
      ...

This will reduce repetition across install-Catch2, install-outcome, etc.


132-145: Unify download-ystdlib echo with helper or here‑doc
Instead of a raw echo, consider reusing add-package-root-to-cmake-settings or switching to a here‑doc for the SPIDER_YSTDLIB_SOURCE_DIRECTORY entry:

cat <<EOF >> "{{.G_DEPS_CMAKE_SETTINGS_DIR}}/{{.G_YSTDLIB_LIB_NAME}}.cmake"
set(
  SPIDER_YSTDLIB_SOURCE_DIRECTORY "{{.G_YSTDLIB_WORK_DIR}}/{{.G_YSTDLIB_LIB_NAME}}-src"
)
EOF

This keeps formatting consistent and reduces risk of quoting mistakes.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between da30d3d and 1c78960.

📒 Files selected for processing (3)
  • CMakeLists.txt (1 hunks)
  • dep-tasks.yaml (2 hunks)
  • tools/yscope-dev-utils (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • tools/yscope-dev-utils
🚧 Files skipped from review as they are similar to previous changes (1)
  • CMakeLists.txt
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: lint
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
🔇 Additional comments (8)
dep-tasks.yaml (8)

6-15: Variables for dependency names and directories are well-defined
The G_<LIB>_LIB_NAME and corresponding G_<LIB>_WORK_DIR variables are consistently named and correctly reference G_DEPS_DIR.


28-29: Invoke dep_install after submodule scripts
Running dep_install immediately after install-lib.sh keeps platform-specific installs and dependency tasks in sequence as intended.


36-37: Platform-specific Linux install also triggers dep_install
The mirrored change for Linux ensures the dependency task runs on both macOS and Linux builds.


38-44: Consider marking dep_install as internal or adding a description
Most tasks in this file are marked internal: true and include a brief desc:. Was omitting internal for dep_install intentional? Adding internal: true or a desc: field could improve consistency.


45-52: install-all-run orchestrates all installs appropriately
The task dependencies correctly sequence install-abseil, install-Catch2, install-outcome, and download-ystdlib.


82-95: install-Catch2 follows the same pattern
The task correctly fetches Catch2 and generates its CMake settings.


96-115: Dependency on QuickCPPLib is configured for Outcome
Specifying install-quickcpplib in install-outcome ensures the correct build order before generating CMake settings.


116-131: QuickCPPLib installation task is correctly set up
The install-quickcpplib task mirrors other remote installs with testing disabled and proper build type.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/spider/worker/DllLoader.cpp (1)

28-28: Ensure symbol name change is consistent with the compiled DLLs.

The symbol name change from "function_manager_get_instance" to "g_function_manager_get_instance" aligns with the corresponding change in FunctionManager.cpp. However, this change will cause runtime failures if any existing compiled DLLs still export the old symbol name.

For naming consistency, consider also updating the function name manager symbol at line 42 to follow the same convention ("g_function_name_manager_get_instance").

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1c78960 and a47cb8f.

📒 Files selected for processing (2)
  • src/spider/worker/DllLoader.cpp (1 hunks)
  • src/spider/worker/FunctionManager.cpp (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/spider/worker/FunctionManager.cpp
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
  • GitHub Check: lint

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (4)
dep-tasks.yaml (4)

28-37: Use deps field instead of in-band task invocation
Embedding - task: "dep_install" in the cmds may interleave shell commands and task invocations unpredictably. It would be clearer to declare the dependency explicitly:

lib_install_mac:
  deps: ["dep_install"]
  dir: "{{.G_SCRIPT_DIR}}/lib_install/macOS"
  cmds:
    - "./install-lib.sh"

This ensures dep_install runs before the shell script and improves readability.


38-44: Mark dep_install as internal
Since dep_install orchestrates lower‑level tasks and isn’t intended for direct user invocation, consider adding internal: true to its definition. This hides the task from the public API and aligns with other internal tasks.


45-52: Unify deps list syntax
The install-all-run task currently uses map‑style dependencies (- task: "install-abseil") whereas lib_install uses simple string lists. For consistency and readability, prefer the simpler string list syntax:

deps:
  - install-abseil
  - install-Catch2
  - install-outcome
  - download-ystdlib

53-116: Reduce duplication across library installation tasks
The install-abseil, install-Catch2, install-outcome, and install-quickcpplib tasks all follow the same pattern invoking :utils:cmake:install-remote-tar with similar variables. Consider templating this pattern with YAML anchors or a parameterised task to adhere to DRY principles and simplify future dependency additions.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a47cb8f and 169e0a7.

📒 Files selected for processing (3)
  • dep-tasks.yaml (2 hunks)
  • src/spider/worker/DllLoader.cpp (2 hunks)
  • src/spider/worker/FunctionNameManager.cpp (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • src/spider/worker/DllLoader.cpp
  • src/spider/worker/FunctionNameManager.cpp
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: lint
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)

Comment thread dep-tasks.yaml Outdated
Comment thread dep-tasks.yaml Outdated
@sitaowang1998
sitaowang1998 requested a review from davidlion April 22, 2025 13:10
Comment thread CMakeLists.txt Outdated
@davidlion davidlion changed the title build: Use tasks to install dependencies instead of submodule. build(deps): Update yscope-dev-utils and migrate dependencies from submodules to task-based installations. Apr 22, 2025

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 400a56d and bfd54d5.

📒 Files selected for processing (2)
  • CMakeLists.txt (2 hunks)
  • examples/quick-start/CMakeLists.txt (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • CMakeLists.txt
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: lint
  • GitHub Check: non-storage-unit-tests (ubuntu-22.04)
  • GitHub Check: non-storage-unit-tests (ubuntu-24.04)
🔇 Additional comments (1)
examples/quick-start/CMakeLists.txt (1)

4-4: Verify PROJECT_IS_TOP_LEVEL guard is reliably defined
Before relying on PROJECT_IS_TOP_LEVEL, ensure it’s always set in the parent CMake context to avoid unexpected behaviour when this project is included elsewhere. If it isn’t guaranteed, consider guarding with:

if(DEFINED PROJECT_IS_TOP_LEVEL AND PROJECT_IS_TOP_LEVEL)
  #
endif()

Comment thread examples/quick-start/CMakeLists.txt Outdated
@sitaowang1998
sitaowang1998 requested a review from davidlion April 22, 2025 18:47
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.

2 participants