CI: Linux workflows run version scripts before installing Python deps (jinja2)

Author: MGPOCKYCreated Aug 3, 2026Updated Aug 3, 2026

Summary

Several Linux CI workflows run Python scripts that import third-party packages before any pip/pip3 install step in the same job. macOS/Windows workflows already install these packages first.

In particular, tools/version/update_version_in_ten_framework.py imports tools/version/common.py, which does from jinja2 import Template. On a clean runner this can fail with ModuleNotFoundError: No module named 'jinja2'.

Affected workflows (on main)

Workflow Job Step that runs too early
.github/workflows/linux_ubuntu2204.yml build Update versionpython3 tools/version/update_version_in_ten_framework.py
.github/workflows/linux_arm64.yml build same
.github/workflows/linux_ubuntu2204.yml test-integration-* Install Python dependencies via scriptpython .github/tools/setup_pytest_dependencies.py (no prior workflow-level pip3 install, unlike mac/win)
.github/workflows/coverage.yml test-integration-* same

Current (linux_ubuntu2204.yml / build)

yaml
- uses: actions/setup-node@v4
  with:
    node-version: 20

- name: Update version
  run: |
    python3 tools/version/update_version_in_ten_framework.py
    python3 tools/version/check_version_in_ten_framework.py

Already correct pattern (mac_x64.yml / build)

yaml
- name: Install tools and dependencies
  run: |
    # ...
    pip3 install --use-pep517 python-dotenv jinja2 requests
    # ...

- name: Update version
  run: |
    python3 tools/version/update_version_in_ten_framework.py
    python3 tools/version/check_version_in_ten_framework.py

Suggested fix

Align Linux (and the coverage integration jobs, for consistency) with the mac/win order: install at least jinja2 (and the other packages those jobs already use, e.g. python-dotenv, requests) via pip3 install before running the version / Python helper scripts.

Example for the Linux build jobs:

yaml
- name: Install Python dependencies
  run: pip3 install --use-pep517 python-dotenv jinja2 requests

- name: Update version
  run: |
    python3 tools/version/update_version_in_ten_framework.py
    python3 tools/version/check_version_in_ten_framework.py

Test plan

  • Add the missing pip3 install step(s) before Python scripts in the Linux/coverage jobs above
  • Re-run linux_ubuntu2204 / linux_arm64 (or the relevant matrix) and confirm Update version succeeds without ModuleNotFoundError: jinja2

Source: TEN-framework/ten-framework