micro-ROS / micro-ROS/micro_ros_setup

Dependency Conflict in micro-ROS Zephyr Setup Due to docutils Version Incompatibility

オープン
#739 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Shell
スター
509
フォーク
183
平均マージ
22時間 26分
マージ済み PR(30日)
7

説明

Dependency Conflict in micro-ROS Zephyr Setup Due to docutils Version Incompatibility

  • Hardware description: N/A (not hardware specific)

  • RTOS: Zephyr

  • Installation type: micro_ros_setup

  • Version or commit hash: a146e83

  • Python version: Python 3.10.12

  • OS: Ubuntu 22.04.5 LTS

Steps to reproduce the issue
  1. Follow the micro-ROS Zephyr setup instructions.
  2. Run the following command to create a firmware workspace:
    ros2 run micro_ros_setup create_firmware_ws.sh zephyr
    
  3. The script fails with a docutils version conflict.
Expected behavior

The firmware workspace should be created without any dependency conflicts.

Actual behavior

The script fails with the following error due to an incompatibility between sphinx-rtd-theme and the installed version of docutils:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
sphinx-rtd-theme 0.5.2 requires docutils<0.17, but you have docutils 0.17.1 which is incompatible.
Additional information

I was able to resolve the issue by modifying the create.sh file in src/micro_ros_setup/config/zephyr/generic/ at line 70:

pip install --force-reinstall docutils==0.16 Sphinx==4.2.0

This forces the installation of a compatible version of docutils and prevents pip from installing docutils 0.17.1. To fix the issue permanently, I suggest adding this change to the official create.sh script to ensure compatibility with sphinx-rtd-theme 0.5.2.

I tested this issue both in my local environment (Ubuntu 22.04.5 LTS) and in the official Humble Docker container. The issue was reproducible in both setups.

The full logs are available if needed, but they are quite lengthy.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

src/micro_ros_setup/config/zephyr/generic/create.sh の70行目付近から始め、create_firmware_ws.sh zephyr で使用される依存関係のインストールを確認します。Humble の Docker コンテナまたは Ubuntu 22.04 で ros2 run micro_ros_setup create_firmware_ws.sh zephyr を実行して再現します。docutils と sphinx-rtd-theme の競合なしにファームウェアワークスペースが作成されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python, shell
領域
build-system, tooling
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。