Skip to content

Fix validate CI: correct import path + install openhcs dependencies - #1352

Open
trissim wants to merge 2 commits into
mainfrom
openhcs-fix-validate-2
Open

trissim wants to merge 2 commits into
mainfrom
openhcs-fix-validate-2

Conversation

@trissim

@trissim trissim commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

What

Two fixes for the validate CI job:

  1. source_schema.py: imported FilenameParseResult from interfaces.py where it doesn't exist — real declaration is in parser_metaprogramming.py. Another wrong import path hidden by the cascade of cycle crashes.

  2. website-pages.yml: added pip install -e . after the local submodule installs. The validate job imports the entire openhcs runtime through gallery_catalog.py → ExecutionConnectionSpec, but only installed 4 local packages (metaclass-registry, polystore, python-introspect, zmqruntime). This crashed with ModuleNotFoundError: No module named 'pandas' because openhcs declares pandas/numba/scipy in pyproject.toml but nobody installed openhcs itself.

Handoff notes for whoever takes over

This PR is the tail end of a long cascade of hidden bugs unmasked by the import cycle fixes in PRs #1348–#1351 (all merged to main). Here's the state of play:

Done (on main)

This PR

  • Commit 1: fix FilenameParseResult import path
  • Commit 2: add pip install -e . to the validate workflow

What might still break after this lands

The pip install -e . should fix the missing-dependency errors (pandas, numba, scipy — all declared in pyproject.toml). But once those imports succeed, gallery_catalog.py will exercise deeper parts of the runtime. The pattern so far has been: every cycle fix reveals the next crash deeper in the import chain. If that happens:

  1. Check the CI error — it'll be an ImportError or NameError
  2. Trace the import chain
  3. Push the import to a late (function-level) import, or fix the wrong import path
  4. Push and wait for CI again

Structural debt remaining

  • 32 import cycles remain in the authoring.session.* cluster — outside the validate chain, but structural debt
  • scratchpad/ has useful tools: find_cycles.py (AST-based cycle scanner), fix_slots.py (automated slots=True remover), arraypipe-extraction-plan.md, arraypipe-modules.md

The validate CI error before this fix

ImportError: cannot import name 'update_metadata_for_zarr_conversion' from 'openhcs.core.steps.function_io'

That error was from the previous run before the pip install -e . fix. The root cause was that without openhcs installed, Python couldn't resolve the full dependency tree, so imports failed at arbitrary points.


🤖 Generated with Claude Code

https://claude.ai/code/session_01RnH6dSF2WY8h81JeVyNYgb

source_schema.py imported it from interfaces.py where it doesn't exist.
The real declaration is in parser_metaprogramming.py.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnH6dSF2WY8h81JeVyNYgb
Copilot AI balanced review requested due to automatic review settings November 12, 2026 15:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

The validate job imports the entire openhcs runtime through
gallery_catalog.py → ExecutionConnectionSpec, but only installed
4 local submodule packages (metaclass-registry, polystore,
python-introspect, zmqruntime). This crashed with
ModuleNotFoundError: No module named 'pandas' because openhcs
declares pandas, numba, scipy etc. in pyproject.toml but nobody
ran pip install on openhcs itself.

Add `pip install -e .` after the local package installs so the
full dependency tree is available.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnH6dSF2WY8h81JeVyNYgb
@trissim trissim changed the title Fix validate: import FilenameParseResult from correct module Fix validate CI: correct import path + install openhcs dependencies Nov 12, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants