Skip to content

Commit 0a1df5a

Browse files
traversarobaszalmstraTobias-FischerCopilot
authored
Full Rebuild (Sync) March 2026: bump ros-distro-mutex to 0.7.0 and build_number to 24 (#557)
* Full Rebuild (Sync) November 2025: bump ros-distro-mutex to 0.7.0 and build_number to 24 * Cleanup leftovers * fix ros-noetic-moveitros-perception.win.patch * fix patch/ros-noetic-camera-calibration-parsers.win.patch * fix ros-noetic-cmake-modules.patch * fix ros-noetic-libmavconn.win.patch * fix ros-noetic-mavros.win.patch * Update CMakeLists.txt for rtabmap_rviz_plugins * regenerate ros-noetic-moveit-ros-planning-interface.patch * remove ros-noetic-resource-retriever.patch * remove ros-noetic-rosbag.patch The upstream source at release/noetic/rosbag/1.17.4-1 now uses conditional compilation (#if BOOST_VERSION < 107200) for boost headers. * regenerate ros-noetic-rqt-image-view.patch The upstream source already removed add_compile_options(-std=c++11). Regenerated patch to only add OpenCV find_package and linking. * remove ros-noetic-rosgraph.patch The upstream source at release/noetic/rosgraph/1.17.4-1 already has Python 3.11+ compatibility handling with conditional logic. * remove ros-noetic-rospack.patch The upstream source at release/noetic/rospack/2.6.4-1 already handles APPLE-specific library exclusion using a package_libraries variable. * regenerate ros-noetic-rviz.patch The upstream source already has the boost filesystem API updates (fs::extension). Regenerated patch without those already-applied changes. * remove ros-noetic-topic-tools.patch The upstream source at release/noetic/topic_tools/1.17.4-1 already includes the <thread> header that this patch was adding. * remove ros-noetic-tf2-py.osx.patch The upstream source at release/noetic/tf2_py/0.7.10-1 already includes the APPLE-specific Python linking and -undefined dynamic_lookup flags. * regenerate ros-noetic-tf.win.patch The upstream source at release/noetic/tf/1.13.4-1 already removed the C++11 checking logic. Regenerated patch with only NO_ERROR and sys/time.h changes. * Add fcl package to dummy package that depend on conda-forge ones * Change rattler build to handle recipes individually Refactor run_rattler_build to run recipes individually and report results. Better for debugging. * Add error handling to subprocess.run * Add encoding parameter to subprocess.run * Add UTF-8 encoding for console output Ensure console output is UTF-8 and safe on Windows. * Debug * Remove fish and zsh patch from ros-noetic-rosbash * Delete patch/ros-noetic-eigen-conversions.patch * Fix wrong override version for ros-noetic-fcl * Fix cras-cpp-common on osx * cras unsupported outside linux * Fix negation on Windows * Skip libpointmatcher * Bump deps * Update libboost version in vinca.yaml * Upgrade package versions in conda build config * Bump python to 3.12 * Update Python version constraint to 3.12 * Try newer sip * Update dependencies in dependencies.yaml * Delete patch/ros-noetic-kdl-conversions.patch * Delete patch/ros-noetic-tf-conversions.patch * Update VTK version in CMake module path * Update VTK version in CMake module path * Comment out package find commands Comment out package find commands in CMakeLists.txt * Modify CMakeLists.txt to comment out flags Comment out C++ standard and compiler options. * Remove C++ flags from CMakeLists.txt Removed C++ standard and compiler warning options from CMakeLists.txt. * Update sip_configure.py and add pyproject.toml.in * Remove C++11 standard flag from CMakeLists.txt Remove C++11 standard flag from CMakeLists.txt * Set c++14 config * Disable mavros due to boost 1.88 incompatibility * Change libopencv to always use qt6 instance as libraries differ * Update libopencv version to include qt6 support * Add libopencv qt6 as run_constraint to mutex * undo * undo * Do not unvendor urdfdom_py as the ROS1 required version is not on conda-forge * Add tf2-client patch * use ompl 1.7.0 * Update numpy version from 1.26 to 2 * Modify conda_build_config.yaml for package updates Updated dependencies and added new packages for compatibility. * Update pixi.toml * Update vinca * Fix compilation with Boost 1.87 Fixes compilation issues with Boost 1.87 by removing deprecated rescaling code. * Update GitHub Actions workflow for caching settings * Update package versions in pkg_additional_info.yaml Updated versions for several packages to maintain compatibility with conda-forge. * fixup ompl version * version updates * librealsense fix * Big push thanks to Codex * Fix mrt * Make agent life easier * More instructions * linux-aarch64 fixes thanks to codex * aarch64 patches * Fix * Fixup * Permissions * Fixup * Fix capitalization * Fixes * Try fix backward vs forward slash issue on Win * force rebuild * Fixes * Remove outdated cache entries for draco * Enable full rebuild and modify cache cleanup Changed IGNORE_CACHE_AND_DO_FULL_REBUILD to 'true' and commented out cache deletion commands. * Try fix jskeus * move to winphread * fixes * Fi * Fixes * Fix osx-arm64 * Fix deleted packages from cache * potential apriltag fix for win * krb5 fix * Fix * node24 * fix krb * Fixes * Full rebuild * Potential jskeus fix * Single recipe check patch option * no full rebuild * Fixes * node warning * No apriltags on Win * disable rtabmap * Move former packages not built on Windows to not win * Try fix pcl-ros on Win * Fix * Fix * Final fixes * Fixup gtk2 on win * win fix * skip stage on win * skip stage on win * Fixup * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix copilot review comments * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Bas Zalmstra <4995967+baszalmstra@users.noreply.github.com> Co-authored-by: Tobias Fischer <info@tobiasfischer.info> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent f05807a commit 0a1df5a

136 files changed

Lines changed: 8712 additions & 8993 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build_robostack.yml

Lines changed: 0 additions & 90 deletions
This file was deleted.

.github/workflows/main.yml

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,22 @@ jobs:
1111
build:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v6
1515
with:
1616
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
1717
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
18-
- uses: actions/setup-python@v5
18+
19+
- uses: prefix-dev/setup-pixi@v0.9.4
1920
with:
20-
python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax
21-
- name: Install vinca
22-
run: |
23-
pip install git+https://github.com/RoboStack/vinca.git
21+
frozen: true
2422

2523
- name: Generate recipes for linux-64
2624
run: |
2725
git clean -fdx
28-
cp vinca_linux_64.yaml vinca.yaml
29-
vinca --multiple --platform linux-64
30-
- name: Generate azure pipelines for linux-64
26+
pixi run -v vinca --multiple --platform linux-64
27+
- name: Generate GitHub Actions pipelines for linux-64
3128
run: |
32-
vinca-gha --platform linux-64 --trigger-branch buildbranch_linux -d ./recipes --additional-recipes
29+
pixi run -v vinca-gha --platform linux-64 --trigger-branch buildbranch_linux -d ./recipes
3330
- name: Commit files for linux-64
3431
run: |
3532
if [[ -f "linux.yml" ]]; then
@@ -51,11 +48,10 @@ jobs:
5148
- name: Generate recipes for osx-64
5249
run: |
5350
git clean -fdx
54-
cp vinca_osx.yaml vinca.yaml
55-
vinca --multiple --platform osx-64
56-
- name: Generate azure pipelines for osx-64
51+
pixi run -v vinca --multiple --platform osx-64
52+
- name: Generate GitHub Actions pipelines for osx-64
5753
run: |
58-
vinca-gha --platform osx-64 --trigger-branch buildbranch_osx -d ./recipes --additional-recipes
54+
pixi run -v vinca-gha --platform osx-64 --trigger-branch buildbranch_osx -d ./recipes
5955
- name: Commit files for osx-64
6056
run: |
6157
if [[ -f "osx.yml" ]]; then
@@ -77,11 +73,10 @@ jobs:
7773
- name: Generate recipes for osx-arm64
7874
run: |
7975
git clean -fdx
80-
cp vinca_osx_arm64.yaml vinca.yaml
81-
vinca --multiple --platform osx-arm64
82-
- name: Generate azure pipelines for osx-arm64
76+
pixi run -v vinca --multiple --platform osx-arm64
77+
- name: Generate GitHub Actions pipelines for osx-arm64
8378
run: |
84-
vinca-gha --platform osx-arm64 --trigger-branch buildbranch_osx_arm64 -d ./recipes --additional-recipes
79+
pixi run -v vinca-gha --platform osx-arm64 --trigger-branch buildbranch_osx_arm64 -d ./recipes
8580
- name: Commit files for osx-arm64
8681
run: |
8782
if [[ -f "osx_arm64.yml" ]]; then
@@ -103,11 +98,11 @@ jobs:
10398
- name: Generate recipes for win-64
10499
run: |
105100
git clean -fdx
106-
cp vinca_win.yaml vinca.yaml
107-
vinca --multiple --platform win-64
108-
- name: Generate azure pipelines for win-64
101+
pixi run -v vinca --multiple --platform win-64
102+
- name: Generate GitHub Actions pipelines for win-64
109103
run: |
110-
vinca-gha --platform win-64 --trigger-branch buildbranch_win -d ./recipes --additional-recipes
104+
# --batch_size 10 is a workaround for https://github.com/RoboStack/robostack.github.io/issues/105
105+
pixi run -v vinca-gha --platform win-64 --trigger-branch buildbranch_win -d ./recipes --batch_size 10
111106
- name: Commit files for win-64
112107
run: |
113108
if [[ -f "win.yml" ]]; then
@@ -129,11 +124,10 @@ jobs:
129124
- name: Generate recipes for linux-aarch64
130125
run: |
131126
git clean -fdx
132-
cp vinca_linux_aarch64.yaml vinca.yaml
133-
vinca --multiple --platform linux-aarch64
134-
- name: Generate azure pipelines for linux-aarch64
127+
pixi run -v vinca --multiple --platform linux-aarch64
128+
- name: Generate GitHub Actions pipelines for linux-aarch64
135129
run: |
136-
vinca-gha --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes --additional-recipes
130+
pixi run -v vinca-gha --platform linux-aarch64 --trigger-branch buildbranch_linux_aarch64 -d ./recipes
137131
- name: Commit files for linux-aarch64
138132
run: |
139133
if [[ -f "linux_aarch64.yml" ]]; then

.github/workflows/testpr.yml

Lines changed: 79 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ on:
44

55
env:
66
ROS_VERSION: 1
7-
7+
# Change to 'true' to enable the cache upload as artifacts
8+
SAVE_CACHE_AS_ARTIFACT: 'true'
9+
# Change to 'true' to ignore cache and force a full rebuild, but please restore to 'false' before merging
10+
IGNORE_CACHE_AND_DO_FULL_REBUILD: 'false'
11+
# Retries for transient DNS/git-fetch failures in CI (see Could not resolve host: github.com)
12+
CI_TRANSIENT_NET_MAX_RETRIES: '6'
13+
CI_TRANSIENT_NET_BASE_DELAY_SEC: '20'
814
jobs:
915
build:
1016
strategy:
@@ -13,32 +19,44 @@ jobs:
1319
include:
1420
- os: ubuntu-latest
1521
platform: linux-64
22+
folder_cache: 'output/linux-64'
1623
- os: ubuntu-24.04-arm
1724
platform: linux-aarch64
18-
- os: macos-13
25+
folder_cache: 'output/linux-aarch64'
26+
- os: macos-15-intel
1927
platform: osx-64
20-
- os: macos-14
28+
folder_cache: 'output/osx-64'
29+
- os: macos-15
2130
platform: osx-arm64
31+
folder_cache: 'output/osx-arm64'
2232
- os: windows-2022
2333
platform: win-64
24-
34+
folder_cache: 'C:/bld/win-64'
2535

2636
runs-on: ${{ matrix.os }}
2737

2838
steps:
29-
- uses: actions/checkout@v4
39+
- uses: actions/checkout@v6
3040
with:
3141
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
3242
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
3343

34-
- uses: prefix-dev/setup-pixi@v0.8.10
44+
- uses: prefix-dev/setup-pixi@v0.9.4
3545
with:
3646
frozen: true
3747

48+
- name: Long paths workarounds for win-64
49+
shell: bash -l {0}
50+
if: matrix.platform == 'win-64'
51+
run: |
52+
# Workaround for problem related to long paths
53+
echo "CONDA_BLD_PATH=C:\\bld\\" >> $GITHUB_ENV
54+
mkdir /c/bld
55+
3856
# Workaround for https://github.com/RoboStack/ros-humble/pull/141#issuecomment-1941919816
3957
- name: Clean up PATH
4058
if: contains(matrix.os, 'windows')
41-
uses: egor-tensin/cleanup-path@v4
59+
uses: egor-tensin/cleanup-path@v5
4260
with:
4361
# cygpath in C:\Program Files\Git\usr\bin is used by install micromamba
4462
# git in C:\Program Files\Git\bin is used by pip install git+
@@ -54,86 +72,74 @@ jobs:
5472
rm -rf /c/Strawberry
5573
rm -rf "/c/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/"
5674
57-
- name: Generate recipes for linux-64
58-
shell: bash -l {0}
59-
if: matrix.platform == 'linux-64'
60-
run: |
61-
cp vinca_linux_64.yaml vinca.yaml
62-
mkdir -p recipes
63-
$HOME/.pixi/bin/pixi run -v vinca --platform linux-64 -m
64-
ls -la recipes
65-
- name: Generate recipes for linux-aarch64
66-
shell: bash -l {0}
67-
if: matrix.platform == 'linux-aarch64'
68-
run: |
69-
cp vinca_linux_aarch64.yaml vinca.yaml
70-
mkdir -p recipes
71-
$HOME/.pixi/bin/pixi run -v vinca --platform linux-aarch64 -m
72-
ls -la recipes
73-
- name: Generate recipes for osx-64
74-
shell: bash -l {0}
75-
if: matrix.platform == 'osx-64'
76-
run: |
77-
cp vinca_osx.yaml vinca.yaml
78-
mkdir -p recipes
79-
$HOME/.pixi/bin/pixi run -v vinca --platform osx-64 -m
80-
ls -la recipes
81-
- name: Generate recipes for osx-arm64
75+
- name: Generate recipes
8276
shell: bash -l {0}
83-
if: matrix.platform == 'osx-arm64'
8477
run: |
85-
cp vinca_osx_arm64.yaml vinca.yaml
8678
mkdir -p recipes
87-
$HOME/.pixi/bin/pixi run -v vinca --platform osx-arm64 -m
88-
ls -la recipes
89-
- name: Generate recipes for win-64
79+
pixi run -v vinca --platform ${{ matrix.platform }} -m -n
80+
81+
- name: Check patches
9082
shell: bash -l {0}
91-
if: matrix.platform == 'win-64'
9283
run: |
93-
# Workaround for problem related to long paths
94-
echo "CONDA_BLD_PATH=C:\\bld\\" >> $GITHUB_ENV
95-
mkdir /c/bld
96-
cp vinca_win.yaml vinca.yaml
97-
mkdir -p recipes
98-
$HOME/.pixi/bin/pixi run -v vinca --platform win-64 -m
99-
ls -la recipes
100-
- name: Check if there are packages to be built
101-
id: newrecipecheck
84+
pixi run check-patches
85+
86+
- name: Restore build cache
87+
id: cache-restore
88+
uses: actions/cache/restore@v5
89+
with:
90+
path: |
91+
${{ matrix.folder_cache }}
92+
key: ${{ runner.os }}-${{ matrix.platform }}-pr-${{ github.event.pull_request.number }}
93+
# allow a later run to pick up a cache that has an extra suffix
94+
restore-keys: |
95+
${{ runner.os }}-${{ matrix.platform }}-pr-${{ github.event.pull_request.number }}-
96+
97+
- name: Optional force full rebuild
98+
if: ${{ env.IGNORE_CACHE_AND_DO_FULL_REBUILD == 'true' }}
10299
shell: bash -l {0}
103100
run: |
104-
set +e
105-
if [ ! -d recipes ] || [ -z "$(ls -A recipes)" ]; then
106-
echo "RECIPE_CREATED=0" >> $GITHUB_OUTPUT
107-
else
108-
echo "RECIPE_CREATED=1" >> $GITHUB_OUTPUT
109-
fi
110-
- name: Build recipes for linux-64
101+
rm -rf ${{ matrix.folder_cache }}/*
102+
103+
- name: Delete specific outdated cache entries
111104
shell: bash -l {0}
112-
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && matrix.platform == 'linux-64'
113105
run: |
114-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir additional_recipes --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
115-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir recipes --target-platform linux-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
116-
- name: Build recipes for linux-aarch64
106+
# rm -rf ${{ matrix.folder_cache }}/ros-noetic-ecl-build* || true
107+
pixi run rattler-index fs output --force
108+
exit 0
109+
110+
- name: See packages restored by cache
117111
shell: bash -l {0}
118-
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && matrix.platform == 'linux-aarch64'
119112
run: |
120-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir additional_recipes --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
121-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir recipes --target-platform linux-aarch64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
122-
- name: Build recipes for osx-64
113+
ls ${{ matrix.folder_cache }} || true
114+
115+
- name: Build recipes
123116
shell: bash -l {0}
124-
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && matrix.platform == 'osx-64'
125117
run: |
126-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir additional_recipes --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
127-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir recipes --target-platform osx-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
128-
- name: Build recipes for osx-arm64
118+
pixi run rattler-build build --recipe-dir recipes --target-platform ${{ matrix.platform }} -m ./conda_build_config.yaml -c conda-forge -c robostack-staging --skip-existing
119+
120+
- name: See packages that will be saved in cache
129121
shell: bash -l {0}
130-
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && matrix.platform == 'osx-arm64'
122+
if: always()
131123
run: |
132-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir additional_recipes --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
133-
env -i $HOME/.pixi/bin/pixi run rattler-build build --recipe-dir recipes --target-platform osx-arm64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
134-
- name: Build recipes for win-64
124+
ls ${{ matrix.folder_cache }} || true
125+
126+
- name: Save build cache
127+
uses: actions/cache/save@v5
128+
if: always()
129+
with:
130+
path: |
131+
${{ matrix.folder_cache }}
132+
key: ${{ runner.os }}-${{ matrix.platform }}-pr-${{ github.event.pull_request.number }}-${{ github.run_id }}-${{ github.run_attempt }}
133+
134+
- name: Generate GitHub Actions workflows to catch post-PR problems
135135
shell: bash -l {0}
136-
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && matrix.platform == 'win-64'
137136
run: |
138-
$HOME/.pixi/bin/pixi run rattler-build build --recipe-dir additional_recipes --target-platform win-64 -m ./conda_build_config.yaml -c robostack-staging -c conda-forge --skip-existing
139-
$HOME/.pixi/bin/pixi run rattler-build build --recipe-dir recipes -m ./conda_build_config.yaml --target-platform win-64 -c robostack-staging -c conda-forge --skip-existing
137+
pixi run vinca-gha --platform ${{ matrix.platform }} --trigger-branch dummy_build_branch_as_it_is_unused -d ./recipes
138+
139+
- name: Upload build cache as artifact
140+
if: ${{ always() && env.SAVE_CACHE_AS_ARTIFACT == 'true' }}
141+
uses: actions/upload-artifact@v6
142+
with:
143+
name: cache-${{ matrix.platform }}-${{ github.run_id }}
144+
path: ${{ matrix.folder_cache }}
145+
retention-days: 7

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
vinca.yaml
1+
__pycache__
22
recipes/
3+
recipes_only_patch/
34
*.bat
45
*.sh
56
*.ps1

0 commit comments

Comments
 (0)