Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full Rebuild February 2024: bump ros2-distro-mutex to 0.7.0 and build_number to 4 #22

Merged
merged 29 commits into from
Feb 15, 2025

Conversation

wep21
Copy link
Contributor

@wep21 wep21 commented Feb 5, 2025

  • update after latest sync

@wep21 wep21 marked this pull request as draft February 5, 2025 09:41
@traversaro
Copy link
Member

@wep21 the full rebuild can take some time, do you have a package in particular you want to update?

@wep21
Copy link
Contributor Author

wep21 commented Feb 5, 2025

@traversaro I'm sorry, but I want to just try to update rosdistro, there is no particular package that I want to use urgently.

@traversaro
Copy link
Member

@traversaro I'm sorry, but I want to just try to update rosdistro, there is no particular package that I want to use urgently.

Ok! Do you have any particular timeline for getting a rebuild? I have a few improvements that I would like to do in the next rebuild (use conda-forge-pinnings, devendor), but I am not sure when I will be able toto do it. In the past we seldomly did rebuilds, but as long as the build works (and we do not have problem of space on robostack-jazzy channel) we could even consider doing more frequenct rebuilds, but I guess it is something we need to be aligned with @Tobias-Fischer and @wolfv .

@traversaro
Copy link
Member

Anyhow, I guess there is quite a job in patch cleanup to do now, so if you are willing to do it that would be great!

@Tobias-Fischer
Copy link
Contributor

I'd be very happy to do more frequent rebuilds - it's just a capacity issue on the (current) maintainer team side I guess, if someone has the time to fix up the problems that arise and we just need to provide minimal input, that'd be amazing :)

@traversaro
Copy link
Member

I'd be very happy to do more frequent rebuilds - it's just a capacity issue on the (current) maintainer team side I guess, if someone has the time to fix up the problems that arise and we just need to provide minimal input, that'd be amazing :)

Great! At this point then there is no problem for me either. If I am able to add some improvements in this rebuild that is great, otherwise I will do it in the next rebuild.

@traversaro
Copy link
Member

By the way, I guess migrating https://github.com/RoboStack/ros-jazzy/blob/main/check_patches_clean_apply.py to rattler-build could be helpful to quickly go through failing patches.

wep21 added 2 commits February 6, 2025 18:22
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
@traversaro
Copy link
Member

@wep21 for a full rebuild, you need several steps (copy&pasting from discord):

No, basically to update the packages we need to do a so-called "full rebuild", i.e. roughly speaking (as far as I know):

  • Refresh the rosdistro_snapshot.yaml by running vinca snapshot (this is the only step that actually queries rosdistro, directly from the repo and indipendently from sync)
  • Refresh the conda_build_config.yaml file to reflect the current status of conda-forge plus migrations that are basically finished even if not updated in conda-forge-pinnings
  • Bump the build_number in vinca_*.yaml files to a version higher then any existing build number (now also considering the overriden build numbers in pkg_additional_info.yaml)
  • Bump the minor number of the mutex_package in vinca_*.yaml
  • Remove any build_number override in pkg_additional_info.yaml

At this point, we can run pixi run build and check if there was any failure. For example, during the last full rebuild I upstreamed also several patches, so I imagine that we would need to drop several patches, and if some new version of a package introduced problems we need to patch them

I guess so that you need to also bump the minor version of the mutex packages.

Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
vinca_win.yaml Outdated
@@ -6,7 +6,7 @@ conda_index:
- packages-ignore.yaml

# Reminder for next full rebuild, the next build number should be 4
build_number: 1
build_number: 4

mutex_package: ros2-distro-mutex 0.6.* jazzy_*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess you need to update the mutex version also here.

Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
@wep21
Copy link
Contributor Author

wep21 commented Feb 6, 2025

Error: 
  × Failed to resolve dependencies: Cannot solve the request because of: ros-
  │ jazzy-ros-workspace * cannot be installed because there are no viable
  │ options:
  │ └─ ros-jazzy-ros-workspace 1.0.3 | 1.0.3 would require
  │    └─ ros2-distro-mutex 0.6.* jazzy_*, for which no candidates were found.
  │ 
  ╰─▶ Cannot solve the request because of: ros-jazzy-ros-workspace * cannot be
      installed because there are no viable options:
      └─ ros-jazzy-ros-workspace 1.0.3 | 1.0.3 would require
         └─ ros2-distro-mutex 0.6.* jazzy_*, for which no candidates were
      found.

How can I fix this error? Do I still miss something?

@wep21
Copy link
Contributor Author

wep21 commented Feb 6, 2025

On my local PC, libcap dependencies cannot be satisfied when running pixi run build.

Error: 
  × Failed to resolve dependencies: Cannot solve the request because of: The following packages are incompatible
  │ ├─ ros-jazzy-controller-manager * cannot be installed because there are no viable options:
  │ │  ├─ ros-jazzy-controller-manager 4.25.0 would require
  │ │  │  └─ ros-jazzy-realtime-tools *, which cannot be installed because there are no viable options:
  │ │  │     ├─ ros-jazzy-realtime-tools 3.3.0 would require
  │ │  │     │  └─ libcap >=2.73,<2.74.0a0, which cannot be installed because there are no viable options:
  │ │  │     │     └─ libcap 2.73, which conflicts with the versions reported above.
  │ │  │     └─ ros-jazzy-realtime-tools 3.1.0 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
  │ │  └─ ros-jazzy-controller-manager 4.23.0 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
  │ └─ ros-jazzy-gz-sim-vendor * cannot be installed because there are no viable options:
  │    ├─ ros-jazzy-gz-sim-vendor 0.0.7 would require
  │    │  └─ ros-jazzy-gz-rendering-vendor *, which cannot be installed because there are no viable options:
  │    │     ├─ ros-jazzy-gz-rendering-vendor 0.0.5 would require
  │    │     │  └─ ros-jazzy-gz-ogre-next-vendor *, which cannot be installed because there are no viable options:
  │    │     │     ├─ ros-jazzy-gz-ogre-next-vendor 0.0.5 would require
  │    │     │     │  └─ sdl2 >=2.30.10,<3.0a0, which cannot be installed because there are no viable options:
  │    │     │     │     └─ sdl2 2.30.10 would require
  │    │     │     │        └─ pulseaudio-client >=17.0,<17.1.0a0, which cannot be installed because there are no viable options:
  │    │     │     │           └─ pulseaudio-client 17.0 would require
  │    │     │     │              └─ libsystemd0 >=255, which cannot be installed because there are no viable options:
  │    │     │     │                 ├─ libsystemd0 256.9 | 256.9 | 256.9 | 256.9 | 257.2 would require
  │    │     │     │                 │  └─ libcap >=2.71,<2.72.0a0, which cannot be installed because there are no viable options:
  │    │     │     │                 │     └─ libcap 2.71, which conflicts with the versions reported above.
  │    │     │     │                 └─ libsystemd0 255 | 255 | 256.5 | 256.6 | 256.7 | 256.7 would require
  │    │     │     │                    └─ libcap >=2.69,<2.70.0a0, which cannot be installed because there are no viable options:
  │    │     │     │                       └─ libcap 2.69, which conflicts with the versions reported above.
  │    │     │     └─ ros-jazzy-gz-ogre-next-vendor 0.0.5 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-
  │ jazzy/'
  │    │     └─ ros-jazzy-gz-rendering-vendor 0.0.5 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
  │    └─ ros-jazzy-gz-sim-vendor 0.0.6 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
  │ 
  ╰─▶ Cannot solve the request because of: The following packages are incompatible
      ├─ ros-jazzy-controller-manager * cannot be installed because there are no viable options:
      │  ├─ ros-jazzy-controller-manager 4.25.0 would require
      │  │  └─ ros-jazzy-realtime-tools *, which cannot be installed because there are no viable options:
      │  │     ├─ ros-jazzy-realtime-tools 3.3.0 would require
      │  │     │  └─ libcap >=2.73,<2.74.0a0, which cannot be installed because there are no viable options:
      │  │     │     └─ libcap 2.73, which conflicts with the versions reported above.
      │  │     └─ ros-jazzy-realtime-tools 3.1.0 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
      │  └─ ros-jazzy-controller-manager 4.23.0 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
      └─ ros-jazzy-gz-sim-vendor * cannot be installed because there are no viable options:
         ├─ ros-jazzy-gz-sim-vendor 0.0.7 would require
         │  └─ ros-jazzy-gz-rendering-vendor *, which cannot be installed because there are no viable options:
         │     ├─ ros-jazzy-gz-rendering-vendor 0.0.5 would require
         │     │  └─ ros-jazzy-gz-ogre-next-vendor *, which cannot be installed because there are no viable options:
         │     │     ├─ ros-jazzy-gz-ogre-next-vendor 0.0.5 would require
         │     │     │  └─ sdl2 >=2.30.10,<3.0a0, which cannot be installed because there are no viable options:
         │     │     │     └─ sdl2 2.30.10 would require
         │     │     │        └─ pulseaudio-client >=17.0,<17.1.0a0, which cannot be installed because there are no viable options:
         │     │     │           └─ pulseaudio-client 17.0 would require
         │     │     │              └─ libsystemd0 >=255, which cannot be installed because there are no viable options:
         │     │     │                 ├─ libsystemd0 256.9 | 256.9 | 256.9 | 256.9 | 257.2 would require
         │     │     │                 │  └─ libcap >=2.71,<2.72.0a0, which cannot be installed because there are no viable options:
         │     │     │                 │     └─ libcap 2.71, which conflicts with the versions reported above.
         │     │     │                 └─ libsystemd0 255 | 255 | 256.5 | 256.6 | 256.7 | 256.7 would require
         │     │     │                    └─ libcap >=2.69,<2.70.0a0, which cannot be installed because there are no viable options:
         │     │     │                       └─ libcap 2.69, which conflicts with the versions reported above.
         │     │     └─ ros-jazzy-gz-ogre-next-vendor 0.0.5 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-
      jazzy/'
         │     └─ ros-jazzy-gz-rendering-vendor 0.0.5 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'
         └─ ros-jazzy-gz-sim-vendor 0.0.6 is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/robostack-jazzy/'

vinca_osx.yaml Outdated

mutex_package: ros2-distro-mutex 0.6.* jazzy_*
mutex_package: ros2-distro-mutex 0.7777777.* jazzy_*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this a typo?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry🙏

Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
@traversaro
Copy link
Member

Error: 
  × Failed to resolve dependencies: Cannot solve the request because of: ros-
  │ jazzy-ros-workspace * cannot be installed because there are no viable
  │ options:
  │ └─ ros-jazzy-ros-workspace 1.0.3 | 1.0.3 would require
  │    └─ ros2-distro-mutex 0.6.* jazzy_*, for which no candidates were found.
  │ 
  ╰─▶ Cannot solve the request because of: ros-jazzy-ros-workspace * cannot be
      installed because there are no viable options:
      └─ ros-jazzy-ros-workspace 1.0.3 | 1.0.3 would require
         └─ ros2-distro-mutex 0.6.* jazzy_*, for which no candidates were
      found.

How can I fix this error? Do I still miss something?

That is strange, it seems like ros-workspace recipe is not generated. Can you check if it is generated in the recipes directory?

@traversaro
Copy link
Member

Error: 
  × Failed to resolve dependencies: Cannot solve the request because of: ros-
  │ jazzy-ros-workspace * cannot be installed because there are no viable
  │ options:
  │ └─ ros-jazzy-ros-workspace 1.0.3 | 1.0.3 would require
  │    └─ ros2-distro-mutex 0.6.* jazzy_*, for which no candidates were found.
  │ 
  ╰─▶ Cannot solve the request because of: ros-jazzy-ros-workspace * cannot be
      installed because there are no viable options:
      └─ ros-jazzy-ros-workspace 1.0.3 | 1.0.3 would require
         └─ ros2-distro-mutex 0.6.* jazzy_*, for which no candidates were
      found.

How can I fix this error? Do I still miss something?

That is strange, it seems like ros-workspace recipe is not generated. Can you check if it is generated in the recipes directory?

I think the problem is ros-workspace is still in pkg_additional_info.yaml . Can you check to follow all steps in #22 (comment), including the "Remove any build_number override in pkg_additional_info.yaml" ?

wep21 added 6 commits February 7, 2025 01:17
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
wep21 and others added 4 commits February 11, 2025 12:16
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
@wep21
Copy link
Contributor Author

wep21 commented Feb 11, 2025

pixi v0.41.2 introduces this error.

pixi install -e beta --frozen
  /home/runner/.pixi/bin/pixi install -e beta --frozen --manifest-path pixi.toml --color always
  Error: 
    × beta: error installing/updating PyPI dependencies
    ╰─▶ base path is not absolute:

@traversaro
Copy link
Member

pixi v0.41.2 introduces this error.

pixi install -e beta --frozen
  /home/runner/.pixi/bin/pixi install -e beta --frozen --manifest-path pixi.toml --color always
  Error: 
    × beta: error installing/updating PyPI dependencies
    ╰─▶ base path is not absolute:

Can you open a issue in pixi or investigate if there is an issue already open? Thanks! fyi @wolfv @ruben-arts

@wep21
Copy link
Contributor Author

wep21 commented Feb 11, 2025

Can you open a issue in pixi or investigate if there is an issue already open? Thanks! fyi @wolfv @ruben-arts

prefix-dev/pixi#3111 will fix the issue.

@traversaro
Copy link
Member

Can you open a issue in pixi or investigate if there is an issue already open? Thanks! fyi @wolfv @ruben-arts

prefix-dev/pixi#3111 will fix the issue.

Thanks!

@ruben-arts
Copy link

Sorry 😓

@traversaro
Copy link
Member

Sorry 😓

Thanks for looking into the issue!

Signed-off-by: wep21 <daisuke.nishimatsu1021@gmail.com>
@wep21
Copy link
Contributor Author

wep21 commented Feb 12, 2025

@traversaro windows ci seems to also reach actions time limit.

@traversaro
Copy link
Member

@traversaro windows ci seems to also reach actions time limit.

Great. I will run the rest of the build locally as I noticed some local failures, then we can merge.

@traversaro traversaro closed this Feb 12, 2025
@traversaro traversaro reopened this Feb 12, 2025
@traversaro
Copy link
Member

@wep21 I bumped a bit the pinned dependencies to align with the conda-forge pinnings, and to me the PR is ready to review. Can I modify the title to be a bit more descriptive?

@wep21
Copy link
Contributor Author

wep21 commented Feb 13, 2025

Can I modify the title to be a bit more descriptive?

@traversaro No problem!

@wep21 wep21 marked this pull request as ready for review February 13, 2025 14:15
@traversaro traversaro changed the title chore: update snapshot Full Rebuild February 2024: bump ros2-distro-mutex to 0.7.0 and build_number to 4 Feb 15, 2025
@traversaro traversaro merged commit fe4749d into RoboStack:main Feb 15, 2025
3 of 10 checks passed
@wep21
Copy link
Contributor Author

wep21 commented Feb 15, 2025

@traversaro The packages which are rebuilt seem to depend on ros2-distro-mutex 0.7.0, while ones which are not rebuilt seem to still depend on ros2-distro-mutex 0.6.0. How can I fix these conflicts?

~/workspace/ros2_pixi
❯ pixi add ros-jazzy-ur-client-library
✔ Added ros-jazzy-ur-client-library >=1.6.0,<2

~/workspace/ros2_pixi 15s
❯ pixi add ros-jazzy-desktop
Error: 
  × failed to solve the conda requirements of 'default' 'osx-arm64'
  ╰─▶ Cannot solve the request because of: The following packages are incompatible
      ├─ ros-jazzy-desktop * can be installed with any of the following options:
      │  └─ ros-jazzy-desktop 0.11.0 would require
      │     └─ ros2-distro-mutex >=0.6.0,<0.7.0a0, which can be installed with any of the following options:
      │        └─ ros2-distro-mutex 0.6.0
      └─ ros-jazzy-ur-client-library >=1.6.0,<2 cannot be installed because there are no viable options:
         └─ ros-jazzy-ur-client-library 1.6.0 | 1.6.0 would require
            └─ ros2-distro-mutex >=0.7.0,<0.8.0a0, which cannot be installed because there are no viable options:
               ├─ ros2-distro-mutex 0.7.0, which conflicts with the versions reported above.
               └─ ros2-distro-mutex 0.7.0, which conflicts with the versions reported above.

@traversaro
Copy link
Member

The only way is to also rebuild missing packages for ros2-distro-mutex 0.7.0. Do you have any idea why ros-jazzy-ur-client-library was not rebuild?

@wep21
Copy link
Contributor Author

wep21 commented Feb 15, 2025

I guess ros-jazzy-ur-client-library was rebuilt because its version has changed from 1.5.0 to 1.6.0 while other packages whose version hasn't change wasn't rebuilt.

@wep21
Copy link
Contributor Author

wep21 commented Feb 15, 2025

pixi search says ros-jazzy-desktop depends on ros2-distro-mutex 0.7.0, but when adding as pixi deps, it fails.

❯ pixi search ros-jazzy-desktop
Using channels: robostack-jazzy, conda-forge

ros-jazzy-desktop-0.11.0-np126py311h8b30c37_4 (+ 1 build)
---------------------------------------------------------

Name                ros-jazzy-desktop  
Version             0.11.0
Build               np126py311h8b30c37_4
Size                22326              
License             BSD-3-Clause       
Subdir              osx-arm64          
File Name           ros-jazzy-desktop-0.11.0-np126py311h8b30c37_4.conda
URL                 https://conda.anaconda.org/robostack-jazzy/osx-arm64/ros-jazzy-desktop-0.11.0-np126py311h8b30c37_4.conda
MD5                 d819e10a27ad126af66b4b3e2497ae09
SHA256              9c4aa1f2c8a78225468e9c881fbf38ecc3d3f334a1fab1f6f19da382c0d5c093

Dependencies:
 - python
 - ros-jazzy-action-tutorials-cpp
 - ros-jazzy-action-tutorials-interfaces
 - ros-jazzy-action-tutorials-py
 - ros-jazzy-angles
 - ros-jazzy-composition
 - ros-jazzy-demo-nodes-cpp
 - ros-jazzy-demo-nodes-cpp-native
 - ros-jazzy-demo-nodes-py
 - ros-jazzy-depthimage-to-laserscan
 - ros-jazzy-dummy-map-server
 - ros-jazzy-dummy-robot-bringup
 - ros-jazzy-dummy-sensors
 - ros-jazzy-examples-rclcpp-minimal-action-client
 - ros-jazzy-examples-rclcpp-minimal-action-server
 - ros-jazzy-examples-rclcpp-minimal-client
 - ros-jazzy-examples-rclcpp-minimal-composition
 - ros-jazzy-examples-rclcpp-minimal-publisher
 - ros-jazzy-examples-rclcpp-minimal-service
 - ros-jazzy-examples-rclcpp-minimal-subscriber
 - ros-jazzy-examples-rclcpp-minimal-timer
 - ros-jazzy-examples-rclcpp-multithreaded-executor
 - ros-jazzy-examples-rclpy-executors
 - ros-jazzy-examples-rclpy-minimal-action-client
 - ros-jazzy-examples-rclpy-minimal-action-server
 - ros-jazzy-examples-rclpy-minimal-client
 - ros-jazzy-examples-rclpy-minimal-publisher
 - ros-jazzy-examples-rclpy-minimal-service
 - ros-jazzy-examples-rclpy-minimal-subscriber
 - ros-jazzy-image-tools
 - ros-jazzy-intra-process-demo
 - ros-jazzy-joy
 - ros-jazzy-lifecycle
 - ros-jazzy-logging-demo
 - ros-jazzy-pcl-conversions
 - ros-jazzy-pendulum-msgs
 - ros-jazzy-quality-of-service-demo-cpp
 - ros-jazzy-quality-of-service-demo-py
 - ros-jazzy-ros-base
 - ros-jazzy-ros-workspace
 - ros-jazzy-rqt-common-plugins
 - ros-jazzy-rviz-default-plugins
 - ros-jazzy-rviz2
 - ros-jazzy-teleop-twist-joy
 - ros-jazzy-teleop-twist-keyboard
 - ros-jazzy-topic-monitor
 - ros-jazzy-turtlesim
 - ros2-distro-mutex 0.7.* jazzy_*
 - libcxx >=18
 - __osx >=11.0
 - ros2-distro-mutex >=0.7.0,<0.8.0a0
 - numpy >=1.26.4,<2.0a0
 - python_abi 3.11.* *_cp311
❯ pixi add ros-jazzy-desktop
Error: 
  × failed to solve the conda requirements of 'default' 'osx-arm64'
  ╰─▶ Cannot solve the request because of: The following packages are incompatible
      ├─ ros-jazzy-desktop * can be installed with any of the following options:
      │  └─ ros-jazzy-desktop 0.11.0 would require
      │     └─ ros2-distro-mutex >=0.6.0,<0.7.0a0, which can be installed with any of the following options:
      │        └─ ros2-distro-mutex 0.6.0
      └─ ros-jazzy-ur-client-library >=1.6.0,<2 cannot be installed because there are no viable options:
         └─ ros-jazzy-ur-client-library 1.6.0 | 1.6.0 would require
            └─ ros2-distro-mutex >=0.7.0,<0.8.0a0, which cannot be installed because there are no viable options:
               ├─ ros2-distro-mutex 0.7.0, which conflicts with the versions reported above.
               └─ ros2-distro-mutex 0.7.0, which conflicts with the versions reported above.

@wep21 wep21 deleted the update-snapshot branch February 17, 2025 23:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants