Skip to content

refactor(api): expose provider bundles in phlex namespace - #883

Open
knoepfel wants to merge 1 commit into
Framework-R-D:mainfrom
knoepfel:provider-bundle-api
Open

refactor(api): expose provider bundles in phlex namespace#883
knoepfel wants to merge 1 commit into
Framework-R-D:mainfrom
knoepfel:provider-bundle-api

Conversation

@knoepfel

@knoepfel knoepfel commented Sep 10, 2026

Copy link
Copy Markdown
Member

Fixes #686.

  • API

    • Move provider_bundle and provider_bundles from phlex::detail to the public phlex namespace.
    • Keep provider_function and related implementation types in phlex::detail.
    • Update form_input_source and provider construction code to use the public API.
  • Tests

    • Update provider-related test fixtures and overrides to use phlex::provider_bundle and phlex::provider_bundles.
    • Preserve existing provider behavior and test coverage.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 2341c8f3-48d5-42f7-a26c-80ed690ae3f4

📥 Commits

Reviewing files that changed from the base of the PR and between 8462501 and ec3ea1a.

📒 Files selected for processing (8)
  • form/form_source.cpp
  • phlex/core/provider_node.hpp
  • test/framework_graph_test.cpp
  • test/max-parallelism/provide_parallelism.cpp
  • test/output_products_test.cpp
  • test/product_selecting_test.cpp
  • test/provider_test.cpp
  • test/source_test.cpp

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: Analyze cpp with CodeQL
  • GitHub Check: clang-tidy-check
  • GitHub Check: coverage
  • GitHub Check: build (gcc, none)
🧰 Additional context used
📓 Path-based instructions (3)
Use clang-format tool for all C++ code formatting (VS Code auto-formats on save); configuration defined in `.clang-format` with 100-character line limit and 2-space indentation Follow clang-tidy recommendations defined in `.clang-tidy`

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • test/max-parallelism/provide_parallelism.cpp
  • test/product_selecting_test.cpp
  • test/framework_graph_test.cpp
  • form/form_source.cpp
  • phlex/core/provider_node.hpp
  • test/source_test.cpp
  • test/provider_test.cpp
  • test/output_products_test.cpp
Use `.hpp` for header files, `.cpp` for implementation, and `*_test.cpp` for test files in C++ Enforce 100-character line limit and 2-space indentation in C++ code via `.clang-format` Use `QualifierAlignment: Right` (east-const) style: `int...

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • test/max-parallelism/provide_parallelism.cpp
  • test/product_selecting_test.cpp
  • test/framework_graph_test.cpp
  • form/form_source.cpp
  • phlex/core/provider_node.hpp
  • test/source_test.cpp
  • test/provider_test.cpp
  • test/output_products_test.cpp
Avoid boolean parameters in C++ interfaces; prefer enumerations instead

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • phlex/core/provider_node.hpp
🔇 Additional comments (8)
phlex/core/provider_node.hpp (1)

24-38: LGTM!

form/form_source.cpp (1)

78-82: LGTM!

Also applies to: 115-119

test/max-parallelism/provide_parallelism.cpp (1)

11-29: LGTM!

test/source_test.cpp (1)

9-9: LGTM!

test/framework_graph_test.cpp (1)

24-24: LGTM!

Also applies to: 28-28

test/output_products_test.cpp (1)

46-46: LGTM!

Also applies to: 56-60

test/product_selecting_test.cpp (1)

39-39: LGTM!

test/provider_test.cpp (1)

40-40: LGTM!

Also applies to: 51-55, 60-64


📝 Walkthrough

Walkthrough

provider_bundle and provider_bundles move into the public phlex namespace. Production and test provider sources update their return types and bundle construction to use the public names. Provider behavior remains unchanged.

Changes

Provider bundle namespace

Layer / File(s) Summary
Public provider bundle types
phlex/core/provider_node.hpp
provider_bundle and provider_bundles now reside in phlex. Their detail-layer member types remain explicitly qualified.
Provider construction call sites
form/form_source.cpp, test/framework_graph_test.cpp, test/max-parallelism/provide_parallelism.cpp, test/output_products_test.cpp, test/product_selecting_test.cpp, test/provider_test.cpp, test/source_test.cpp
Provider overrides and bundle construction use the public types. Provider functions and configuration remain unchanged.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Severity of issue fixed: Low

Suggested reviewers: beojan

Merge Risk: ⚪ Minimal · up to ec3ea

Provider bundle types are now available in the public phlex namespace, and all reviewed providers use the updated names without changing behavior. The change is ready to merge.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 12 functions across 8 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the primary change: exposing provider bundles in the public phlex namespace.
Linked Issues check ✅ Passed The changes satisfy issue #686 by moving provider_bundle and its provider_bundles alias from phlex::detail into the public phlex namespace, then updating production and test usages.
Out of Scope Changes check ✅ Passed All changes support the namespace API refactor. The production change updates the public declarations and the remaining changes update dependent implementations and tests.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@codecov

codecov Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@            Coverage Diff             @@
##             main     #883      +/-   ##
==========================================
+ Coverage   85.18%   85.19%   +0.01%     
==========================================
  Files         175      175              
  Lines        7606     7606              
  Branches      909      909              
==========================================
+ Hits         6479     6480       +1     
  Misses        889      889              
+ Partials      238      237       -1     
Flag Coverage Δ
scripts 80.42% <ø> (ø)
unittests 87.47% <100.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
form/form_source.cpp 55.91% <100.00%> (ø)
phlex/core/provider_node.hpp 100.00% <ø> (ø)

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8462501...ec3ea1a. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

In 0.3.0, provider_bundle is under "detail" namespace.

1 participant