Skip to content

Prepare OpenHCS for image.sc announcement - #99

Draft
trissim wants to merge 6 commits into
mainfrom
agent/image-sc-launch-readiness
Draft

Prepare OpenHCS for image.sc announcement#99
trissim wants to merge 6 commits into
mainfrom
agent/image-sc-launch-readiness

Conversation

@trissim

@trissim trissim commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

Outcome

Prepare the project-facing surfaces for an image.sc beta announcement without freezing or cutting a release.

What changed

  • replace the stale 0.6 announcement with a release-neutral, compile-first image.sc draft and readiness checklist
  • make local MCP adoption concrete in the README and landing page with bounded inspect/compile and one-well execution prompts
  • restore changelog coverage through v0.7.11
  • add contribution, conduct, security, citation, issue, and pull-request guidance
  • add exact regressions for stale pipeline paths (Trying to add new pipeline after moving old one fails #70), default rerun overwrite (FileExistsError on re-run — memory backend refuses to overwrite existing results #72), and saved function-pattern synchronization (Saving code in function pattern editor does not update steps #73)
  • advance PyQT-reactive to the declaration-owner fix merged on its canonical main for the remaining PyQt6 Qt.DisplayRole crash path (Error on windows install of openhcs #61)
  • remove the superseded BBBC021/BBBC038 microscope handlers and dropdown choices; declared source bindings now own those dataset imports while benchmark IDs remain provenance
  • make runtime-equivalence registration independent of incidental import order
  • rename Napari component placement from slice to layer, so Napari now exposes layer/stack while Fiji retains its genuine Z-slice mode
  • make desktop installer source tests build a metadata-discovered wheelhouse for OpenHCS and its checked-out first-party dependencies, while preserving the separate PyPI mode

The terminology change is owned by the shared viewer protocol rather than mirrored locally:

  • ZMQRuntime #2 is merged and declares distinct LAYER and SLICE modes
  • PolyStore #5 consumes LAYER for Napari routing and remains draft until a ZMQRuntime package containing that declaration is published
  • OpenHCS consumes the same declaration and keeps all genuine array/Fiji slice terminology unchanged

Verification

QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests/unit/test_build_website.py tests/unit/test_path_cache.py tests/unit/test_file_materialization_options.py tests/unit/pyqt_gui/test_dual_editor_session.py -q
28 passed

QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests/unit/test_microscope_handler_identity.py tests/unit/test_source_binding_workspace.py -q
37 passed

QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests/integration/test_cellprofiler_generated_pipeline.py::test_bbbc021_cppipe_executes_named_channel_bindings_through_zmq tests/integration/test_cellprofiler_generated_pipeline.py::test_bbbc021_canonical_illum_cppipe_materializes_declared_images_through_zmq -q
2 passed

.venv/bin/python -m pytest tests/unit/test_dataset_registry.py tests/unit/test_runner_cellprofiler_compatibility.py tests/integration/test_benchmark_openhcs_adapter_cppipe.py -q
15 passed

QT_QPA_PLATFORM=offscreen .venv/bin/python -m pytest tests/unit/test_streaming_service.py tests/unit/test_napari_streaming_handlers.py::test_napari_layer_title_authority_uses_stream_display_name_policy tests/unit/test_napari_streaming_handlers.py::test_napari_component_display_coordinator_splits_declared_image_layouts -q
18 passed

# ZMQRuntime
PYTHONPATH=src ../../.venv/bin/python -m pytest tests/test_viewer_protocol.py -q
4 passed

# PolyStore against the source ZMQRuntime declaration
PYTHONPATH=src:../zmqruntime/src ../../.venv/bin/python -m pytest tests/test_streaming_receiver_core.py -q
13 passed

PYTHONPATH=src:../ObjectState/src:../python-introspect/src QT_QPA_PLATFORM=offscreen ../../.venv/bin/python -m pytest tests/test_log_viewer_lifecycle.py -q
5 passed

XDG_CACHE_HOME=/tmp/openhcs-test-cache .venv/bin/python -m openhcs.mcp.dev_client --timeout-seconds 30 health
status: ok, errors: []

The current checkout imports openhcs.gui_startup and pyqt_reactive.process_launch successfully, with source and installed distribution versions both reporting 0.7.11.

In integration run 30712718093, both Windows and macOS desktop-installer-source-test jobs pass with candidate dependency wheels. The Windows job completes the two-pass install/update and real viewer smoke that previously failed against released ZMQRuntime 0.1.21.

Release boundary

No dependency package or OpenHCS release is created by this PR. The future publication order is:

  1. publish ZMQRuntime with ViewerComponentMode.LAYER
  2. publish PolyStore with Napari layer routing
  3. update OpenHCS production dependency floors and cut the later OpenHCS release

The PyQT-reactive source-clone fix is also merged, but its production dependency floor should be updated only after the corresponding PyQT-reactive package is published. This PR stays draft until those dependency artifacts exist and the package-level CI path can be green.

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.

1 participant