Add Pixi support for reproducible builds + fix ZSTD detection#2
Closed
Alvvalencia wants to merge 4 commits intoPlotJuggler:mainfrom
Closed
Add Pixi support for reproducible builds + fix ZSTD detection#2Alvvalencia wants to merge 4 commits intoPlotJuggler:mainfrom
Alvvalencia wants to merge 4 commits intoPlotJuggler:mainfrom
Conversation
Entire-Checkpoint: ce57f6f3daac
Only create GitHub Releases when triggered by tag push. Manual workflow_dispatch triggers will build packages but skip release creation. Entire-Checkpoint: 84b09ae8a281
facontidavide
added a commit
that referenced
this pull request
Mar 2, 2026
Architecture: Extract backend-agnostic core into app/ with abstract interfaces (TopicSourceInterface, SubscriptionManagerInterface). ROS2 adapter in ros2/, RTI Connext DDS adapter in rti/. BridgeServer takes interfaces via constructor injection; event loop externalized. Bug fixes from code review: - #1: Incremental session update during subscribe prevents ref-count leak if client disconnects mid-subscribe (add_subscription rollback) - #2: Remove failed topics from session on resume to prevent ref-count underflow on disconnect - #4: Unsubscribe now accepts object format [{"name": "/topic"}] in addition to string format ["/topic"] - #6: Bound incoming WebSocket queue to 1024 messages to prevent unbounded memory growth under overload - #7: Release clients_mutex_ before sending in WebSocket middleware (send_reply, send_binary, publish_data) to reduce lock contention - #9: Validate publish_rate > 0 early in initialize(), before starting the middleware - #15: Remove dead last_read_timestamp_ns_ field from MessageBuffer Test improvements: - Enhanced MockSubscriptionManager with ref-count tracking and underflow detection - Fixed UnsubscribeRemovesTopics and SubscribeIsAdditive to use real mock topics (previously tested wrong thing) - Added 7 new regression tests for each bug fix 317 tests pass (regular + TSAN + ASAN clean). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: 7cd20ad6de03
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.
This PR introduces Pixi support to enable fully reproducible, one-command builds:
Pixi manages ROS 2, toolchain, and dependencies inside an isolated environment,
removing the need for:
Additionally, this PR fixes ZSTD detection in conda/Pixi environments by allowing
shared library fallback when the static library is not available. This improves
portability across different build systems.
Tested with ROS 2 Jazzy.