Draft
Conversation
- Remove unused #include "logging.hpp" from status.hpp (50+ files no longer transitively pull in spdlog). Add minimal #include <fmt/format.h> for fmt::formatter<StatusCode> specialization, with @fmtlib dep in BUILD. - Remove #include <fmt/ranges.h> from logging.hpp; add it only to the 4 files that actually format containers (imagegen_init.cpp, openai_completions.cpp, assisted_decoding_test.cpp, llmnode_test.cpp). - Move <spdlog/sinks/basic_file_sink.h> and <spdlog/sinks/stdout_sinks.h> from logging.hpp to logging.cpp (sinks only needed in configure_logger()). - Add explicit #include "logging.hpp" to color_format_configuration.cpp and precision_configuration.cpp that relied on the transitive include. Verified: //src:ovms and //src:ovms_test build with mp_on_py_on, mp_on_py_off, and mp_off_py_off configs.
Removed #include logging.hpp from 12 headers that had zero logging symbol usage. Added explicit #include <fmt/format.h> to 3 headers that have fmt::formatter specializations (grpc_utils.hpp, modelversionstatus.hpp, nodeinfo.hpp). Added explicit #include logging.hpp to 2 files that lost transitive include (tensor_conversion.hpp, tensor_conversion_common.cpp). Updated BUILD deps: replaced libovmslogging with @fmtlib where only fmt was needed.
…odel.hpp - Removed #include <openvino/openvino.hpp>, replaced with forward declaration of ov::Core (only used as unique_ptr member) - Removed #include <spdlog/spdlog.h> (unused in header) - Removed #include <sys/stat.h> (unused in header) - Replaced #include model.hpp with modelconfig.hpp + forward decl of Model. Moved modelFactory() body to modelmanager.cpp. - Added #include <openvino/openvino.hpp> to modelmanager.cpp - Added #include model.hpp to 4 .cpp files and 4 test files that used Model via shared_ptr through the transitive include. This eliminates the entire OpenVINO umbrella header and spdlog from the 17 translation units that include modelmanager.hpp.
…name - Removed #include <fstream> (unused in header, added to .cpp) - Removed #include <set> and dead static member configAllowedLayouts (declared but never defined or used anywhere) - Removed #include anonymous_input_name.hpp, moved isShapeAuto(), isShapeAnonymous(), isShapeAnonymousFixed(), anyShapeSetToAuto() bodies from inline in header to modelconfig.cpp - Added #include <fstream> and anonymous_input_name.hpp to .cpp
…to decouple mediapipe from ModelManager - Create ServableNameChecker interface (servableExists) and MetricProvider interface (getMetricRegistry, getMetricConfig) - ModelManager inherits both interfaces - MediapipeFactory uses unique_ptr, forward-declared in modelmanager.hpp - mediapipegraphdefinition.hpp/cpp depend on ServableNameChecker, not ModelManager - mediapipefactory.hpp/cpp depend on interfaces, not ModelManager - Remove dead parameters: retire(), create(), retireOtherThan(), revalidatePipelines() - Add explicit mediapipefactory.hpp includes where needed (4 src + 3 test files)
…hecking - Add ServableType enum (Model, Pipeline, Mediapipe) with bitmask operators - servableExists() accepts ServableType check param to specify which types to check - Mediapipe validate: checks Model | Pipeline (skips self) - DAG validate: checks Model | Mediapipe (skips self), removes mediapipefactory.hpp include - Model loading: checks Pipeline | Mediapipe (skips self), removes #if MEDIAPIPE_DISABLE guards - All three servable types now use the same unified servableExists() function
…apper - Change PipelineFactory member from value to unique_ptr in ModelManager - Forward-declare PipelineFactory, Pipeline, ModelInstance, ModelInstanceUnloadGuard in modelmanager.hpp - Move pipeline_factory.hpp include from modelmanager.hpp to modelmanager.cpp - Remove template createPipeline wrapper from ModelManager - Callers now use getPipelineFactory().create() directly - Add explicit pipeline_factory.hpp includes to files that need it
…ableType::Pipeline
- Add ServableDefinition pure virtual interface (getName, isAvailable) - Add SingleVersionServableDefinition bridging ServableDefinition + Servable - Model implements ServableDefinition directly - PipelineDefinition inherits SingleVersionServableDefinition (removes pipelineName member) - MediapipeGraphDefinition inherits SingleVersionServableDefinition (removes name member) - Add Bazel targets for new headers
…cades - Add ModelManager::findServableDefinition() centralizing model->pipeline->mediapipe lookup - Refactor KFS getModelReady to use findServableDefinition (removes nested #if blocks) - Refactor KFS ModelMetadataImpl to use findServableDefinition - Refactor model_service getModelStatus to use findServableDefinition - Refactor CAPI OVMS_GetServableState to use findServableDefinition - Remove unused duplicate BUILD targets: libovmshttpservermodule, libovms_dags_pipelinedefinition - Fix copyright year in single_version_servable_definition.hpp
- Expand SingleVersionServableDefinition with virtual methods: getStatus(), getInputsInfo(), getOutputsInfo(), getMetricReporter(), notLoadedYetCode(), notLoadedAnymoreCode() - Unified waitForLoaded() in SingleVersionServableDefinition base class - Add StatusMetricReporter abstract base to model_metric_reporter.hpp - Unify ServableDefinitionUnloadGuard (replaces PipelineDefinitionUnloadGuard + MediapipeGraphDefinitionUnloadGuard) - Remove mediapipe includes from model_service.cpp and capi.cpp - Unify KFS buildResponse for pipeline/mediapipe paths - Add getServableDefinitionNames() to ModelManager - Add tensorinfo_fwd.hpp for forward declarations - Fix dangling reference: use getName() instead of constructor parameter in PipelineDefinition and MediapipeGraphDefinition constructors
…forward-declare servable types in mediapipegraphdefinition.hpp, remove iostream
…w OpenVINO include in kfs_grpc_inference_service.hpp, move mediapipe parse_text_proto/status to cpp
…e KFS deps from core Phase 3E: Split libovms_mediapipe from ovms_lib into separate target Phase 3F: Extract NodeInitializer registry pattern from initializeNodes() - Created node_initializer.hpp/.cpp with NodeInitializer interface + registry - Created graph_side_packets.hpp extracted from mediapipegraphdefinition.hpp - 7 self-registering concrete initializers in their calculator directories - Refactored ~250 line God function to ~15 line registry loop Phase 3G: Split frontend executors from core mediapipe - libovms_mediapipe (core: factory, definition, executor, config) - libovms_mediapipe_kfs_executor (kfs_graph_executor_impl) - libovms_mediapipe_http_executor (http_graph_executor_impl) Phase 3H: Remove dead KFS/TFS deps from core mediapipe - Removed 5 dead includes (zero symbols used) - Replaced //:ovms_dependencies with specific rapidjson + mediapipe deps - Calculator deps stay at ovms_lib level (not in libovms_mediapipe) - Node initializers use logging.hpp instead of direct spdlog - Fixed missing rapidjson/document.h in rerank_servable.hpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🛠 Summary
JIRA/Issue if applicable.
Describe the changes.
🧪 Checklist
``