From 743e0f4b4bcdfc6084fae8b37a8b327405c56e79 Mon Sep 17 00:00:00 2001 From: Beth Cimini Date: Tue, 23 Jul 2024 19:00:34 +0100 Subject: [PATCH 01/35] Bump centrosome --- setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index ea2665d3de..bf2d8e4da4 100644 --- a/setup.py +++ b/setup.py @@ -62,9 +62,9 @@ def package_data(): "test": ["pytest>=3.3.2,<4"], }, install_requires=[ - "boto3==1.14.23", - "cellprofiler-core", - "centrosome==1.2.2", + "boto3>=1.12.28", + "cellprofiler-core==4.2.6", + "centrosome==1.2.3", "docutils==0.15.2", "h5py==3.6.0", "imageio==2.34.0", From 84e6ad7c0632181b17f4eeeed4fe5b4af43f4b43 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Tue, 23 Jul 2024 23:31:53 +0100 Subject: [PATCH 02/35] Bump core --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index bf2d8e4da4..d56a5f5edb 100644 --- a/setup.py +++ b/setup.py @@ -63,7 +63,7 @@ def package_data(): }, install_requires=[ "boto3>=1.12.28", - "cellprofiler-core==4.2.6", + "cellprofiler-core==4.2.7", "centrosome==1.2.3", "docutils==0.15.2", "h5py==3.6.0", From 8d6ad4701abf6993bd5c20603b882121c6bb8606 Mon Sep 17 00:00:00 2001 From: bethac07 Date: Tue, 23 Jul 2024 11:43:31 -0400 Subject: [PATCH 03/35] Fix 3D display in MeasureImageOverlap --- cellprofiler/modules/measureimageoverlap.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cellprofiler/modules/measureimageoverlap.py b/cellprofiler/modules/measureimageoverlap.py index 72e4c41e23..7cf48128af 100644 --- a/cellprofiler/modules/measureimageoverlap.py +++ b/cellprofiler/modules/measureimageoverlap.py @@ -310,6 +310,9 @@ def run(self, workspace): # In volumetric case the 3D image stack gets converted to a long 2D image and gets analyzed if ground_truth_image.volumetric: + + orig_shape = ground_truth_pixels.shape + ground_truth_pixels = ground_truth_pixels.reshape( -1, ground_truth_pixels.shape[-1] ) @@ -451,6 +454,15 @@ def run(self, workspace): ) if self.show_window: + + workspace.display_data.dimensions = test_image.dimensions + + if ground_truth_image.volumetric: + true_positives = true_positives.reshape(orig_shape) + true_negatives = true_negatives.reshape(orig_shape) + false_positives = false_positives.reshape(orig_shape) + false_negatives = false_negatives.reshape(orig_shape) + workspace.display_data.true_positives = true_positives workspace.display_data.true_negatives = true_negatives @@ -741,7 +753,7 @@ def get_weights(self, i, j, labels_mask): def display(self, workspace, figure): """Display the image confusion matrix & statistics""" - figure.set_subplots((3, 2)) + figure.set_subplots((3, 2),dimensions=workspace.display_data.dimensions) for x, y, image, label in ( (0, 0, workspace.display_data.true_positives, "True positives"), From a700ec06a8f4a9b0191113386fc4d505395489eb Mon Sep 17 00:00:00 2001 From: bethac07 Date: Tue, 23 Jul 2024 15:33:46 -0400 Subject: [PATCH 04/35] fix measurment specification --- cellprofiler/modules/measureimageskeleton.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cellprofiler/modules/measureimageskeleton.py b/cellprofiler/modules/measureimageskeleton.py index 7290a06cb8..9e07e941a7 100644 --- a/cellprofiler/modules/measureimageskeleton.py +++ b/cellprofiler/modules/measureimageskeleton.py @@ -199,8 +199,8 @@ def get_measurements(self, pipeline, object_name, category): if object_name == "Image" and category == "Skeleton": return [ - "Skeleton_Branches_{}".format(name), - "Skeleton_Endpoints_{}".format(name), + "Branches", + "Endpoints" ] return [] From 0473eb335a29b443bc9de76c8a776b17ee7e879e Mon Sep 17 00:00:00 2001 From: bethac07 Date: Thu, 25 Jul 2024 14:02:25 -0400 Subject: [PATCH 05/35] fix bad tests --- tests/modules/test_measureimageskeleton.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/test_measureimageskeleton.py b/tests/modules/test_measureimageskeleton.py index 24f6ffaeca..e69865251a 100644 --- a/tests/modules/test_measureimageskeleton.py +++ b/tests/modules/test_measureimageskeleton.py @@ -87,7 +87,7 @@ def test_get_measurement_columns(module, pipeline): def test_get_measurements_image_skeleton(module, pipeline): module.skeleton_name.value = "example" - expected_measurements = ["Skeleton_Branches_example", "Skeleton_Endpoints_example"] + expected_measurements = ["Branches", "Endpoints"] measurements = module.get_measurements( pipeline, "Image", "Skeleton" @@ -127,7 +127,7 @@ def test_get_measurement_images(module, pipeline): pipeline, "Image", "Skeleton", - "Skeleton_Branches_example", + "Branches", ) assert images == expected_images From ce762ae262dfee5195543b2a76256fd933071ffd Mon Sep 17 00:00:00 2001 From: bethac07 Date: Tue, 23 Jul 2024 18:46:28 -0400 Subject: [PATCH 06/35] scale value --- cellprofiler/modules/measureimagequality.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellprofiler/modules/measureimagequality.py b/cellprofiler/modules/measureimagequality.py index b1192a56b7..44e695f25d 100644 --- a/cellprofiler/modules/measureimagequality.py +++ b/cellprofiler/modules/measureimagequality.py @@ -1036,7 +1036,7 @@ def get_measurement_scales( if image_names in self.images_to_process( image_group, None, pipeline ): - result += [scale_group.scale] + result += [scale_group.scale.value] return result if measurement.startswith(F_THRESHOLD): result = [] From aaa863da6b206f63ad13cc997114d329a73a596c Mon Sep 17 00:00:00 2001 From: bethac07 Date: Thu, 25 Jul 2024 08:22:05 -0400 Subject: [PATCH 07/35] remove tuple wrapping of labels --- cellprofiler/modules/classifyobjects.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellprofiler/modules/classifyobjects.py b/cellprofiler/modules/classifyobjects.py index 61028209b7..352bc2f78e 100644 --- a/cellprofiler/modules/classifyobjects.py +++ b/cellprofiler/modules/classifyobjects.py @@ -1080,7 +1080,7 @@ def run_two_measurements(self, workspace): if self.show_window: workspace.display_data.in_high_class = in_high_class - workspace.display_data.labels = (objects.segmented,) + workspace.display_data.labels = objects.segmented workspace.display_data.saved_values = saved_values def display_two_measurements(self, workspace, figure): From 2547a5e296691a371408a6a5a7ba0d0f9143cc69 Mon Sep 17 00:00:00 2001 From: Beth Cimini Date: Tue, 23 Jul 2024 19:07:13 -0400 Subject: [PATCH 08/35] Update runimagejmacro.py --- cellprofiler/modules/runimagejmacro.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellprofiler/modules/runimagejmacro.py b/cellprofiler/modules/runimagejmacro.py index 25e9f2d9ba..6ec2d519d0 100644 --- a/cellprofiler/modules/runimagejmacro.py +++ b/cellprofiler/modules/runimagejmacro.py @@ -292,7 +292,7 @@ def run(self, workspace): cmd += [self.stringify_metadata(tempdir)] - result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) + result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, errors='backslashreplace') for image_group in self.image_groups_out: if not os.path.exists(os.path.join(tempdir, image_group.input_filename.value)): # Cleanup the error logs for display, we want to remove less-useful lines to keep it succinct. From 4254cd898d0504bd9773a5f465dbcc2bddced167 Mon Sep 17 00:00:00 2001 From: bethac07 Date: Thu, 25 Jul 2024 10:45:40 -0400 Subject: [PATCH 09/35] tell workers to pull the dictionary from disk --- cellprofiler/modules/flagimage.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cellprofiler/modules/flagimage.py b/cellprofiler/modules/flagimage.py index 55200082ae..bb9979a714 100644 --- a/cellprofiler/modules/flagimage.py +++ b/cellprofiler/modules/flagimage.py @@ -716,6 +716,10 @@ def load_classifier(self, measurement_group): d[path_] = joblib.load(path_) return d[path_] + def get_dictionary_for_worker(self): + # Sklearn models can't be serialized, so workers will need to read them from disk. + return {} + def get_classifier(self, measurement_group): return self.load_classifier(measurement_group)[0] From a4f3aa63f086416a90b98e4cecdf6134c5eb159b Mon Sep 17 00:00:00 2001 From: bethac07 Date: Thu, 25 Jul 2024 11:48:46 -0400 Subject: [PATCH 10/35] check for case of mixed 0s and nans --- cellprofiler/modules/threshold.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cellprofiler/modules/threshold.py b/cellprofiler/modules/threshold.py index c9ed0b882d..c94ab8f62b 100644 --- a/cellprofiler/modules/threshold.py +++ b/cellprofiler/modules/threshold.py @@ -932,6 +932,10 @@ def get_local_threshold(self, image, mask, volumetric): elif numpy.all(image_data == image_data[0]): local_threshold = numpy.full_like(image_data, image_data[0]) + elif numpy.unique(numpy.where(numpy.isnan(image_data),0,image_data)).shape == (1,): + #test if all values are a mixture of 0 or nan + local_threshold = numpy.zeros_like(image_data) + elif self.threshold_operation == TM_LI: local_threshold = self._run_local_threshold( image_data, From 7563623749dfca1f791109d58eaa3099f0fd5bd3 Mon Sep 17 00:00:00 2001 From: Beth Cimini Date: Thu, 25 Jul 2024 16:56:38 -0400 Subject: [PATCH 11/35] Update threshold.py --- cellprofiler/modules/threshold.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cellprofiler/modules/threshold.py b/cellprofiler/modules/threshold.py index c94ab8f62b..edc8c52689 100644 --- a/cellprofiler/modules/threshold.py +++ b/cellprofiler/modules/threshold.py @@ -932,7 +932,7 @@ def get_local_threshold(self, image, mask, volumetric): elif numpy.all(image_data == image_data[0]): local_threshold = numpy.full_like(image_data, image_data[0]) - elif numpy.unique(numpy.where(numpy.isnan(image_data),0,image_data)).shape == (1,): + elif numpy.all((image_data == 0) | numpy.isnan(image_data)): #test if all values are a mixture of 0 or nan local_threshold = numpy.zeros_like(image_data) From 04c6d3902aeb6f9678ce2712c9fc78673606ac91 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Fri, 26 Jul 2024 16:38:18 +0100 Subject: [PATCH 12/35] Bump to 4.2.7 --- .github/workflows/release.yml | 8 ++++---- README.md | 4 ++-- cellprofiler/__init__.py | 2 +- docs/source/conf.py | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9083af8147..9a0c794794 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,7 @@ jobs: brew install mysql@8.0 brew link mysql@8.0 pip install mysqlclient==2.0.3 - pip install centrosome==1.2.2 --no-cache-dir --no-build-isolation + pip install centrosome==1.2.3 --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 @@ -85,7 +85,7 @@ jobs: run: | pyinstaller distribution/windows/cellprofiler.spec rm ./dist/CellProfiler/jvm.dll - iscc /dMyAppVersion="4.2.60001-ai" "distribution/windows/cellprofiler.iss" + iscc /dMyAppVersion="4.2.70001-ai" "distribution/windows/cellprofiler.iss" - if: startsWith(matrix.os, 'macos') name: MacOS pyinstaller build and package run: | @@ -101,13 +101,13 @@ jobs: uses: actions/upload-artifact@v4 name: MacOS dmg upload with: - name: CellProfiler-macOS-4.2.60001-ai.dmg + name: CellProfiler-macOS-4.2.70001-ai.dmg path: ./dist/*.dmg - if: startsWith(matrix.os, 'windows') uses: actions/upload-artifact@v4 name: Windows artifact upload with: - name: CellProfiler-Windows-4.2.60001-ai.exe + name: CellProfiler-Windows-4.2.70001-ai.exe path: ./distribution/windows/Output/*.exe upload: name: upload diff --git a/README.md b/README.md index 8816179945..28b6893b3a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![CellProfiler](cellprofiler/data/images/splash.png) -[![Version](https://img.shields.io/badge/version-4.2.6-green.svg)](https://cellprofiler.org/releases) -[![Docs](https://img.shields.io/badge/documentation-4.2.6-brightgreen.svg)](https://cellprofiler-manual.s3.amazonaws.com/CellProfiler-4.2.6/index.html) +[![Version](https://img.shields.io/badge/version-4.2.7-green.svg)](https://cellprofiler.org/releases) +[![Docs](https://img.shields.io/badge/documentation-4.2.7-brightgreen.svg)](https://cellprofiler-manual.s3.amazonaws.com/CellProfiler-4.2.7/index.html) [![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fcellprofiler.json&query=%24.topic_list.tags.0.topic_count&colorB=brightgreen&suffix=%20topics&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/cellprofiler) **CellProfiler** is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically. More information can be found in the [CellProfiler Wiki](https://github.com/CellProfiler/CellProfiler/wiki). diff --git a/cellprofiler/__init__.py b/cellprofiler/__init__.py index 34e8de27ad..cdbfe3c4a2 100644 --- a/cellprofiler/__init__.py +++ b/cellprofiler/__init__.py @@ -1,3 +1,3 @@ __test__ = False -__version__ = "4.2.60001" +__version__ = "4.2.70001" diff --git a/docs/source/conf.py b/docs/source/conf.py index 553d44f0e4..7b7ddb488d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -67,7 +67,7 @@ # The short X.Y version. version = "4.2" # The full version, including alpha/beta/rc tags. -release = "4.2.6" +release = "4.2.7" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 88614d9e5bfa8b5027bc6c8b8f1a9a888329eed8 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Mon, 29 Jul 2024 20:59:42 +0100 Subject: [PATCH 13/35] [CI fix] pin exact java version to match distribution --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9a0c794794..d65bdad548 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: name: Install Java with: distribution: "temurin" - java-version: "11" # The JDK version to make available on the path. + java-version: "11.0.20-8" # The JDK version to make available on the path. java-package: jdk architecture: x64 From c57cdfc14b8c0ec8890f62bc5f4e50453c563fa9 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Mon, 29 Jul 2024 21:05:42 +0100 Subject: [PATCH 14/35] [CI fix] Adjust macos version and fix java specifier --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d65bdad548..496e4fd0b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: name: Install Java with: distribution: "temurin" - java-version: "11.0.20-8" # The JDK version to make available on the path. + java-version: "11.0.20+8" # The JDK version to make available on the path. java-package: jdk architecture: x64 From 7d2831e90363be47e41a608d83a6d470b93f9645 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Mon, 29 Jul 2024 21:52:52 +0100 Subject: [PATCH 15/35] [CI fix] place working dir for distribution in correct step --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 496e4fd0b8..d2bd15cd1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,6 +56,8 @@ jobs: pip install --editable . --no-use-pep517 - env: JDK_HOME: ${{ env.JAVA_HOME }} + CPPFLAGS: -I/usr/local/opt/mysql@8.0/include + LDFLAGS: "-L/usr/local/opt/mysql@8.0/lib -L/usr/local/opt/openssl/lib" if: startsWith(matrix.os, 'windows') name: Windows dependency install run: | From 8509434e51efd11fe4a6afd8ee15e1c035133580 Mon Sep 17 00:00:00 2001 From: bethac07 Date: Mon, 5 Aug 2024 14:37:28 -0400 Subject: [PATCH 16/35] fix label assignment when different objects are neighbors --- cellprofiler/modules/measureobjectneighbors.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cellprofiler/modules/measureobjectneighbors.py b/cellprofiler/modules/measureobjectneighbors.py index 2f0fcfdee9..3b566fcbf4 100644 --- a/cellprofiler/modules/measureobjectneighbors.py +++ b/cellprofiler/modules/measureobjectneighbors.py @@ -323,9 +323,9 @@ def run(self, workspace): neighbor_has_pixels = has_pixels else: _, neighbor_numbers = neighbor_objects.relate_labels( - neighbor_labels, neighbor_objects.small_removed_segmented + neighbor_labels, neighbor_kept_labels ) - neighbor_has_pixels = numpy.bincount(neighbor_labels.ravel())[1:] > 0 + neighbor_has_pixels = numpy.bincount(neighbor_kept_labels.ravel())[1:] > 0 neighbor_count = numpy.zeros((nobjects,)) pixel_count = numpy.zeros((nobjects,)) first_object_number = numpy.zeros((nobjects,), int) @@ -703,6 +703,7 @@ def run(self, workspace): ) labels = kept_labels + neighbor_labels = neighbor_kept_labels neighbor_count_image = numpy.zeros(labels.shape, int) object_mask = objects.segmented != 0 From bd023262796b897812901d3ca2bb2675054bcba1 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Mon, 26 Aug 2024 23:34:41 +0100 Subject: [PATCH 17/35] Pin and bump versions --- .github/workflows/test.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000000..e69de29bb2 From b39416cc9d957f2953729c5835070ae68ac05892 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Mon, 26 Aug 2024 22:52:12 +0000 Subject: [PATCH 18/35] Move to non-broken pytest --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d56a5f5edb..80c218e582 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ def package_data(): extras_require={ "build": ["black", "pre-commit", "pyinstaller", "twine"], "docs": ["Sphinx>=3.1.1", "sphinx-rtd-theme>=0.5.0"], - "test": ["pytest>=3.3.2,<4"], + "test": ["pytest~=7.4.1"], }, install_requires=[ "boto3>=1.12.28", From 5fae3cda9cf5b57ff35e7078b90d762329a07dd6 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Fri, 13 Sep 2024 20:01:30 +0100 Subject: [PATCH 19/35] Bump to 4.2.8 --- .github/workflows/release.yml | 6 +++--- README.md | 4 ++-- cellprofiler/__init__.py | 2 +- docs/source/conf.py | 2 +- setup.py | 9 +++++---- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d2bd15cd1f..1f0975ab8e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,7 +87,7 @@ jobs: run: | pyinstaller distribution/windows/cellprofiler.spec rm ./dist/CellProfiler/jvm.dll - iscc /dMyAppVersion="4.2.70001-ai" "distribution/windows/cellprofiler.iss" + iscc /dMyAppVersion="4.2.80001-ai" "distribution/windows/cellprofiler.iss" - if: startsWith(matrix.os, 'macos') name: MacOS pyinstaller build and package run: | @@ -103,13 +103,13 @@ jobs: uses: actions/upload-artifact@v4 name: MacOS dmg upload with: - name: CellProfiler-macOS-4.2.70001-ai.dmg + name: CellProfiler-macOS-4.2.80001-ai.dmg path: ./dist/*.dmg - if: startsWith(matrix.os, 'windows') uses: actions/upload-artifact@v4 name: Windows artifact upload with: - name: CellProfiler-Windows-4.2.70001-ai.exe + name: CellProfiler-Windows-4.2.80001-ai.exe path: ./distribution/windows/Output/*.exe upload: name: upload diff --git a/README.md b/README.md index 28b6893b3a..87a4d4d57f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![CellProfiler](cellprofiler/data/images/splash.png) -[![Version](https://img.shields.io/badge/version-4.2.7-green.svg)](https://cellprofiler.org/releases) -[![Docs](https://img.shields.io/badge/documentation-4.2.7-brightgreen.svg)](https://cellprofiler-manual.s3.amazonaws.com/CellProfiler-4.2.7/index.html) +[![Version](https://img.shields.io/badge/version-4.2.8-green.svg)](https://cellprofiler.org/releases) +[![Docs](https://img.shields.io/badge/documentation-4.2.8-brightgreen.svg)](https://cellprofiler-manual.s3.amazonaws.com/CellProfiler-4.2.8/index.html) [![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fcellprofiler.json&query=%24.topic_list.tags.0.topic_count&colorB=brightgreen&suffix=%20topics&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/cellprofiler) **CellProfiler** is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically. More information can be found in the [CellProfiler Wiki](https://github.com/CellProfiler/CellProfiler/wiki). diff --git a/cellprofiler/__init__.py b/cellprofiler/__init__.py index cdbfe3c4a2..9b37a08b65 100644 --- a/cellprofiler/__init__.py +++ b/cellprofiler/__init__.py @@ -1,3 +1,3 @@ __test__ = False -__version__ = "4.2.70001" +__version__ = "4.2.80001" diff --git a/docs/source/conf.py b/docs/source/conf.py index 7b7ddb488d..6e06e661d9 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -67,7 +67,7 @@ # The short X.Y version. version = "4.2" # The full version, including alpha/beta/rc tags. -release = "4.2.7" +release = "4.2.8" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 80c218e582..80c047050f 100644 --- a/setup.py +++ b/setup.py @@ -51,19 +51,20 @@ def package_data(): "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Image Recognition", "Topic :: Scientific/Engineering", ], entry_points={"console_scripts": ["cellprofiler=cellprofiler.__main__:main"]}, extras_require={ - "build": ["black", "pre-commit", "pyinstaller", "twine"], + "build": ["pyinstaller", "twine"], "docs": ["Sphinx>=3.1.1", "sphinx-rtd-theme>=0.5.0"], "test": ["pytest~=7.4.1"], }, install_requires=[ "boto3>=1.12.28", - "cellprofiler-core==4.2.7", + "cellprofiler-core==4.2.8", "centrosome==1.2.3", "docutils==0.15.2", "h5py==3.6.0", @@ -88,8 +89,8 @@ def package_data(): "scikit-learn==0.24.1", "scipy==1.9.0", "six", - "tifffile==2023.2.3", - "wxPython==4.2.1", + "tifffile<2022.4.22", + "wxPython>=4.1.0,<5", ], license="BSD", name="CellProfiler", From 0d125062672a6eac0d7416ec7c1ff65e111e6fa8 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Tue, 17 Sep 2024 16:34:38 -0400 Subject: [PATCH 20/35] [build] Pin markupsafe for jinja --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 80c047050f..b681ed6b5e 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ def package_data(): entry_points={"console_scripts": ["cellprofiler=cellprofiler.__main__:main"]}, extras_require={ "build": ["pyinstaller", "twine"], - "docs": ["Sphinx>=3.1.1", "sphinx-rtd-theme>=0.5.0"], + "docs": ["Sphinx>=3.1.1", "sphinx-rtd-theme>=0.5.0", "markupsafe<2.0.1"], "test": ["pytest~=7.4.1"], }, install_requires=[ From 29fdc51b153beaed880772229dcfd1b3f112dd94 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Thu, 26 Sep 2024 14:33:52 -0400 Subject: [PATCH 21/35] [CI] allow manual trigger --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1f0975ab8e..913a4f5948 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -132,6 +132,7 @@ jobs: name: create-release on: + workflow_dispatch: push: branches: - compat-4-2-ai From 08d8ec77f0306c441ca149b17ef19b24b99ce2d7 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Thu, 26 Sep 2024 20:14:39 +0100 Subject: [PATCH 22/35] [CI] Switch to macos 13 homebrew no longer supports macos 12, and macsos 13 is still intel --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 913a4f5948..363155210a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ macos-12, windows-2019 ] + os: [ macos-13, windows-2019 ] python-version: [ "3.8" ] fail-fast: false steps: From e44f8e86c8bd43871a86d77a731f855c1db33378 Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Thu, 26 Sep 2024 15:51:45 -0400 Subject: [PATCH 23/35] Make pep 517 compat --- pyproject.toml | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2109152172..fed528d4a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,3 @@ -[tool.black] -exclude = ''' -( - /( - \.eggs - | \.git - | \.hg - | \.mypy_cache - | \.tox - | \.venv - | _build - | build - | dist - )/ -) -''' -target_version = ['py38'] +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" From 90e8f2ee2a0be0a195a8b0d17bcdec72c5b8d5fe Mon Sep 17 00:00:00 2001 From: Nodar Gogoberidze Date: Thu, 26 Sep 2024 19:14:02 -0400 Subject: [PATCH 24/35] Add tmate --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 363155210a..6c14b35fd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -132,7 +132,6 @@ jobs: name: create-release on: - workflow_dispatch: push: branches: - compat-4-2-ai From 893f9c2989a4b079f7de7e3c8b4728cbf76287b9 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 14:16:24 +0100 Subject: [PATCH 25/35] Test modified java deps --- .github/workflows/release.yml | 6 ++++-- .github/workflows/test.yml | 0 setup.py | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c14b35fd9..aea70f7709 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,8 @@ jobs: brew install mysql@8.0 brew link mysql@8.0 pip install mysqlclient==2.0.3 - pip install centrosome==1.2.3 --no-cache-dir --no-build-isolation + pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl + pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 @@ -63,7 +64,8 @@ jobs: run: | python -m pip install --upgrade pip setuptools wheel pip install mysqlclient==2.0.3 - pip install centrosome==1.2.2 --no-cache-dir --no-build-isolation + pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl + pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/setup.py b/setup.py index b681ed6b5e..5719307c7c 100644 --- a/setup.py +++ b/setup.py @@ -65,7 +65,7 @@ def package_data(): install_requires=[ "boto3>=1.12.28", "cellprofiler-core==4.2.8", - "centrosome==1.2.3", + "centrosome~=1.2.3", "docutils==0.15.2", "h5py==3.6.0", "imageio==2.34.0", @@ -80,7 +80,7 @@ def package_data(): "opencv-python-headless==4.5.3.56", "Pillow==8.3.2", "prokaryote==2.4.4", - "python-bioformats==4.0.7", + "python-bioformats~=4.1.10001", "python-javabridge==4.0.3", "pyzmq==22.3.0", "sentry-sdk==0.18.0", From 8fbd162ed634d73ccca29e79d3b0506bbbe8f6d0 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 14:23:50 +0100 Subject: [PATCH 26/35] Disabling PEP 517 no longer supported --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aea70f7709..71b990770c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,9 +52,9 @@ jobs: git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 - pip install --editable . --upgrade --no-use-pep517 + pip install --editable . --upgrade cd .. - pip install --editable . --no-use-pep517 + pip install --editable . - env: JDK_HOME: ${{ env.JAVA_HOME }} CPPFLAGS: -I/usr/local/opt/mysql@8.0/include @@ -69,9 +69,9 @@ jobs: git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 - pip install --editable . --upgrade --no-use-pep517 + pip install --editable . --upgrade cd .. - pip install --editable . --no-use-pep517 + pip install --editable . pip install wxpython==4.1.1 - name: Install plugins run: | From e7bd732798a677fdb64560f765e827fa0370e880 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 14:30:31 +0100 Subject: [PATCH 27/35] Do bf after core --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71b990770c..eddb457beb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,13 +47,13 @@ jobs: brew install mysql@8.0 brew link mysql@8.0 pip install mysqlclient==2.0.3 - pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 pip install --editable . --upgrade cd .. + pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl pip install --editable . - env: JDK_HOME: ${{ env.JAVA_HOME }} @@ -64,13 +64,13 @@ jobs: run: | python -m pip install --upgrade pip setuptools wheel pip install mysqlclient==2.0.3 - pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 pip install --editable . --upgrade cd .. + pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl pip install --editable . pip install wxpython==4.1.1 - name: Install plugins From f873b4aed988de95d9827a11d6010e132b9ce7bb Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 14:38:35 +0100 Subject: [PATCH 28/35] Override bf manually --- .github/workflows/release.yml | 4 ++-- setup.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eddb457beb..39bb75daba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,8 +53,8 @@ jobs: git checkout compat-4-2 pip install --editable . --upgrade cd .. - pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl pip install --editable . + pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl - env: JDK_HOME: ${{ env.JAVA_HOME }} CPPFLAGS: -I/usr/local/opt/mysql@8.0/include @@ -70,9 +70,9 @@ jobs: git checkout compat-4-2 pip install --editable . --upgrade cd .. - pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl pip install --editable . pip install wxpython==4.1.1 + pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl - name: Install plugins run: | pip install torch==2.2.1 diff --git a/setup.py b/setup.py index 5719307c7c..815b56eaed 100644 --- a/setup.py +++ b/setup.py @@ -80,7 +80,7 @@ def package_data(): "opencv-python-headless==4.5.3.56", "Pillow==8.3.2", "prokaryote==2.4.4", - "python-bioformats~=4.1.10001", + "python-bioformats~=4.1.0", "python-javabridge==4.0.3", "pyzmq==22.3.0", "sentry-sdk==0.18.0", From 3f5ad5f858bd59d3d8a9695733cb46e19917c012 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 14:49:38 +0100 Subject: [PATCH 29/35] Bump javabridge --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 815b56eaed..587f6b0b6e 100644 --- a/setup.py +++ b/setup.py @@ -81,7 +81,7 @@ def package_data(): "Pillow==8.3.2", "prokaryote==2.4.4", "python-bioformats~=4.1.0", - "python-javabridge==4.0.3", + "python-javabridge==4.0.4", "pyzmq==22.3.0", "sentry-sdk==0.18.0", "requests==2.22", From 3f2cf4a8ee88e4e383dd7ba6c1f6d5da56aa2829 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 15:04:19 +0100 Subject: [PATCH 30/35] Force prokaryote too --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 39bb75daba..a0e1f76866 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,13 +47,13 @@ jobs: brew install mysql@8.0 brew link mysql@8.0 pip install mysqlclient==2.0.3 - pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 pip install --editable . --upgrade cd .. pip install --editable . + pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl - env: JDK_HOME: ${{ env.JAVA_HOME }} @@ -64,7 +64,6 @@ jobs: run: | python -m pip install --upgrade pip setuptools wheel pip install mysqlclient==2.0.3 - pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation git clone https://github.com/glencoesoftware/core.git cd core git checkout compat-4-2 @@ -72,6 +71,7 @@ jobs: cd .. pip install --editable . pip install wxpython==4.1.1 + pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl - name: Install plugins run: | From b00b65aa62e65f5dff307ec25882a20edba5ea72 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 15:32:12 +0100 Subject: [PATCH 31/35] Force include core --- distribution/macos/CellProfiler.spec | 1 + distribution/windows/CellProfiler.spec | 1 + 2 files changed, 2 insertions(+) diff --git a/distribution/macos/CellProfiler.spec b/distribution/macos/CellProfiler.spec index 88e1baa59f..5e89810085 100644 --- a/distribution/macos/CellProfiler.spec +++ b/distribution/macos/CellProfiler.spec @@ -50,6 +50,7 @@ hiddenimports += PyInstaller.utils.hooks.collect_submodules("wx") hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler') hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler.gui') hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler.modules') +hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler_core') hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler_core.modules') hiddenimports += PyInstaller.utils.hooks.collect_submodules('skimage.io._plugins') hiddenimports += PyInstaller.utils.hooks.collect_submodules("skimage.feature") diff --git a/distribution/windows/CellProfiler.spec b/distribution/windows/CellProfiler.spec index 776d2848a6..5ca95965a3 100644 --- a/distribution/windows/CellProfiler.spec +++ b/distribution/windows/CellProfiler.spec @@ -27,6 +27,7 @@ hiddenimports = [] hiddenimports += PyInstaller.utils.hooks.collect_submodules('centrosome') hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler.modules') +hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler_core') hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler_core.modules') hiddenimports += PyInstaller.utils.hooks.collect_submodules('cellprofiler.utilities') hiddenimports += PyInstaller.utils.hooks.collect_submodules("scipy") From 66f13189774ebffd1aeeba1695cd345c8afa9928 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 15:36:14 +0100 Subject: [PATCH 32/35] Use tar for macos app --- .github/workflows/release.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a0e1f76866..d73710d986 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -95,18 +95,14 @@ jobs: run: | pyinstaller -y ./distribution/macos/CellProfiler.spec - if: startsWith(matrix.os, 'macos') - name: MacOS dmg package - continue-on-error: true - run: | - cd dist - echo Creating DMG - create-dmg 'CellProfiler+AI.app' --dmg-title "CellProfiler+AI.dmg" + name: MacOS tar package + run: tar -cvf dist/CellProfiler+AI.tar dist/CellProfiler+AI.app - if: startsWith(matrix.os, 'macos') uses: actions/upload-artifact@v4 - name: MacOS dmg upload + name: MacOS tar upload with: - name: CellProfiler-macOS-4.2.80001-ai.dmg - path: ./dist/*.dmg + name: CellProfiler-macOS-4.2.80001-ai.tar + path: ./dist/*.tar - if: startsWith(matrix.os, 'windows') uses: actions/upload-artifact@v4 name: Windows artifact upload From ec5046e2a93ce87624950fa9c534f2d0b63803a5 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 16:12:57 +0100 Subject: [PATCH 33/35] Use wheel for core --- .github/workflows/release.yml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d73710d986..7bb0880640 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,11 +47,7 @@ jobs: brew install mysql@8.0 brew link mysql@8.0 pip install mysqlclient==2.0.3 - git clone https://github.com/glencoesoftware/core.git - cd core - git checkout compat-4-2 - pip install --editable . --upgrade - cd .. + pip install https://github.com/glencoesoftware/core/releases/download/v4.2.80001/cellprofiler_core-4.2.8-py3-none-any.whl pip install --editable . pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl @@ -64,11 +60,7 @@ jobs: run: | python -m pip install --upgrade pip setuptools wheel pip install mysqlclient==2.0.3 - git clone https://github.com/glencoesoftware/core.git - cd core - git checkout compat-4-2 - pip install --editable . --upgrade - cd .. + pip install https://github.com/glencoesoftware/core/releases/download/v4.2.80001/cellprofiler_core-4.2.8-py3-none-any.whl pip install --editable . pip install wxpython==4.1.1 pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation @@ -96,7 +88,8 @@ jobs: pyinstaller -y ./distribution/macos/CellProfiler.spec - if: startsWith(matrix.os, 'macos') name: MacOS tar package - run: tar -cvf dist/CellProfiler+AI.tar dist/CellProfiler+AI.app + run: tar -cvf CellProfiler+AI.tar CellProfiler+AI.app + working-directory: ./dist - if: startsWith(matrix.os, 'macos') uses: actions/upload-artifact@v4 name: MacOS tar upload From 7dfbd1096207ee8260f02e089a1534d03450ac79 Mon Sep 17 00:00:00 2001 From: David Stirling Date: Mon, 21 Oct 2024 16:24:14 +0100 Subject: [PATCH 34/35] No editable installs --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7bb0880640..c3db1d9f15 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,7 +48,7 @@ jobs: brew link mysql@8.0 pip install mysqlclient==2.0.3 pip install https://github.com/glencoesoftware/core/releases/download/v4.2.80001/cellprofiler_core-4.2.8-py3-none-any.whl - pip install --editable . + pip install . pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl - env: @@ -61,7 +61,7 @@ jobs: python -m pip install --upgrade pip setuptools wheel pip install mysqlclient==2.0.3 pip install https://github.com/glencoesoftware/core/releases/download/v4.2.80001/cellprofiler_core-4.2.8-py3-none-any.whl - pip install --editable . + pip install . pip install wxpython==4.1.1 pip install https://github.com/DavidStirling/prokaryote/releases/download/v2.4.5/prokaryote-2.4.5.tar.gz --no-cache-dir --no-build-isolation pip install https://github.com/DavidStirling/python-bioformats/releases/download/v4.1.10001/python_bioformats-4.1.10001-py3-none-any.whl From 17781ed47b34b6199dfb755e5b60e8c19c3cefea Mon Sep 17 00:00:00 2001 From: David Stirling Date: Tue, 22 Oct 2024 10:34:27 +0100 Subject: [PATCH 35/35] Disable auto update checker and fix version processor --- cellprofiler/gui/checkupdate.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cellprofiler/gui/checkupdate.py b/cellprofiler/gui/checkupdate.py index fe5e027a25..ebf5c42df3 100644 --- a/cellprofiler/gui/checkupdate.py +++ b/cellprofiler/gui/checkupdate.py @@ -7,10 +7,10 @@ def check_update(parent, force=False): - if not force and not check_date(): + if not force: return try: - response = requests.get("https://api.github.com/repos/cellprofiler/cellprofiler/releases/latest", timeout=0.25) + response = requests.get("https://api.github.com/repos/glencoesoftware/cellprofiler/releases/latest", timeout=0.25) except: response = False message = "CellProfiler was unable to connect to GitHub to check for updates" @@ -19,6 +19,8 @@ def check_update(parent, force=False): response = response.json() if status == 200 and 'name' in response: latest_version = response['name'][1:] + if '-' in latest_version: + latest_version = latest_version.split('-')[0] if current_version < latest_version or len(current_version) != len(latest_version): body_text = response['body'] if len(body_text) > 1000: