robostack.github.io icon indicating copy to clipboard operation
robostack.github.io copied to clipboard

Devendor libfranka

Open traversaro opened this issue 3 months ago • 4 comments

Once https://github.com/conda-forge/staged-recipes/pull/31439 is merged.

traversaro avatar Nov 10 '25 10:11 traversaro

Hi @traversaro let me know how I can help devendoring libfranka

nmarticorena avatar Nov 20 '25 04:11 nmarticorena

Hi @traversaro let me know how I can help devendoring libfranka

Thanks! This was mostly to avoid forgetting about this, but by double checking it seems that it was only released in humble (see https://github.com/ros/rosdistro/blob/2092f5af38b63c341f4ccfd5dd9d92bf459a59c2/humble/distribution.yaml#L4886-L4895), so we just need to devendor it.

We need to:

  1. Wait for the next humble rebuild (just to make sure that we do not change the ABI of the existing libfranka)
  2. Make sure that we have the all the features required by ROS packages in the libfranka conda-forge package
  3. Decide the version of libfranka to use, we can use directly the version that is used in ROS build farm, or override it (for compat with the rest of conda-forge)

Once all of this is sorted, we need to add the following section in pkg_additional_info.yaml :

libfranka:
  generate_dummy_package_with_run_deps:
    # This is the name of the package in conda-forge
    dep_name: libfranka
    # This needs to be coherent with conda-forge package run_exports setting
    max_pin: 'x.x.x'
    # This can be omitted if we just use the same version used in rosdistro
    override_version: '1.18.0'

traversaro avatar Nov 20 '25 13:11 traversaro

Hi @traversaro, checking the ros distro just noticed that there is a libfranka-release repo,

https://github.com/ros/rosdistro/blob/2092f5af38b63c341f4ccfd5dd9d92bf459a59c2/humble/distribution.yaml#L4886-L4895).

This will ease the libfranka common submodule [1], but as I can see, it has only been released up to 0.15.0. whereas since 0.16.0 they offer official Python bindings. Based on this, I reckon the best approach for the libfranka conda-package will be to have the following versions:

  • 0.15.0 to maintain the same version as the ROS release.
  • 0.17.0 to have an "updated" version, which also includes pybindings that I think some users might find useful.

I am still interested in maintaining the current build, version 0.9.2, because it's the latest that still works with the old "panda" Franka arm.

If you agree, I can create the PRs on the feedstock to build those versions.

[1] https://github.com/conda-forge/libfranka-feedstock/blob/734bd44fa60997a769264cdc5fac1bd88f97ee68/recipe/recipe.yaml#L14C3-L16C29

nmarticorena avatar Nov 20 '25 13:11 nmarticorena

Good plan. You may want to add all the branches to abi_migration_branches.

traversaro avatar Nov 20 '25 13:11 traversaro

What else do we need to do for this?

Tobias-Fischer avatar Jan 24 '26 01:01 Tobias-Fischer

I think the step in https://github.com/RoboStack/robostack.github.io/issues/117#issuecomment-3557940455 still need to be done.

traversaro avatar Jan 25 '26 20:01 traversaro