Skip to main content

ucx-development

Develop, build, and test UCX code. Use when asked to change UCX internals, compile UCX, run UCX tests, or report verification coverage.

Source facts

Repository
openucx/ucx
Last source activity
May 17, 2026 at 10:13
Detected SKILL.md language
English
Stars
1,723
Forks
613

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ucx-development
description
Develop, build, and test UCX code. Use when asked to change UCX internals, compile UCX, run UCX tests, or report verification coverage.
# UCX Development ## Overview Use this skill for changing UCX itself. Durable code rules live in `AGENTS.md` files and project docs; this skill defines the end-to-end development workflow, including build and test commands. ## Required Reading Before editing or judging code: - Follow the `AGENTS.md` discovery rule from the root guide. - Read `docs/CodeStyle.md`, `docs/LoggingStyle.md`, or `docs/OptimizationStyle.md` when the change touches style, logging, or performance-sensitive code. - Read `REVIEW.md` when matching UCX reviewer expectations matters. ## Edit Workflow 1. Identify the owning subtree and nearby implementation pattern before editing. 2. Apply the rules from the applicable `AGENTS.md` files and project docs. 3. Make the code or test change. 4. Build UCX or explain why the local environment cannot build it. 5. Run focused tests that cover the changed behavior. 6. Report the build/test commands used and any hardware, optional dependency, or coverage gaps. ## Build The two main helpers are `configure-devel` and `configure-release`: pick `configure-devel` for failure investigation, debug-oriented and feature work (logging, assertions, gtest, and valgrind enabled), `configure-release` for performance work (those checks disabled and optimized for speed). From a fresh checkout, create an out-of-source build: ```sh ./autogen.sh mkdir -p build-<flavor> # <flavor> is "devel" or "release" cd build-<flavor> ../contrib/configure-<flavor> --prefix=$PWD/install make -j$(nproc) make install ``` Run `autogen.sh` and configure once per build directory. For incremental builds, run `make -j$(nproc)` again from `build-<flavor>`; use `make clean` before a fresh rebuild when necessary. Prefer repository configure helpers over ad hoc flag sets. If a dependency or optional transport is unavailable, report the missing capability instead of editing around it. When build configuration details matter, inspect `autogen.sh`, `contrib/configure-devel`, `configure.ac`, and `config/m4`. ## Unit Tests From `build-devel`, run the C++ unit test target with: ```sh make -C test/gtest test ``` Use `make check` when broader automake test coverage is needed. ## Result Interpretation - Capture the command, failing test name, relevant log lines, and environment variables. - Distinguish test failures from unavailable optional dependencies or hardware. - Do not hide flakes behind broad reruns. If a rerun is useful, say whether the failure reproduced.
View on GitHub