build(pixi): package plotjuggler_sdk as a conda package + prefix.dev publish#126
Merged
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…otobuf_wire Add body.reserve(64) in Writer::message() so GCC 14's optimizer sees a non-zero initial capacity; without it the mid-end inliner concludes the local body vector has size 0 and emits a spurious -Wstringop-overflow on the appendVarint push_back path. GCC 15 does not emit the warning. The reserve() is a capacity hint only — behavior is identical. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Packages the SDK as a conda artifact via rattler-build. The recipe drives cmake -DPJ_INSTALL_SDK=ON, suppresses fmt/fast_float run_exports (both are BUILD_INTERFACE-only in the installed targets), and validates the output with four file-existence tests (Config.cmake, ConfigVersion.cmake, PjPluginManifest.cmake, libpj_base.a). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…on run range Exercises find_package(plotjuggler_sdk) + plugin link + pj_emit_plugin_manifest on every build (all platforms), not just file-existence. Run-deps nlohmann_json >=3.12,<4.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… (review feedback)
… CI's 0.66.2 Final integration review: the SDK version is hardcoded in three places (conanfile.py, recipe.yaml, CMakeLists.txt PJ_PACKAGE_VERSION); the publish guard now checks all three against the tag. Align the dev pack tool to the exact rattler-build the CI uses.
facontidavide
added a commit
that referenced
this pull request
Jun 18, 2026
First conda-packaged release. Bumps the version in all three sources the conda-release version-guard cross-checks (conanfile.py, recipe.yaml context, CMakeLists.txt PJ_PACKAGE_VERSION) plus the conanfile.py docstring example. No consumer-facing API/ABI change since 0.8.0: the only code delta is the GCC-14 -Wstringop-overflow workaround in src/builtin/protobuf_wire.hpp (not an installed header). This patch exists to publish the SDK as a conda package on prefix.dev (via the recipe added in #126) and to exercise the tag-gated release pipeline. 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.
Summary
First step of the Conan→pixi migration: make
plotjuggler_sdkbuild and publish as a conda package, consumed from theplotjugglerprefix.dev channel. The Conan/cloudsmith path is untouched and keeps working in parallel.pixi.toml— conda-forge dev environment + tasks (configure/build/test/install/pack).pixi run buildreproduces the SDK's install-capable build;pixi run -e test testruns the gtest suite;pixi run -e pack packproduces the.conda.recipe.yaml— rattler-build recipe driving the SDK's existing nativeinstall(EXPORT)(no SDK CMake changes needed).ignore_run_exportsforfmt/fast_float(header-only/BUILD_INTERFACE-only);rundepnlohmann_json. The package test buildsexamples/sdk_consumerso every build self-verifiesfind_package(plotjuggler_sdk)+ linking +pj_emit_plugin_manifest()..github/workflows/conda-release.yml— tag-gated (v*) build +rattler-build upload prefix --channel plotjuggler. The version guard cross-checks the tag against all three hardcoded version sources (conanfile.py,recipe.yamlcontext,CMakeLists.txtPJ_PACKAGE_VERSION). linux-64 for now.pj_base/src/builtin/protobuf_wire.hpp— one-linebody.reserve(64)to dodge a GCC 14-Wstringop-overflowfalse-positive (mid-end warning a pragma can't reach). Behavior-preserving (capacity hint only); the SDK now builds clean under-Werroron GCC 14 and 15.pixi.lockcommitted for reproducible solves;rattler-buildpinned to 0.66.2 (matches CI).Verification done
pixi run -e pack packbuildsplotjuggler_sdk-0.8.0-*.conda; rattler's package tests (incl. the consumer build) pass.pixi add plotjuggler_sdkfrom the built channel resolves and a consumer links a real plugin.soagainst it.pixi run -e test test→ 46/46 SDK gtests pass (under the conda GCC 14 toolchain).actionlintclean on the workflow.Before this can publish
PREFIX_API_KEY(a prefix.dev token with write access to theplotjugglerchannel). The publish job runs on tagv*.Follow-ups (not in this PR)
test -f/$PREFIX/.abuild+test blocks are POSIX-only and need a Windowssh/batsplit — validate via CI.pj-official-plugins) follows in later phases.🤖 Generated with Claude Code