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..622303411ac 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' - 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' - 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' - 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' - name: Setup Graphviz uses: ts-graphviz/setup-graphviz@v2 diff --git a/README.md b/README.md index 3dffb339573..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 Jammy (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. 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..328f4366a22 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,9 @@ ENV HOME=/home/$user ENV PATH=/home/$user/.local/bin:$PATH WORKDIR /tmp/doc_repository -USER $user +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 -CMD ["bash", "-c", "pip3 install --no-warn-script-location --user -r requirements.txt -c constraints.txt && make multiversion"] +USER $user diff --git a/requirements.txt b/requirements.txt index f9e4d129f85..f952c4882fb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,5 +9,6 @@ sphinx-lint sphinx-multiversion sphinx-rtd-theme sphinx-tabs -sphinxcontrib-mermaid sphinx-tamer +sphinxcontrib-googleanalytics +sphinxcontrib-mermaid