Full rebuild August 2026 bump ros2-distro-mutex to 0.19.0 and build number to 24 - #31
Conversation
|
I need newer versions of some packages, so I asked my agent to help prepare this PR. I will mark it as ready once all checks are green and I have completed a self review |
Great thanks! I think @Tobias-Fischer contributed a lot of patches upstream in this period (see RoboStack/robostack.github.io#16). I am not sure how many of those have been actually merged and released, but I guess this is an information that could be useful as context for your agents. |
|
Hi @traversaro, during a local full rebuild of The package builds with C++20 and uses
The build fails because libc++’s Representative error: Would it be possible to raise the macOS deployment target for Rolling to at least ros-rolling/conda_build_config.yaml Line 62 in b1cd6ac Or are there any alternatives that you would suggest? |
|
Related PR ros/resource_retriever#123 |
Ok for me, but @Tobias-Fischer is more the macOS expert. |
|
OK for me, too, thanks! let’s also make use of RoboStack/vinca#104 |
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
|
@Tobias-Fischer After some local testing, I think we also need to bump Vinca’s OSX_DEPLOYMENT_TARGET to 13.3 in the generated build templates, for example here: Does that sound right before I open a Vinca PR? |
|
We should be able to simply remove it these days |
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
|
All green now! Let me know if any other changes needed. If no, I can then remove the 6x rm -rf * in testpr.yml before merging |
| # Use the conda-forge iceoryx 2.0.6 packages instead of rebuilding the ROS | ||
| # release copies. | ||
| - iceoryx_binding_c | ||
| - iceoryx_hoofs | ||
| - iceoryx_posh |
There was a problem hiding this comment.
Is this necessary? I would expect not, which error do you get if you omit them.
There was a problem hiding this comment.
Ah, I forgot to remove them, I don't think this is needed
traversaro
left a comment
There was a problem hiding this comment.
Minor comments, thanks a lot for the great work!
Just for completeness, I discovered that there is some support for linux --> windows cross-compilation in https://github.com/conda-forge/clang-win-activation-feedstock , but it is not super-documented and I am not sure how much it would work for robostack. |
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
Thanks! I will give it a try when I have time |
|
CI passes after dab44f4, I will go ahead and revert the 6x rm -rf changes in testpr.yml |
Signed-off-by: Maurice <mauricepurnawan@gmail.com>
|
Out of curiosity, and also so I know for future contributions, is there any policy or guideline for the versions specified in conda_build_config.yaml, similar to what we have in ROS? For this PR, I mostly copied the versions from RoboStack/ros-lyrical#34 and only updated the ones that caused conflicts |
Ideally that should be aligned with the latest from conda-forge pinnings (i.e. https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/main/recipe/conda_build_config.yaml) plus the most advanced migration (i.e. https://github.com/conda-forge/conda-forge-pinning-feedstock/tree/main/recipe/migrations, https://conda-forge.org/status/#migrations). Which migrations to include is the tricky part.
This is the tricky part. conda-forge is a rolling release distribution, so we can't just fix versions, as we would not be compatible with newly added package, as opposed to Ubuntu/Fedora that are stable distros that for the whole lifetime of the distro version do not change the version. Each model as its own pro and cons, and I think they are actually quite complementary (all the work that we do for packaging ROS in a rolling release distributions, just make it easier for Ubuntu/Fedora-based packaging to update to new distros). See RoboStack/robostack.github.io#135 . Do have a different workflow, you would need to have stable conda-based distros, something that is possible in theory/technically, but as far as I know now community is maintaining. |
|
Go for me, but I would like a green flag from @wep21 or @Tobias-Fischer ! |
| # 3.13.2 requires hdf5 2.1.0, but not compatible with vtk-base 9.6.2 | ||
| - libgdal 3.13.1.* |
There was a problem hiding this comment.
Sorry, I missed this, this would constraint any ROS package to a specific patch version of libgdal, while the run_exports of libgdal is x.x, so in the future this is really too constraining. Do you recall why that was necessary? Can't we just pin libgdal in conda_build_config.yaml ?
There was a problem hiding this comment.
Ok, I suspect I know this problem, at least looking at https://index.ros.org/d/libgdal-dev/, it is the same of conda-forge/gz-common-feedstock#96 . Let me attempt a fix, I think we can merge after that fix.
There was a problem hiding this comment.
It was because of this CI failure.
I don't have a very good understanding of what should be pinned in a mutex versus what should be pinned in conda_build_config.yaml. Could you give me a short explanation? I saw vtk was pinned there, so I added to there in the first place
There was a problem hiding this comment.
I want actually to open an issue suggesting to remove all the run_constraints from the mutex. :D
In a nutshell, any run_constraint in the mutex ensures that all ros packages in the rebuild can only be installed with the specified version of those packages. So even if you are only installing ros2-rclcpp/ros-rolling-rclpp that does not depend at all on libgdal, with a run_constraint like that you can only install ros-rolling-rclcpp with libgdal 3.13.1, not for example with libgdal 3.13.3 .
On the other hand, conda_build_config.yaml constraints are only considered when the specified version is explicitly listed as a dependency.
Back in time, we added a lot of constraints to mutex's run_constraint as it worked fine even when the run_exports of the packages were not present, or the dependencies metadata was wrong. I think we solved most of those cases over the time, so I would really like to get rid of most of those mutex's run_constraints, or at least not add more.
There was a problem hiding this comment.
I want actually to open an issue suggesting to remove all the run_constraints from the mutex. :D
In a nutshell, any run_constraint in the mutex ensures that all ros packages in the rebuild can only be installed with the specified version of those packages. So even if you are only installing ros2-rclcpp/ros-rolling-rclpp that does not depend at all on libgdal, with a run_constraint like that you can only install ros-rolling-rclcpp with libgdal 3.13.1, not for example with libgdal 3.13.3 .
On the other hand, conda_build_config.yaml constraints are only considered when the specified version is explicitly listed as a dependency.
Back in time, we added a lot of constraints to mutex's run_constraint as it worked fine even when the run_exports of the packages were not present, or the dependencies metadata was wrong. I think we solved most of those cases over the time, so I would really like to get rid of most of those mutex's run_constraints, or at least not add more.
Removed incompatible libgdal version from dependencies.
|
Thanks for the help @traversaro ! |

Summary
Validation
Full package rebuild is intended to run in CI.