From 1e3b6e58149c6fc730f87ae1d70c31420c3d6534 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 04:50:47 +0000 Subject: [PATCH 1/3] Docs: easy install and testing links in the host README and user guide, true to the code and release workflow Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN --- README.md | 9 ++++++--- docs/user-guide.md | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8a43e41..29ba3b9 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,19 @@ # LabConstrictor-QuPath (prototype) -Runs the tools of every installed LabConstrictor app (NucleiSky, CellTracksColab, ...) from **Extensions > LabConstrictor tools...** in +Runs the tools of every installed LabConstrictor app that lists QuPath as a host (for example Playground, NucleiSky, Guess the Condition) from **Extensions > LabConstrictor tools...** in QuPath 0.7. The form is generated from the tool's declared schema ([LabConstrictor-Tools](https://github.com/CellMigrationLab/LabConstrictor-Tools), `docs/PROTOCOL.md`); the tool runs in the app's own Python environment through the LabConstrictor worker (JSON lines on stdin/stdout), so QuPath never imports the app's packages and needs no Python of its own. Same idea as the Napari and Fiji front-ends. ## Install -1. Install a LabConstrictor app (NucleiSky, CellTracksColab, ...): its installer registers the app and its tools (check with `labconstrictor-tools list`). +1. Install a LabConstrictor app (for example Playground, NucleiSky or Guess the Condition): its installer registers the app and its tools (check with `labconstrictor-tools list`). 2. Download `labconstrictor-qupath-.jar` from the [Releases page](https://github.com/CellMigrationLab/LabConstrictor-QuPath/releases), drag it onto the QuPath window (or copy it into the extensions folder shown in QuPath's Preferences) and restart QuPath. 3. Open **Extensions > LabConstrictor tools...** -For scripters, a second way that needs no jar: download `LabConstrictorTools-all.groovy` from the same release (the whole script in one file), open it in QuPath's Script Editor and run it. +For scripters, a second way that needs no jar: download the **single file** `LabConstrictorTools-all.groovy` from the same release (the whole script in one file), open it in QuPath's Script Editor and run it. This all-in-one file is what the Script Editor needs: the script in the repository is split into the part files listed in `parts.txt`, and those do not run on their own in the Script Editor (the jar joins them itself). + +Install page for the apps and all three hosts: [Tools `docs/INSTALL.md`](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/INSTALL.md) (in Tools PR #132; the link works once it is merged). Apps declare which hosts list them (`hosts:` in their `labconstrictor-app.yaml`); the rule that makes QuPath follow this declaration is being added in Tools 0.3.0a1. Intended for QuPath: Playground, NucleiSky and Guess the Condition. **VLab4Mic is not listed in QuPath** (it is for Napari and Fiji), and CellTracksColab is not listed in any host. Testing: the [human test protocol](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md) and its [record sheet](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md#0-record-sheet-the-test-set-fill-in-before-you-start). + Every release lists the QuPath version it was built against and the minimum Tools version in its notes; `SHA256SUMS` holds the checksums of the files. **QuPath versions and systems.** Built against QuPath **0.7.0**; QuPath 0.7 is built with Java 25 and the jar needs it, so older QuPath versions are not supported, and other 0.7.x versions are not tested. diff --git a/docs/user-guide.md b/docs/user-guide.md index 1e83354..a9b7ef9 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -10,7 +10,7 @@ The extension runs the tools of every installed LabConstrictor app from QuPath, ## What you need - [QuPath](https://qupath.github.io) 0.7. -- At least one LabConstrictor app installed on your computer. The app's installer registers it, which is how the extension finds it. +- At least one LabConstrictor app installed on your computer. The app's installer registers it, which is how the extension finds it. Apps declare which hosts list them (`hosts:` in their `labconstrictor-app.yaml`); the rule that makes QuPath follow this declaration is being added in Tools 0.3.0a1. Intended for QuPath: Playground, NucleiSky and Guess the Condition. **VLab4Mic is not listed in QuPath** (it is for Napari and Fiji), and CellTracksColab is not listed in any host. - Only to build the jar yourself: JDK 25 (QuPath 0.7 is built with Java 25), as described in the repository's README. ## Install @@ -18,7 +18,9 @@ The extension runs the tools of every installed LabConstrictor app from QuPath, 1. Download `labconstrictor-qupath-.jar` from the [Releases page](https://github.com/CellMigrationLab/LabConstrictor-QuPath/releases). 2. Drop the jar onto the QuPath window, or put it in the QuPath extensions folder (shown in QuPath's Preferences), and restart QuPath. -Without the jar: download `LabConstrictorTools-all.groovy` from the same release, open it in QuPath's Script Editor and run it. +Without the jar: download the **single file** `LabConstrictorTools-all.groovy` from the same release, open it in QuPath's Script Editor and run it. The Script Editor needs this all-in-one file; the script in the repository is split into part files that do not run on their own there. + +Full install page for the apps and all three hosts: [Tools `docs/INSTALL.md`](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/INSTALL.md) (in Tools PR #132; the link works once it is merged). To help test, follow the [human test protocol](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md) and fill in its [record sheet](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md#0-record-sheet-the-test-set-fill-in-before-you-start). ## Open it From 9305844829819e50d92b9f96d3e9de88eb8f02b5 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 05:50:28 +0000 Subject: [PATCH 2/3] README: say which apps are meant for QuPath Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29ba3b9..cca3623 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # LabConstrictor-QuPath (prototype) -Runs the tools of every installed LabConstrictor app that lists QuPath as a host (for example Playground, NucleiSky, Guess the Condition) from **Extensions > LabConstrictor tools...** in +Runs the tools of every installed LabConstrictor app (apps meant for QuPath: Playground, NucleiSky, Guess the Condition) from **Extensions > LabConstrictor tools...** in QuPath 0.7. The form is generated from the tool's declared schema ([LabConstrictor-Tools](https://github.com/CellMigrationLab/LabConstrictor-Tools), `docs/PROTOCOL.md`); the tool runs in the app's own Python environment through the LabConstrictor worker (JSON lines on stdin/stdout), so QuPath never imports the app's packages and needs no Python of its own. Same idea as the Napari and Fiji front-ends. From efe39d238d4145129e43e36e64e750060a91fd8c Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 06:40:40 +0000 Subject: [PATCH 3/3] Docs: Tools install and test links now resolve; state the hosts rule by what is merged Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01Y2SN8SuEakTdiWy3F2WUqN --- README.md | 2 +- docs/user-guide.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cca3623..4bdddb0 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ so QuPath never imports the app's packages and needs no Python of its own. Same For scripters, a second way that needs no jar: download the **single file** `LabConstrictorTools-all.groovy` from the same release (the whole script in one file), open it in QuPath's Script Editor and run it. This all-in-one file is what the Script Editor needs: the script in the repository is split into the part files listed in `parts.txt`, and those do not run on their own in the Script Editor (the jar joins them itself). -Install page for the apps and all three hosts: [Tools `docs/INSTALL.md`](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/INSTALL.md) (in Tools PR #132; the link works once it is merged). Apps declare which hosts list them (`hosts:` in their `labconstrictor-app.yaml`); the rule that makes QuPath follow this declaration is being added in Tools 0.3.0a1. Intended for QuPath: Playground, NucleiSky and Guess the Condition. **VLab4Mic is not listed in QuPath** (it is for Napari and Fiji), and CellTracksColab is not listed in any host. Testing: the [human test protocol](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md) and its [record sheet](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md#0-record-sheet-the-test-set-fill-in-before-you-start). +Install page for the apps and all three hosts: [Tools `docs/INSTALL.md`](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/INSTALL.md). Apps declare which hosts list them (`hosts:` in their `labconstrictor-app.yaml`); the rule is a binding rule in Tools 0.3.0a1 (feature `app_hosts_v1`; PROTOCOL.md section App hosts); Napari honours it (PR #61 merged); Fiji and QuPath honour it once their PRs (#47, #35) merge; installers pass the hosts from template 0.1.18 (template PR #33, not merged). Intended for QuPath: Playground, NucleiSky and Guess the Condition. **VLab4Mic is not listed in QuPath** (it is for Napari and Fiji), and CellTracksColab is not listed in any host. Testing: the [human test protocol](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md) and its [record sheet](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md#0-record-sheet-the-test-set-fill-in-before-you-start). Every release lists the QuPath version it was built against and the minimum Tools version in its notes; `SHA256SUMS` holds the checksums of the files. diff --git a/docs/user-guide.md b/docs/user-guide.md index a9b7ef9..8d39a8d 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -10,7 +10,7 @@ The extension runs the tools of every installed LabConstrictor app from QuPath, ## What you need - [QuPath](https://qupath.github.io) 0.7. -- At least one LabConstrictor app installed on your computer. The app's installer registers it, which is how the extension finds it. Apps declare which hosts list them (`hosts:` in their `labconstrictor-app.yaml`); the rule that makes QuPath follow this declaration is being added in Tools 0.3.0a1. Intended for QuPath: Playground, NucleiSky and Guess the Condition. **VLab4Mic is not listed in QuPath** (it is for Napari and Fiji), and CellTracksColab is not listed in any host. +- At least one LabConstrictor app installed on your computer. The app's installer registers it, which is how the extension finds it. Apps declare which hosts list them (`hosts:` in their `labconstrictor-app.yaml`); the rule is a binding rule in Tools 0.3.0a1 (feature `app_hosts_v1`; PROTOCOL.md section App hosts); Napari honours it (PR #61 merged); Fiji and QuPath honour it once their PRs (#47, #35) merge; installers pass the hosts from template 0.1.18 (template PR #33, not merged). Intended for QuPath: Playground, NucleiSky and Guess the Condition. **VLab4Mic is not listed in QuPath** (it is for Napari and Fiji), and CellTracksColab is not listed in any host. - Only to build the jar yourself: JDK 25 (QuPath 0.7 is built with Java 25), as described in the repository's README. ## Install @@ -20,7 +20,7 @@ The extension runs the tools of every installed LabConstrictor app from QuPath, Without the jar: download the **single file** `LabConstrictorTools-all.groovy` from the same release, open it in QuPath's Script Editor and run it. The Script Editor needs this all-in-one file; the script in the repository is split into part files that do not run on their own there. -Full install page for the apps and all three hosts: [Tools `docs/INSTALL.md`](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/INSTALL.md) (in Tools PR #132; the link works once it is merged). To help test, follow the [human test protocol](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md) and fill in its [record sheet](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md#0-record-sheet-the-test-set-fill-in-before-you-start). +Full install page for the apps and all three hosts: [Tools `docs/INSTALL.md`](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/INSTALL.md). To help test, follow the [human test protocol](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md) and fill in its [record sheet](https://github.com/CellMigrationLab/LabConstrictor-Tools/blob/main/docs/HUMAN_TEST_PROTOCOL.md#0-record-sheet-the-test-set-fill-in-before-you-start). ## Open it