Skip to content

Conversation

@nbbrooks
Copy link
Member

@nbbrooks nbbrooks commented Dec 13, 2025

Adding a per-package build farm status table (inspired by ros2_control) to provide some more granular info on debian release health for Ubuntu. I did not add RHEL to the table to keep it more manageable, and also because setting up the table the first time with all the magic URLs is annoying.

Screenshot of new README tables:

image

@nbbrooks nbbrooks force-pushed the pr-add-build-farm-status-table branch from 782fe5b to 923f3fd Compare January 5, 2026 04:09
@nbbrooks
Copy link
Member Author

nbbrooks commented Jan 5, 2026

I have not looked into why the Rolling fault controller binary jobs are failing or why all the source CI jobs using upstream source checkouts are failing.

@christophfroehlich could you review my explanation of the different CI jobs in https://github.com/PickNikRobotics/picknik_controllers/tree/pr-add-build-farm-status-table?tab=readme-ov-file#source-repository-status ? I believe the CI here was originally generated from some ros2_control boilerplate.

Copy link
Contributor

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

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

Sounds familiar to ros2_control, which is now documented here

Why renaming it mixed release, instead of semi-binary?

Comment on lines +210 to +211
- **Mixed Release**: Main Bin & Upstream Src: Builds source plus `picknik_controllers.<ros-distro>.repos` (intended to list additional repositories than `picknik_controllers-not-released.<ros-distro>.repos`) with dependencies retrieved from ROS 2 "main" release repository.
- **Mixed Release**: Testing Bin & Upstream Src: Builds source plus `picknik_controllers.<ros-distro>.repos` with dependencies retrieved from ROS 2 "testing" release repository.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- **Mixed Release**: Main Bin & Upstream Src: Builds source plus `picknik_controllers.<ros-distro>.repos` (intended to list additional repositories than `picknik_controllers-not-released.<ros-distro>.repos`) with dependencies retrieved from ROS 2 "main" release repository.
- **Mixed Release**: Testing Bin & Upstream Src: Builds source plus `picknik_controllers.<ros-distro>.repos` with dependencies retrieved from ROS 2 "testing" release repository.
- **Mixed Release Main Bin & Upstream Src**: Builds source plus `picknik_controllers.<ros-distro>.repos` (intended to list additional repositories than `picknik_controllers-not-released.<ros-distro>.repos`) with dependencies retrieved from ROS 2 "main" release repository.
- **Mixed Release Testing Bin & Upstream Src**: Builds source plus `picknik_controllers.<ros-distro>.repos` with dependencies retrieved from ROS 2 "testing" release repository.

Copy link
Member Author

@nbbrooks nbbrooks Jan 6, 2026

Choose a reason for hiding this comment

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

Yes, this is definitely inspired by the ros2_control boilerplate was used originally. I couldnt find a similar table explanation in any of the ros2_control repos though, so thanks for the docs link!

For the semi-binary job, I am unclear on what gets pulled from where by reusable-industrial-ci-with-cache.yml.

The docs says:

semi-binary - against released core ROS packages (main and testing), but the immediate dependencies are pulled from the source. This shows that local build with dependencies is possible, and if it fails there, we can expect that after the next package sync, we will not be able to build.

In the case of https://github.com/PickNikRobotics/picknik_controllers/blob/main/.github/workflows/jazzy-semi-binary-build-testing.yml:

released core ROS packages (main and testing)

This is the stuff in picknik_controllers.jazzy.repos, correct ?

immediate dependencies are pulled from the source

Is this just meaning all other dependencies not in picknik_controllers.jazzy.repos are pulled as normal (e.g. from release main repo) ? Or is there supposed to be some other .repos file that it checks those packages out from source code?

Copy link
Contributor

Choose a reason for hiding this comment

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

only the repos files given as input to industrial-ci will be used, the other dependencies will be pulled by rosdep.

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.

2 participants