Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 75 additions & 11 deletions check_patches_clean_apply.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@
*source* and a stub *build* section remain.
* Automatically invokes ``rattler-build build`` if *--dry* is **not**
given.

Modification summary
--------------------
* Each recipe is built individually (not batch)
* All outputs collected; failures reported with summary and details
* No early stopping; CI-friendly non-zero exit if any failures
"""

from __future__ import annotations
Expand All @@ -38,6 +44,12 @@
from typing import Any, Dict, List, Union
import yaml

# Make console writes UTF-8 and never crash on unknown glyphs (Windows-safe)
try:
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
except Exception:
pass

ROOT_DIR = Path.cwd()
RECIPES_DIR = ROOT_DIR / "recipes"
Expand Down Expand Up @@ -130,15 +142,68 @@ def prepare_patch_recipes() -> List[Path]:
return recreated


def run_rattler_build() -> None:
cmd = [
"rattler-build",
"build",
"--recipe-dir",
str(PATCH_RECIPES_DIR)
]
print("\n Running:", " ".join(cmd), "\n", flush=True)
subprocess.run(cmd, check=True)
def run_rattler_build_individually(recipes: List[Path]) -> None:
results = []
for recipe_file in recipes:
cmd = [
"rattler-build",
"build",
"--recipe-dir",
str(recipe_file.parent),
]
print("\n Running:", " ".join(cmd), "\n", flush=True)
try:
proc = subprocess.run(cmd, text=True, capture_output=True, errors="replace", encoding="utf-8")
success = proc.returncode == 0
results.append(
{
"recipe": str(recipe_file.parent.relative_to(PATCH_RECIPES_DIR)),
"ok": success,
"stdout": proc.stdout,
"stderr": proc.stderr,
"rc": proc.returncode,
}
)
print(" ->", "OK" if success else f"FAIL (rc={proc.returncode})", flush=True)
except Exception as e:
results.append(
{
"recipe": str(recipe_file.parent.relative_to(PATCH_RECIPES_DIR)),
"ok": False,
"stdout": "",
"stderr": str(e),
"rc": -1,
}
)
print(" -> EXCEPTION:", e, flush=True)

# Summary
failed = [r for r in results if not r["ok"]]
print("\n================ Patch Application Summary ================\n")
print(f"Total recipes tested: {len(results)}")
print(f"Passed: {len(results) - len(failed)}")
print(f"Failed: {len(failed)}")

if not failed:
print("\nAll patches applied cleanly.\n")
return

print("\n---------------- Failures (Summary) ----------------")
for r in failed:
print(f"- {r['recipe']} (rc={r['rc']})")

print("\n---------------- Failures (Details) ----------------")
for r in failed:
print(f"\n### {r['recipe']} (rc={r['rc']})")
if r["stdout"]:
print("\n[stdout]")
print(r["stdout"].rstrip())
if r["stderr"]:
print("\n[stderr]")
print(r["stderr"].rstrip())
print("\n----------------------------------------------------\n")

sys.exit(2 if failed else 0)


def main() -> None:
Expand All @@ -165,11 +230,10 @@ def main() -> None:
print(f"Prepared {len(recreated)} minimal recipe(s) in {PATCH_RECIPES_DIR}/")

if not args.dry:
run_rattler_build()
run_rattler_build_individually(recreated)
else:
print("--dry given – rattler-build not executed.")


if __name__ == "__main__":
main()

45 changes: 31 additions & 14 deletions conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,43 @@
numpy:
- 1.26
- 2
assimp:
- 5
libprotobuf:
- 5.29.3
- 6.31.1
protobuf:
- 5.29.3
- 6.31.1
spdlog:
- 1.15
- 1.17
pugixml:
- '1.15'
libopencv:
- 4.11.0
- 4.12.0
libxml2:
- 2.13.*
- 2.14.*
graphviz:
- 12.*
- 14.*
# Mitigation for
# https://github.com/RoboStack/ros-jazzy/pull/126#issuecomment-3515455380
libcap:
- 2.77
fmt:
- 12.1
lua:
- 5.4
tbb:
- '2022'
tbb_devel:
- '2022'

# Workaround for https://github.com/RoboStack/ros-jazzy/pull/40#issuecomment-2782226697
cmake:
- 3.*

cdt_name: # [linux]
- conda # [linux]

python:
- 3.11.* *_cpython
- 3.12.* *_cpython
python_impl:
- cpython

Expand All @@ -36,7 +52,7 @@ c_compiler:
- vs2022 # [win]
- emscripten # [emscripten]
c_compiler_version: # [unix]
- 13 # [linux]
- 14 # [linux]
- 18 # [osx]
c_stdlib:
- sysroot # [linux]
Expand All @@ -52,12 +68,13 @@ cxx_compiler:
- vs2022 # [win]
- emscripten # [emscripten]
cxx_compiler_version: # [unix]
- 13 # [linux]
- 14 # [linux]
- 18 # [osx]

libzenohc:
- 1.4.0
- 1.7.2
libzenohcxx:
- 1.4.0
libcap:
- 2.71
- 1.7.2

libhwloc:
- 2.12.2
26 changes: 0 additions & 26 deletions patch/ros-humble-apriltag-detector-mit.win.patch

This file was deleted.

27 changes: 0 additions & 27 deletions patch/ros-humble-apriltag-detector-umich.win.patch

This file was deleted.

26 changes: 0 additions & 26 deletions patch/ros-humble-apriltag-detector.win.patch

This file was deleted.

24 changes: 0 additions & 24 deletions patch/ros-humble-apriltag-draw.win.patch

This file was deleted.

15 changes: 0 additions & 15 deletions patch/ros-humble-apriltag-tools.win.patch

This file was deleted.

29 changes: 0 additions & 29 deletions patch/ros-humble-autoware-cmake.patch

This file was deleted.

16 changes: 0 additions & 16 deletions patch/ros-humble-autoware-cmake.win.patch

This file was deleted.

12 changes: 12 additions & 0 deletions patch/ros-humble-autoware-trajectory.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/common/autoware_trajectory/include/autoware/trajectory/interpolator/detail/interpolator_common_interface.hpp b/common/autoware_trajectory/include/autoware/trajectory/interpolator/detail/interpolator_common_interface.hpp
index e339508816..c010fa633a 100644
--- a/common/autoware_trajectory/include/autoware/trajectory/interpolator/detail/interpolator_common_interface.hpp
+++ b/common/autoware_trajectory/include/autoware/trajectory/interpolator/detail/interpolator_common_interface.hpp
@@ -19,6 +19,7 @@

#include <rclcpp/logging.hpp>

+#include <algorithm>
#include <utility>
#include <vector>

15 changes: 15 additions & 0 deletions patch/ros-humble-controller-interface.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index abc15168fd..91254fec44 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,7 +25,9 @@ target_include_directories(controller_interface PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/controller_interface>
)
-ament_target_dependencies(controller_interface PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
+target_link_libraries(controller_interface PUBLIC
+ hardware_interface::hardware_interface
+ rclcpp_lifecycle::rclcpp_lifecycle)
# Causes the visibility macros to use dllexport rather than dllimport,
# which is appropriate when building the dll but not consuming it.
target_compile_definitions(controller_interface PRIVATE "CONTROLLER_INTERFACE_BUILDING_DLL")
Loading
Loading