Skip to content

Make netft-cpp an SDK-only repository - #18

Merged
han-xudong merged 1 commit into
mainfrom
refactor/sdk-only
Jul 31, 2026
Merged

Make netft-cpp an SDK-only repository#18
han-xudong merged 1 commit into
mainfrom
refactor/sdk-only

Conversation

@han-xudong

@han-xudong han-xudong commented Jul 31, 2026

Copy link
Copy Markdown
Member

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

    • Removed the bundled command-line interface and its build option from the C++ SDK.
    • CLI executables are no longer built or installed; CLI workflows are maintained separately.
  • Documentation

    • Updated installation, feature, platform, safety, and contribution guidance to focus on the SDK.
    • Added an unreleased changelog entry documenting the CLI removal.
  • Maintenance

    • Updated CI, issue templates, installation checks, and test configuration for the SDK-only release.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The 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.

Changes

Bundled CLI removal

Layer / File(s) Summary
Remove CLI build and validation
CMakeLists.txt, app/*, test/CMakeLists.txt, test/test_cli.cpp, test/assert_exit_code.cmake, test/hardware_test.sh, test/install_test.sh, pixi.toml, .github/workflows/ci.yml
The CLI targets, entry points, tests, hardware tasks, and CLI installation checks were removed. The install test now verifies that no netft executable is installed.
Update SDK documentation and release notes
README.md, CHANGELOG.md
The project is documented as a standalone SDK. Build instructions use direct CMake commands. CLI and hardware-test documentation was removed. The changelog records the CLI removal and external netft-cli workflows.
Align issue templates with the SDK
.github/ISSUE_TEMPLATE/bug_report.yml, .github/ISSUE_TEMPLATE/feature_request.yml
Bug reports and feature requests now request C++ SDK behavior, API details, or integration workflows without CLI references.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • netft/netft-cpp#4: Related CMake, CI, and README changes for CMake 3.16 compatibility.
  • netft/netft-cpp#10: Related Pixi and CLI test changes, with this PR removing those CLI tasks and tests.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: removing the bundled CLI and making the repository SDK-only.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/sdk-only

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

@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 859eeda and 95c54e2.

📒 Files selected for processing (15)
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • CMakeLists.txt
  • README.md
  • app/cli.cpp
  • app/cli.hpp
  • app/main.cpp
  • pixi.toml
  • test/CMakeLists.txt
  • test/assert_exit_code.cmake
  • test/hardware_test.sh
  • test/install_test.sh
  • test/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

Comment thread README.md
Comment on lines +36 to +60
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)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 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.

@han-xudong
han-xudong merged commit 7d9ac82 into main Jul 31, 2026
20 checks passed
@han-xudong
han-xudong deleted the refactor/sdk-only branch July 31, 2026 02:37
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.

1 participant