From c553398402ca6f5f30f56276c2831091ebab73e9 Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:28:08 +0200 Subject: [PATCH 01/14] Fix dep (requirement.txt) to versions present in apt --- constraints.txt | 72 ++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 30 deletions(-) diff --git a/constraints.txt b/constraints.txt index f904f5c8627..7d6af5d0d1d 100644 --- a/constraints.txt +++ b/constraints.txt @@ -1,36 +1,48 @@ -alabaster==0.7.12 -Babel==2.14.0 -certifi==2020.6.20 -chardet==4.0.0 -doc8==1.1.1 -docutils==0.20.1 -idna==2.10 -imagesize==1.3.0 -Jinja2==3.0.3 -MarkupSafe==2.0.1 -packaging==21.3 -pbr==5.8.0 +alabaster==0.7.16 +atomicwrites==1.4.1 +attrs==25.3.0 +babel==2.17.0 +certifi==2025.4.26 +charset-normalizer==3.4.2 +click==8.1.8 +codespell==2.4.1 +doc8==1.1.2 +docutils==0.21.2 +idna==3.10 +imagesize==1.4.1 +iniconfig==2.1.0 +Jinja2==3.1.6 +MarkupSafe==3.0.2 +more-itertools==10.7.0 +packaging==25.0 +pbr==6.1.1 +pluggy==1.5.0 polib==1.2.0 -Pygments==2.17.2 -pyparsing==2.4.7 +py==1.11.0 +Pygments==2.19.1 pytest==8.3.5 -pytz==2022.1 -requests==2.25.1 -restructuredtext_lint==1.3.2 -snowballstemmer==2.2.0 -Sphinx==7.2.6 +PyYAML==6.0.2 +regex==2024.11.6 +requests==2.32.3 +restructuredtext_lint==1.4.0 +roman-numerals-py==3.1.0 +setuptools==80.3.1 +six==1.17.0 +snowballstemmer==3.0.0.1 +Sphinx==8.2.3 sphinx-copybutton==0.5.2 -sphinx-lint==0.9.1 +sphinx-lint==1.0.0 sphinx-multiversion==0.2.4 -sphinx-rtd-theme==2.0.0 -sphinx-tabs==3.4.5 -sphinxcontrib-applehelp==1.0.4 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.1 +sphinx-rtd-theme==3.0.2 +sphinx-tabs==3.4.7 +sphinx_tamer==0.2.0 +sphinxcontrib-applehelp==2.0.0 +sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-mermaid==0.9.2 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.10 -stevedore==3.5.0 -urllib3==1.26.5 +sphinxcontrib-mermaid==1.0.0 +sphinxcontrib-qthelp==2.0.0 +sphinxcontrib-serializinghtml==2.0.0 +stevedore==5.4.1 +urllib3==2.4.0 From a8e759b9909bbb33dac9b7ac2a2bf56b44e1b0d7 Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:32:25 +0200 Subject: [PATCH 02/14] Update Dockerfile Devcontainer.json --- .devcontainer/devcontainer.json | 4 ++-- docker/image/Dockerfile | 13 +++++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f8f35c4f99d..e512ea85535 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,11 +1,11 @@ { "name": "ROS 2 Documentation", "build": { - "dockerfile": "../docker/image/Dockerfile" + "dockerfile": "../docker/image/Dockerfile", + "context": ".." }, "workspaceMount": "source=${localWorkspaceFolder},target=/tmp/doc_repository,type=bind", "workspaceFolder": "/tmp/doc_repository", - "postCreateCommand": "pip3 install --no-warn-script-location --user -r requirements.txt -c constraints.txt", "features": { "ghcr.io/devcontainers/features/git:1": {} }, diff --git a/docker/image/Dockerfile b/docker/image/Dockerfile index dbf41a234b3..480a92652e6 100644 --- a/docker/image/Dockerfile +++ b/docker/image/Dockerfile @@ -3,7 +3,7 @@ # # docker build -f docker/image/Dockerfile . -FROM ubuntu:jammy +FROM ubuntu:noble ARG user=rosindex ARG uid=1000 @@ -20,7 +20,8 @@ RUN apt-get update && \ graphviz \ locales \ make \ - python3-pip && \ + python3-pip \ + python3-venv && \ rm -rf /var/lib/apt/lists/* RUN locale-gen en_US en_US.UTF-8 @@ -32,6 +33,10 @@ ENV HOME=/home/$user ENV PATH=/home/$user/.local/bin:$PATH WORKDIR /tmp/doc_repository -USER $user -CMD ["bash", "-c", "pip3 install --no-warn-script-location --user -r requirements.txt -c constraints.txt && make multiversion"] +RUN python3 -m venv /opt/ros2doc +COPY requirements.txt constraints.txt . +RUN . /opt/ros2doc/bin/activate && pip3 install -r requirements.txt -c constraints.txt + +RUN echo "source /opt/ros2doc/bin/activate" >> /home/$user/.bashrc +USER $user From 6c648fe0447f90a286253af07e0d3d0861ce85a3 Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:32:50 +0200 Subject: [PATCH 03/14] Update workflows --- .github/workflows/docker-image.yml | 2 +- .github/workflows/test.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 2e750b9cac6..c7c042d1f00 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -9,7 +9,7 @@ on: jobs: validate: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8a0c0e71f4d..69fdd9a2bfe 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,7 @@ on: pull_request jobs: test: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 @@ -24,7 +24,7 @@ jobs: run: make test-tools lint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 @@ -41,7 +41,7 @@ jobs: run: make lint spellcheck: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 @@ -59,7 +59,7 @@ jobs: build: needs: [test, lint] - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 From 830244a4769511528399070c4c2ad12f9068bb56 Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:33:33 +0200 Subject: [PATCH 04/14] Update conf.py --- conf.py | 5 ++++- requirements.txt | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/conf.py b/conf.py index 7d175c40433..3ff7802ab4b 100644 --- a/conf.py +++ b/conf.py @@ -86,6 +86,7 @@ 'sphinx_tabs.tabs', 'sphinx_rtd_theme', 'sphinx_sitemap_ros', + 'sphinxcontrib.googleanalytics', 'sphinxcontrib.mermaid', ] @@ -109,6 +110,9 @@ # See: https://sphinx-copybutton.readthedocs.io/en/latest/use.html#automatic-exclusion-of-prompts-from-the-copies copybutton_exclude = '.linenos, .gp, .go' +# Google Analytics configuration +googleanalytics_id = 'G-EVD5Z6G6NH' +googleanalytics_enabled = True # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for @@ -116,7 +120,6 @@ # html_theme = 'sphinx_rtd_theme' html_theme_options = { - 'analytics_id': 'G-EVD5Z6G6NH', 'collapse_navigation': False, 'sticky_navigation': True, 'navigation_depth': -1, diff --git a/requirements.txt b/requirements.txt index f9e4d129f85..8c9ac3f27a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,3 +11,4 @@ sphinx-rtd-theme sphinx-tabs sphinxcontrib-mermaid sphinx-tamer +sphinxcontrib-googleanalytics From 098a31a6191b3da7eaf21eafb72fb8978bb8c6f9 Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:34:14 +0200 Subject: [PATCH 05/14] Fix constraints to latest version available via pip --- constraints.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/constraints.txt b/constraints.txt index 7d6af5d0d1d..1e3e88b3c80 100644 --- a/constraints.txt +++ b/constraints.txt @@ -38,6 +38,7 @@ sphinx-tabs==3.4.7 sphinx_tamer==0.2.0 sphinxcontrib-applehelp==2.0.0 sphinxcontrib-devhelp==2.0.0 +sphinxcontrib-googleanalytics==0.4 sphinxcontrib-htmlhelp==2.1.0 sphinxcontrib-jquery==4.1 sphinxcontrib-jsmath==1.0.1 From b3f38c6fc7746df75cbc5ca78ba2f1f57085d85a Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:39:56 +0200 Subject: [PATCH 06/14] Update python version in workflows. --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 69fdd9a2bfe..92a763623d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12.2' - name: Install dependencies with pip run: pip install --no-warn-script-location --user -r requirements.txt -c constraints.txt @@ -32,7 +32,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12.2' - name: Install dependencies with pip run: pip install --no-warn-script-location --user -r requirements.txt -c constraints.txt @@ -49,7 +49,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12.2' - name: Install dependencies with pip run: pip install --no-warn-script-location --user -r requirements.txt -c constraints.txt @@ -67,7 +67,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.12.2' - name: Setup Graphviz uses: ts-graphviz/setup-graphviz@v2 From b9fe4311d8ecb1eb2e02f0e8b63cad4a638b37d4 Mon Sep 17 00:00:00 2001 From: nils Date: Sat, 10 May 2025 14:55:46 +0200 Subject: [PATCH 07/14] Adapt Readme to noble --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3dffb339573..586d9c66df6 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ pip install -r requirements.txt -c constraints.txt ### Pinned versions -For development we currently use Jammy (Ubuntu 22.04) as our build platform. +For development we currently use Noble (Ubuntu 22.04) as our build platform. And all python versions are pinned in the constraints file to make sure that things are reproducible. To upgrade the system validate that things are working and then use `pip freeze > constraints.txt` to lock in the versions to upgrade. From eab79b62faa88ecfbad22884e4576a218b5c2a69 Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:32:57 +0200 Subject: [PATCH 08/14] Update README.md Co-authored-by: Christophe Bedard Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 586d9c66df6..27420b9c519 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ pip install -r requirements.txt -c constraints.txt ### Pinned versions -For development we currently use Noble (Ubuntu 22.04) as our build platform. +For development we currently use Noble (Ubuntu 24.04) as our build platform. And all python versions are pinned in the constraints file to make sure that things are reproducible. To upgrade the system validate that things are working and then use `pip freeze > constraints.txt` to lock in the versions to upgrade. From c261a0791847c32eb9d8bba9a2a8814e09fea4af Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:34:32 +0200 Subject: [PATCH 09/14] Update requirements.txt Co-authored-by: Christophe Bedard Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8c9ac3f27a9..f952c4882fb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,6 @@ sphinx-lint sphinx-multiversion sphinx-rtd-theme sphinx-tabs -sphinxcontrib-mermaid sphinx-tamer sphinxcontrib-googleanalytics +sphinxcontrib-mermaid From 8237c57739e3b7638dd92d770c92dce3b4c595f5 Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:37:29 +0200 Subject: [PATCH 10/14] Use Python 3.12 Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- .github/workflows/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 92a763623d3..622303411ac 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.12.2' + python-version: '3.12' - name: Install dependencies with pip run: pip install --no-warn-script-location --user -r requirements.txt -c constraints.txt @@ -32,7 +32,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.12.2' + python-version: '3.12' - name: Install dependencies with pip run: pip install --no-warn-script-location --user -r requirements.txt -c constraints.txt @@ -49,7 +49,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.12.2' + python-version: '3.12' - name: Install dependencies with pip run: pip install --no-warn-script-location --user -r requirements.txt -c constraints.txt @@ -67,7 +67,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.12.2' + python-version: '3.12' - name: Setup Graphviz uses: ts-graphviz/setup-graphviz@v2 From 69d5fb953f9c7fed71ba56a5422f9725dd0e2d68 Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:41:48 +0200 Subject: [PATCH 11/14] Update devcontainer.json Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- .devcontainer/devcontainer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e512ea85535..3c1596db1c9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,8 +1,7 @@ { "name": "ROS 2 Documentation", "build": { - "dockerfile": "../docker/image/Dockerfile", - "context": ".." + "dockerfile": "../docker/image/Dockerfile" }, "workspaceMount": "source=${localWorkspaceFolder},target=/tmp/doc_repository,type=bind", "workspaceFolder": "/tmp/doc_repository", From 53c78d3118feb0d1d516bcbe1a57883bda8bed2b Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Thu, 19 Jun 2025 16:43:06 +0200 Subject: [PATCH 12/14] Update devcontainer.json Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- .devcontainer/devcontainer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 3c1596db1c9..f8f35c4f99d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,6 +5,7 @@ }, "workspaceMount": "source=${localWorkspaceFolder},target=/tmp/doc_repository,type=bind", "workspaceFolder": "/tmp/doc_repository", + "postCreateCommand": "pip3 install --no-warn-script-location --user -r requirements.txt -c constraints.txt", "features": { "ghcr.io/devcontainers/features/git:1": {} }, From 3bf10dafc61b66d09972cc95276a5c7a8d8b9a47 Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Sat, 21 Jun 2025 11:55:51 +0200 Subject: [PATCH 13/14] Update Dockerfile Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- docker/image/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/image/Dockerfile b/docker/image/Dockerfile index 480a92652e6..e1a0d18e6b2 100644 --- a/docker/image/Dockerfile +++ b/docker/image/Dockerfile @@ -33,7 +33,7 @@ ENV HOME=/home/$user ENV PATH=/home/$user/.local/bin:$PATH WORKDIR /tmp/doc_repository - +CMD ["bash", "-c", "source /opt/ros2doc/bin/activate && make multiversion"] RUN python3 -m venv /opt/ros2doc COPY requirements.txt constraints.txt . RUN . /opt/ros2doc/bin/activate && pip3 install -r requirements.txt -c constraints.txt From 321a3335be63c8c4c36a9f16e48137962f196043 Mon Sep 17 00:00:00 2001 From: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> Date: Sat, 21 Jun 2025 11:57:18 +0200 Subject: [PATCH 14/14] Update Dockerfile Signed-off-by: Nils-Christian Iseke <48475933+Nils-ChristianIseke@users.noreply.github.com> --- docker/image/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/image/Dockerfile b/docker/image/Dockerfile index e1a0d18e6b2..328f4366a22 100644 --- a/docker/image/Dockerfile +++ b/docker/image/Dockerfile @@ -38,5 +38,4 @@ RUN python3 -m venv /opt/ros2doc COPY requirements.txt constraints.txt . RUN . /opt/ros2doc/bin/activate && pip3 install -r requirements.txt -c constraints.txt -RUN echo "source /opt/ros2doc/bin/activate" >> /home/$user/.bashrc USER $user