From 8f35d9b7deacf55363b19bc8118b93d729c719f5 Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 21:39:37 +0900 Subject: [PATCH 01/17] feat(autoware.repos): minor update autowarefoundation/autoware_internal_msgs to 1.2.0 (#5584) Signed-off-by: github-actions Co-authored-by: github-actions --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index 10d2bb5a63..3d75d5cfcd 100644 --- a/autoware.repos +++ b/autoware.repos @@ -12,7 +12,7 @@ repositories: core/autoware_internal_msgs: type: git url: https://github.com/autowarefoundation/autoware_internal_msgs.git - version: 1.1.0 + version: 1.2.0 core/autoware_cmake: type: git url: https://github.com/autowarefoundation/autoware_cmake.git From 7acb8efa608dbf4a45d88f9c4d1f7365b9b3d07b Mon Sep 17 00:00:00 2001 From: Junya Sasaki Date: Fri, 20 Dec 2024 14:28:23 +0900 Subject: [PATCH 02/17] feat: monitor version update in `simulator.repos` too (#5590) Signed-off-by: Junya Sasaki --- .../create-prs-to-update-vcs-repositories.yaml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/create-prs-to-update-vcs-repositories.yaml b/.github/workflows/create-prs-to-update-vcs-repositories.yaml index adb5628e28..ca34700bdd 100644 --- a/.github/workflows/create-prs-to-update-vcs-repositories.yaml +++ b/.github/workflows/create-prs-to-update-vcs-repositories.yaml @@ -18,7 +18,7 @@ jobs: app_id: ${{ secrets.APP_ID }} private_key: ${{ secrets.PRIVATE_KEY }} - - name: Create PRs to update VCS repositories + - name: Create PRs to update VCS repositories for autoware.repos uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1 with: token: ${{ steps.generate-token.outputs.token }} @@ -29,3 +29,15 @@ jobs: new_branch_prefix: feat/update- autoware_repos_file_name: autoware.repos verbosity: 0 + + - name: Create PRs to update VCS repositories for simulator.repos + uses: autowarefoundation/autoware-github-actions/create-prs-to-update-vcs-repositories@v1 + with: + token: ${{ steps.generate-token.outputs.token }} + repo_name: autowarefoundation/autoware + parent_dir: . + targets: major minor patch + base_branch: main + new_branch_prefix: feat/update- + autoware_repos_file_name: simulator.repos + verbosity: 0 From 2474461339b0e7e81bb1bc85768e7468840cc8da Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 16:51:05 +0900 Subject: [PATCH 03/17] feat(simulator.repos): patch update tier4/scenario_simulator_v2 to 7.3.5 (#5592) Signed-off-by: github-actions Co-authored-by: github-actions --- simulator.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulator.repos b/simulator.repos index 2940aa4f72..fa70090266 100644 --- a/simulator.repos +++ b/simulator.repos @@ -2,4 +2,4 @@ repositories: simulator/scenario_simulator: type: git url: https://github.com/tier4/scenario_simulator_v2.git - version: 7.3.1 + version: 7.3.5 From b3b7c8dd019deed118b2c442e36bfc4f03606cde Mon Sep 17 00:00:00 2001 From: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com> Date: Fri, 20 Dec 2024 17:24:14 +0900 Subject: [PATCH 04/17] feat(autoware.repos): use version tag for single_lidar_sensor_kit_launch (#5566) Signed-off-by: Ryohsuke Mitsudome --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index 3d75d5cfcd..3763c1dcda 100644 --- a/autoware.repos +++ b/autoware.repos @@ -115,7 +115,7 @@ repositories: sensor_kit/single_lidar_sensor_kit_launch: type: git url: https://github.com/autowarefoundation/single_lidar_sensor_kit_launch.git - version: main + version: 0.39.0 # vehicle vehicle/sample_vehicle_launch: type: git From e5494de02afd2787f5c6b2e91b1bc5277b9c425f Mon Sep 17 00:00:00 2001 From: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com> Date: Fri, 20 Dec 2024 19:47:34 +0900 Subject: [PATCH 05/17] feat(autoware.repos): use version tag for awsim_labs_sensor_kit_launch (#5567) feat(autoware.repo): use version tag for awsim_labs_sensor_kit_launch Signed-off-by: Ryohsuke Mitsudome --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index 3763c1dcda..33e5b5958a 100644 --- a/autoware.repos +++ b/autoware.repos @@ -111,7 +111,7 @@ repositories: sensor_kit/awsim_labs_sensor_kit_launch: type: git url: https://github.com/autowarefoundation/awsim_labs_sensor_kit_launch.git - version: main + version: 0.39.0 sensor_kit/single_lidar_sensor_kit_launch: type: git url: https://github.com/autowarefoundation/single_lidar_sensor_kit_launch.git From 593f1419b7a3c0eec787a2423424accab3c3b62f Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Sun, 22 Dec 2024 10:34:37 +0300 Subject: [PATCH 06/17] chore: sync files (#5598) Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions --- .pre-commit-config-optional.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config-optional.yaml b/.pre-commit-config-optional.yaml index 56000d93a8..ff325af5e8 100644 --- a/.pre-commit-config-optional.yaml +++ b/.pre-commit-config-optional.yaml @@ -4,7 +4,7 @@ repos: - repo: https://github.com/tcort/markdown-link-check - rev: v3.13.6 + rev: v3.12.2 hooks: - id: markdown-link-check args: [--quiet, --config=.markdown-link-check.json] From c490050599aef24e7d82e5db33d920ac58e93495 Mon Sep 17 00:00:00 2001 From: Amadeusz Szymko Date: Mon, 23 Dec 2024 16:58:03 +0900 Subject: [PATCH 07/17] fix(docker): update build script with respect to multi-container design (#5571) --- docker/build.sh | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/docker/build.sh b/docker/build.sh index b962137b79..d0d8b8976e 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -59,9 +59,9 @@ set_cuda_options() { # Set build options set_build_options() { if [ "$option_devel_only" = "true" ]; then - targets=("universe-devel") + target="universe-devel" else - targets=() + target="universe" fi } @@ -121,10 +121,10 @@ build_images() { echo "Setup args: $setup_args" echo "Lib dir: $lib_dir" echo "Image name suffix: $image_name_suffix" - echo "Targets: ${targets[*]}" + echo "Target: $target" set -x - docker buildx bake --load --progress=plain -f "$SCRIPT_DIR/docker-bake.hcl" \ + docker buildx bake --load --progress=plain -f "$SCRIPT_DIR/docker-bake-base.hcl" \ --set "*.context=$WORKSPACE_ROOT" \ --set "*.ssh=default" \ --set "*.platform=$platform" \ @@ -132,10 +132,23 @@ build_images() { --set "*.args.BASE_IMAGE=$base_image" \ --set "*.args.SETUP_ARGS=$setup_args" \ --set "*.args.LIB_DIR=$lib_dir" \ - --set "base.tags=ghcr.io/autowarefoundation/autoware:base" \ - --set "universe-devel.tags=ghcr.io/autowarefoundation/autoware:universe-devel$image_name_suffix" \ - --set "universe.tags=ghcr.io/autowarefoundation/autoware:universe$image_name_suffix" \ - "${targets[@]}" + --set "base.tags=ghcr.io/autowarefoundation/autoware-base:latest" \ + --set "base-cuda.tags=ghcr.io/autowarefoundation/autoware-base:cuda-latest" + docker buildx bake --load --progress=plain -f "$SCRIPT_DIR/docker-bake.hcl" -f "$SCRIPT_DIR/docker-bake-cuda.hcl" \ + --set "*.context=$WORKSPACE_ROOT" \ + --set "*.ssh=default" \ + --set "*.platform=$platform" \ + --set "*.args.ROS_DISTRO=$rosdistro" \ + --set "*.args.BASE_IMAGE=$base_image" \ + --set "*.args.AUTOWARE_BASE_IMAGE=$autoware_base_image" \ + --set "*.args.AUTOWARE_BASE_CUDA_IMAGE=$autoware_base_cuda_image" \ + --set "*.args.SETUP_ARGS=$setup_args" \ + --set "*.args.LIB_DIR=$lib_dir" \ + --set "universe-devel.tags=ghcr.io/autowarefoundation/autoware:universe-devel" \ + --set "universe-devel-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-devel-cuda" \ + --set "universe.tags=ghcr.io/autowarefoundation/autoware:universe" \ + --set "universe-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-cuda" \ + "$target$image_name_suffix" set +x } From 06b83937cffe3649215fefc247634881a7b6a02c Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Thu, 26 Dec 2024 15:25:01 +0900 Subject: [PATCH 08/17] feat(autoware.repos): minor update autowarefoundation/autoware_internal_msgs to 1.3.0 (#5612) Signed-off-by: github-actions Co-authored-by: github-actions --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index 33e5b5958a..83b0eaf94f 100644 --- a/autoware.repos +++ b/autoware.repos @@ -12,7 +12,7 @@ repositories: core/autoware_internal_msgs: type: git url: https://github.com/autowarefoundation/autoware_internal_msgs.git - version: 1.2.0 + version: 1.3.0 core/autoware_cmake: type: git url: https://github.com/autowarefoundation/autoware_cmake.git From c9c32480ecff40ce15c0bf7d51a77d67eb981e5e Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Thu, 26 Dec 2024 15:41:26 +0900 Subject: [PATCH 09/17] chore(autoware-nightly.repoos): add `autoware_internal_msgs` (#5613) add autoware_internal_msgs to nightly Signed-off-by: Yutaka Kondo --- autoware-nightly.repos | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/autoware-nightly.repos b/autoware-nightly.repos index 49da4fee81..e369eba829 100644 --- a/autoware-nightly.repos +++ b/autoware-nightly.repos @@ -3,6 +3,10 @@ repositories: type: git url: https://github.com/autowarefoundation/autoware_adapi_msgs.git version: main + core/autoware_internal_msgs: + type: git + url: https://github.com/autowarefoundation/autoware_internal_msgs.git + version: main core/autoware.core: type: git url: https://github.com/autowarefoundation/autoware.core.git From afc7de552d308bb65c79f3e2e177ed387d5ae125 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Thu, 9 Jan 2025 18:35:58 +0900 Subject: [PATCH 10/17] chore(autoware.repos): update `autoware.core` to `0.1.0`, `autoware.universe` to `0.40.0` and `autoware_launch` to `0.40.0` (#5636) Signed-off-by: Yutaka Kondo --- autoware.repos | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/autoware.repos b/autoware.repos index 83b0eaf94f..16bc4dfe74 100644 --- a/autoware.repos +++ b/autoware.repos @@ -28,12 +28,12 @@ repositories: core/autoware.core: type: git url: https://github.com/autowarefoundation/autoware.core.git - version: 0.0.0 + version: 0.1.0 # universe universe/autoware.universe: type: git url: https://github.com/autowarefoundation/autoware.universe.git - version: 0.39.0 + version: 0.40.0 universe/external/tier4_ad_api_adaptor: # TODO(TIER IV): Migrate to AD API and remove this repository entry. type: git url: https://github.com/tier4/tier4_ad_api_adaptor.git @@ -75,7 +75,7 @@ repositories: launcher/autoware_launch: type: git url: https://github.com/autowarefoundation/autoware_launch.git - version: 0.39.0 + version: 0.40.0 # sensor_component sensor_component/external/sensor_component_description: type: git From 8c66826b04b98d363eff1d6f6c6df84a0cc092ef Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 12:58:39 +0000 Subject: [PATCH 11/17] feat(autoware.repos): minor update tier4/awsim_sensor_kit_launch to 0.40.0 (#5591) Signed-off-by: github-actions Co-authored-by: github-actions Co-authored-by: Yutaka Kondo --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index 16bc4dfe74..e8ada00d82 100644 --- a/autoware.repos +++ b/autoware.repos @@ -107,7 +107,7 @@ repositories: sensor_kit/external/awsim_sensor_kit_launch: # TODO: Integrate into sample_sensor_kit_launch type: git url: https://github.com/tier4/awsim_sensor_kit_launch.git - version: 0.39.0 + version: 0.40.0 sensor_kit/awsim_labs_sensor_kit_launch: type: git url: https://github.com/autowarefoundation/awsim_labs_sensor_kit_launch.git From 473b42c268d0aa609c84a7e810b521d30d5628e8 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 14 Jan 2025 15:36:40 +0900 Subject: [PATCH 12/17] docs(docker): update `Multi-stage Dockerfile structure` section (#5651) * update readme Signed-off-by: Yutaka Kondo * refine Signed-off-by: Yutaka Kondo * fix common-devel-cuda Signed-off-by: Yutaka Kondo * fix sensing-perception-dvel-cuda Signed-off-by: Yutaka Kondo --------- Signed-off-by: Yutaka Kondo --- docker/README.md | 62 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/docker/README.md b/docker/README.md index 2dc13c925b..7128e578a3 100644 --- a/docker/README.md +++ b/docker/README.md @@ -76,10 +76,14 @@ The suffix `-devel` (e.g. `universe-devel`) is intended for use as a [developmen This is a base image of this Dockerfile. [`ros:humble-ros-base-jammy`](https://hub.docker.com/_/ros/tags?page=&page_size=&ordering=&name=humble-ros-base-jammy) will be given. -### `base` +### `base` (from Dockerfile.base) This stage performs only the basic setup required for all Autoware images. +### `base-cuda` (from Dockerfile.base) + +This stage is built on top of `base` and adds the CUDA runtime environment and artifacts. + ### `rosdep-depend` The ROS dependency package list files will be generated. @@ -96,62 +100,84 @@ By generating only the package list files and copying them to the subsequent sta ### `core-devel` -This stage installs the dependency packages based on `/rosdep-core-depend-packages.txt` and build the packages under the `core` directory of `autoware.repos`. +This stage installs the dependency packages based on `/rosdep-core-depend-packages.txt` and builds the packages under the `core` directory of `autoware.repos`. ### `universe-common-devel` -This stage installs the dependency packages based on `/rosdep-universe-common-depend-packages.txt` and build the packages under the following directories of `autoware.repos`. +This stage installs the dependency packages based on `/rosdep-universe-common-depend-packages.txt` and builds the packages under the following directories of `autoware.repos`: - `universe/external` - `universe/autoware.universe/common` +### `universe-common-devel-cuda` + +This stage is build on top of `universe-common-devel` and installs the CUDA development environment. + ### `universe-sensing-perception-devel` -This stage installs the dependency packages based on `/rosdep-universe-sensing-perception-depend-packages.txt` and build the packages under the following directories of `autoware.repos`. +This stage installs the dependency packages based on `/rosdep-universe-sensing-perception-depend-packages.txt` and builds the non-CUDA related packages under the following directories of `autoware.repos`: + +- `universe/autoware.universe/perception` +- `universe/autoware.universe/sensing` + +### `universe-sensing-perception-devel-cuda` + +This stage copies the non-CUDA related binaries built in the `universe-sensing-perception-devel` stage and builds the CUDA related packages under the following directories of `autoware.repos`: - `universe/autoware.universe/perception` - `universe/autoware.universe/sensing` ### `universe-sensing-perception` -This stage is a Autoware Universe Sensing/Perception runtime container. It only includes the dependencies given by `/rosdep-universe-sensing-perception-exec-depend-packages.txt` and the binaries built in the `universe-sensing-perception-devel` stage. +This stage is an Autoware Universe Sensing/Perception runtime container. It only includes the dependencies given by `/rosdep-universe-sensing-perception-exec-depend-packages.txt` and the binaries built in the `universe-sensing-perception-devel` stage. + +### `universe-sensing-perception-cuda` + +This stage installs the CUDA runtime environment and copies the binaries built in the `universe-sensing-perception-devel-cuda` stage. ### `universe-localization-mapping-devel` -This stage installs the dependency packages based on `/rosdep-universe-localization-mapping-depend-packages.txt` and build the packages under the following directories of `autoware.repos`. +This stage installs the dependency packages based on `/rosdep-universe-localization-mapping-depend-packages.txt` and builds the packages under the following directories of `autoware.repos`: - `universe/autoware.universe/localization` - `universe/autoware.universe/map` ### `universe-localization-mapping` -This stage is a Autoware Universe Localization/Mapping runtime container. It only includes the dependencies given by `/rosdep-universe-localization-mapping-exec-depend-packages.txt` and the binaries built in the `universe-localization-mapping-devel` stage. +This stage is an Autoware Universe Localization/Mapping runtime container. It only includes the dependencies given by `/rosdep-universe-localization-mapping-exec-depend-packages.txt` and the binaries built in the `universe-localization-mapping-devel` stage. ### `universe-planning-control-devel` -This stage installs the dependency packages based on `/rosdep-universe-planning-control-depend-packages.txt` and build the packages under the following directories of `autoware.repos`. +This stage installs the dependency packages based on `/rosdep-universe-planning-control-depend-packages.txt` and builds the packages under the following directories of `autoware.repos`: - `universe/autoware.universe/control` - `universe/autoware.universe/planning` ### `universe-planning-control` -This stage is a Autoware Universe Planning/Control runtime container. It only includes the dependencies given by `/rosdep-universe-planning-control-exec-depend-packages.txt` and the binaries built in the `universe-planning-control-devel` stage. +This stage is an Autoware Universe Planning/Control runtime container. It only includes the dependencies given by `/rosdep-universe-planning-control-exec-depend-packages.txt` and the binaries built in the `universe-planning-control-devel` stage. ### `universe-vehicle-system-devel` -This stage installs the dependency packages based on `/rosdep-universe-vehicle-system-depend-packages.txt` and build the packages under the following directories of `autoware.repos`. +This stage installs the dependency packages based on `/rosdep-universe-vehicle-system-depend-packages.txt` and builds the packages under the following directories of `autoware.repos`: - `universe/autoware.universe/vehicle` - `universe/autoware.universe/system` ### `universe-vehicle-system` -This stage is a Autoware Universe Vehicle/System runtime container. It only includes the dependencies given by `/rosdep-universe-vehicle-system-exec-depend-packages.txt` and the binaries built in the `universe-vehicle-system-devel` stage. +This stage is an Autoware Universe Vehicle/System runtime container. It only includes the dependencies given by `/rosdep-universe-vehicle-system-exec-depend-packages.txt` and the binaries built in the `universe-vehicle-system-devel` stage. ### `universe-devel` -This stage installs the dependency packages based on `/rosdep-universe-depend-packages.txt` and build the remaining packages of `autoware.repos`: +This stage installs the dependency packages based on `/rosdep-universe-depend-packages.txt` and copies the binaries built in the following stages: + +- `universe-sensing-perception-devel` +- `universe-localization-mapping-devel` +- `universe-planning-control-devel` +- `universe-vehicle-system-devel` + +Then it builds the remaining packages of `autoware.repos`: - `launcher` - `param` @@ -160,13 +186,19 @@ This stage installs the dependency packages based on `/rosdep-universe-depend-pa - `universe/autoware.universe/evaluator` - `universe/autoware.universe/launch` - `universe/autoware.universe/simulator` -- `universe/autoware.universe/system` - `universe/autoware.universe/tools` -- `universe/autoware.universe/vehicle` - `vehicle` This stage provides an all-in-one development container to Autoware developers. By running the host's source code with volume mounting, it allows for easy building and debugging of Autoware. +### `universe-devel-cuda` + +This stage installs the CUDA development environment and copies the binaries built in the `universe-sensing-perception-devel-cuda` stage to the `universe-devel` stage. + ### `universe` -This stage is an Autoware Universe runtime container. It only includes the dependencies given by `/rosdep-exec-depend-packages.txt`, the binaries built in the `universe-devel` stage, and artifacts. +This stage is an Autoware Universe runtime container. It only includes the dependencies given by `/rosdep-exec-depend-packages.txt` and the binaries built in the `universe-devel` stage. + +### `universe-cuda` + +This stage installs the CUDA runtime environment and copies the binaries built in the `universe-devel-cuda` stage. From 6049f52ff834b74de2fef28f22a4bf965f3e2bb2 Mon Sep 17 00:00:00 2001 From: "awf-autoware-bot[bot]" <94889083+awf-autoware-bot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:22:35 +0900 Subject: [PATCH 13/17] feat(autoware.repos): minor update autowarefoundation/autoware_internal_msgs to 1.4.0 (#5657) Signed-off-by: github-actions Co-authored-by: github-actions --- autoware.repos | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoware.repos b/autoware.repos index e8ada00d82..9cfc06ba9f 100644 --- a/autoware.repos +++ b/autoware.repos @@ -12,7 +12,7 @@ repositories: core/autoware_internal_msgs: type: git url: https://github.com/autowarefoundation/autoware_internal_msgs.git - version: 1.3.0 + version: 1.4.0 core/autoware_cmake: type: git url: https://github.com/autowarefoundation/autoware_cmake.git From b2c7255c614f415b2ef8f8e29d74868556bdd3f8 Mon Sep 17 00:00:00 2001 From: Esteve Fernandez <33620+esteve@users.noreply.github.com> Date: Wed, 15 Jan 2025 13:49:41 +0100 Subject: [PATCH 14/17] refactor: added Docker image for visualization plugins (#5460) * refactor: added Docker image for visualization plugins Signed-off-by: Esteve Fernandez * added visualization section Signed-off-by: Esteve Fernandez * update README.md Signed-off-by: Esteve Fernandez * update README.md Signed-off-by: Esteve Fernandez * added stages for visualization image Signed-off-by: Esteve Fernandez * fix dependency generation Signed-off-by: Esteve Fernandez * added target option Signed-off-by: Esteve Fernandez * remove suffix and explicit visualization build Signed-off-by: Esteve Fernandez * added tags for all targets Signed-off-by: Esteve Fernandez * added COPY statement for universe-visualization-devel Signed-off-by: Esteve Fernandez --------- Signed-off-by: Esteve Fernandez --- docker/Dockerfile | 63 ++++++++++++++++++++++++++++++++++++++++++ docker/README.md | 5 ++++ docker/build.sh | 30 +++++++++++++++++--- docker/docker-bake.hcl | 16 +++++++++++ 4 files changed, 110 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 8857e43bc9..21a570ab9a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -35,6 +35,18 @@ RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-common-depend-packages.txt \ && cat /rosdep-universe-common-depend-packages.txt +FROM rosdep-depend AS rosdep-universe-visualization-depend +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO + +COPY src/universe/autoware.universe/visualization /autoware/src/universe/autoware.universe/visualization +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ + > /rosdep-universe-visualization-depend-packages.txt \ + && cat /rosdep-universe-visualization-depend-packages.txt +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ + > /rosdep-universe-visualization-exec-depend-packages.txt \ + && cat /rosdep-universe-visualization-exec-depend-packages.txt + FROM rosdep-depend AS rosdep-universe-sensing-perception-depend SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -314,6 +326,30 @@ RUN --mount=type=cache,target=${CCACHE_DIR} \ ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["/bin/bash"] +FROM universe-common-devel AS universe-visualization-devel +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO +ENV CCACHE_DIR="/root/.ccache" + +# Install rosdep dependencies +COPY --from=rosdep-universe-visualization-depend /rosdep-universe-visualization-depend-packages.txt /tmp/rosdep-universe-visualization-depend-packages.txt +# hadolint ignore=SC2002 +RUN --mount=type=ssh \ + --mount=type=cache,target=/var/cache/apt,sharing=locked \ + apt-get update \ + && cat /tmp/rosdep-universe-visualization-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ + && /autoware/cleanup_apt.sh + +# hadolint ignore=SC1091 +RUN --mount=type=cache,target=${CCACHE_DIR} \ + --mount=type=bind,from=rosdep-universe-visualization-depend,source=/autoware/src/universe/autoware.universe/visualization,target=/autoware/src/universe/autoware.universe/visualization \ + source /opt/ros/"$ROS_DISTRO"/setup.bash \ + && source /opt/autoware/setup.bash \ + && /autoware/build_and_clean.sh ${CCACHE_DIR} /opt/autoware + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["/bin/bash"] + FROM universe-common-devel AS universe-devel SHELL ["/bin/bash", "-o", "pipefail", "-c"] ARG ROS_DISTRO @@ -332,6 +368,7 @@ COPY --from=universe-sensing-perception-devel /opt/autoware /opt/autoware COPY --from=universe-localization-mapping-devel /opt/autoware /opt/autoware COPY --from=universe-planning-control-devel /opt/autoware /opt/autoware COPY --from=universe-vehicle-system-devel /opt/autoware /opt/autoware +COPY --from=universe-visualization-devel /opt/autoware /opt/autoware # hadolint ignore=SC1091 RUN --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,from=rosdep-universe-depend,source=/autoware/src/launcher,target=/autoware/src/launcher \ @@ -494,6 +531,32 @@ RUN echo "source /opt/autoware/setup.bash" > /etc/bash.bashrc ENTRYPOINT ["/ros_entrypoint.sh"] CMD ["/bin/bash"] +# hadolint ignore=DL3006 +FROM $AUTOWARE_BASE_IMAGE AS universe-visualization +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +ARG ROS_DISTRO +ARG LIB_DIR + +# Set up runtime environment +COPY --from=rosdep-universe-visualization-depend /rosdep-universe-visualization-exec-depend-packages.txt /tmp/rosdep-universe-visualization-exec-depend-packages.txt +# hadolint ignore=SC2002 +RUN --mount=type=ssh \ + --mount=type=cache,target=/var/cache/apt,sharing=locked \ + ./setup-dev-env.sh -y --module all --no-nvidia --no-cuda-drivers --runtime openadkit \ + && pip uninstall -y ansible ansible-core \ + && apt-get update \ + && cat /tmp/rosdep-universe-visualization-exec-depend-packages.txt | xargs apt-get install -y --no-install-recommends \ + && /autoware/cleanup_system.sh $LIB_DIR $ROS_DISTRO + +COPY --from=universe-visualization-devel /opt/autoware /opt/autoware + +# Copy bash aliases +COPY docker/etc/.bash_aliases /root/.bash_aliases +RUN echo "source /opt/autoware/setup.bash" > /etc/bash.bashrc + +ENTRYPOINT ["/ros_entrypoint.sh"] +CMD ["/bin/bash"] + # hadolint ignore=DL3006 FROM $AUTOWARE_BASE_IMAGE AS universe SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/docker/README.md b/docker/README.md index 7128e578a3..c5bdf3a7fc 100644 --- a/docker/README.md +++ b/docker/README.md @@ -135,6 +135,10 @@ This stage is an Autoware Universe Sensing/Perception runtime container. It only This stage installs the CUDA runtime environment and copies the binaries built in the `universe-sensing-perception-devel-cuda` stage. +### `universe-visualization` + +This stage is a Autoware Universe Visualization runtime container. It only includes the dependencies given by `/rosdep-universe-visualization-exec-depend-packages.txt` and the binaries built in the `universe-visualization-devel` stage. + ### `universe-localization-mapping-devel` This stage installs the dependency packages based on `/rosdep-universe-localization-mapping-depend-packages.txt` and builds the packages under the following directories of `autoware.repos`: @@ -187,6 +191,7 @@ Then it builds the remaining packages of `autoware.repos`: - `universe/autoware.universe/launch` - `universe/autoware.universe/simulator` - `universe/autoware.universe/tools` +- `universe/autoware.universe/visualization` - `vehicle` This stage provides an all-in-one development container to Autoware developers. By running the host's source code with volume mounting, it allows for easy building and debugging of Autoware. diff --git a/docker/build.sh b/docker/build.sh index d0d8b8976e..4d23941763 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -11,6 +11,7 @@ print_help() { echo " --no-cuda Disable CUDA support" echo " --platform Specify the platform (default: current platform)" echo " --devel-only Build devel image only" + echo " --target Specify the target image (default: universe or universe-devel if --devel-only is set)" echo "" echo "Note: The --platform option should be one of 'linux/amd64' or 'linux/arm64'." } @@ -36,6 +37,10 @@ parse_arguments() { --devel-only) option_devel_only=true ;; + --target) + option_target="$2" + shift + ;; *) echo "Unknown option: $1" print_help @@ -58,10 +63,15 @@ set_cuda_options() { # Set build options set_build_options() { - if [ "$option_devel_only" = "true" ]; then - target="universe-devel" + if [ -n "$option_target" ]; then + target="$option_target" + image_name_suffix="" else - target="universe" + if [ "$option_devel_only" = "true" ]; then + target="universe-devel" + else + target="universe" + fi fi } @@ -144,9 +154,21 @@ build_images() { --set "*.args.AUTOWARE_BASE_CUDA_IMAGE=$autoware_base_cuda_image" \ --set "*.args.SETUP_ARGS=$setup_args" \ --set "*.args.LIB_DIR=$lib_dir" \ + --set "universe-sensing-perception-devel.tags=ghcr.io/autowarefoundation/autoware:universe-sensing-perception-devel" \ + --set "universe-sensing-perception.tags=ghcr.io/autowarefoundation/autoware:universe-sensing-perception" \ + --set "universe-localization-mapping-devel.tags=ghcr.io/autowarefoundation/autoware:universe-localization-mapping-devel" \ + --set "universe-localization-mapping.tags=ghcr.io/autowarefoundation/autoware:universe-localization-mapping" \ + --set "universe-planning-control-devel.tags=ghcr.io/autowarefoundation/autoware:universe-planning-control-devel" \ + --set "universe-planning-control.tags=ghcr.io/autowarefoundation/autoware:universe-planning-control" \ + --set "universe-vehicle-system-devel.tags=ghcr.io/autowarefoundation/autoware:universe-vehicle-system-devel" \ + --set "universe-vehicle-system.tags=ghcr.io/autowarefoundation/autoware:universe-vehicle-system" \ + --set "universe-visualization-devel.tags=ghcr.io/autowarefoundation/autoware:universe-visualization-devel" \ + --set "universe-visualization.tags=ghcr.io/autowarefoundation/autoware:universe-visualization" \ --set "universe-devel.tags=ghcr.io/autowarefoundation/autoware:universe-devel" \ - --set "universe-devel-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-devel-cuda" \ --set "universe.tags=ghcr.io/autowarefoundation/autoware:universe" \ + --set "universe-sensing-perception-devel-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-sensing-perception-devel-cuda" \ + --set "universe-sensing-perception-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-sensing-perception-cuda" \ + --set "universe-devel-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-devel-cuda" \ --set "universe-cuda.tags=ghcr.io/autowarefoundation/autoware:universe-cuda" \ "$target$image_name_suffix" set +x diff --git a/docker/docker-bake.hcl b/docker/docker-bake.hcl index dcf79ffc11..600b47108b 100644 --- a/docker/docker-bake.hcl +++ b/docker/docker-bake.hcl @@ -9,6 +9,8 @@ group "default" { "universe-planning-control", "universe-vehicle-system-devel", "universe-vehicle-system", + "universe-visualization-devel", + "universe-visualization", "universe-devel", "universe" ] @@ -24,6 +26,8 @@ target "docker-metadata-action-universe-planning-control-devel" {} target "docker-metadata-action-universe-planning-control" {} target "docker-metadata-action-universe-vehicle-system-devel" {} target "docker-metadata-action-universe-vehicle-system" {} +target "docker-metadata-action-universe-visualization-devel" {} +target "docker-metadata-action-universe-visualization" {} target "docker-metadata-action-universe-devel" {} target "docker-metadata-action-universe" {} @@ -81,6 +85,18 @@ target "universe-vehicle-system" { target = "universe-vehicle-system" } +target "universe-visualization-devel" { + inherits = ["docker-metadata-action-universe-visualization-devel"] + dockerfile = "docker/Dockerfile" + target = "universe-visualization-devel" +} + +target "universe-visualization" { + inherits = ["docker-metadata-action-universe-visualization"] + dockerfile = "docker/Dockerfile" + target = "universe-visualization" +} + target "universe-devel" { inherits = ["docker-metadata-action-universe-devel"] dockerfile = "docker/Dockerfile" From 8677ae5a0377b00e23de65e390faf319fdbf0267 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 13:27:45 +0000 Subject: [PATCH 15/17] ci(pre-commit): quarterly autoupdate (#5630) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pre-commit/mirrors-clang-format: v19.1.5 → v19.1.6](https://github.com/pre-commit/mirrors-clang-format/compare/v19.1.5...v19.1.6) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 48a97c13ef..9d7c0531a4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -74,7 +74,7 @@ repos: args: [--line-length=100] - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v19.1.5 + rev: v19.1.6 hooks: - id: clang-format types_or: [c++, c, cuda] From 3dad5543d2c9ccbf01fe55598965d9aaf28a9d21 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Thu, 16 Jan 2025 23:14:43 +0900 Subject: [PATCH 16/17] fix(docker): enable `--dependency-types` again (#5656) * use dependency-types again Signed-off-by: Yutaka Kondo * set default Signed-off-by: Yutaka Kondo * fix Signed-off-by: Yutaka Kondo * fix Signed-off-by: Yutaka Kondo * add comment Signed-off-by: Yutaka Kondo --------- Signed-off-by: Yutaka Kondo --- docker/Dockerfile | 10 +++++----- docker/scripts/resolve_rosdep_keys.sh | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 21a570ab9a..b4b56698a9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -56,7 +56,7 @@ COPY src/universe/autoware.universe/sensing /autoware/src/universe/autoware.univ RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-sensing-perception-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-depend-packages.txt -RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-types=exec \ > /rosdep-universe-sensing-perception-exec-depend-packages.txt \ && cat /rosdep-universe-sensing-perception-exec-depend-packages.txt @@ -69,7 +69,7 @@ COPY src/universe/autoware.universe/map /autoware/src/universe/autoware.universe RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-localization-mapping-depend-packages.txt \ && cat /rosdep-universe-localization-mapping-depend-packages.txt -RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-types=exec \ > /rosdep-universe-localization-mapping-exec-depend-packages.txt \ && cat /rosdep-universe-localization-mapping-exec-depend-packages.txt @@ -87,7 +87,7 @@ COPY src/universe/autoware.universe/sensing/autoware_pointcloud_preprocessor /au RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-planning-control-depend-packages.txt \ && cat /rosdep-universe-planning-control-depend-packages.txt -RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-types=exec \ > /rosdep-universe-planning-control-exec-depend-packages.txt \ && cat /rosdep-universe-planning-control-exec-depend-packages.txt @@ -102,7 +102,7 @@ COPY src/universe/autoware.universe/localization/autoware_pose2twist /autoware/s RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-vehicle-system-depend-packages.txt \ && cat /rosdep-universe-vehicle-system-depend-packages.txt -RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-types=exec \ > /rosdep-universe-vehicle-system-exec-depend-packages.txt \ && cat /rosdep-universe-vehicle-system-exec-depend-packages.txt @@ -120,7 +120,7 @@ RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ > /rosdep-universe-depend-packages.txt \ && cat /rosdep-universe-depend-packages.txt -RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} \ +RUN /autoware/resolve_rosdep_keys.sh /autoware/src ${ROS_DISTRO} --dependency-types=exec \ > /rosdep-exec-depend-packages.txt \ && cat /rosdep-exec-depend-packages.txt diff --git a/docker/scripts/resolve_rosdep_keys.sh b/docker/scripts/resolve_rosdep_keys.sh index 1615e9f68f..9b03b6ab04 100755 --- a/docker/scripts/resolve_rosdep_keys.sh +++ b/docker/scripts/resolve_rosdep_keys.sh @@ -3,8 +3,10 @@ function resolve_rosdep_keys() { local src_path=$1 local ros_distro=$2 + local rosdep_keys_args=$3 - rosdep keys --ignore-src --from-paths "$src_path" | + # shellcheck disable=SC2086 + rosdep keys $rosdep_keys_args --ignore-src --from-paths "$src_path" | xargs rosdep resolve --rosdistro "$ros_distro" | grep -v '^#' | sed 's/ \+/\n/g' | From 7e68dc8691a21dc0146df97116df1c09572aa5df Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Tue, 21 Jan 2025 17:40:00 +0900 Subject: [PATCH 17/17] fix(docker): add `set -e` to return shell script's error (#5661) --- docker/scripts/build_and_clean.sh | 1 + docker/scripts/cleanup_apt.sh | 1 + docker/scripts/cleanup_system.sh | 1 + docker/scripts/resolve_rosdep_keys.sh | 1 + 4 files changed, 4 insertions(+) diff --git a/docker/scripts/build_and_clean.sh b/docker/scripts/build_and_clean.sh index e9d5ec6168..f5f383f156 100755 --- a/docker/scripts/build_and_clean.sh +++ b/docker/scripts/build_and_clean.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -e function build_and_clean() { local ccache_dir=$1 diff --git a/docker/scripts/cleanup_apt.sh b/docker/scripts/cleanup_apt.sh index ad03c1f39e..f3a47e5829 100755 --- a/docker/scripts/cleanup_apt.sh +++ b/docker/scripts/cleanup_apt.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -e function cleanup_apt() { local apt_clean=$1 diff --git a/docker/scripts/cleanup_system.sh b/docker/scripts/cleanup_system.sh index 0833be2b3a..72127927ec 100755 --- a/docker/scripts/cleanup_system.sh +++ b/docker/scripts/cleanup_system.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -e function cleanup_system() { local lib_dir=$1 diff --git a/docker/scripts/resolve_rosdep_keys.sh b/docker/scripts/resolve_rosdep_keys.sh index 9b03b6ab04..1b3f5839bd 100755 --- a/docker/scripts/resolve_rosdep_keys.sh +++ b/docker/scripts/resolve_rosdep_keys.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -e function resolve_rosdep_keys() { local src_path=$1