Skip to content

[pull] master from OpenMDAO:master#243

Merged
pull[bot] merged 23 commits into
MRE-Code-Hub:masterfrom
OpenMDAO:master
Jun 17, 2026
Merged

[pull] master from OpenMDAO:master#243
pull[bot] merged 23 commits into
MRE-Code-Hub:masterfrom
OpenMDAO:master

Conversation

@pull

@pull pull Bot commented Jun 17, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

robfalck added 23 commits June 11, 2026 08:09
… script consolidation

  Replace the jupyter-book + ipyparallel doc build stack with papermill +
  sphinx/myst-nb. ipyparallel 9.1.0 (conda-forge) broke MPI engine startup;
  rather than pin back, the entire execution layer has been replaced.

  build_docs.py (new)
    - Single Python entry point replacing build_docs.sh + ipcluster_start.sh.
    - Subcommands: `build` (default) and `clean`.
    - Flags: --no-exec, --no-serial, --no-mpi, --fast, --workers N.
    - Skips Sphinx build automatically when --no-serial or --no-mpi is used,
      allowing partial notebook subsets to be tested independently.

  execute_notebooks.py
    - Rewrote execution loop: serial (non-MPI) notebooks run in a
      multiprocessing Pool; MPI notebooks run serially one at a time.
    - MPI routing is driven solely by `"mpi": true` in notebook top-level
      metadata; no source inspection needed.
    - Added --no-serial and --no-mpi flags so either subset can be skipped.
    - All failures are collected and reported at the end rather than
      fail-fast.
    - Added optional rich progress bar when the `rich` package is available.

  build_source_docs.py
    - Removed shutil.rmtree that wiped _srcdocs/ on every run, causing all
      215 source-doc notebooks to receive new timestamps and be re-executed
      unnecessarily.
    - Added _write_if_changed() helper: notebooks are only written when
      content differs, preserving timestamps so execute_notebooks.py's
      skip-if-up-to-date logic works correctly for the srcdocs tree.
  openmdao/utils/notebook_utils.py:
  - Add mpi_exec(nprocs, script): displays an HTML MPI/Colab/Binder note,
    echoes the command, captures stdout, and raises RuntimeError on failure.
    Uses HTML output to avoid Sphinx treating the note as a fenced code block
    with language '{note}'.

  12 MPI notebooks refactored (all under openmdao/docs/openmdao_book/):
  - Delete standalone markdown MPI warning cells (now emitted by mpi_exec).
  - Replace 6-line boilerplate subprocess.run blocks with:
      from openmdao.utils.notebook_utils import mpi_exec
      mpi_exec(4, 'mpi_script_N.py')

  openmdao/devtools/build_docs.py (moved from openmdao/docs/build_docs.py):
  - HERE now resolves docs dir relative to the devtools package location so
    the script works from any working directory.
  - Invoked as: python -m openmdao.devtools.build_docs build [flags]

  .github/actions/build_docs/action.yml:
  - Drop 'cd openmdao/docs'; use python -m openmdao.devtools.build_docs.

  pixi.toml:
  - Remove [feature.docs.tasks.docs] pixi task; use the devtools module directly.

  developer_docs/doc_build.ipynb:
  - Replace obsolete ipyparallel/ipcluster instructions with current
    papermill+Sphinx pipeline, full flag reference, and incremental build tips.

  developer_docs/doc_style_guide.ipynb:
  - Add "Notebook Metadata Reference" section documenting all cell-level tags
    (remove-input, remove-output, remove-cell, hide-input, hide-output,
    active-ipynb, allow-assert, output_scroll) and notebook-level metadata
    keys (mpi, reports, orphan).
  - Update MPI section to mention setting "mpi": true in notebook metadata.
  - Replace "Building the Documentation" content with a pointer to doc_build.ipynb.
…git and ruff

  Added standard notebook header cell (notebook_mode import) to auto_ivc_api_translation.ipynb
  and 11 MPI feature notebooks that were missing it. These notebooks had a markdown title as
  the first cell; the header is now inserted at cell 0 per the test_header requirement.
  Also added openmdao/docs/_executed_book/ to .gitignore and ruff exclude.
@pull pull Bot locked and limited conversation to collaborators Jun 17, 2026
@pull pull Bot added the ⤵️ pull label Jun 17, 2026
@pull pull Bot merged commit 422e7eb into MRE-Code-Hub:master Jun 17, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Development

Successfully merging this pull request may close these issues.

1 participant