Make netft-cpp an SDK-only repository - #18
Conversation
📝 WalkthroughWalkthroughThe bundled CLI, its CMake option, executable, tests, hardware tasks, and installation checks were removed. Documentation and issue templates now describe the standalone C++ SDK, and CI no longer disables CLI building. ChangesBundled CLI removal
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Around line 36-60: Update the README sections containing the netft info and
netft monitor commands to reflect that the SDK installation no longer provides
the CLI. Replace those commands with relevant C++ SDK usage examples, or
explicitly instruct users to install netft-cli before running them.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 5941d0e0-fa39-49d7-bb0d-9bf71804727a
📒 Files selected for processing (15)
.github/ISSUE_TEMPLATE/bug_report.yml.github/ISSUE_TEMPLATE/feature_request.yml.github/workflows/ci.ymlCHANGELOG.mdCMakeLists.txtREADME.mdapp/cli.cppapp/cli.hppapp/main.cpppixi.tomltest/CMakeLists.txttest/assert_exit_code.cmaketest/hardware_test.shtest/install_test.shtest/test_cli.cpp
💤 Files with no reviewable changes (9)
- .github/workflows/ci.yml
- test/hardware_test.sh
- app/main.cpp
- test/test_cli.cpp
- app/cli.hpp
- test/CMakeLists.txt
- CMakeLists.txt
- app/cli.cpp
- test/assert_exit_code.cmake
| Configure, build, and install the SDK with CMake: | ||
|
|
||
| ```bash | ||
| git clone https://github.com/netft/netft-cpp.git | ||
| cd netft-cpp | ||
| pixi install | ||
| pixi run cmake -S . -B build/release -G Ninja \ | ||
| cmake -S . -B build/release \ | ||
| -DCMAKE_BUILD_TYPE=Release \ | ||
| -DBUILD_SHARED_LIBS=ON \ | ||
| -DBUILD_TESTING=OFF \ | ||
| -DCMAKE_INSTALL_PREFIX="$PWD/install" | ||
| pixi run cmake --build build/release | ||
| pixi run cmake --install build/release | ||
| cmake --build build/release | ||
| cmake --install build/release | ||
| ``` | ||
|
|
||
| Set `BUILD_SHARED_LIBS=OFF` for a static library. The same CMake commands work with system | ||
| packages instead of Pixi when the required compiler, CMake, Threads, and libcurl dependencies | ||
| are available. Homebrew can provide the macOS dependencies, while vcpkg can provide the Windows | ||
| dependencies. Pass their installation prefixes or toolchain file to CMake as appropriate. For | ||
| a non-system shared-library prefix, configure the platform dynamic loader for `install/lib` | ||
| before running `install/bin/netft`. | ||
|
|
||
| On Windows, configure with `-DNETFT_BUILD_CLI=OFF`. The SDK uses WinSock 2 and links `ws2_32` | ||
| automatically; the current CLI still relies on POSIX file and process facilities. | ||
| Set `BUILD_SHARED_LIBS=OFF` for a static library. Homebrew can provide the macOS dependencies, | ||
| while vcpkg can provide the Windows dependencies; pass their installation prefix or toolchain | ||
| file to CMake as appropriate. The repository's Pixi environment and development tasks are | ||
| documented in [CONTRIBUTING.md](CONTRIBUTING.md). | ||
|
|
||
| ## CMake usage | ||
|
|
||
| After installation, consume the package with CMake config mode: | ||
|
|
||
| ```cmake | ||
| find_package(netft 0.1 CONFIG REQUIRED) | ||
| find_package(netft 0.3 CONFIG REQUIRED) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Remove or relabel the remaining CLI commands.
The new installation instructions install only the SDK, but the README still instructs users to run netft info and netft monitor at Line 104 and Lines 114-120. These commands are not installed by this project after the bundled CLI removal. Replace them with C++ SDK examples, or state that users must install netft-cli first.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 36 - 60, Update the README sections containing the
netft info and netft monitor commands to reflect that the SDK installation no
longer provides the CLI. Replace those commands with relevant C++ SDK usage
examples, or explicitly instruct users to install netft-cli before running them.
Removes the legacy bundled CLI, its build option, CLI-specific tests, and hardware harness now superseded by netft-cli. The installed package now contains only the public C++ SDK and CMake package; README and repository templates point command-line users to netft-cli.\n\nValidation: format, 13 native tests, shared/static install consumers, clang-tidy, and actionlint.
Summary by CodeRabbit
Breaking Changes
Documentation
Maintenance