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/.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..92a763623d3 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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 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. 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/constraints.txt b/constraints.txt index f904f5c8627..1e3e88b3c80 100644 --- a/constraints.txt +++ b/constraints.txt @@ -1,36 +1,49 @@ -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-googleanalytics==0.4 +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 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 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