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: