refactor(sdk)!: extract pj_datastore to the app repo; SDK now Apache-2.0 (0.6.0)#113
Merged
Conversation
The columnar storage engine (pj_datastore) was the only MPL-2.0 part of this package and the only component plugins never link: plugins reach storage through the pj_base C ABI, and the host-side write bridges live in the engine. Move it into the PlotJuggler application repo so this submodule is purely the plugin SDK (pj_base + pj_plugins). - Remove pj_datastore/ entirely and the datastore Conan/CMake component, the with_datastore / with_parquet_example options, and the nanoarrow / tsl / benchmark detection that existed only for the engine. - License is now Apache-2.0 in full (drop LICENSE-MPL); update LICENSE/README. - Bump 0.5.1 -> 0.6.0 (removing the datastore component is an API removal). - Update CI workflows, the SDK install smoke-test, and docs (CLAUDE.md, V4_STORE.md, pj_plugins docs) to reflect the new engine location. BREAKING CHANGE: the `datastore` CMake/Conan component is removed from plotjuggler_core. Consumers that need the storage engine must depend on it in the application repo; plugins are unaffected (they use base/plugin_sdk/plugin_host). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
What
Extracts the columnar storage engine (
pj_datastore) out of this SDK submodule into the PlotJuggler application repo, leavingplotjuggler_coreas a pure plugin SDK (pj_base+pj_plugins).Why
pj_datastoreis the one component plugins never link — they reach storage through thepj_baseC ABI, and the host-side write bridges (DatastoreSourceWriteHost, …) live inside the engine. It was also the only MPL-2.0 piece of an otherwise Apache-2.0 SDK. Moving it aligns the repo boundary with the actual plugin-facing surface and the license boundary.Changes
pj_datastore/(engine, tests, benchmarks, examples, docs) andLICENSE-MPL.PJ_BUILD_DATASTORE/PJ_BUILD_PARQUET_IMPORT_EXAMPLE,add_subdirectory(pj_datastore), and the nanoarrow/tsl/benchmark detection (relocated to the app repo).datastorecomponent,with_datastore/with_parquet_exampleoptions and their arrow/nanoarrow/boost deps;license = "Apache-2.0".0.5.1→0.6.0(removing thedatastorecomponent is an API removal).LICENSE,README.md,CLAUDE.md,V4_STORE.md,pj_pluginsdocs, the SDK install smoke-test, and the Linux/macOS/Windows/release workflows updated.The
datastoreCMake/Conan component is gone. Consumers needing the engine depend on it in the application repo. Plugins are unaffected — they usebase/plugin_sdk/plugin_hostonly.Verification
Standalone
./build.sh+./test.sh: 44/44 tests pass, SDK builds with no datastore.🤖 Generated with Claude Code