This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new eba1d9561b9 ci: Build the documentation from its lock file.
eba1d9561b9 is described below

commit eba1d9561b98025e90326f99a0441becd4919127
Author: Marco Casaroli <[email protected]>
AuthorDate: Tue Aug 4 14:30:27 2026 +0200

    ci: Build the documentation from its lock file.
    
    The documentation job installs with `pipenv install`, which does not honour
    the committed Pipfile.lock.  Every run in the logs prints "Locking
    dependencies..." and "Updated Pipfile.lock" and then installs from the set 
it
    has just re-resolved, so each build takes whatever PyPI resolves that day
    rather than what the lock file names.
    
    On the evening of 2026-08-03 that resolution produced a virtualenv without
    packaging, and four unrelated pull requests failed identically, before 
Sphinx
    had read a single file:
    
      File ".../sphinx/extension.py", line 7, in <module>
          from packaging.version import InvalidVersion, Version
      ModuleNotFoundError: No module named 'packaging'
    
    `pipenv sync` installs exactly what Pipfile.lock names and never 
re-resolves,
    which is what the lock file is for.  The committed lock covers all fourteen
    packages the Pipfile asks for, packaging included, so it is complete enough 
to
    install from as it stands.
    
    The workflow also ran only for changes under Documentation/, so a change to 
the
    documentation build was never exercised by the build it changed.  It now
    triggers on its own path as well, which is what tests this commit.
    
    Assisted-by: Claude Opus 5 (1M context) <[email protected]>
    Signed-off-by: Marco Casaroli <[email protected]>
---
 .github/workflows/doc.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml
index 5aaaba55dae..274a6ee40cc 100644
--- a/.github/workflows/doc.yml
+++ b/.github/workflows/doc.yml
@@ -19,10 +19,12 @@ on:
       - master
     paths:
       - 'Documentation/**'
+      - '.github/workflows/doc.yml'
 
   pull_request:
     paths:
       - 'Documentation/**'
+      - '.github/workflows/doc.yml'
 
 concurrency:
   group: docs-${{ github.event.pull_request.number || github.ref }}
@@ -45,7 +47,7 @@ jobs:
           sudo apt update
           sudo apt install plantuml
           pip3 install pipenv
-          pipenv install
+          pipenv sync
           pipenv run make html
       - uses: actions/[email protected]
         with:

Reply via email to