Skip to content

Conversation

@knoepfel
Copy link
Member

@knoepfel knoepfel commented Dec 18, 2025

This PR migrates public API types from the phlex::experimental namespace to the main phlex namespace while keeping implementation details in phlex::experimental.

Types moved to phlex namespace:

  • configuration: Configuration management for algorithms and modules
  • concurrency: Concurrency control (unlimited/serial/user-specified)
  • data_cell_index and data_cell_index_ptr: Data hierarchy navigation
  • product_query and product_queries: Product specification
  • handle: Type-safe product handles with data cell context
  • framework_driver: Async driver for framework execution
  • operator""_in: User-defined literal for defining product queries

Facilities remaining in phlex::experimental:

  • framework_graph: Core graph execution engine
  • layer_generator: Test utility for creating data layer hierarchies
  • product_specification and algorithm_name: Internal naming/identification
  • All detail namespace implementations
  • Node templates
  • Test support utilities (products_for_output, etc.)
  • The when(...) filtering clause member function has been renamed experimental_when(...)

Updated all test files and plugins to use correct namespace qualifications:

  • Changed using namespace phlex::experimental to using namespace phlex where appropriate
  • Qualified experimental types (e.g., experimental::framework_graph)

Closes #105.

@codecov
Copy link

codecov bot commented Dec 18, 2025

Codecov Report

❌ Patch coverage is 81.81818% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
phlex/core/product_query.cpp 60.00% 2 Missing ⚠️

❌ Your project status has failed because the head coverage (76.36%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

@@            Coverage Diff             @@
##             main     #206      +/-   ##
==========================================
+ Coverage   76.27%   76.36%   +0.08%     
==========================================
  Files         124      124              
  Lines        2748     2733      -15     
  Branches      476      475       -1     
==========================================
- Hits         2096     2087       -9     
+ Misses        454      449       -5     
+ Partials      198      197       -1     
Flag Coverage Δ
unittests 76.36% <81.81%> (+0.08%) ⬆️

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

Files with missing lines Coverage Δ
form/form_module.cpp 87.50% <ø> (ø)
phlex/configuration.cpp 100.00% <ø> (ø)
phlex/configuration.hpp 94.44% <ø> (ø)
phlex/core/detail/filter_impl.cpp 95.23% <ø> (ø)
phlex/core/detail/maybe_predicates.cpp 100.00% <100.00%> (ø)
phlex/core/framework_graph.hpp 100.00% <ø> (ø)
phlex/core/glue.hpp 98.36% <ø> (ø)
phlex/core/graph_proxy.hpp 90.00% <ø> (ø)
phlex/core/product_query.hpp 83.33% <ø> (+20.83%) ⬆️
phlex/core/registration_api.cpp 92.30% <ø> (ø)
... and 10 more

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

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

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

Migrate public API types from the experimental namespace to the main phlex namespace while
keeping implementation details in experimental. This makes the public interface cleaner
and signals API stability.

Types moved to phlex namespace:
- configuration: Configuration management for algorithms and modules
- concurrency: Concurrency control (unlimited/serial/user-specified)
- data_cell_index and data_cell_index_ptr: Data hierarchy navigation
- product_query and product_queries: Product specification
- handle: Type-safe product handles with data cell context
- framework_driver: Async driver for framework execution
- operator""_in: User-defined literal for defining product queries

Types remaining in phlex::experimental:
- framework_graph: Core graph execution engine
- layer_generator: Test utility for creating data layer hierarchies
- product_specification, algorithm_name: Internal naming/identification
- All detail namespace implementations
- Node templates
- Test support utilities (products_for_output, etc.)

Updated all test files and plugins to use correct namespace qualifications:
- Changed 'using namespace phlex::experimental' to 'using namespace phlex' where appropriate
- Qualified experimental types (e.g., experimental::framework_graph)
- Updated module registration macros to use phlex::configuration

This change maintains backward compatibility for internal code while establishing a clearer boundary between public API and implementation details.
@knoepfel knoepfel force-pushed the namespace-migration branch from 085fd17 to d3a866d Compare December 19, 2025 21:27
@knoepfel knoepfel requested a review from wddgit December 22, 2025 14:09
Copy link
Contributor

@wddgit wddgit left a comment

Choose a reason for hiding this comment

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

Looks good.

@knoepfel knoepfel merged commit bae9d5d into Framework-R-D:main Dec 22, 2025
35 of 36 checks passed
@knoepfel knoepfel deleted the namespace-migration branch December 22, 2025 16:24
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.

Move anticipated features from phlex::experimental to phlex namespace

2 participants