Skip to content

0.4.0: the ScanImage JSON connector moves to the private 2P rig repo (draft, after #3) - #4

Merged
mbreiser merged 1 commit into
mainfrom
chore/remove-scanimage-0.4.0
Oct 29, 2026
Merged

mbreiser merged 1 commit into
mainfrom
chore/remove-scanimage-0.4.0

Conversation

@hanmarsan

@hanmarsan hanmarsan commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Draft. For package set 0.4.0. Retargeted to main on 2026-10-28, after #3 (release 0.3.0) merged as f6fdd67. The diff is this one commit (06607ef), which merges cleanly. It can merge to main and be tagged 0.4.0 whenever convenient: rigs install tagged channels, never main, and webDisplayTools pins 0.3.0 explicitly, so no rig sees 0.4.0 until a webDisplayTools release re-pins it.

Why

Michael decided on 2026-10-28 that the imaging (2P / ScanImage) work stays out of the public repositories. It now lives in the private rig repository, reiserlab/scanimage-2026-bergamo under 2p-rig-nodes/. That is a pixi workspace laid out like this repo, and it installs the rig_nodes package. The ScanImage JSON-server connector moves there. Its copy carries the --frame-counter (getAcqStatus) edits from webDisplayTools #261.

The boundary Michael confirmed:

  • The generic connector mechanism stays public. Here that is the /<src>/cmd|reply|status contract, ConnectorReply and the closed outcome vocabulary.
  • Only the device-specific node, its stand-in and its tests are private.

What changes

  • Removed:
    • rig_nodes/scanimage_node.py, scanimage_cmd.py, sims/si_json_mock.py
    • the console scripts rig-scanimage-node, rig-scanimage-cmd, rig-si-mock, and the scanimage-node, scanimage-cmd, si-mock tasks
    • the ScanImage group in tests/test_device_nodes.py (judge_scanimage, the /scanimage/* subscriptions)
  • CONTRACT.md:
    • §2 and §4 lose the ScanImage <src>, command vocabulary and status fields. §2 gains one sentence: device nodes kept outside this repo follow the same rules under their own <src>.
    • The version line now reads 0.4.0 (unreleased), per rule 8.
    • It is a contract change, hence 0.4.0. The version bump and channel payload are left to the release commit.
  • SETUP.md: the ScanImage port 5555 is no longer listed. The Bergamo PC row and its per-host notes are replaced by one pointer to 2p-rig-nodes/SETUP.md in the private repo.
  • README.md, the package __init__, sims/__init__: the listings no longer mention ScanImage.

Consumers

webDisplayTools rig/ uses rig_nodes.scanimage_node and rig_nodes.sims.si_json_mock through rig.py --scanimage / --si-mock and its harness. The coupling rule: the webDisplayTools PR that re-pins rig/ to 0.4.0 must be the SAME PR that drops --scanimage / --si-mock (and the harness's ScanImage path). A workspace that pins a channel without scanimage_node while still offering the flag is the one inconsistent state. Until then it stays on 0.3.0, which still has them.

Tests

  • I did not run them here (no rig-nodes environment on the Bergamo PC). CI's package-set workflow runs test_pure.py and test_device_nodes.py on the three platforms.
  • test_device_nodes.py still parses, and its remaining groups (FicTrac, Kinefly, BIAS, recorder) are unchanged.
  • The private copy's checks (the same nine, plus the frame counter): 2p-rig-nodes/tests/test_scanimage_node.py, 11/11 on the Bergamo PC, 2026-10-28.

Note on history

The ScanImage node stays readable in this repo's history (v0.2.1, v0.3.0). The frames and SiPM ports that were briefly on release/0.3.0 (39ec007, removed again in e363853) do too. History was not rewritten, by choice.

🤖 Generated with Claude Code

The imaging (2P / ScanImage) work is now kept in reiserlab/scanimage-2026-bergamo
`2p-rig-nodes/` (Michael's decision, 2026-10-28). Removed here: scanimage_node,
scanimage_cmd, sims/si_json_mock, their console scripts (rig-scanimage-node,
rig-scanimage-cmd, rig-si-mock) and pixi tasks, the ScanImage group of
test_device_nodes.py, the ScanImage command/status vocabulary in CONTRACT.md §2/§4,
port 5555 and the Bergamo PC host notes in SETUP.md (one pointer line kept).

Kept: the generic /<src>/cmd|reply|status contract, ConnectorReply and the outcome
vocabulary. A contract change, so package set 0.4.0 (CONTRACT version line says
unreleased; the version bump and channel payload belong to the release commit).
Stacked on release/0.3.0 (#3).

The private copy carries #261's --frame-counter (getAcqStatus) edits and the same
checks (plus the frame counter) as 2p-rig-nodes/tests/test_scanimage_node.py,
11/11 on the Bergamo PC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hanmarsan
hanmarsan changed the base branch from release/0.3.0 to main October 28, 2026 22:21
@mbreiser
mbreiser marked this pull request as ready for review October 29, 2026 01:12
@mbreiser
mbreiser merged commit fa83d39 into main Oct 29, 2026
7 checks passed
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.

2 participants