Skip to content

Files from dependency non-deterministically included in package built on Windows #1375

@traversaro

Description

@traversaro

In the last weeks I experienced a non-deterministic issue when building Windows package with rattler-build . In particular, what is happening is that sometimes files from the dependency are included in the built packages.

The problem is non-deterministic so it is tricky to reproduce, but I was able to put together a mwe in https://github.com/traversaro/rattler-build-clobber-bomb-mre, that you can run (on Windows) with:

git clone https://github.com/traversaro/rattler-build-clobber-bomb-mre
cd rattler-build-clobber-bomb-mre
pixi run reproduce

What happens (just in some cases) is that the build packages also include some files that are part of the dependencies. For example, see the run in https://github.com/traversaro/rattler-build-clobber-bomb-mre/actions/runs/12931376501/job/36065083136 the log includes:

2025-01-23T14:34:46.1642155Z  │ │   -- Generating done (0.4s)
2025-01-23T14:34:46.1653624Z  │ │   -- Build files have been written to: %SRC_DIR%/build
2025-01-23T14:34:46.2494056Z  │ │   1>
2025-01-23T14:34:46.3053405Z  │ │   -- Install configuration: "Release"
2025-01-23T14:34:46.3054427Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/joint_limiters.xml
2025-01-23T14:34:46.3059494Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits
2025-01-23T14:34:46.3062788Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits
2025-01-23T14:34:46.3067122Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits/joint_limiter_interface.hpp
2025-01-23T14:34:46.3073451Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits/joint_limits.hpp
2025-01-23T14:34:46.3079327Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits/joint_limits_rosparam.hpp
2025-01-23T14:34:46.3086998Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits/joint_limits_urdf.hpp
2025-01-23T14:34:46.3092331Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits/joint_saturation_limiter.hpp
2025-01-23T14:34:46.3099217Z  │ │   -- Installing: %PREFIX%/Library/lib/joint_limiter_interface.lib
2025-01-23T14:34:46.3106185Z  │ │   -- Installing: %PREFIX%/Library/bin/joint_limiter_interface.dll
2025-01-23T14:34:46.3113286Z  │ │   -- Installing: %PREFIX%/Library/lib/joint_saturation_limiter.lib
2025-01-23T14:34:46.3123299Z  │ │   -- Installing: %PREFIX%/Library/bin/joint_saturation_limiter.dll
2025-01-23T14:34:46.3140403Z  │ │   -- Installing: %PREFIX%/Library/share/ament_index/resource_index/package_run_dependencies/joint_limits
2025-01-23T14:34:46.3154232Z  │ │   -- Installing: %PREFIX%/Library/share/ament_index/resource_index/parent_prefix_path/joint_limits
2025-01-23T14:34:46.3168332Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/environment/ament_prefix_path.bat
2025-01-23T14:34:46.3176745Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/environment/ament_prefix_path.dsv
2025-01-23T14:34:46.3183116Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/environment/path.bat
2025-01-23T14:34:46.3189856Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/environment/path.dsv
2025-01-23T14:34:46.3196663Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/local_setup.bat
2025-01-23T14:34:46.3203574Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/local_setup.dsv
2025-01-23T14:34:46.3210254Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/package.dsv
2025-01-23T14:34:46.3217591Z  │ │   -- Installing: %PREFIX%/Library/share/ament_index/resource_index/packages/joint_limits
2025-01-23T14:34:46.3225316Z  │ │   -- Installing: %PREFIX%/Library/share/ament_index/resource_index/joint_limits__pluginlib__plugin/joint_limits
2025-01-23T14:34:46.3233918Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/cmake/export_joint_limitsExport.cmake
2025-01-23T14:34:46.3242039Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/cmake/export_joint_limitsExport-release.cmake
2025-01-23T14:34:46.3249146Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/cmake/ament_cmake_export_targets-extras.cmake
2025-01-23T14:34:46.3255729Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/cmake/ament_cmake_export_dependencies-extras.cmake
2025-01-23T14:34:46.3263694Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/cmake/joint_limitsConfig.cmake
2025-01-23T14:34:46.3272786Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/cmake/joint_limitsConfig-version.cmake
2025-01-23T14:34:46.3279068Z  │ │   -- Installing: %PREFIX%/Library/share/joint_limits/package.xml
2025-01-23T14:34:46.3287253Z  │ │   -- Installing: %PREFIX%/Library/include/joint_limits/joint_limits/version.h
2025-01-23T14:34:46.3734995Z  │ │ %SRC_DIR%\build>if errorlevel 1 exit 1 
2025-01-23T14:34:46.3755201Z  │ │
2025-01-23T14:34:46.3755742Z  │ ╰─────────────────── (took 77 seconds)
2025-01-23T14:34:46.7787695Z  │
2025-01-23T14:34:46.7788107Z  │ ╭─ Packaging new files
2025-01-23T14:34:46.7788437Z  │ │ Copying done!
2025-01-23T14:34:46.8068570Z  │ │ Post-processing done!
2025-01-23T14:34:46.8068971Z  │ │ Writing test files
2025-01-23T14:34:46.8075644Z  │ │ Writing metadata for package
2025-01-23T14:34:46.8201346Z  │ │ Copying license files
2025-01-23T14:34:46.8201869Z  │ │ Copying recipe files
2025-01-23T14:34:46.8305865Z  │ │ Creating entry points
2025-01-23T14:34:46.8306264Z  │ │ 
2025-01-23T14:34:46.8306529Z  │ │ Files in package:
2025-01-23T14:34:46.8307190Z  │ │   - Library/bin/joint_limiter_interface.dll
2025-01-23T14:34:46.8307983Z  │ │   - Library/bin/joint_saturation_limiter.dll
2025-01-23T14:34:46.8308735Z  │ │   - Library/cmake/console_bridge-config-version.cmake
2025-01-23T14:34:46.8309498Z  │ │   - Library/cmake/console_bridge-config.cmake
2025-01-23T14:34:46.8310448Z  │ │   - Library/cmake/console_bridge-targets-release.cmake
2025-01-23T14:34:46.8311268Z  │ │   - Library/cmake/console_bridge-targets.cmake
2025-01-23T14:34:46.8312012Z  │ │   - Library/cmake/urdfdom_headers-config-version.cmake
2025-01-23T14:34:46.8312760Z  │ │   - Library/cmake/urdfdom_headers-config.cmake
2025-01-23T14:34:46.8313474Z  │ │   - Library/cmake/urdfdom_headersExport.cmake
2025-01-23T14:34:46.8314363Z  │ │   - Library/include/joint_limits/joint_limits/joint_limiter_interface.hpp
2025-01-23T14:34:46.8315337Z  │ │   - Library/include/joint_limits/joint_limits/joint_limits.hpp
2025-01-23T14:34:46.8316296Z  │ │   - Library/include/joint_limits/joint_limits/joint_limits_rosparam.hpp
2025-01-23T14:34:46.8317206Z  │ │   - Library/include/joint_limits/joint_limits/joint_limits_urdf.hpp
2025-01-23T14:34:46.8317990Z  │ │   - Library/include/joint_limits/joint_limits/joint_saturation_limiter.hpp
2025-01-23T14:34:46.8318753Z  │ │   - Library/include/joint_limits/joint_limits/version.h
2025-01-23T14:34:46.8319211Z  │ │   - Library/lib/joint_limiter_interface.lib
2025-01-23T14:34:46.8319675Z  │ │   - Library/lib/joint_saturation_limiter.lib
2025-01-23T14:34:46.8320287Z  │ │   - Library/share/ament_index/resource_index/joint_limits__pluginlib__plugin/joint_limits
2025-01-23T14:34:46.8321001Z  │ │   - Library/share/ament_index/resource_index/package_run_dependencies/joint_limits
2025-01-23T14:34:46.8321589Z  │ │   - Library/share/ament_index/resource_index/packages/joint_limits
2025-01-23T14:34:46.8322175Z  │ │   - Library/share/ament_index/resource_index/parent_prefix_path/joint_limits
2025-01-23T14:34:46.8323077Z  │ │   - Library/share/joint_limits/cmake/ament_cmake_export_dependencies-extras.cmake
2025-01-23T14:34:46.8323736Z  │ │   - Library/share/joint_limits/cmake/ament_cmake_export_targets-extras.cmake
2025-01-23T14:34:46.8324313Z  │ │   - Library/share/joint_limits/cmake/export_joint_limitsExport-release.cmake
2025-01-23T14:34:46.8324873Z  │ │   - Library/share/joint_limits/cmake/export_joint_limitsExport.cmake
2025-01-23T14:34:46.8325374Z  │ │   - Library/share/joint_limits/cmake/joint_limitsConfig-version.cmake
2025-01-23T14:34:46.8325843Z  │ │   - Library/share/joint_limits/cmake/joint_limitsConfig.cmake
2025-01-23T14:34:46.8326304Z  │ │   - Library/share/joint_limits/environment/ament_prefix_path.bat
2025-01-23T14:34:46.8326765Z  │ │   - Library/share/joint_limits/environment/ament_prefix_path.dsv
2025-01-23T14:34:46.8327176Z  │ │   - Library/share/joint_limits/environment/path.bat
2025-01-23T14:34:46.8327555Z  │ │   - Library/share/joint_limits/environment/path.dsv
2025-01-23T14:34:46.8327921Z  │ │   - Library/share/joint_limits/joint_limiters.xml
2025-01-23T14:34:46.8328279Z  │ │   - Library/share/joint_limits/local_setup.bat
2025-01-23T14:34:46.8329327Z  │ │   - Library/share/joint_limits/local_setup.dsv
2025-01-23T14:34:46.8329683Z  │ │   - Library/share/joint_limits/package.dsv
2025-01-23T14:34:46.8330010Z  │ │   - Library/share/joint_limits/package.xml

The files:

2025-01-23T14:34:46.8308735Z  │ │   - Library/cmake/console_bridge-config-version.cmake
2025-01-23T14:34:46.8309498Z  │ │   - Library/cmake/console_bridge-config.cmake
2025-01-23T14:34:46.8310448Z  │ │   - Library/cmake/console_bridge-targets-release.cmake
2025-01-23T14:34:46.8311268Z  │ │   - Library/cmake/console_bridge-targets.cmake
2025-01-23T14:34:46.8312012Z  │ │   - Library/cmake/urdfdom_headers-config-version.cmake
2025-01-23T14:34:46.8312760Z  │ │   - Library/cmake/urdfdom_headers-config.cmake
2025-01-23T14:34:46.8313474Z  │ │   - Library/cmake/urdfdom_headersExport.cmake

are the problematic ones, as they are not installed by CMake (see the earliers lines that start with -- Installing:), but are instead part of urdfdom-headers, urdfdom and console_bridge packages.

In some local builds, I noticed the same problem with other files:

 │ │   - Library/CMake/yamlConfig.cmake
 │ │   - Library/CMake/yamlConfigVersion.cmake
 │ │   - Library/CMake/yamlTargets-release.cmake
 │ │   - Library/CMake/yamlTargets.cmake

In some builds (for example in https://github.com/traversaro/rattler-build-clobber-bomb-mre/actions/runs/12931317141/job/36064883960) no spurious files are included.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions