feat(packaging): conda/pixi package for prefix.dev + conda-forge - #133
Open
facontidavide wants to merge 2 commits into
Open
feat(packaging): conda/pixi package for prefix.dev + conda-forge#133facontidavide wants to merge 2 commits into
facontidavide wants to merge 2 commits into
Conversation
Ship cloudini as a conda package (shared library + headers + CMake package config + cloudini_rosbag_converter CLI), buildable with rattler-build and publishable to prefix.dev and conda-forge. Library/CMake changes to make it installable outside ament: - install(EXPORT) + generated cloudini_libConfig.cmake for standalone builds, so downstream can find_package(cloudini_lib) and link cloudini::cloudini_lib - $ORIGIN/../lib install RPATH so installed executables locate the lib - prefer shared zstd/lz4 variants when the library itself is shared - find_or_download_zstd.cmake: accept conda's zstd::libzstd_shared / zstd::libzstd (conda-forge ships no static zstd) instead of vendoring a copy - find_or_download_mcap.cmake: -DMCAP_INCLUDE_DIR offline hook (no-network builds) - pin mcap_converter STATIC so the CLI stays self-contained under BUILD_SHARED_LIBS=ON conda/recipe.yaml is hermetic (no network at build): links conda zstd/lz4-c, uses conda cxxopts, and consumes a pre-fetched mcap source. Same recipe serves prefix.dev and conda-forge/staged-recipes. conda/RELEASING.md documents the release + publish workflow. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <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.
Adds a conda package for Cloudini so it can be released on pixi / prefix.dev and conda-forge.
What ships in the package
libcloudini_lib.so(shared) + headersfind_package(cloudini_lib)+cloudini::cloudini_libcloudini_rosbag_converterCLILibrary/CMake changes (to make it installable outside ament)
install(EXPORT)+ generatedcloudini_libConfig.cmakefor standalone (non-ament) builds$ORIGIN/../libinstall RPATH so installed executables locate the co-installed libzstd/lz4variants when the library is sharedfind_or_download_zstd.cmake: accept conda'szstd::libzstd_shared/zstd::libzstd(conda-forge ships no static zstd) instead of vendoringfind_or_download_mcap.cmake:-DMCAP_INCLUDE_DIRoffline hook (network-free builds)mcap_converterSTATIC so the CLI is self-contained underBUILD_SHARED_LIBS=ONRecipe
conda/recipe.yamlis hermetic (no network during the build script): links condazstd/lz4-c, uses condacxxopts, and consumes a pre-fetchedmcapsource. One recipe serves both prefix.dev and conda-forge/staged-recipes.conda/RELEASING.mddocuments the full workflow.Validation (local, rattler-build 0.66.2)
rattler-build build→cloudini-1.2.4-*.conda, all package tests pass.sodynamically linkslibzstd.so.1+liblz4.so.1(305 KB vs 1.25 MB vendored)find_package(cloudini_lib)consumer compiles, links, and runsRUNPATH $ORIGIN/../lib)Before publishing
conda/recipe.yamlsource[0].sha256is a placeholder — fill after tagging1.2.4(command in RELEASING.md).🤖 Generated with Claude Code