Skip to content

quarto-ghp: execnb 0.2 breaks nbdev<3 — ModuleNotFoundError: No module named 'execnb.nbio' #77

@caseytomlin

Description

@caseytomlin

Problem

quarto-ghp@master currently fails with:

ModuleNotFoundError: No module named 'execnb.nbio'

Root cause: The action runs pip install -Uq "nbdev<3", which pulls in the latest execnb (currently 0.2.1). execnb 0.2.0 removed the execnb.nbio submodule, but nbdev 2.x still imports it in nbdev/config.py:

from execnb.nbio import read_nb, NbCell

Affected: Any project using answerdotai/workflows/quarto-ghp@master as of execnb 0.2.0 release.

Reproduction

steps: [uses: answerdotai/workflows/quarto-ghp@master]

Output:

File ".../nbdev/config.py", line 20, in <module>
    from execnb.nbio import read_nb,NbCell
ModuleNotFoundError: No module named 'execnb.nbio'

Fix

Either:

  1. Pin execnb<0.2 in the action's install step alongside nbdev<3
  2. Migrate quarto-ghp to use nbdev>=3 (which uses the new execnb API)

Workaround

Projects can work around this today by setting PIP_CONSTRAINT at the job level to a constraints.txt that contains execnb<0.2:

jobs:
  gh_pages:
    env:
      PIP_CONSTRAINT: constraints.txt  # contains: execnb<0.2
    steps: [uses: answerdotai/workflows/quarto-ghp@master]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions