Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build #124

Merged
merged 18 commits into from
Jul 22, 2024
Merged

Fix build #124

merged 18 commits into from
Jul 22, 2024

Conversation

gnodar01
Copy link
Contributor

gnodar01 added 3 commits July 11, 2024 16:55
- fix error with locating numpy include dir
- fix import_array errors
@gnodar01 gnodar01 marked this pull request as draft July 12, 2024 00:04
gnodar01 added 4 commits July 12, 2024 11:59
- dropped python 3.9 support [in version 0.23](scikit-image/scikit-image@4841d53)
- dropped python 3.8 support [in version 0.22](scikit-image/scikit-image@21cdcfe#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711)
- see [scientific python specs](https://scientific-python.org/specs/spec-0000/) for motivation/reasoning for these drops.
- matplotlib dropped python 3.8 [in version 3.8](matplotlib/matplotlib@e2a2a87)
- doesn't seem to be used anywhere
- was first introduced with the kirsch operator but doesn't seem like that
function relies on pillow
- pywavelets is a dependency of scikit-image, which:
    - dropped python 3.9 support in [version 1.6.0](PyWavelets/pywt@734ef4b)
    - dropped python 3.8 support in [version 1.5.0](PyWavelets/pywt@0a24ebc#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711)
- contourpy dropped python 3.8 support [in version 1.2.0](contourpy/contourpy@2b0a1a9)
@gnodar01
Copy link
Contributor Author

@bethac07 The >13K lines deleted is just from removing _propogate.c which is simply a build artifact generated from cython, and is now in .gitignore.

The import_array bug is weird to me. We had a bunch of cdef void import_array() where we defined the return type as void. The compiler complained that in fact int was returned. So I switched it to cdef int import_array(), and the compiler complained that in fact void was returned. So finally I just avoided defining the return type altogether and that seemed to work.

The main thing to pay attention to is the changes to setup.py. I added numpy as build dependency and get the include directory (where all of numpy's c files live). Before we were trying to dynamically find the path to that folder and it was failing for all sorts of reasons. I also placed upper pins on a bunch of libraries.

Eventually, as we will want to support python 3.10 and later in CP5, we will have to bump centrosome and have two branches, one specifically for the 4.2.x branch of CellProfiler, and the other for CP5+.

@gnodar01 gnodar01 marked this pull request as ready for review July 12, 2024 22:22
gnodar01 added 5 commits July 22, 2024 12:04
- do not matrix across python version as it already does this internally
- do not pip install packages as it already does this internally
- restrict python versions in pyproject.toml
gnodar01 added 3 commits July 22, 2024 15:42
- letting cibuildwheel handle the python version matrixing breaks
- manually doing it and the dependency resolution gives more fine
  grained control
- modeled after scikit-image: https://github.com/scikit-learn/scikit-learn/blob/7eb7effae192f8fa9e29e14507970f5a7da6088c/.github/workflows/wheels.yml
- clean up uploaded artifact names, make more descriptive
- disable PR change causing runs
@gnodar01 gnodar01 merged commit 533caaa into master Jul 22, 2024
2 checks passed
@gnodar01 gnodar01 deleted the build-fix branch July 22, 2024 20:35
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.

CellProfiler 4.2.6 can not be installed in conda environment with Python 3.9
2 participants